转录组数据质量分析完,想拿kraken软件分析下数据有没有微生物的序列污染
找了全网没看见什么相关的指导文章,看官网的操作手册也很鸡助,所以自己翻译了官网手册以及写了代码,希望对后来的人有些帮助。
Kraken是2013年Wood提出的的宏基因组序列分类软件,能够快速对宏基因样品中的DNA序列进行分类,因此可以进行微生物检测。Kraken在序列比对环节(环节C)采用精确k-mer匹配和精简数据库的方法(环节B),忽略基因变异,采取精确匹配;并且建立了专用数据库与k-mer匹配相配合,极大地提高了检测速度.Kraken分为两个版本:内存开销较大的normal版和将内存开销限制为2Gb以内的mini版.Kraken速度极快,精度较低,适用于做微生物检测的预处理.
官网网址:http://ccb.jhu.edu/software/kraken/
操作文档网址 :http://ccb.jhu.edu/software/kraken/MANUAL.html
一 安装
1、如果安装了miniconda的话可以直接用命令安装
conda install kraken
2、从kraken官网下载source包,其中包括了kraken的一些代码,安装脚本install_kraken.sh,以及readme文件
在安装脚本目录下运行
./install_kraken.sh $KRAKEN_DIR
$KRAKEN_DIR指定kraken安装的目录
当看到提示 "Kraken installation complete."说明安装完成,随后将kraken两个主要的脚本复制到加入环境变量
cp $KRAKEN_DIR/bin/kraken $HOME/bin
cp $KRAKEN_DIR/bin/kraken-build $HOME/bin
$HOME/bin你环境变量的位置
二、下载kraken标准数据库
kraken-build --standard --threads 24 --db $DBNAME
--threads 24 指定线程数24
--db $DBNAME 指定安装的目录
当数据库构建完成,可以使用以下命令删除冗余的文件
kraken-build --db $DBNAME --clean
三、分类代码
kraken --db $DBNAME seqs.fa
主要参数:
--threads NUM 设置线程数
--classified-out 输出已经被分类的序列也就是污染的序列
--unclassified-out 输出未被分类的序列也就是未污染的序列
--output 输出
| or > 也是输出
--fastq-input 声明输入文件是fastq格式
--gzip-compressed 声明输入文件是.gz的压缩格式
--bzip2-compressed 声明输入文件是.bz的压缩格式
--paired 如果是双端测序,则需声明为是双端测序
四、实例代码
代码一:输出classify序列和unclassify序列以及一个.kraken文件
--threads 8:指定线程 8
--db /data/program/Assessment/kraken_database/ 指定标准数据库的路径
--fastq-input--gzip-compressed 指定fastq文件格式,这里指定为gzip
--paired 指定是双端测序
${output_forward_paired}${output_reverse_paired}输入文件的路径与名称:read1 read2
--classified-out 指定输出分类的序列文件——有污染
${output_classify} 输出分类的序列文件的路径及名称
--unclassified-out 指定输出未分类的序列文件——无污染
${output_unclassify}输出未分类的序列文件的路径及名称
> ${kraken} 输出一个.kraken文件
代码二:输出报告,报告统计了污染的比例,还有污染的种类
${kraken}上面生成的.kraken文件
> ${kraken_report} 指定输出报告的路径及名称
最终我加入我自己的输入文件路径与输出文件路径等内容,写成的代码如下:
nohup...& 是把任务挂到后台运行
最终得到的报告如下:
98.46%未被污染
1.54%被污染,且列出污染的序列属于哪个物种。
就酱
希望对大家有帮助。