fasta和fastq格式文件的shell小练习

2019-04-07  本文已影响0人  weixinsuoxian

练习题来源:http://www.bio-info-trainee.com/3575.html

#1) 统计reads_1.fq 文件中共有多少条序列信息
wc reads_1.fq
cat reads_1.fq | paste - - - - | wc
awk '{if(NR%4==0) print}' reads_1.fq | wc
#NR 是awk的参数,表示行号,对行号求余数(%)

#2)输出所有的reads_1.fq文件中的标识符(即以@开头的那一行)
cat reads_1.fq | paste - - - - | cut -f1
awk '{if(NR%4==1) print}' reads_1.fq 

#3) 输出reads_1.fq文件中的 所有序列信息(即每个序列的第二行)
cat reads_1.fq | paste - - - - | cut -f2
awk '{if(NR%4==2) print}' reads_1.fq 

#4)输出以‘+’及其后面的描述信息(即每个序列的第三行)
cat reads_1.fq | paste - - - - | cut -f3
awk '{if(NR%4==3) print}' reads_1.fq 

#5)输出质量值信息(即每个序列的第四行)
cat reads_1.fq | paste - - - - | cut -f4
awk '{if(NR%4==0) print}' reads_1.fq

#6) 计算reads_1.fq 文件含有N碱基的reads个数
cat reads_1.fq | paste - - - - | cut -f2 | grep N | wc
awk '{if(NR%4==2) print}' reads_1.fq | grep N | wc

#7) 统计文件中reads_1.fq文件里面的序列的碱基总数
cat reads_1.fq | paste - - - - | cut -f2 | grep -o [ATGCN] | wc
cat reads_1.fq | paste - - - - | cut -f2 | grep -o [ATGCN] | sort | uniq -c


#8)计算reads_1.fq 所有的reads中N碱基的总数
cat reads_1.fq | paste - - - - | cut -f2 | grep -o N | wc

#9)统计reads_1.fq 中测序碱基质量值恰好为Q20的个数
cat reads_1.fq | paste - - - - | cut -f4 | grep -o 5 | wc
# 考虑碱基质量与对应的ASCII字符,Q值

#10)统计reads_1.fq 中测序碱基质量值恰好为Q30的个数
cat reads_1.fq | paste - - - - | cut -f4 | grep -o ? | wc

#11)统计reads_1.fq 中所有序列的第一位碱基的ATCGNatcg分布情况
cat reads_1.fq | paste - - - - | cut -f2 | cut -c1| sort | uniq -c
awk '{if(NR%4==2)print}' reads_1.fq | cut -c1 |sort|uniq -c 

#12)将reads_1.fq 转为reads_1.fa文件(即将fastq转化为fasta)
 cat reads_1.fq | paste - - - - | cut -f1,2|tr '\t' '\n'|tr '@' '>' > reads_1.fa


#13) 统计上述reads_1.fa文件中共有多少条序列
wc reads_1.fa
awk '{if(NR%2==0) print}' reads_1.fa | wc

#14)计算reads_1.fa文件中总的碱基序列的GC数量
awk '{if(NR%2==0) print}' reads_1.fa | grep -o  [GC] | sort | uniq -c

#15)删除 reads_1.fa文件中的每条序列的N碱基
awk '{if(NR%2==0) print}' reads_1.fa | tr -d N 

#16)删除 reads_1.fa文件中的含有N碱基的序列
cat reads_1.fa | paste - - |grep -v N | tr '\t' '\n'

#17) 删除 reads_1.fa文件中的短于65bp的序列
cat reads_1.fa |paste - -|awk '{if(length($2)>65) print}'| tr '\t' '\n'
cat reads_1.fa |paste - -|awk '{if(length($2)>65) print}' | wc

#18) 删除 reads_1.fa文件每条序列的前后五个碱基
cat reads_1.fa | paste - - | cut -f2|cut -c 5-
# 上面是前5个,后5个怎么删除???

#19)删除 reads_1.fa文件中的长于125bp的序列
cat reads_1.fa |paste - -|awk '{if(length($2)<125) print}'| tr '\t' '\n'

#20)查看reads_1.fq 中每条序列的第一位碱基的质量值的平均值
cat reads_1.fq | awk '{if(NR%4==0) print}' | cut -c1 |sort |uniq -c

感谢Jimmy老师,以及生信技能树的资源!!!

上一篇下一篇

猜你喜欢

热点阅读