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.數(shù)據(jù)測試
構建用于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
# 需要先修改權限惨撇,改為可執(zhí)行程序
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是設定的線程數(shù)
# -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
下面是廣告時間:
做了這么久生信,我也該出山了碰煌,如果有生信分析需求或者想交流生信學習經(jīng)驗的小伙伴拄查,可在簡書私信聯(lián)系我噢~~
或者關注我們的微信公眾號:BI201708