生信基础知识学习基因组

fastq、fasta、bed、gtf、gff、sam、bam生

2022-01-14  本文已影响0人  笺牒九州的怪咖

生信分析过程中的文件格式:
除了原始测序数据fastq、fasta之外,还有基因组文件fasta格式,基因注释文件gtf格式。
在分析的过程中还会有众多中间文件的生成,如bed、bed12、sam、bam、wig、bigwig、bedgraph等。

文件之间的关系与转换方法:


下面来看一下各种文件的详细介绍:

1.测序数据FASTQ文件

1)文件用途:
测序返回的一般数据格式。通常是压缩文件filename.fq.gz的格式。
2)格式说明:
fastq文件每4行代表一条序列
第一行:记录序列测序时所用仪器以及在测序通道中坐标信息,以@开头;
第二行:测序的序列信息,以ATCGN表示,由于荧光信号干扰无法判断是什么碱基时就用N表示;
第三行:通常一个+;
第四行:与第二行碱基信息一 一对应,存储测序碱基的质量值(ASCII字符显示)。
3)查看方式:

zcat查看gzip压缩的文件
head -n 8 显示前8行文件内容(前8行代表2条序列)

zcat filename.fq.gz | head -n 8

@SRR1039521.13952745/1
TTCCTTCCTCCTCTCCCTCCCTCCCTCCTTTCTTTCTTCCTGTGGTTTTTTCCTCTCTTCTTC
+
HIJIIJHGHHIJIIIJJJJJJJJJJJJJJJJJJJJJIIJJFIDHIBGHJIHHHHHHFFFFFFE

计算read数
wc -l: 计算行数
bc -l: 计算器 (-l:浮点运算)
echo "zcat N0378901_1.fq.gz | wc-l / (4*1000000)" | bc -l #为什么除以4,又除以1000000,先计算行数再计算的是million值
zcat trt_N0378901_1.fq.gz | awk'{if(FNR%4==0) base+=length}END{print base/10^9,"G";}' # 测序碱基数计算

2.基因组FASTA文件

2.1 基因组FASTA文件

2.1)文件用途
这类fasta文件用于基因组或者基因的DNA或者蛋白的序列信息存储。

2.2)文件格式
> 符号开头,记录了该序列类型和所在基因组位置信息,也称“序列名字行”;

“序列行”:一行或者多行,为序列信息,soft-masked基因组会把所有重复区和低复杂区的序列用小写字母标出基因组,小写字母n标示未知碱基。

“不成文”的小规范:
1)第一部分是序列名字,与>相连。
2)第二部分用空格与序列名字相隔,表示注释信息,可以没有。
列如:>gene_00284728 length=231;type=dna

>1 dna_sm:chromosomechromosome:GRCh38:1:1:248956422:1 REF
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
.....
ttgggctggggcctggccatgtgtatttttttaaatttccactgatgattttgctgcatg
gccggtgttgagaatgactgCGCAAATTTGCCGGATTTCCTTTGCTGTTCCTGCATGTA
TTTAAACGAGATTGCCAGCACCGGGTATCATTCACCATTTTTCTTTTCGTTAACTTGCCG
.....
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

2.2 测序FASTA文件

2.1)文件用途
这类fasta文件产生于测序的reads的fasta格式,一般为测序的fastq用软件转换而来。

2.2)文件格式
> 符号开头,记录了reads序列号,样本信息等;第二行为测得的reads的碱基信息。

>HWI-ST531R 144:D11RDACXX:4:1101:1212:1946 1:N:0:ATTCCT
ATNATGACTCAAGCGCTTCCTCAGTTTAATGAAGCTAACTTCAATGCTGAGATCGTTGACGACATCGAATGGG

3. 基因组注释文件gff和gtf

gff全称General featureformat,主要是用来注释基因组。
gtf全称Gene transfer format,主要是用来对基因进行注释。
两者均是一个9列的基因信息注释文件,前8列的信息几乎一样,区别在于第9列。

gff文件格式:
GFF文件是以tab键分割的9列组成,以下为每一列的对应信息:
1)seq_id:序列的编号,一般为chr或者scanfold编号;
2)source: 注释的来源,一般为数据库或者注释的机构,如果未知,则用点“.”代替。
3)type: 注释信息的类型,比如Gene、cDNA、mRNA、CDS等;
4)start: 该基因或转录本在参考序列上的起始位置;(从1开始,包含);
5)end: 该基因或转录本在参考序列上的终止位置;(从1开始,包含);
6)score: 得分,数字,是注释信息可能性的说明,可以是序列相似性比对时的E-values值或者基因预测是的P-values值,.表示为空;
7)strand: 该基因或转录本位于参考序列的正链(+)或负链(-)上;
8)phase: 仅对注释类型为“CDS”有效,表示起始编码的位置,有效值为0、12 。(对于编码蛋白质的CDS来说,本列指定下一个密码子开始的位置。每3个核苷酸翻译一个氨基酸,从0开始,CDS的起始位置,除以3,余数就是这个值,,表示到达下一个密码子需要跳过的碱基个数。该编码区第一个密码子的位置,取值0,1,2。0表示该编码框的第一个密码子第一个碱基位于其5’末端;1表示该编码框的第一个密码子的第一个碱基位于该编码区外;2表示该编码框的第一个密码子的第一、二个碱基位于该编码区外;如果Feature为CDS时,必须指明具体值。);
9)attributes: 一个包含众多属性的列表,格式为“标签=值”(tag=value),以多个键值对组成的注释信息描述,键与值之间用“=”,不同的键值用“;”隔开,一个键可以有多个值,不同值用“,”分割。注意如果描述中包括tab键以及“,= ;”,要用URL转义规则进行转义,如tab键用 (空格)代替。键是区分大小写的,以大写字母开头的键是预先定义好的,在后面可能被其他注释信息所调用。

预先定义的键主要包括:
ID:注释信息的编号,在一个GFF文件中必须唯一;
name:注释信息的名称,可以重复;Alias:别名;Parent > >
Indicates:该注释所属的注释,值为注释信息的编号,比如外显子所属的转录组编号,转录组所属的基因的编号。
Parent指明feature所从属的上一级ID,用于将exons聚集成transcript,将transripts聚集成gene,值可以为多个;
Target 指明比对的目标区域,一般用于表明序列的比对结果。格式为 “target_idstart end [strand] ,其中strand是可选的(“+”或”-”),target_id中如果包含空格,则要转换成’ ‘。
Gap:T比对结果的gap信息,和Target一起,用于表明序列的比对结果。Derives_from:Note:备注;Dbxref:数据库索引。

gtf文件格式:
GTF格式大部分与GFF相同,但有两个硬性标准:

  1. feature types是必须注明的;
  2. 第9列必须以gene_id以及transcript_id开头。而且GTF文件的第9列同GFF文件不同,虽然同样是标签与值配对的情况,但标签与值之间以空格分开,且每个特征之后都要有分号;(包括最后一个特征);
    gene_id “geneA”;transcript_id “geneA.1”;database_id “0012”;modified_by “Damian”;duplicates 0;

gtf文件可通过下面的命令对文件进行加工查看:

gunzip Homo_sapiens.GRCh38.94.gtf.gz -c |grep -v '^#' | sed '/ ^ [^ chr ] / s/^/chr/' |less # grep 匹配查询 -v 输出不匹配的行

gff文件与gtf文件相互转换:
使用Cufflinks里面的工具gffread

gff2gtf
gffread my.gff3 -T -o my.gtf

gtf2gff
gffread merged.gtf -o- > merged.gff3

GTF 文件中提取转录本序列(.fa):

Cufflink中的gffread
gffread transcripts.gtf –g genome.fa –w transcripts.output.fa # 获取转录本序列
gffread transcripts.gtf –g genome.fa -x cds.output.fa # 获取CDS序列
gffread transcripts.gtf –g genome.fa -y protein.output.fa # 获取蛋白序列

Tophat中的gtf_to_fasta
gtf_to_fasta transcripts.gtf genome.fa out_file

从GTF中提取转录本信息

利用AWK命令:
sed 's/"/\t/g' mm10.gtf | awk -F '[\t|;]' '{ OFS="\t" } $3 == "transcript" {print $1,$4,$5,$10,0,$7} ' |sed 's/ transcript_id "//g'|sed 's/"//g'|less -S >mm10.transcript.txt

4. bed文件

bed文件一般代表区域信息,如表示peak位置的bed文件,表示基因注释的bed12文件。

表示基因注释时,gtf/gff和bed文件的区别

1)gtf/gff文件一行表示一个exon/CDS等子区域,多行联合表示一个gene;bed文件一行表示一个gene;
2)gtf文件中碱基位置定位方式是1-based(即起始的碱基记为1),而bed中碱基定位方式是0-based(即起始的碱基记为0)。

bed文件每一行对应信息

必须包含的3列信息:
1)chrom:染色体名字 (e.g.chr3, chrY, chr2_random或者scaffold10671)。
2)chromStart:基因在染色体或scaffold上的起始位置(0-based)。
3)chromEnd:基因在染色体或scaffold上的终止位置 (前闭后开)。

可选的9列信息:
4)name:bed文件的行名。
5)score:本条基因在注释数据集文件中的评分(0-1000),在Genome Browser中会根据不同区段的评分显示对应的阴影强度(评分越高灰度越高)。
6)strand:链的方向+、-或. (.表示不确定链的方向)
7)thickStart:CDS区(编码区)的起始位置,即起始密码子的位置。
8)thickEnd:The endingposition at which the feature is drawn thickly (for example the stop codon ingene displays).
9)itemRgb:RGB颜色值(如:255,0,0),方便在GenomeBrowser中查看。
10)blockCount:bed行中外显子的数目。
11)blockSizes:逗号分割的列,数目与blockCount值对应,每个数表示对应外显子的碱基数。
12)blockStarts:逗号分割的列,数目与blockCount值对应,每个数表示对应外显子的起始位置(数值是相对ChromStart计算的)。

5. sam和bam文件

sam文件全称The Sequencing Alignment/Map Format,是Alignment/Map步骤bwa/STAR/HISAT2等软件对结果的标准输出文件,用于存储reads比对到参考基因组的比对结果,是一个纯文本格式,文件一般较大。为了节省硬盘存储,一般使用其高效压缩的二进制格式bam文件。

利用samtools view的-b参数就能把sam文件转为bam文件。

1)sam文件查看方式
在linux终端直接用less即可进行查看;

2)bam文件查看方式
需要借助samtools view工具进行查看

>samtools view filename.bam | less -S
>samtools view -h filename.bam | less -S

NGS分析中大多数文件都是由header和record两部分组成,加上-h参数后可以将header显示出来,默认是不显示的。

@HD    VN:1.5  SO:coordinate@SQ    SN:chr1 LN:248956422@SQ    SN:chr10        LN:133797422......@SQ    SN:chrKI270392.1        LN:971@SQ    SN:chrKI270394.1        LN:970@RG    ID:BH_H3K27ac_2 LB:BH_H3K27ac_2 SM:BH_H3K27ac_2@PG    ID:bwa  PN:bwa  VN:0.7.15-r1140 CL:bwa mem -M -t 8 -R@RG\tID:BH_H3K27ac_2\tLB:BH_H3K27ac_2\tSM:BH_H3K27ac_2\tPL: /MP@PG    ID:MarkDuplicates      VN:1.138(aa51703435dc6a423013e74e56b0b68405facd79_1439324166)   CL:picard.sam.markduplicates.K00141:244:HVL3NBBXX:8:2119:27235:3145399      chr1    10016  32      115M    =      10016   115     CCCTAACCCTAACCCTAACCCK00141:244:HVL3NBBXX:8:2119:27235:31453147     chr1    10016  32      115M    =      10016   -115   CCCTTACCCTAACCCTAACCC

1. read名称;
2. 比对信息位flag值;
3. 参考序列染色体编号;
4. 5′端起始位置;
5. MAPQ:mapping quality,描述比对的质量,数字越大,特异性越高;
6. CIGAR字符串,记录插入、删除、错配等信息;
7. 配对read所比对到的染色体,仅双端测序的数据才有;
8. 配对read所比对到的位置,仅双端测序的数据才有;
9. 插入片段的长度,仅双端测序的数据才有;
10. read序列;
11. read质量值;
12. 12列以后的信息都是metadata,程序用标记

sam文件中第二列flag信息很重要:

利用samtools flagstat工具可以查看bam文件中比对的flag信息,并输出比对的统计结果。

samtools flagstat *.bam

flag一共有12个标签,使用16进制数表示,每个标签值是2^(n-1),其中n<=12,每个值有其对应的唯一解释含义:

Decimal Description of read

1 1 Read paired
2 2 Read mapped in proper pair
3 4 Read unmapped
4 8 Mate unmapped
5 16 Read reverse strand
6 32 Mate reverse strand
7 64 First in pair
8 128 Second in pair
9 256 Not primary alignment
10 512 Read fails platform/vendor quality checks
11 1024 Read is PCR or optical duplicate
12 2048 Supplementary alignment

你会发现随机挑选几个值做加和运算,他们的结果都是唯一的,所以在bam文件中第二列flag的值代表这条序列符合下图所示条件的值的和。

所以根据这个值我们可以判断这条序列是双端测序还是单端测序;如果是双端测序,reads来自左端还是右端。比如65 只能是164组成,代表这个序列是双端测序,而且是read1

每次转换很头疼?别担心,网上有很多解码flag含义的在线工具,如SAM Format(网址:https://www.samformat.info/sam-format-flag).

6. wig、bigwig和bedgraph文件

上述bam和sam文件可以帮助我们探索reads在参考基因组中的比对情况,导入基因组浏览器查看比对状态和突变信息。而wiggle(简称wig)、bigwig(简写bw)以及bedgraph(简写bdg)只包含区域和区域的覆盖度信息,文件更小,用于可视化更方便,可以导入基因组浏览器(Genome Browser)中进行可视化,以查看reads在参考基因组各个区域的覆盖度并检测测序深度。

variableStep chrom=chr2300701 12.5300702 12.5300703 12.5300704 12.5300705 12.5
fixedStep chrom=chr3 start=400601 step=100span=5112233

chromA chromStartA chromEndA dataValueAchromB chromStartB chromEndB dataValueB

推荐大家阅读UCSC官网对这几个文件的详细解释:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------I'm a line ! Thanks! --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考:
https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247484166&idx=1&sn=417e155672bd718def86003b16bf0078&scene=21#wechat_redirect
https://mp.weixin.qq.com/s/pTyyKfFGUVG2gWFOc4kP_A

上一篇下一篇

猜你喜欢

热点阅读