PBJelly安装及使用
PBJelly是一款用于基因组Gap filling的软件,通过将三代reads比对到sccofolds进行连接补洞。Github地址:PBJelly。
一、安装
#创建Python环境,python=2.7
conda create -n python2.7 python=2.7
#配置依赖包
conda install blasr,networkx
#clone下载
git clone https://github.com/esrice/PBJelly.git
二、配置
#配置setup.sh文件
vim setup.sh
#配置内容参照如下
#/bin/bash
#If you use a virtual env - source it here
source activate python2.7
#This is the path where you've install the suite.
export SWEETPATH=/home/liuxin/PBJelly
#for python modules
export PYTHONPATH=$PYTHONPATH:$SWEETPATH
#for executables
export PATH=$PATH:$SWEETPATH/bin/
#每次使用前激活setup.sh文件
source /home/liuxin/PBJelly/setup.sh
#或者将其放入配置文件登录自动将其激活
echo "source /home/liuxin/PBSuite/setup.sh" > ~/.bash_profile
三、使用默认数据配置进行测试
#修改配置文件
vim /home/liuxin/PBJelly/docs/TemplateProtocol.xml
#修改reference,output,input路径,job设置为用来mapping的reads文件名
<jellyProtocol>
<reference>/home/liuxin/PBJelly/docs/jellyExample/data/reference/lambda.fasta</reference>
<outputDir>/home/liuxin/PBJelly/docs/jellyExample/data/</outputDir>
<blasr>-minMatch 8 -minPctIdentity 70 -bestn 1 -nCandidates 20 -maxScore -500 -nproc 20 -noSplitSubreads</blasr>
<input baseDir="/home/liuxin/PBJelly/docs/jellyExample/data/reads">
<job>filtered_subreads.fastq</job>
</input>
</jellyProtocol>
四、检查一下demo数据
#查看reference数据统计信息
summarizeAssembly.py /home/liuxin/PBJelly/docs/jellyExample/data/reads/lambda.fasta
#查看reads数据统计
readSummary.py /home/liuxin/PBJelly/docs/TemplateProtocol.xml
#PS:若reference序列没有质量文件,需要用fakeQuals.py生成对应的.qual文件(否则后续运行时会有warning)
fakeQual.py /home/liuxin/PBJelly/docs/jellyExample/data/reference/lambda.fasta /home/liuxin/PBJelly/docs/jellyExample/data/reference/lambda.qual
五、开始运行
PS:一定要等待每个阶段运行完成,才可以执行下一个阶段。
#具体命令格式如下,<stage>包括6个stage,<Protocol.xml>使用绝对路径
Jelly.py <stage> <Protocol.xml>
#分六个stages运行,如果数据集较大,mapping的过程会比较久,需要等待结果生成再进行下一步
Jelly.py setup /home/liuxin/PBJelly/docs/TemplateProtocol.xml
Jelly.py mapping /home/liuxin/PBJelly/docs/TemplateProtocol.xml
Jelly.py support /home/liuxin/PBJelly/docs/TemplateProtocol.xml
Jelly.py extraction /home/liuxin/PBJelly/docs/TemplateProtocol.xml
Jelly.py assembly /home/liuxin/PBJelly/docs/TemplateProtocol.xml
Jelly.py output /home/liuxin/PBJelly/docs/TemplateProtocol.xml
PS:setup生成的相关文件在reference文件夹下,mapping、support、extraction以及assembly均会在/home/liuxin/PBJelly/docs/jellyExample/data目录下生成相应的文件,其中会记录对应的输出log,查看err文件可确认每个阶段是否顺利完成。
六、查看结果
#结果输出在/home/liuxin/PBJelly/docs/jellyExample/data,包含三个文件,其中:
#gap_fill_status.txt 给出补洞统计信息
more gap_fill_status.txt
#jelly.out.fasta 即为输出fasta
less jelly.out.fasta
PS:可使用-x传递参数,nproc设置处理器数量
Jelly.py assembly <Protocol.xml> -x "--nproc=20"
参考文献
English, Adam C., Stephen Richards, Yi Han, Min Wang, Vanesa Vee, Jiaxin Qu, Xiang Qin, et al. "Mind the Gap: Upgrading Genomes with Pacific Biosciences RS Long-Read Sequencing Technology." PLoS ONE 7, no. 11 (November 21, 2012): e47768