参考:生信技能书(Jimmy的linux练习题)
进入到简书之后,就一直写个不停,不能自拔,想把之前在本地学习、练习的资源,都转移到了这里,不仅自己随时可以得到,而且还可以供后人学习参考。
大概是去年10月份左右吧,当时自己在学习awk,sed,grep这些生信常用的命令,虽然该看的知识点也看完了,但是还不敢说自己掌握到了,因为苦于找不到很好的项目进行练习,这时刚好在bilibili上看到Jimmy的生信教程,就跟着在本地学习了一些操作,刚开始有些疯狂,在去北京的年会上,在回云南的高铁上,甚至在黄花机场等候时,一直在看,在练......好在现在基本上以及掌握了,可以根据自己想法去处理文本了。
下面就对自己初期的练习题进行一个总结了,建议生信入门的同学也去bilibili上搜索学习资源,应该还是在的。
1,统计.fq文件中有多少条序列信息
cat test.fastq |paste - - - - |wc -l
2,输出所有.fq文件中的标识符(以@开头的行)
awk '{if(NR%4==1)print}' test.fastq|head
#或
awk '{if($0 ~ "^@")print}' test_data.fastq |head
awk '{if(NR%4==1)print}' test.fastq|awk '{print $1}'
3,输出.fq文件中的所有序列信息(每个序列的第二行)
awk '{if(NR%4==2)print}' test.fastq|wc
awk '{if(NR%4==2)print}' test.fastq|head
4,输出以+及其后面的描述信息
cat test.fastq |paste - - - - |awk '{print $5}'
5,输出质量信息(每个序列的第8行)
cat test.fastq |paste - - - - |awk '{print $8}'
#或者
awk '{if(NR%8==0)print}' test.fastq |head
6,计算.fq文件中含有N碱基的reads个数
#N碱基的行数
cat test.fastq |paste - - - - |awk '{print $4}'|grep -c "N"
#N碱基的个数
cat test.fastq |paste - - - - |awk '{print $4}'|grep -o "N"|wc
7,统计文件中序列的碱基总数
cat test.fastq |paste - - - - |awk '{print $4}'|grep -o [ATCGN]|wc
8,计算文件中N碱基的总数
...
11,统计.fq中所有序列第一位碱基的ATCGN分布情况
cat test.fastq |awk '{if(NR%4==2)print}'|cut -c1|sort|uniq -c
12,将.fq文件转换为.fa文件
#1)选取序列信息;2)转化为两行;3)输出
cat test.fastq |paste - - - -|awk '{print $1,$4}'|tr ' ' '\n' > test.fa
13,统计.fa文件有多少序列
cat test.fa|paste - -|wc -l
14,统计.fa文件中总碱基的GC含量
cat test.fa |paste - -|awk '{print $2}'|grep -o "GC"|wc
15,删除.fa文件中每条序列的N碱基
cat test.fa |paste - -|tr -d "N"
#查看各碱基的分布情况
cat test.fa|grep -o [ATCGN]|sort|uniq -c
#查看删除N后各碱基的分布情况
cat test.fa|tr -d "N"|grep -o [ATCGN]|sort|uniq -c
16,删除.fa文件中含有N碱基的序列
cat test.fa|paste - -|grep -v "N"|wc
17,删除.fa文件中短于50bp的序列
#这个训练文件所有的reads都是50
cat test.fa|paste - -|awk '{print $2}'|awk '{print NR,length}'|head
网友评论