我要评分
获取效率
正确性
完整性
易理解

Compiling and Installing SOAPdenovo

Procedure

  1. Use PuTTY to log in to the server as the root user.
  2. Go to the SOAPdenovo directory.
    cd /path/to/SOAPDENOVO
  3. Decompress SOAPdenovo2-r241.tar.gz.
    tar -xvf SOAPdenovo2-r241.tar.gz
  4. Go to the directory generated after the decompression.
    cd SOAPdenovo2-r241
  5. Modify the standardPregraph/hashFunction.c file.
    1. Open standardPregraph/hashFunction.c.
      vi standardPregraph/hashFunction.c
    2. Press i to enter the insert mode and modify the file as follows:

      Before the modification:

      static uint32_t cpuid ( uint32_t functionInput )
      {
      uint32_t eax;
      uint32_t ebx;
      uint32_t ecx;
      uint32_t edx;
      #ifdef __PIC__
      asm ( "pushl %%ebx\n\t" /* save %ebx */
      "cpuid\n\t"
      "movl %%ebx, %[ebx]\n\t" /* save what cpuid just put in %ebx */
      "popl %%ebx" : "=a" ( eax ), [ebx] "=r" ( ebx ), "=c" ( ecx ), "=d" ( edx ) : "a" ( functionInput )
      : "cc" );
      #else
      asm ( "cpuid" : "=a" ( eax ), "=b" ( ebx ), "=c" ( ecx ), "=d" ( edx ) : "a" ( functionInput ) );
      #endif
      return ecx;
      }

      After the modification:

      static uint32_t cpuid ( uint32_t functionInput )
      {
      uint32_t eax;
      uint32_t ebx;
      uint32_t ecx;
      uint32_t edx;
      
      #ifdef __aarch64__
      ecx = 0x0;
      #else
      #ifdef __PIC__
      asm ( "pushl %%ebx\n\t" /* save %ebx */
      "cpuid\n\t"
      "movl %%ebx, %[ebx]\n\t" /* save what cpuid just put in %ebx */
      "popl %%ebx" : "=a" ( eax ), [ebx] "=r" ( ebx ), "=c" ( ecx ), "=d" ( edx ) : "a" ( functionInput )
      : "cc" );
      #else
      asm ( "cpuid" : "=a" ( eax ), "=b" ( ebx ), "=c" ( ecx ), "=d" ( edx ) : "a" ( functionInput ) );
      #endif
      #endif
      return ecx;
      }
    3. Press Esc, type :wq!, and press Enter to save the file and exit.
  6. Perform the compilation.
    make
  7. Test the SOAPdenovo environment.
    ./SOAPdenovo-63mer

    If the following information is displayed, the environment is normal.