『三代测序』

【生信知识】---Nanopore测序的SV Calling流程

2020-06-08  本文已影响0人  卡布达b1

1.软件安装
安装序列比对软件LAST

#下载并安装last
axel http://last.cbrc.jp/last-1061.zip
gunzip last-1061.zip
cd /path/to/lastdir
make

安装sam格式处理工具sambamba

conda install sambamba

安装bedtools

conda install bedtools

安装结构变异识别软件NanoSV

pip install nanosv -i https://pypi.doubanio.com/simple/

2.数据测试
构建用于last比对的reference索引

lastdb db_name reference.fasta

使用lastal将fastq比对到参考序列

lastal -Q1 db_name Sample.fastq |last-split > Sample.maf
#-Q1 表示input文件格式为sanger fastq

使用picard生成reference.dict

java -jar CreateSequenceDictionary.jar REFERENCE=reference.fasta OUTPUT=reference.dict

将maf转换为sam

# maf-convert 的目录在/path/to/lastdir/scripts
# 需要先修改权限,改为可执行程序
chmod 777 maf-convert
maf-convert -f reference.dict sam -r "ID:01 PL:nanopore SM:Sample" Sample.maf > Sample.sam

使用sambamba将sam转换为bam,并排序

sambamba view -h -S --format=bam Sample.sam > Sample.bam
sambamba sort Sample.bam

使用NanoSV识别bam文件中的结构性变异:

# 获取bed文件
bedtools bamtobed -i Sample.sorted.bam >Sample.sorted.bed
NanoSV -t 8 -s SAMBAMBA -o Sample.vcf Sample.sorted.bam
# -t 8是设定的线程数
# -s SAMBAMBA是设定的sambamba的绝对路径

整合到一起,写成pipeline.sh:

Ref = $1
Spl = $2
lastdb ${Ref%.*} $Ref
lastal -Q1 ${Ref%.*} $Spl |last-split > ${Spl%.*}.maf
java -jar CreateSequenceDictionary.jar REFERENCE=$Ref OUTPUT=${Ref%.*}.dict
maf-convert -f ${Ref%.*}.dict sam -r "ID:01 PL:nanopore SM:${Spl%.*}" ${Spl%.*}.maf > ${Spl%.*}.sam
sambamba view -h -S --format=bam ${Spl%.*}.sam > ${Spl%.*}.bam
sambamba sort ${Spl%.*}.bam
bedtools bamtobed -i ${Spl%.*}.sorted.bam >${Spl%.*}.sorted.bed
NanoSV -t 8 -s SAMBAMBA -b ${Spl%.*}.sorted.bed -o ${Spl%.*}.vcf ${Spl%.*}.sorted.bam

下面是广告时间:
做了这么久生信,我也该出山了,如果有生信分析需求或者想交流生信学习经验的小伙伴,可在简书私信联系我噢~~

或者关注我们的微信公众号:BI201708

上一篇下一篇

猜你喜欢

热点阅读