生物信息中常见的几种数据格式有:fasta、fastq、bam、sam、vcf、bed、gff。
参考:http://www.biotrainee.com/thread-42-1-1.html
FASTQ
参考:https://en.wikipedia.org/wiki/FASTQ_format
fastq格式是文本格式。它有对应序列字符的质量分数,出于简洁的目的用ASCII字符来表示,所以fastq格式常用于高通量测试数据的存储。
fastq格式常以四部分组成。
第一部分:序列名称。以 @ 开始紧接着是序列的标识符和可选择的描述信息,和fasta格式的头行很相似。
第二部分:序列碱基。是原始序列信息。
第三部分:以 + 开始,后面可再接与第一部分的相同的序列标识符或者描述信息。
第四部分:碱基的质量。以ASCII字符表示第二行碱基序列的测序质量。! 表示最低的质量而 ~ 表示最高质量。
@IL38_2670:1:42:1707:2025/2
CTTTTTTTTTTTTTTTTTTTTTTTTTGTTCTTTTTTTCTTTTTTTTTTTTTTTT
+
())+22;;99-A0B=/=--<=?4+;*=*+A,A<?992()==9<9---=9?A@>@
fastq转换fasta格式:
zcat input_file.fastq.gz | awk 'NR%4==1{printf ">%s\n", substr($0,2)}NR%4==2{print}' > output_file.fa
FASTA
参考:https://en.wikipedia.org/wiki/FASTA_format
fasta格式是生物信息最基本的文本格式,用来展示碱基序列或者氨基酸序列。fasta格式的简洁性有利于文本编辑工具和脚本语言如:Python,Rudy,Perl的编辑操作。
在fasta文件的第一行(header line)通常以";" 或者 ">"开头,用来分割不同的序列。
>MAL1
CTAAACCTAAACCTAAACCCTGAACCCTAAACCCTAAACCCTGAACCCTAAACCCTGAAC
CCTGAACCCTAAACCCTGAACCCTAAACCCTGAACCCTGAACCCTAAACCCTAAACCCTA
下面的代码中,
第一部分:NCBI用seqID定义了一个唯一的标识在header line并且指出了序列来源的数据库等信息,即 >gi|55417888|dbj|BA000005.3|。一个空格符之后的 Homo sapiens genomic DNA, chromosome 21q 为描述信息。
第二部分:即是氨基酸或者碱基序列。
>gi|55417888|dbj|BA000005.3| Homo sapiens genomic DNA, chromosome 21q
CATGTTTCCACTTACAGATCCTTCAAAAAGAGTGTTTCAAAACTGCTCTATGAAAAGGAATGTTCAACTC
TGTGAGTTAAATAAAAGCATCAAAAAAAAGTTTCTGAGAATGCTTCTGTCTAGTTTTTATGTGAAGATAT
SAM
参考:http://samtools.github.io/hts-specs/SAMv1.pd
sam格式是文本格式,用来表示短序列片段比对参考序列片段的结果(reads map reference genome)。在高通量测序时经常使用。
sam格式以两部分组成。
第一部分:头行(header line)以 @ 开始,紧接着一个或两个字母,比如下列代码中的 SQ 表示参考序列信息,SN表示参考序列名称,LN表示参考序列长度,PG表示软件,ID表示项目记录号(唯一),PN表示软件名称,VN表示软件版本,CL表示命令行等等(全部解释信息可见参考链接)。
第二部分:比对结果部分(alignment section),每一行表示片段比对信息,共有十一列。
1 查询序列名称(query template name),是字符串类型,即下列代码的 IL38_2670:1:42:1707:2025
2 标识(flag)以整数的形式表示比对的结果,如 16
3 参考序列的名称(reference sequence name),如 MAL1
4 第一个碱基比对上的位置(position),没有比对上用0表示,比对上了从1开始计数,如 153717
5 比对质量(mapping quality),用-10log 10 Pr{mapping position is wrong}计算,粗略近似为从0开始的整数,如:0
6 CIGAR字符串,是比对的详细信息,使用数字加字母表示比对结果,如31M1D23M 表示31个比对上了1个缺失了最后23个比对上了(还有I表示相对 参考序列是插入的碱基,N跳过了这个区域??(什么叫skip掉?不懂求大神解释和deletion有什么区别),P有缺口等等)
7 测序中下一个短片段比对上参考序列的名称,没有用*表示,和上一个相同用=表示,如下列代码的*
8 测序中下一个短片段比对上参考序列的位置,没有用0表示,如下列代码的0
9 序列模板长度(signed observed template length),如果同一个片段都比对上了同一个参考序列,为最左边的碱基位置到最右边的碱基位置(左为正,右为负),当是single-segment比对上或者不可用时记为0
10 短序列(reads/segments)的信息,如下图中的AAAAAAAAAAAAAAAAGAAAAAAAGAACAAAAAAAAAAAAAAAAAAAAAAAAAG
11 比对的质量和fastq文件中记录的相同,如下图的@>@A?9=---9<9==)(299?<A,A+*=*;+4?=<--=/=B0A-99;;22+))(
最后还有可以选择的信息用TAG:TYPE:VALUE表示。
BAM
bam是sam的二进制格式,为了减少sam文件的储存量。
附格式转换:
sam格式转换成bam格式:
samtools view -bS toy.sam > toy.bam
VCF
vcf(variant calling format)用来表示突变的信息。
vcf格式以两部分组成。第一部分:头行(vcf header),以##开头,有文件格式,使用软件信息,参考序列信息,重叠群(contig)的相关信息(拼接时reads之间的overlap区域)等等。
第二部分:具体的突变信息,共有八列。
1 染色体名称(chromosome),哪一个参考序列上发现了突变,如MAL1
2 发生突变的位置,以1开始计算,如265854
3 突变的ID
4 参考序列上的碱基,如T
5 发生突变的碱基,如C
6 发生突变的碱基质量,如6.2
7 过滤后的状态
8 额外的信息
##fileformat=VCFv4.1
##samtoolsVersion=0.1.19-44428cd
##reference=file://3D7.version2.1.4.fasta
##contig=<ID=MAL1,length=643292>
##contig=<ID=MAL10,length=1687655>
##INFO=<ID=DP,Number=1,Type=Integer,Description="Raw read depth">
##INFO=<ID=DP4,Number=4,Type=Integer,Description="# high-quality ref-forward bases, ref-reverse, alt-f
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=GL,Number=3,Type=Float,Description="Likelihoods for RR,RA,AA genotypes (R=ref,A=alt)">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="# high-quality bases">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# high-quality non-reference bases">
##FORMAT=<ID=SP,Number=1,Type=Integer,Description="Phred-scaled strand bias P-value">
##FORMAT=<ID=PL,Number=G,Type=Integer,Description="List of Phred-scaled genotype likelihoods">
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT cam10.sorted.bam
MAL1 265854 . T C 6.2 . DP=37;VDB=2.699794e-03;RPB=-2.646189e+00;AF1=0.4999;AC1=1;DP4=5,3,9,0;MQ=36;FQ=8.65;PV4=0.082,2.4e-10,0.18,0.37 GT:PL:DP:SP:GQ 0/1:35,0,127:17:11:36
参考:http://www.iwhgao.com/?p=1304
https://en.wikipedia.org/wiki/Variant_Call_Format
@SQ SN:MAL1 LN:643292
@SQ SN:MAL10 LN:1687655
@SQ SN:MAL11 LN:2038337
@SQ SN:MAL12 LN:2271477
@SQ SN:MAL13 LN:2895605
@SQ SN:MAL14 LN:3291871
@SQ SN:MAL2 LN:947102
@SQ SN:MAL3 LN:1060087
@SQ SN:MAL4 LN:1204112
@SQ SN:MAL5 LN:1343552
@SQ SN:MAL6 LN:1418244
@SQ SN:MAL7 LN:1501717
@SQ SN:MAL8 LN:1419563
@SQ SN:MAL9 LN:1541723
@PG ID:bwa PN:bwa VN:0.7.12-r1039 CL:/export/common/programs/bwa-0.7.12 samse -f cam10.sam 3D7.version2.1.4.fasta cam10.sai cam10.fastq
IL38_2670:1:42:1707:2025 16 MAL1 153717 0 54M * 0 0 AAAAAAAAAAAAAAAAGAAAAAAAGAACAAAAAAAAAAAAAAAAAAAAAAAAAG @>@A?9=---9<9==)(299?<A,A+*=*;+4?=<--=/=B0A-99;;22+))( XT:A:R NM:i:2 X0:i:3 X1:i:2 XM:i:2 XO:i:0 XG:i:0 MD:Z:27A17G8
参考:
https://blog.csdn.net/Doris_xixi/article/details/80935603