fastaq文件中reads数的统计

在汇总测序的基本信息时经常需要从fastaq文件中计算某个样本的原始的read数量。

fastaq文件的一般格式为:

@FCD056DACXX:3:1101:2163:1959#TCGCCGTG/1
TCCGATAACGCTCAACCAGAGGGCTGCCAGCTCCGATCGGCAGTTGCAACCCATTGGCCGTCTGAGCCAGCAACCCCGGA
+
gggiiiiiiiiiiiiiiiiiiiiiiiiiigggggeeecccccc^bcbcccccccbccccc]aaccbbccc^R^^acccc_

每四行一条记录, 每条记录以@符号开始,后面跟着的是该reads的标识符,第二行为对应的核酸序列,第三行为‘+’,第四行为序列的质量信息,以字符对应的ASCII码来表示对应碱基的测序质量。因此,想要知道有多少个reads只要统计有多少个只包含+的行就知道有多少个reads了。如下:

cat your.fastq.gz | grep -c '^+$'

有些人给出的方法是:cat your.fastq.gz | grep -c ‘+’  或 cat your.fastq.gz | grep -c ‘^+’ 这两种方法都是不严谨的,因为第四行的质量信息中也是包含了‘+’的,如果只是统计包含‘+’或以‘+’开头的行会多统计出一部分数据来,尤其是第一种情况。因此,正确的方式应该是计数只包含‘+’的行。此外要注意的是,如果是pair-end的数据,一个样本是包含了两个文件的,要放在一起计数。这和后面统计质控后的Clean reads以及计算后面比对reads的比例有关系。

几种不同来源的R包安装方法

R自带安装工具

# 在线安装 
install.packages("") 

# 本地安装:从网址上下载package到本地 
install.packages("*.tar.gz or *.zip", repos = NULL)

安装GitHub上的package

# 使用devtools安装 
library(devtools) 
devtools::install_github(“YiqunLiHIT/SCIA”) 

# 偶尔出现在线无法安装的时候可以使用本地安装,安装的方法类似R自带的本地安装,先从GitHub上下载zip源码。可能需要安装Rtools。 
install_local("*.zip") 

# 使用githubinstall安装 
library(githubinstall) 
githubinstall(“SCIA”)

安装bioconductor上的package

# 低版本 
source("https://bioconductor.org/biocLite.R") 
biocLite("SCIA") 

# 高版本 
library(BiocManager) 
BiocManager::install("SARdb")

测序基本信息:比对深度和覆盖度

测序的比对率、测序深度和覆盖度是了解测序情况的最基本信息。很多工具都能完成这些数据的分析。现在对网上常用的方式收集汇总了一下,按照软件一个一个滴说。

1. Samtools

#命令解析 
$ samtools flagstat sample1.bam 
3826122 + 0 in total (QC-passed reads + QC-failed reads) #总共的reads数 
0 + 0 secondary 
1658 + 0 supplementary 
343028 + 0 duplicates 
3824649 + 0 mapped (99.96% : N/A) #总体reads的匹配率 
3824464 + 0 paired in sequencing #总共的reads数 
1912442 + 0 read1 #reads1中的reads数 
1912022 + 0 read2 #reads2中的reads数 
3808606 + 0 properly paired (99.59% : N/A) #完美匹配的reads数:比对到同一条参考序列,并且两条reads之间的距离符合设置的阈值 
3821518 + 0 with itself and mate mapped #paired reads中两条都比对到参考序列上的reads数 
1473 + 0 singletons (0.04% : N/A) #单独一条匹配到参考序列上的reads数,和上一个相加,则是总的匹配上的reads数。 
5882 + 0 with mate mapped to a different chr#paired reads中两条分别比对到两条不同的参考序列的reads数 
4273 + 0 with mate mapped to a different chr (mapQ>=5) #paired reads中两条分别比对到两条不同的参考序列的reads数