主流的NGS基因组组装软件都是先将序列划分成kmer, 然后基于de Bruijn Graph图论算法,得到组装好的序列。程序运行时,kmer字符串时存储在内存中,所以要求计算机的内存要足够大。
Abyss 基于布隆过滤器,不直接储存字符串,减少了内存的消耗。软件的官网如下
http://www.bcgsc.ca/platform/bioinfo/software/abyss
安装过程如下
wget https://github.com/bcgsc/abyss/releases/download/2.1.0/abyss-2.1.0.tar.gz
tar xzvf abyss-2.1.0.tar.gz
cd abyss-2.1.0/
./configure --prefix=$(pwd) --without-sparsehash
make
编译成功后,会生成许多的可执行文件,这些文件分散在不同的目录下,想要成功运行该软件,需要将这些可执行文件都添加到PATH环境变量中,写法如下
export ABYSS_HOME=/soft/abyss-2.1.0
export PATH=$ABYSS_HOME/ABYSS:$PATH
export PATH=$ABYSS_HOME/AdjList:$PATH
export PATH=$ABYSS_HOME/Align:$PATH
export PATH=$ABYSS_HOME/bin:$PATH
export PATH=$ABYSS_HOME/Bloom:$PATH
export PATH=$ABYSS_HOME/BloomDBG:$PATH
export PATH=$ABYSS_HOME/Consensus:$PATH
export PATH=$ABYSS_HOME/DAssembler:$PATH
export PATH=$ABYSS_HOME/DataBase:$PATH
export PATH=$ABYSS_HOME/dialign:$PATH
export PATH=$ABYSS_HOME/DistanceEst:$PATH
export PATH=$ABYSS_HOME/FilterGraph/:$PATH
export PATH=$ABYSS_HOME/FMIndex/:$PATH
export PATH=$ABYSS_HOME/GapFiller:$PATH
export PATH=$ABYSS_HOME/Graph:$PATH
export PATH=$ABYSS_HOME/KAligner:$PATH
export PATH=$ABYSS_HOME/kmerprint:$PATH
export PATH=$ABYSS_HOME/Konnector:$PATH
export PATH=$ABYSS_HOME/Layoutp:$PATH
export PATH=$ABYSS_HOME/LogKmerCountr:$PATH
export PATH=$ABYSS_HOME/Map:$PATH
export PATH=$ABYSS_HOME/MergePaths:$PATH
export PATH=$ABYSS_HOME/Overlap:$PATH
export PATH=$ABYSS_HOME/PairedDBG:$PATH
export PATH=$ABYSS_HOME/ParseAligns:$PATH
export PATH=$ABYSS_HOME/PathOverlap:$PATH
export PATH=$ABYSS_HOME/PopBubbles:$PATH
export PATH=$ABYSS_HOME/Scaffold:$PATH
export PATH=$ABYSS_HOME/Sealer:$PATH
export PATH=$ABYSS_HOME/SimpleGraph:$PATH
只需要调整ABYSS_HOME
,将其设置为软件所在的实际目录即可,可以在~/.bahsrc
文件中设置以上环境变量,然后运行下列代码
source ~.bahsrc
这样环境变量就会生效,至此,软件才算安装成功。官网还提供了测试数据集,下载测试数据集的方法如下
wget http://www.bcgsc.ca/platform/bioinfo/software/abyss/releases/1.3.4/test-data.tar.gz
tar xzvf test-data.tar.gz
tree -L 1 test-data
├── reads1.fastq
└── reads2.fastq
测试数据集是一个双端测序的结果文件,用Abyss进行组装的命令如下
abyss-pe k=25 name=test in='test-data/reads1.fastq test-data/reads2.fastq'
name
参数是生成文件的前缀,运行结束后,会生成很多文件,以下两个文件是我们最关注的
test-contigs.fa
-
test-scaffolds.fa
分别对应contig和scaffold的结果。
对于Abyss而言,只能通过for 循环,实现多个kmer 梯度组装,用法如下
for k in `seq 50 8 90`; do
mkdir k$k
abyss-pe -C k$k name=test k=$k in=reads.fa
done
更多的参数和用法请参考官方文档。