查看感兴趣的snp是否被测到

针对现在已有的rs号,想查看这些点在全外数据中是否被测到。因为目前只是有rs号,所以首先需要得到这些rs号所在的位置,然后去bam文件查看是否测到。

1,拿到rs号去进行annovar注释,得到rsid.hg19_multianno.txt。

/media/gsadmin/vd2/tmp/software/annovar/convert2annovar.pl -format rsid rsid.txt -dbsnpfile /media/gsadmin/vd2/tmp/database/humandb/hg19_snp138.txt > output.avinput
/media/gsadmin/vd2/tmp/software/annovar/table_annovar.pl output.avinput /media/gsadmin/vd2/tmp/database/humandb/ -buildver hg19 -out rsid -remove -protocol refGene,cytoBand,avsnp150 -operation g,r,f -nastring . -thread 10 -otherinfo
rm output.avinput

2.使用samtools view查看BAM文件

samtools view in.bam

(1)了解bam文件的格式

(2) 提取注释得到的数据前三列,按照chr:start-end格式准备

(3)如果不想从头开始看,希望快速地跳转到基因组的其它位置上,比如chr22染色体,那么可以先用samtools index生成BAM文件的索引(如果已经有索引文件则不需该步骤),然后这样操作:

samtools index in.bam # 生成in.bam的索引文件in.bam.bai
samtools view in.bam chr22 # 跳转到chr22染色体
samtools view in.bam chr22:16050103 # 跳转到chr22:16050103位置
samtools view in.bam chr22:16050103-16050103 # 只查看该位置
samtools view  -h in.bam chr22:16050103-16050103  #表示包含头查看该位置
samtools view  -h in.bam chr22:16050103-16050103 > out.bam  #把该条记录输出到out.bam文件

(4)批量查看这些位置并且生成到一个文件中  

cat key.txt |while read id;
do
#chr=$(echo $id |cut -d" " -f 1|sed 's/chr//' )
chr=$(echo $id |cut -d" " -f 1)
start=$(echo $id |cut -d" " -f 2 )
end=$(echo $id |cut -d" " -f 3 )
rs=$(echo $id |cut -d" " -f 4 )
echo $chr:$start-$end  $rs
samtools view in.bam $chr:$start-$end > $rs.out.bam
done

合并生成的out.bam 文件 cat  *.out.bam > result.bam

参考:https://www.plob.org/article/11715.html

猜你喜欢

转载自blog.csdn.net/Cassiel60/article/details/88997301
今日推荐