编译和安装

操作步骤

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 执行以下命令进入安装目录并解压软件包。

    cd /path/to/PLATANUS && tar -zxf Platanus_v1.2.4.tar.gz && cd Platanus_v1.2.4

  3. 执行以下命令修改“Makefile”文件。

    1. 打开“Makefile”文件。
      vi Makefile
    2. 按“i”进入编辑模式,修改第1行和第2行的内容。

      修改前:

      1 CXX = g++
      2 CXXFLAGS = -std=c++0x -O3 -funroll-loops -Wall -fopenmp -finline-limit-50000 -lm -Dnullptr=0

      修改后:

      1 CXX = clang++
      2 CXXFLAGS = -std=c++0x -O3 -funroll-loops -Wall -fopenmp -lm -Dnullptr=0

      执行3.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  4. 执行以下命令修改“counter.h”文件。

    1. 打开“counter.h”文件。
      vi counter.h
    2. 按“i”进入编辑模式,修改第426、455、684行的内容。

      修改前:

      426             countKmerOrWriteTemporary(loopFlag, key, tmpOccurrenceTable, unmappedFP, lock, kmer);
      455 inline void Counter<KMER>::countKmerOrWriteTemporary(bool &loopFlag, const typename KMER::keyType &key, DoubleHash<typename KMER::keyType, unsigned short> tmpOccurrenceTable[], FILE *unmappedFP, omp_lock_t lock[], const KMER &kmer, const unsigned iterateTimes=32)
      684 inline void Counter<KMER>::countKmerOrWriteTemporary(bool &loopFlag, const typename KMER::keyType &key, FILE *unmappedFP, omp_lock_t lock[], const KMER &kmer, const unsigned iterateTimes=32)

      修改后:

      426             countKmerOrWriteTemporary(loopFlag, key, tmpOccurrenceTable, unmappedFP, lock, kmer, 32);
      455 inline void Counter<KMER>::countKmerOrWriteTemporary(bool &loopFlag, const typename KMER::keyType &key, DoubleHash<typename KMER::keyType, unsigned short> tmpOccurrenceTable[], FILE *unmappedFP, omp_lock_t lock[], const KMER &kmer, const unsigned iterateTimes)
      684 inline void Counter<KMER>::countKmerOrWriteTemporary(bool &loopFlag, const typename KMER::keyType &key, FILE *unmappedFP, omp_lock_t lock[], const KMER &kmer, const unsigned iterateTimes)

      执行4.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  5. 执行以下命令修改“graph.h”文件。

    1. 打开“graph.h”文件。
      vi graph.h
    2. 按“i”进入编辑模式,修改第1764行的内容。

      修改前:

      1764 void BruijnGraph<KMER>::cutBranchIterative(const unsigned long long numThread=1)

      修改后:

      1764 void BruijnGraph<KMER>::cutBranchIterative(const unsigned long long numThread)

      执行5.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  6. 执行以下命令修改“scaffoldGraph.cpp”文件。

    1. 打开“scaffoldGraph.cpp”文件。
      vi scaffoldGraph.cpp
    2. 按“i”进入编辑模式,修改第2280行的内容。

      修改前:

      2280             if (abs(insertLength - averageInsSize) > tolerence) continue;

      修改后:

      2280             if (std::fabs(insertLength - averageInsSize) > tolerence) continue;

      执行6.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  7. 执行以下命令修改“baseCommand.cpp”文件。

    1. 打开“baseCommand.cpp”文件。
      vi baseCommand.cpp
    2. 按“i”进入编辑模式,修改第175行的内容。

      修改前:

      175     for (;moveArgs != '\0'; ++moveArgs) {

      修改后:

      175     for (;*moveArgs != '\0'; ++moveArgs) {

      执行7.a之后,按“Esc”键,输入:set nu,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  8. 执行以下命令编译安装Platanus。

    make