前期准备:
#仍然是前面的那个目录
../../bowtie2 -x ../index/lambda_virus -1 reads_1.fq -2 reads_2.fq > tmp.sam
- 统计共多少条reads(pair-end reads这里算一条)参与了比对参考基因组
cat tmp.sam | grep -v '^@'|cut -f1|sort |uniq -c|wc -l
- 统计共有多少种比对的类型(即第二列数值有多少种)及其分布。
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
- 比对失败的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
- 筛选出比对质量值大于30的情况(看第5列)
cat tmp.sam |grep -v '^@'|awk '{if($5>30) print}' |less -SN
- 筛选出比对成功,但是并不是完全匹配的序列
cat tmp.sam |grep -v '^@'|awk '{if($6!="*") print$6}'|grep [IDNXSHP]
- 筛选出inset size长度大于1250bp的 pair-end reads
cat tmp.sam |grep -v '^@'|awk '{if($9>1250) print}'|less -SN
- 统计参考基因组上面各条染色体的成功比对reads数量
cat tmp.sam |grep -v '^@'|cut -f 3 |sort -u
- 筛选出原始fq序列里面有N的比对情况
cat tmp.sam |grep -v '^@'|awk '{if($10 ~"N")print}'|less -SN
- 筛选出原始fq序列里面有N,但是比对的时候却是完全匹配的情况
cat tmp.sam | grep -v '^@'|awk '{if($10 ~"N")print}'|awk '{if($6 !~ "[IDNSHP]")print}'|awk '{if($6!="*")print}'|less -S
- sam文件里面的头文件行数
cat tmp.sam | grep '^@'|wc -l
- sam文件里每一行的tags个数一样吗
cat tmp.sam | grep -v '^@' |cut -f 12- |less -S
- sam文件里每一行的tags个数分别是多少个
grep -v '^@' tmp.sam |cut -f 12-|awk '{split($0,a, " ");print length(a)}' |sort|uniq -c
- sam文件里记录的参考基因组染色体长度分别是?
cat tmp.sam | grep '^@' | grep 'LN'
- 找到比对情况有insertion情况的
cat tmp.sam | grep -v '^@'|awk '{if($6~ "I")print}'|less -S
- 找到比对情况有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
- 把sam文件按照染色体以及起始坐标排序
cat tmp.sam | grep -v '^@'|sort -k4|less -SN
- 找到 102M3D11M 的比对情况,计算其reads片段长度。
grep 102M3D11M tmp.sam |cut -f 10|wc -m
- 安装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 字符串各字母代表的意义
比对质量的数字是哪一列?越大比对质量越好还是越小越好?
质量值是第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