sam和bam格式文件的shell小练习

前期准备:

#仍然是前面的那个目录
../../bowtie2 -x ../index/lambda_virus -1 reads_1.fq -2 reads_2.fq > tmp.sam
  1. 统计共多少条reads(pair-end reads这里算一条)参与了比对参考基因组
cat tmp.sam | grep -v '^@'|cut -f1|sort |uniq -c|wc -l
  1. 统计共有多少种比对的类型(即第二列数值有多少种)及其分布。
cat tmp.sam | grep -v '^@'|cut -f2|sort |uniq -c|less -N

3)筛选出比对失败的reads,看看序列特征。

cat tmp.sam |grep -v '^@'|awk '{if($6 =="*") print}'|less -S
  1. 比对失败的reads区分成单端失败和双端失败情况,并且拿到序列ID
cat tmp.sam |grep -v '^@'|awk '{if($6 =="*") print$1}'|sort -n |uniq -c |grep -w 1
cat tmp.sam |grep -v '^@'|awk '{if($6 =="*") print$1}'|sort -n |uniq -c |grep -w 2
  1. 筛选出比对质量值大于30的情况(看第5列)
cat tmp.sam |grep -v '^@'|awk '{if($5>30) print}' |less -SN
  1. 筛选出比对成功,但是并不是完全匹配的序列
cat tmp.sam |grep -v '^@'|awk '{if($6!="*") print$6}'|grep [IDNXSHP]
  1. 筛选出inset size长度大于1250bp的 pair-end reads
cat tmp.sam |grep -v '^@'|awk '{if($9>1250) print}'|less -SN
  1. 统计参考基因组上面各条染色体的成功比对reads数量
cat tmp.sam |grep -v '^@'|cut -f 3 |sort -u
  1. 筛选出原始fq序列里面有N的比对情况
cat tmp.sam |grep -v '^@'|awk '{if($10 ~"N")print}'|less -SN 
  1. 筛选出原始fq序列里面有N,但是比对的时候却是完全匹配的情况
cat tmp.sam | grep -v '^@'|awk '{if($10 ~"N")print}'|awk '{if($6 !~ "[IDNSHP]")print}'|awk '{if($6!="*")print}'|less -S
  1. sam文件里面的头文件行数
cat tmp.sam | grep  '^@'|wc -l
  1. sam文件里每一行的tags个数一样吗
cat tmp.sam | grep -v '^@' |cut -f 12- |less -S
  1. sam文件里每一行的tags个数分别是多少个
grep -v '^@' tmp.sam |cut -f 12-|awk '{split($0,a, " ");print length(a)}' |sort|uniq -c
  1. sam文件里记录的参考基因组染色体长度分别是?
cat tmp.sam | grep '^@' | grep 'LN'
  1. 找到比对情况有insertion情况的
cat tmp.sam | grep -v '^@'|awk '{if($6~ "I")print}'|less -S
  1. 找到比对情况有deletion情况的
cat tmp.sam | grep -v '^@'|awk '{if($6 ~"D")print}'|less -S

17)取出位于参考基因组某区域的比对记录,比如 5013到50130 区域

cat tmp.sam |grep -v '^@'|awk '{if($4 > 5013 && $4 < 50130)print}'|less -S
  1. 把sam文件按照染色体以及起始坐标排序
cat tmp.sam | grep -v '^@'|sort -k4|less -SN
  1. 找到 102M3D11M 的比对情况,计算其reads片段长度。
grep  102M3D11M tmp.sam |cut -f 10|wc -m
  1. 安装samtools软件后使用samtools软件的各个功能尝试把上述题目重新做一遍。

概念题目

1.高通量测序数据分析中,序列与参考序列的比对后得到的标准文件为什么文件?

sam文件

2.sam文件是一种比对后的文件,能直接查看吗?

可以.直接用vim就可以看了

3.Sam/Bam文件分为两部分,一部分以@开头的是什么序列,另一部分是什么序列?

以@开头的是头部注释信息,另一部分是比对结果。

4.Sam文件除头文件,以什么符号分割文本的,比对部分信息一行是多少列?你能用awk计算列数吗?

sam格式是以制表符分隔文本的.
一共有11列:

以制表符分隔文本,比对部分信息一行由11个必须字段(mandatory fields)和数量可变的可选字段(optional fields)构成。计算列数 cat tmp.sam | grep -v '@' | awk '{print NF}'。

5、Sam/Bam文件的@SQ开头的行是什么?你能生成一个文本,两列,一列是参考基因组染色体/sca id,一列是长度吗?

开头是参考序列的说明,SN--是参考序列的名称,LN--是长度

cat tmp.sam | grep @SQ | cut -f 2,3 | tr -d 'SN:' | tr -d 'LN:' > test.txt

6.Sam文件的比对位置是从1还是0开始的?

1

7.常见CIGAR 字符串各字母代表的意义

比对质量的数字是哪一列?越大比对质量越好还是越小越好?


image.png

质量值是第5列,数据越大,质量越好。

8.Sam文件的flag是第几列,数字代表什么意义?是怎么计算来的?

第二列,

9.Sam文件怎么转bam文件?用什么指令?为什么要转换?

可以用samtools进行转换.转换之后,可以缩小文件的大小

10.Bam文件查看用什么指令?如果需要查看头文件需要增加参数?

samtools view 查看
-H,

11.Bam文件为什么要排序?排序后的bam和未排序的bam头文件和chr position列有什么区别?

要先进行排序,才能进行index,否则会报错。
会由unsorted变为coordinate

12.Bam文件建索引的指令是什么?

samtools index tmp_sorted.bam

13.Bam文件可视化用什么工具?查看时需要建立索引吗?

IGV可视化工具
应该是需要建立引索的

14.Bam文件统计reads比对情况用samtools的哪一个子命令?

samtools idxstats tmp_sorted.bam

15.SE测序和PE测序的所比对后得到的sam文件的区别在哪里?

se是单片段的
pe是双片段的

16.Bam能用gzip再压缩吗?

还能,直接用gzip就可以了

17.Sam文件通常由哪些比对软件得到的

bwa,hisat2

18.Sam/Bam文件能转成fastq文件吗?

可以,用samtools fastq就可以了

19.有时候不能通过文件名的后缀来区别是sam还是bam,你是怎么区别的?

打开来看看吧.vim

你可能感兴趣的:(sam和bam格式文件的shell小练习)