【生信知识】---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