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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容