前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >转录组实战练习题-1 加深对fastq数据认识

转录组实战练习题-1 加深对fastq数据认识

原创
作者头像
大胖橘
发布2023-04-09 13:29:56
4080
发布2023-04-09 13:29:56
举报
文章被收录于专栏:R语言 / LinuxR语言 / Linux

转录组实战练习题-1 加深对fastq数据认识

1.统计SRR1039510_1.fastq.gz文件中共有多少条reads?
代码语言:javascript
复制
1 zless  SRR1039510_1.fastq.gz | grep "@SRR" -c
#
2 zless  SRR1039510_1.fastq.gz | grep '^@SRR' |wc -l
#
3 zless -S SRR1039510_1.fastq.gz | paste - - - - |wc -l
#
4 zless  SRR1039510_1.fastq.gz |wc -l | awk '{print $0/4}'
#
5 zless -S SRR1039510_1.fastq.gz | awk '{ if(NR%4==2) {print} }' |wc -l  
#用行号除以4,余数是多少。
2.输出SRR1039510_1.fastq.gz文件中所有的序列ID(即第一行)
代码语言:javascript
复制
1 zless  SRR1039510_1.fastq.gz | grep '^@SRR'  |less -S
# ^的意思是以...开头。less -S意思是文件查看,单行显示。
2 zless  SRR1039510_1.fastq.gz | paste - - - - |cut -f 1 |less -S
# paste和cut联合使用。paste意思行变成列,每4行是一个序列的信息,把每4行变成一行。然后用cut进行纵向切。切第一列(也就是之前的第一行)
3 zless -S SRR1039510_1.fastq.gz |awk '{if(NR%4==1){print}}' |less -S
# awk 将余数变成1即可。同前。
3.输出SRR1039510_1.fastq.gz文件中所有的序列(即第二行)

统计测了多少条reads

代码语言:javascript
复制
1 zless  SRR1039510_1.fastq.gz | paste - - - - |cut -f 2 |less -S
# 
2 zless -S SRR1039510_1.fastq.gz |awk '{if(NR%4==2){print}}' |less -S 
#

统计一个序列是不是唯一的?

代码语言:javascript
复制
zless -SN SRR1039510_1.fastq.gz | awk '{if(NR%4==2){print}}' | sort | less -S
# 首先对序列进行排序
zless -SN SRR1039510_1.fastq.gz | awk '{if(NR%4==2){print}}' | sort | uniq -c| less -S
#使用uniq 之前,一定先排序。
zless -SN SRR1039510_1.fastq.gz | awk '{if(NR%4==2){print}}' | sort | uniq -c| sort -k1  -n -r | less -S
#对第一列进行排序,倒序

看的测的序列中有多少个'N'?

代码语言:javascript
复制
zless -SN SRR1039510_1.fastq.gz | awk '{if(NR%4==2){print}}' | sort | uniq -c| sort -k1  -n -r | grep 'N'

N说明在进行碱基识别的时候(base calling)没有被识别出来。N表示未知碱基。

代码语言:javascript
复制
zless -SN SRR1039510_1.fastq.gz | awk '{if(NR%4==2){print}}' | sort | uniq -c| sort -k1  -n -r | grep 'N' | wc -l
#统计有多少条序列有N
4.统计SRR1039510_1.fastq.gz碱基总数 1575000

测序数据量:测了多少个碱基。

代码语言:javascript
复制
1 # 简单版本
zless -S SRR1039510_1.fastq.gz |paste - - - - |cut -f 2 |tr -d '\n' |wc -m
zless -S SRR1039510_1.fastq.gz |paste - - - - |cut -f 2 |grep -o [ATCGN] |wc -l
​
2 # awk的高阶用法:BEGIN END模块
zless -S SRR1039510_1.fastq.gz |awk '{ if(NR%4==2){print} }' | awk 'BEGIN {num=0} {num=num+length($0)}  END{ print "num="num}'

解释上述简单版本代码

代码语言:javascript
复制
zless -S SRR1039510_1.fastq.gz |awk '{if(NR%4==2){print}}' |less -S
#把所有的碱基输出出来
zless -S SRR1039510_1.fastq.gz |awk '{if(NR%4==2){print}}' |less -S |wc -c
#统计文件中有多少个字符 (但是此时的统计包括了每一行的换行符),可以使用  zless -S SRR1039510_1.fastq.gz |awk '{if(NR%4==2){print}}' |less -S | head |cat -A  这个命令看一下,每一行都有换行符。因此需要将换行符删掉。
zless -S SRR1039510_1.fastq.gz |paste - - - - |cut -f 2 |tr -d '\n' |wc -c

wc -c 和 wc -m的区别

代码语言:javascript
复制
wc --help  #查看两者区别

解释上述简单版本代码

代码语言:javascript
复制
zless -S SRR1039510_1.fastq.gz |paste - - - - |cut -f 2 |grep -o [ATCGN] |wc -l
#grep -o [ATCGN] 的用法。将文件中的字符变成一列,然后统计列数
5.分别使用reads和base碱基数描述SRR1039510样本测了多少数据量

SRR1039510 样本是双端测序,有SRR1039510_1.fastq.gz和SRR1039510_2fastq.gz两个文件。两个文件的reads数和碱基数一定是一模一样的。

reads 25000*2

base 1575000*2

注意:过滤前的数据可以直接×2,过滤后的数据不能×2。

代码语言:javascript
复制
zless -S SRR1039510_1.fastq.gz | head -n 2
zless -S SRR1039510_2.fastq.gz | head -n 2
#查看两个文件的ID号和碱基,两个文件的序列ID是一样的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 转录组实战练习题-1 加深对fastq数据认识
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档