fastq、fasta、bed、gtf、gff、sam、bam生信分析常见文件格式查看

生信分析过程中的文件格式:
除了原始测序数据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

  • 通常要求序列名字行简单为好,而且一般加chr作为开头
  • 给第一行添加chr标签,并去掉其他多余信息
  • 下面的写法复杂了些,是为了避免给已经有chr信息的名字再加一次,帮助无脑操作
    sed 's/^> \ ([^chr])/ > chr\1/' Homo_sapiens.GRCh38.dna.primary_assembly.fa |cut -f 1 -d ' ' > GRCh38.fa

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
  • header内容
    @HD:是必须的标准文件头,包含版本信息;
    @SQ:参考序列染色体名字和长度信息 (SN:scaffold name; LN: length);
    @RG:重要read group信息,通常包含测序平台,测序文库和样本ID等信息,分析时用于区分不同样本(重测序时用到);
    @PG:生成此文件的操作过程和参数信息 (program)。

  • record内容
    每一行就是一条read比对上参考基因组的信息,总共12列,用tab键分割。

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在参考基因组各个区域的覆盖度并检测测序深度。

  • wiggle:展示区域的密度或强度信息,如GCpercent, probability scores, and transcriptome data.

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

  • bedGraph: bed与wig的结合,更省空间和灵活,展示信息与wig类似。(bedGraph的格式一般有四列,Chr、start、end和value,并且坐标是以0为起始左闭右开)

chromA chromStartA chromEndA dataValueAchromB chromStartB chromEndB dataValueB

  • bigWig: wig文件的二进制压缩格式,可通过wigToBigWig工具转换

推荐大家阅读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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容