【原创】生信分析常见文件格式说明
生信分析中经常会遇到各种格式特殊的文件,例如:fasta、gff、gtf、gbk、m8、sam/bam、vcf 等;本文主要就生信分析中常见的一些文件格式做简单说明,持续更新中。。。
FASTA
fasta 是通用的序列文件格式,包含核酸序列及蛋白序列。常见的文件格式后缀有很多种,例如:.fasta、.fna、.fa 等,包括一些数据库或软件中下载或生成的 .cds、 .ffn、 .exon、 .pep、 .pro、 .faa 等其本质上也都是 fasta 格式文件。
一个 fasta 文件可含有多条核酸或蛋白序列,每条序列都可以由两部分组成:
1、序列标识说明
以 “>” 开头,后面接序列标识,到空格为止,例如 染色体编号、基因ID、基因名称等具有特异性的标识,同一个fasta文件中一般要求各序列标识不可重复;空格后可增加序列描述信息,长度没有限制;全部标识信息及描述信息必须在同一行。
2、序列
由常见的核酸符号或氨基酸符号组成,核酸序列一般不限制大小写,氨基酸序列一般为大写,单行长度不超过80bp(一般为60bp),可多行写入。
ps:序列长度一般没有严格限制,但在部分生信软件中有较为严格的60bp/80bp长度要求。
GFF/GTF
gff/gtf 是通用的基因组注释文件格式,一般用于注释基因组的基因的位置等信息。
详细的格式说明及gff与gtf之间的转换关系可参见本人之前的文章:《GTF与GFF》
GBK
gbk格式即genbank格式,一般为基因组注释信息文件,常见的文件后缀有:.gbk、.gb、.gbff等
m8
m8格式文件是blast软件比对结果的一种常见格式,共包含12列:
其中,各列说明如下:
1. Query id: 查询序列ID标识
2. Subject id: 比对上的目标序列ID标识
3. % identity: 序列比对的一致性百分比
4. alignment length:符合比对的比对区域的长度
5. mismatches:比对区域的错配数
6. gap openings:比对区域的gap数目
7. q. start: 比对区域在查询序列(Query id)上的起始位点
8. q. end: 比对区域在查询序列(Query id)上的终止位点
9. s. start: 比对区域在目标序列(Subject id)上的起始位点
10. s. end: 比对区域在目标序列(Subject id)上的终止位点
11. e-value: 比对结果的期望值,解释是大概多少次随即比对才能出现一次这个score,Evalue越小,表明这种情况,从概率上越不可能发生,但是现在发生了,所以这个比对具有很重要的意义
12. bit score: 比对结果的bit score值
sam/bam
sam/bam格式是生信分析中大多数比对软件的结果输出格式,bam文件可看做是sam文件经特殊压缩后的文件,两者之间可通过samtools软件(官网:http://www.htslib.org/)相互转换,且bam文件也需要借助samtools软件查看
samtools的常用命令如下:
bam文件查看:
samtools view Sample-A.bam
sam转换为bam:
samtools view -bS -@ 16 -t genome.fa.fai Sample-A.sam > Sample-A.bam
bam转换为sam:
samtools view -H Sample-A.bam > Sample-A.sam
samtools view Sample-A.bam >> Sample-A.sam
sam/bam文件除头部的“@”开头的注释信息外,比对信息内容共12列,各列说明如下
1. QNAME 表示的是查询序列的名称即短片段(reads)的名称;
2. FLAG 以整数来表示比对的结果,不同数值有不同的意义,数值也可以是下列数的组合; 比如如果FLAG是4的话则表示该reads没有比对到参考序列上,flag为16表示single-end reads比对到参考序列的反链上,flag为83(64+16+2+1)表示paired-end reads中的第一个reads比对到参考序列上了。
3. RNAME 表示参考序列的名称,比如基因组的染色体编号等,如果没有比对上则显示为*; 【chromosome】
4. POS 表示比对的起始位置,以1开始计数,如果没有比对上则显示为0; 【5'端起始位置】
5. MAPQ 比对质量;(数字越大,特异性越高)
6. CIGAR CIGAR 字符串,即比对的详细情况, 记录插入,删除,错配,后剪切拼接的接头。简要比对信息表达式(Compact Idiosyncratic Gapped Alignment Report),其以参考序列为基础,使用数字+字母表示比对结果。比如3S6M1P1I4M,前三个碱基被剪切去除了,然后6个比对上了,有一个碱基缺失,有一个碱基插入,最后是4个比对上了,是按照顺序的;
7. RNEXT 双末端测序中下一个reads比对的参考系列的名称,如果没有则用 " * " 表示,如果和前一个reads比对到同一个参考序列则用" = "表示;【mate名称,记录mate pair信息】
8. PNEXT 下一个reads比对到参考序列上的位置,如果没有则用0表示; 【mate的位置】
9. ISIZE/TLEN query序列的模板长度或者插入长度,Template的长度,最左边得为正+,最右边的为负 -,中间的不用定义正负,不分区段(single-segment)的比对上,或者不可用时,表示为0;
10. SEQ reads的序列信息;
11. QUAL reads的序列质量信息,同FASTQ。
12. 可选字段(optional fields)【程序用标记】 格式如:TAG:TYPE:VALUE,其中TAG有两个大写字母组成,每个TAG代表一类信息,每一行一个TAG只能出现一次,TYPE表示TAG对应值的类型,可以是字符串、整数、字节、数组等。
VCF
VCF用于描述SNP,INDEL和SV结果的文本文件,其详细说明已在本人之前的文章中有详细说明,欢迎查阅:《VCF文件格式说明》。
更多生信常见文件格式持续更新中。。。