文章目录

  • 序列信息
    • FASTA
    • FASTQ
  • 比对信息
    • PAF
    • SAM/BAM/CRAM
  • 基因标注信息
    • BED
      • bedMethyl
    • GFF
    • Wiggle/WIG
    • BedGraph
  • 基因变异
    • VCF

生物信息学中有很多分析软件,也就有了多种文件格式。下面简单总结一些常用的文件格式以备随时查阅。

序列信息

首先最需要的就是存储基本DNA、RNA或蛋白质序列的文件,最常见的就是FASTA和FASTQ格式。序列中各种字母的含义见我的另一篇文章。

FASTA

fasta常用于存储基因序列信息。每一条序列都包括两部分,头部就是序列信息的第一行,以>开头,往往就是序列的名称或ID,只能占据一行。其下就是具体序列信息,往往也都有多行。如:

>Escherichia-coli-MG1655
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
TTCTGAACTGGTTACCTGCCGTGAGTAAATTAAAATTTTATTGACTTAGGTCACTAAATACTTTAACCAA
TATAGGCATAGCGCACAGACAGATAAAAATTACAGAGTACACAACATCCATGAAACGCATTAGCACCACC
ATTACCACCACCATCACCATTACCACAGGTAACGGTGCGGGCTGACGCGTACAGGAAACACAGAAAAAAG
...

FASTQ

fastq则在存储序列信息的同时也记录了该序列的质量信息,常用于表示各种测序结果。每段序列信息有4行:

  • 第一行类似fasta,只不过以@开头,之后是序列ID或名称;
  • 第二行就是序列信息,只能有一行;
  • 第三行往往是固定的一个+字符;
  • 第四行就是序列的质量信息,长度与第二行序列信息一致,每个字符的ASCII码可以通过计算转换为对应碱基的质量指标,不同体系的计算方法不同。

如:

@002a8f7c-c04b-4da1-bda3-70dbcd0f255c ch=245 start_time=2021-08-10T12:13:14
TGCTTCCTGT...
+
&$$#&%$)/+...

两种文件中记录的序列可以是核苷酸序列也可以是氨基酸序列,若为核苷酸序列,则顺序都是5’端->3’端。

参考资料:

  • https://www.jianshu.com/p/5bd5848eb596

比对信息

只有序列信息还是不够的,常常还要将序列之间进行比对,而比对产生的就是各种位置对应的信息。

PAF

PAF(Pairwise mApping Format)是一种用于存储序列比对结果的文件格式,文本文件,每一行代表一条记录。一行必需12个字段,由\t分割,分别为:

  1. Query sequence name;
  2. Query sequence length;
  3. Query Start,匹配上query的起始位置;
  4. Query End,匹配上query的结束位置;
  5. 正负链,"+" or “-”;
  6. Target sequence name,参考序列的名称;
  7. Target sequence length,参考序列长度;
  8. Target Start,匹配上参考序列的起始位置;
  9. Target End,匹配上参考序列的结束位置;
  10. Number of residue matches,真正比对上的碱基数量;
  11. Alignment block length,碱基总数,包括match, mismatch, insertion和deletion;
  12. Mapping quality,序列质量,0-255,越大表示越好,但255表示没有匹配上;

若没有比对上,往往也有记录,只是第3-11个字段的匹配信息均为*。这12个字段之后有可能还有类似SAM的自定义tag字段,如ch:i:12。具体如:3fbcc430-7501-4f61-84d5-d2242801f6c7 95 39 95 + Escherichia-coli-MG1655.fasta 4641652 234646 234707 40 62 255 ch:i:12

参考资料:

  • https://github.com/lh3/miniasm/blob/master/PAF.md

SAM/BAM/CRAM

Sequence Alignment Map(SAM)格式用于存储序列比对信息,文本格式。分为头部(可选)和比对部分,头部以@开始,可能有多行,每一行代表一类信息,具体信息类别用两个字母表示,如SQ表示参考序列信息。之后具体的信息都是key:value的形式,如LN:18957表示长度为18957。如@SQ SN:KM034562.G3686.1 LN:18957

之后的比对部分每一行表示一个比对结果,可能一个read有多条结果。有下列11个必需字段,以\t分割:

  1. QNAME String Query template NAME
  2. FLAG Int bitwise FLAG
  3. RNAME String References sequence NAME
  4. POS Int 1-based leftmost mapping position on Reference, ref start
  5. MAPQ Int Mapping Quality
  6. CIGAR String CIGAR string
  7. RNEXT String Ref. name of the mate/next read
  8. PNEXT Int Position of the mate/next read
  9. TLEN Int observed Template LENgth
  10. SEQ String query sequence
  11. QUAL String ASCII of Phred-scaled base QUALity+33,即序列质量

若没有比对上,则第三列RNAME为*,各种position位置信息都为0。上述11个必需字段之后就是各种非必需的Tags以记录更多信息,常常是TAG:TYPE:VALUE的格式,如NM:i:1表示mismatch的数量为1。

Binary Alignment Map(BAM)则是压缩后二进制类型的SAM文件。CRAM则通过链接外部参考序列文件,比BAM文件更小,但因此压缩或解压都需要指定外部参考序列文件。

参考资料:

  • https://samtools.github.io/hts-specs/
  • https://samtools.github.io/hts-specs/SAMv1.pdf
  • https://www.jianshu.com/p/f0f1f293f0bd

基因标注信息

BED

Browser Extensible Data(BED)文件是一种用于存储基因组区域及对应标注的文件,可以上传至UCSC Genome Browser将对应的区段展示出来。

首先头部信息可选,也可能有多行,以browsertrack开头,然后就是Genome Browser的各种配置。

之后的信息则每一行表示一段基因组区域的标注信息,以\t或空格分割。首先有3个必需字段:

  1. chrom: 染色体的名称,如chr3;
  2. chromStart: 染色体的开始位置,0-based;
  3. chromEnd: 染色体的结束位置

之后有9个可选字段:
4. name: 该标注的名称;
5. score: 0-1000,分数;
6. strand: 正负链,正链-’+’、负链-’-’、不区分正负链-’.’;
7. thickStart: 加粗部分的起始位置;
8. thickEnd: 加粗部分的结束位置;
9. itemRgb: 颜色;
10. blockCount: 区域内外显子数量;
11. blockSizes: 每个外显子的长度,以逗号分隔;
12. blockStarts: 每个外显子的起始位置(以chromStart为起点),以逗号分割;

示例:

track name=pairedReads description="Clone Paired Reads" useScore=1
chr22 1000 5000 cloneA 960 + 1000 5000 0 2 567,488, 0,3512
chr22 2000 6000 cloneB 900 - 2000 6000 0 2 433,399, 0,3601

还有几个常见的BED文件变种:

  • bigBed,就是从bed文件转换的二进制格式,更适用于大数据集;
  • bedDetail,与bed文件基本相同,多记录两个字段ID和详细描述;

参考资料:

  • http://genome.cse.ucsc.edu/FAQ/FAQformat.html#format1

bedMethyl

bedMethyl是bed文件变种,专用于表示甲基化状态,前9个字段与BED文件一致:

  1. chrom: 染色体的名称,如chr3;
  2. chromStart: 染色体的开始位置,0-based;
  3. chromEnd: 染色体的结束位置
  4. name: 该标注的名称;
  5. score: 0-1000,分数,在Genome Browser中体现在灰度上;
  6. strand: 正负链,正链-’+’、负链-’-’、不区分正负链-’.’;
  7. thickStart: 加粗部分的起始位置;
  8. thickEnd: 加粗部分的结束位置;
  9. itemRgb: 颜色;

最后两个增加的字段表示甲基化信息:
10. reads数量或Coverage;
11. 在该位置上有甲基化reads的占比;

参考资料:

  • https://www.encodeproject.org/data-standards/wgbs/

GFF

General Feature Format(GFF)文件格式类似于BED,同样用于存储基因组区域及对应标注信息。头部信息以browsertrack开头,然后就是Genome Browser的各种配置。

之后每行标注一个基因,以\t分割,有9个必需字段:

  1. seqname: 染色体的名称;
  2. source: 产生该标注所用的程序;
  3. feature: 该区段的类型,如enhancer, promoter等;
  4. start: 该区段在染色体上的起始位置,1-based;
  5. end: 该区段在染色体上的结束位置,1-based;
  6. score: 0-1000的分数,在Genome Browser中体现在灰度上,.表示没有分数;
  7. strand: 正负链,正链-’+’、负链-’-’、不区分正负链-’.’;
  8. frame: 若该区域为编码外显子,该字段为0-2,表示阅读框的起始碱基;其他类型下该值均为.
  9. group: 分组名称。

举例:

browser position chr22:10000000-10025000
browser hide all
track name=regulatory description="TeleGene(tm) Regulatory Regions" visibility=2
chr22   TeleGene    enhancer    10000000    10001000    500 +  .   touch1
chr22   TeleGene    promoter    10010000    10010100    900 +  .   touch1
chr22   TeleGene    promoter    10020000    10025000    800 -   .   touch2

参考资料:

  • http://genome.cse.ucsc.edu/FAQ/FAQformat.html#format3
  • http://gmod.org/wiki/GFF2

Wiggle/WIG

BED之类的文件仅标注了基因组各个区域的类型和功能,Wiggle(WIG)文件则标注了与基因组某区域相关的一系列数值,如概率分数等,同样可以被UCSC Genome Browser加载和展示。

Wiggle是文本文件,每一个部分的第一行均以track type=wiggle_0开头用于定义类型(track definition line),之后还有一些可选项描述名称、显示方式等各种信息。

之后的数据部分有两种格式,第一种为可变步长格式(variableStep format),用于表示开始位置并不规律的区域。第一行形如variableStep chrom=chrN [span=windowSize],分别标记类型、染色体、窗口大小(可选,默认为1)。之后的数据则有多行,每一行有两列,分别为chromStart dataValue,即区域开始位置以及该区域的值。如:

track type=wiggle_0 name="variableStep" description="variableStep format" visibility=full autoScale=off viewLimits=0.0:25.0 color=50,150,255 yLineMark=11.76 yLineOnOff=on priority=10
variableStep chrom=chr19 span=150
49304701 10.0
49304901 12.5
49305401 15.0
49305601 17.5
49305901 20.0
49306081 17.5
49306301 15.0
49306691 12.5
49307871 10.0

上述表示了9个基因组区间对应的数值,每个区间150个碱基,第一个区间就是49304701~49304851,对应的数值为10.0。

另一种格式为固定步长格式(fixedstep format),用于表示开始位置的间隔固定的基因区域。第一行形如fixedStep chrom=chrN start=pos step=stepInterval [span=windowSize],分别表示类型、染色体、起始位置、起始位置之间的间隔、窗口大小(可选,默认为1)。之后数据有多行,每行也就一个数字,用于表示区域对应的数值。如:

track type=wiggle_0 name="fixedStep" description="fixedStep format" visibility=full autoScale=off viewLimits=0:1000 color=0,200,100 maxHeightPixels=100:50:20 graphType=points priority=20
fixedStep chrom=chr19 start=49307401 step=300 span=200
1000900800700600500400300200100

上述则表示了从19号染色体上有10个跨度为200个碱基的区域,从第49307401个碱基开始,每隔300个碱基为区域的起始位置,这10个区域有对应的数值。

注意,wiggle文件中的碱基位置,均为1-based,即第1个碱基的位置为1,区域包括结束位置的碱基。

bigWig,即为压缩后的二进制Wiggle文件。

参考资料:

  • https://genome.ucsc.edu/goldenpath/help/wiggle.html

BedGraph

BedGraph文件与Wiggle格式类似,同样用于标注与基因组某区域相关的一系列数值,可以被UCSC Genome Browser加载和展示。

第一行同样为轨道定义行(track definition line),以track type=bedGraph开头标明类型,之后添加一些可选项来描述名称、显示方式等。

之后数据部分则每行标记一个基因组区域对应的数值,有四个字段:chrN chrStart chrEnd dataValue,前三个字段与bed文件相同,分别为染色体名称、开始位置、结束位置,最后一个字段则表示这个区域对应的数值。如:

browser position chr19:49302001-49304701
browser hide all
browser pack refGene encodeRegions
browser full altGraph
track type=bedGraph name="BedGraph Format" description="BedGraph format" visibility=full color=200,100,0 altColor=0,100,200 priority=20
chr19 49302000 49302300 -1.0
chr19 49302300 49302600 -0.75
chr19 49302600 49302900 -0.50
chr19 49302900 49303200 -0.25
chr19 49303200 49303500 0.0
chr19 49303500 49303800 0.25
chr19 49303800 49304100 0.50
chr19 49304100 49304400 0.75
chr19 49304400 49304700 1.00

即标注了第19号染色体上9个区域对应的数值。BedGraph文件中的位置则为0-based,即第1个碱基位置为0,区域不包括结束位置的碱基。

BedGraph文件同样可以压缩为二进制的bigWig文件,但与Wiggle文件之间较难转换,

参考资料:

  • https://genome.ucsc.edu/goldenPath/help/bedgraph.html

基因变异

VCF

Variant Call Format(VCF)文件格式用于记录测序结果与参考基因组之间不同之处,即变异情况。

若希望文件可以被UCSC Genome Browser加载显示,则第一行需要为轨道定义行(track definition line),以track type=vcf开头标明类型,之后添加一些可选项来描述名称、显示方式等。

之后为header部分,可能有多行,均以##开头,记录一些元信息,如文件类型、日期、参考基因组等。

然后是标题行,以#开头,标记之后数据每一列的列名,必需字段常有#CHROM POS ID REF ALT QUAL FILTER INFO。之后每一行就记录了一条变异信息,具体内容与列名一致:

  1. CHROM: 染色体ID;
  2. POS: 发生变异的位置,即第4列REF中第一个碱基的位置;
  3. ID: 该位置的变异若已在变异数据库中有记录,则该字段为记录的ID,否则为.
  4. REF: 参考序列在变异位置的碱基序列;
  5. ALT: 测序结果在变异位置的碱基序列;
  6. QUAL: 表示variant calling的质量分数;
  7. FILTER: 表示该变异的可靠性评价,常用PASS表示符合条件,.或其他的标记表示未通过筛选;
  8. INFO: 补充信息;

举例:

track type=vcf name="vcf example" description="three samples in a vcf" db=hg18 visibility="full"
browser position chr20:1-1306000
##fileformat=VCFv4.2
##fileDate=20090805
##source=myImputationProgramV3.1
##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
##phasing=partial
##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
##FILTER=<ID=q10,Description="Quality below 10">
##FILTER=<ID=s50,Description="Less than 50% of samples have data">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003
20  14370   rs6054257   G   A   29  PASS    NS=3;DP=14;AF=0.5;DB;H2  GT:GQ:DP:HQ 0|0:48:1:51,51  1|0:48:8:51,51  1/1:43:5:.,.
20  17330   .   T   A   3   q10 NS=3;DP=11;AF=0.017  GT:GQ:DP:HQ 0|0:49:3:58,50  0|1:3:5:65,3    0/0:41:3
20  1110696 rs6040355   A   G,T 67  PASS    NS=2;DP=10;AF=0.333,0.667;AA=T;DB   GT:GQ:DP:HQ 1|2:21:6:23,27  2|1:2:0:18,2    2/2:35:4
20  1230237 .   T   .   47  PASS    NS=3;DP=13;AA=T  GT:GQ:DP:HQ 0|0:54:7:56,60  0|0:48:4:51,51  0/0:61:2
20  1234567 microsat1   GTC G,GTCT  50  PASS    NS=3;DP=9;AA=G   GT:GQ:DP    0/1:35:4    0/2:17:2    1/1:40:3

对于VCF文件中各种简写有很多,其详细意义还是去参考官方文档。

参考资料:

  • https://www.jianshu.com/p/34c1e22c92c8

生物信息常用文件格式相关推荐

  1. 常用文件格式转换大全: PDF转Word,WORD转PDF转换器,DOCX转DOC转换

    为什么80%的码农都做不了架构师?>>>    常用文件格式转换大全: Diywz - PDF转Word,WORD转PDF转换器,DOCX转DOC转换器  常用的文件格式互转工具,实 ...

  2. 计算机常用后缀名汇总,常用文件格式大全(二)

    系统城的小编在常用文件格式大全(一)中为大家整理了以字母a开头的一些常用的文件格式,下面继续为大家整理一些以字母b和c开头的文件格式介绍,希望能够给大家带来帮助! bmp文件格式 bmp是一种与硬件设 ...

  3. 生物信息常用30个Linux命令(二)

    学习生物信息,Linux是必须掌握的内容,其实常用的Linux命令也就30个左右,而且这些命令都是单词的简写,记忆起来并不困难.从这次内容开始,我们将详细介绍这30个左右的命令. 11.cat cat ...

  4. mac镜像cdr格式_设计常用文件格式!萌新必备

    文/张丛 投稿 AI格式是一种矢量图形文件,适用于ADOBE公司的illustrator软件输出格式,与PSD格式文件相同,AI文件也是一种分层文件,每个对象都是独立的,它们具有各自的属性,如:大小. ...

  5. VC语言文件正文分析器--支持格式常用文件格式

    Graccvs文件正文提取开发组件支持各种文件提取正文,为OA,ERP,CRM系统使用文件提供文件正文使用和搜索,支持常见各种文件格式".pdf", ".doc" ...

  6. 大数据常用文件格式介绍

    文章目录 一.SequenceFile 二.Avro 三.parquet 四.Orc 五.同为列式存储, orc和parquet的区别 列式存储的优化点 orc和parquet的一些区别和对比 六.一 ...

  7. GWAS分析-常用文件格式

    我们进行GWAS分析,必须得有数据,那么什么样的数据,什么样的数据格式才能保证GWAS正常分析呢.今天主要给大家分享一下进行GWAS分析常用到的几种数据格式. (一)*.bim/*.fam/*.bed ...

  8. 计算机文件格式知识,Windows常用文件格式的知识集,新手先学技术必看!

    本帖最后由 qq727828215 于 2011-7-4 18:14 编辑 内容很多可以复制下来看看 扩展名   文件类型      打开方式 .aiff   声音文件 Windows media P ...

  9. coreldraw 导入面料_CDR真强!支持导入的文件格式这么多

    原标题:CDR真强!支持导入的文件格式这么多 CorelDRAW作为世界一流的平面矢量绘图软件,被专业设计人员广泛使用,作为强大的图形设计工具包含对超过 100 种常用文件格式的广泛文件兼容性支持,它 ...

最新文章

  1. Blazor将.NET带回到浏览器
  2. 简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之二
  3. python办公实用功能_【一点资讯】实用办公技巧贴——当Python遇上PDF www.yidianzixun.com...
  4. c mysql数据库_C实现MySQL数据库操作
  5. SQLyog笔记-CURRENT_TIMESTAMP在SQLyog的配置
  6. Android笔记-ERROR: Invalid revision: 3.17.20200511-g8787079
  7. Android界面布局基本属性
  8. 软件自动安装管理器 -提供源码下载
  9. 高效MacBook工作环境配置
  10. 医院患者随访工作信息化建设可行性报告
  11. 为什么程序员不需要MATLAB技能?
  12. git 裁切_图片裁切.html
  13. matlab括号不对称,关于matlab的Error: Unbalanced or misused parentheses or brackets.什么意思?...
  14. 类和对象1:基础学习
  15. lens flare:镜头光晕
  16. 未授权访问漏洞原理及复现
  17. 数字媒体概论——2D图像图形
  18. 反驳生命的起点是rna_生命起源学说或将被改写?“天外来客”陨石给科学家带来新发现!...
  19. 用户使用手册编写方法
  20. win7 如何设置快速启动栏

热门文章

  1. php面试题和答案整理
  2. 硬盘磁头坏数据有办法恢复吗?硬盘开盘数据恢复
  3. bzoj-1227 虔诚的墓主人
  4. POI删除Excel中数据有效性
  5. 转:以独立之心,做合群之事
  6. 扶桑之伤 作者:长铗
  7. 雷军重金激励,小米鼎新一战
  8. Flink实战——每隔5秒,统计最近10秒的窗口数据
  9. el-element使用本地自定义图标
  10. 品牌如何开展饥饿营销?