A. 生物信息學常見數據格式
fasta 是一種 基於文本 用於表示 核酸序列 或 多肽序列 的格式。其中核酸或氨基酸均以單個字母來表示,且允許在序列前添加序列名及注釋。
特徵:2部分-- id行 和 序列行 。
> id行以「>」開頭, 後跟序列名稱&序列描述。有時候會包含注釋信息
> 序列行一個字母表示一個 鹼基/氨基酸 (A、T、C、G、N (N表示不知道是什麼)/20種常見氨基酸)。序列中允許空格,換行,空行,直到下一個「>」,表示該序列結束。
高通量測序(如Illumina NovaSeq等測序平台)得到的原始圖像數據文件,經鹼基識別(Base Calling)分析轉化為原始測序序列(Sequenced Reads),我們稱之為Raw Data或Raw Reads,結果以FASTQ(簡稱為fq)文件格式存儲,其中包含測序序列(Reads)的 序列信息 以及其對應的 測序質量信息 。測序樣品中真實數據隨機截取結果如下圖:
特徵: 每4行代表一個reads信息
fastq格式是由fasta (記錄id和序列) 和QUAL (記錄id和鹼基質量) 合並而來。fastq文件第三行往往是個+,其實就是和第一行一樣都是id。
第四行鹼基質量值
鹼基質量值(Quality Score或Q-score)是鹼基識別(Base Calling)出錯的概率的整數映射。通常使用的鹼基質量值Q公式[1]為: Q=-10 * log10P 。其中P為鹼基識別出錯的概率。下表給出了鹼基質量值與鹼基識別出錯的概率的對應關系。
鹼基質量值越高表明鹼基識別越可靠,准確度越高。比如,對於鹼基質量值為Q20的鹼基識別,100個鹼基中有1個會識別出錯,以此類推。
鹼基質量值+33(前32個不是單個值),查表找到對應ASCII碼
fastq與fasta文件轉換
GFF,全稱為Generic Feature Format,主要用來描述 基因的結構與功能信息 ,對基因組進行注釋。記錄序列中轉錄起始位點、基因、外顯子、內含子等組成元件在染色體中的位置信息。現在用得比較多的是第3版,即gff3。gff是一個三級嵌套結構。格式文件為文本文件,分為9列,以TAB分開。控制符使用RFC 3986 Percent-Encoding 編碼。比如:%20 代表著ASCII的空格。
gff文件一共有9列:
第九列的詳解
GTF全稱為gene transfer format,主要是用來對基因進行注釋。現在用得比較多的是第2版,即gtf2。gtf文件也是分為9列,前八個欄位與GFF相同(有一些小的差別),重點在第九列的不同。
兩種文件差異比較:
bam文件和sam文件內容其實是一樣的,只是bam是二進制的壓縮文件,占內存空間更小。需要通過特定的軟體來進行查看。(sam文件可以直接使用 less -S 查看;bam文件使用 samtools view -h xxx.bam | less -S 查看)
SAM(The Sequence Alignment / Map format)格式,即序列比對文件的格式,詳細介紹文檔: http://samtools.github.io/hts-specs/SAMv1.pdf
SAM文件由兩部分組成,頭部區和主體區,都以tab分列。
頭部區 :以』@'開始,體現了比對的一些總體信息。比如比對的SAM格式版本,比對的參考序列,比對使用的軟體等。
主體區 :比對結果,每一個比對結果是一行,有11個主列和一個可選列。
頭部區:
@HD VN:1.0 SO:unsorted (排序類型)
頭部區第一行:VN是格式版本;SO表示比對排序的類型,有unknown(default),unsorted,queryname和coordinate幾種。samtools軟體在進行行排序後不能自動更新bam文件的SO值,而picard卻可以。
@SQ SN:contig1 LN:9401 (序列ID及長度)
參考序列名,這些參考序列決定了比對結果sort的順序,SN是參考序列名;LN是參考序列長度;每個參考序列為一行。
例如:@SQ SN:NC_000067.6 LN:195471971
@RG ID:sample01 (樣品基本信息)
Read Group。1個sample的測序結果為1個Read Group;該sample可以有多個library的測序結果,可以利用bwa mem -R 加上去這些信息。
例如:@RG ID:ZX1_ID SM:ZX1 LB:PE400 PU:Illumina PL:Miseq
ID:樣品的ID號 SM:樣品名 LB:文庫名 PU:測序以 PL:測序平台
這些信息可以在形成sam文件時加入,ID是必須要有的後面是否添加看分析要求
@PG ID:bowtie2 PN:bowtie2 VN:2.0.0-beta7 (比對所使用的軟體及版本)
例如:@PG ID:bwa PN:bwa VN:0.7.12-r1039 CL:bwa sampe -a 400 -f ZX1.sam -r @RG ID:ZX1_ID SM:ZX1 LB:PE400 PU:Illumina PL:Miseq …/0_Reference/Reference_Sequence.fa ZX_HQ_clean_R1.fq.sai ZX_HQ_clean_R2.fq.sai …/2_HQData/ZX_HQ_clean_R1.fq …/2_HQData/ZX_HQ_clean_R2.fq
這里的ID是bwa,PN是bwa,VN是0.7.12-r1039版本。CL可以認為是運行程序@RG是上面RG表示的內容,後面是程序內容,這里的@GR內容是可以自己在運行程序是加入的
主體部分介紹:
主體部分有11個主列和1個可選列
FLAG詳解: http://broadinstitute.github.io/picard/explain-flags.html
例如:想要查看FLAG 99是什麼意思:samtools flags 99
CIGAR詳解
CIGAR string,簡要比對信息表達式(Compact Idiosyncratic Gapped AlignmentReport),其以參考序列為基礎,使用數字加字母表示比對結果,比如3S6M1P1I4M,前三個鹼基被剪切去除了,然後6個比對上了,然後打開了一個缺口,有一個鹼基插入,最後是4個比對上了,是按照順序的,字母的含義如下
sam/bam文件查看
samtools工具: http://www.htslib.org/doc/samtools.html
Samtools常用命令的總結:
https://www.bioinfo-scrounger.com/archives/245/
https://www.cnblogs.com/xiaofeiIDO/p/6805373.html
參考: sam格式文件解讀