欢迎关注"生信修炼手册"!
ALLPATHS-LG 是由Broad Institiute研究所发明的一款基因组组装软件,不论是细菌/真菌等小型基因组,还是动植物等大型基因组的组装,它都能够胜任。 官网如下:
https://www.broadinstitute.org/computational-rd/computational-research-and-development
和其他组装软件不同的是,allpaths-lg要求至少两个文库
- 第一个文库的插入片段长度不能超过测序读长的两倍,这样可以保证双端测序的reads之间存在overlap,这样的文库类型称之为fragment
- 第二个文库的插入片段通常大于3kb,超长读长有利于基因组的组装,这样的文库类型称之为jumping
除了插入片段外,allpaths-lg对测序深度也有要求,推荐100X以上。
在组装时,对于硬件资源也有一定的要求,对于哺乳动物基因组,建议内存大小为512G, 对于小基因组,建议内存大小32G。
我们可以通过ftp地址来下载该软件,链接如下
ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/
安装过程如下
代码语言:javascript复制wget ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/latest_source_code/allpathslg-52488.tar.gz
tar xzvf allpathslg-52488.tar.gz
cd allpathslg-52488/
./configure --prefix=$(pwd)
make
make install
安装好之后,在bin目录下可以找到程序的可执行文件。为了方便调用,可以把bin目录添加到PATH环境变量中。官方提供了小的测试数据集, 可以帮助我们了解软件的用法
代码语言:javascript复制wget ftp://ftp.broadinstitute.org/pub/crd/ALLPATHS/Release-LG/test.genome.tar.gz
allpaths-lg的运行分成以下两步
1. 准备输入文件
在bin目录下,有一个名为PrepareAllPathsInputs.pl
的可执行文件,这个文件就是用来准备输入文件的。这个文件需要读取以下两个文件
in_groups.csv,示例如下
代码语言:javascript复制 file_name, library_name, group_name
seq/frags.?.fastq, Solexa-25396, frags
seq/jumps.?.fastq, Solexa-11542, jumps
逗号分隔的3列文件,group_name代表每组的唯一的ID,library_name代表文库的名字, file_name 代表序列文件,对于双端测序的文件,可以使用通配符来表示R1端和R2端。
in_libs.csv, 示例如下
代码语言:javascript复制library_name, project_name, organism_name, type, paired, frag_size, frag_stddev, insert_size, insert_stddev, read_orientation, genomic_start, genomic_end
Solexa-25396, test, test.genome, fragment, 1, 180, 10, , , inward, 0, 0
Solexa-11542, test, test.genome, jumping, 1, , , 3000, 500, outward, 0, 0
逗号分隔的12列文件,library_name和in_groups.csv文件中的文库名字相同,project_name代表项目名称,organism_name代表组装的物种名称,type代表文库类型,fragment代表插入片段短,存在overlap的文库;jumping代表插入片段非常长的文库,paired代表测序类型,0表示单端测序,1表示双端测序;frag_size和frag_stddev只针对fragment文库,分别表示插入片段长度的平均数和方差;insert_size和insert_stddev只针对jumping文库,分别代表jumping文库插入片段长度的均值和方差;read_orientation代表测序方向,genomic_start和genome_end用来过滤序列,小于genome_start和大于genome_end的序列会被过滤掉,在实际使用时,直接填0就可以了。
对于fragment和jumping 文库,测序方向分别对应inward和outward。
以上两个文件根据自己的数据填写好之后,就可以运行下面的代码了
代码语言:javascript复制PrepareAllPathsInputs.pl
DATA_DIR=$PWD/test.genome/data
PLOIDY=1
IN_GROUPS_CSV=in_groups.csv
IN_LIBS_CSV=in_libs.csv
GENOME_SIZE=200000
OVERWRITE=True
DATA_DIR
代表数据的存放目录,要去必须是绝对路径,test.genome必须和csv文件中的organism_name相同。PLOIDY
代表染色体倍性,allpaths-lg目前只支持单倍体和二倍体。运行结束后,在输出目录会生成如下文件
├── frag_reads_orig.fastb
├── frag_reads_orig.pairs
├── frag_reads_orig.qualb
├── frag_reads_orig.source.txt
├── jump_reads_orig.fastb
├── jump_reads_orig.pairs
├── jump_reads_orig.qualb
├── jump_reads_orig.source.txt
├── ploidy
└── read_cache
每个文库的序列会生成对应的.fastb
, .pairs
, qualb
三个文件;ploidy 记录染色体倍性;read_cache 是临时目录。
2. 组装
准备好输入文件之后,就可以进行组装了,命令如下
代码语言:javascript复制RunAllPathsLG
PRE=$PWD
REFERENCE_NAME=test.genome
DATA_SUBDIR=data
RUN=run
SUBDIR=test
TARGETS=standard
OVERWRITE=True
上述命令中的5个参数构成了如下的目录结构
代码语言:javascript复制PRE/REFERENCE_NAME/DATA_SUBDIR/RUN/SUBDIR
allpaths-lg通过这样的目录结构来存放多个基因组组装的结果。
组装的结果保存在SUBDIR 目录下,final.contigs.fasta对应contig的结果,final.assembly.fasta对应scaffold的结果。