懂得了那么多道理,卻依然過(guò)不好這一生。
所以理論歸理論,最終要落實(shí)到分析代碼上,咱們從這一篇開(kāi)始,介紹一套擴(kuò)增子數(shù)據(jù)分析流程。
閑話(huà)少敘,首先介紹一下項(xiàng)目背景:
- 測(cè)序平臺(tái): Illumina MiSeq,雙端(Paired-end)測(cè)序
- 服務(wù)器:CentOS 7操作系統(tǒng),128G內(nèi)存,CPU 48線(xiàn)程
- 編程語(yǔ)言:Bash script、Python
NGS測(cè)序項(xiàng)目大致分為二個(gè)部分:
- 濕實(shí)驗(yàn)部分,即取樣、提取、建庫(kù)以及上機(jī)測(cè)序
- 干實(shí)驗(yàn)部分,即測(cè)序數(shù)據(jù)的生物信息分析
測(cè)序儀運(yùn)行結(jié)束,就完成了生物樣本的數(shù)字化過(guò)程,但此時(shí)核酸的信息,具體來(lái)說(shuō)是DNA的序列信息(RNA樣本的話(huà)會(huì)先反轉(zhuǎn)錄成DNA再測(cè)序),是保存在稱(chēng)為BCL(Binary Base Call)的文件中的,而生物信息分析工作即是從這里開(kāi)始。
首先,要將BCL文件轉(zhuǎn)化成FASTQ文件格式,過(guò)程并不復(fù)雜,一條命令就夠了。
/path-to/bcl2fastq_V219 \
-R /path-to/200821_M06862_0006_000000000-C9TL7 \
--sample-sheet /path-to/SampleSheet.csv \
--output-dir /path-to/Demultiplexed \
--barcode-mismatches 1 \
--use-bases-mask Y75n,I8,I8,Y75n
bcl2fastq_V219,是illumina官方提供的BCL轉(zhuǎn)FASTQ格式的軟件,這里用的版本是v2.19。
-R參數(shù),是下機(jī)數(shù)據(jù)所在的目錄,內(nèi)容如下,其中的RunInfo.xml文件記錄了測(cè)序的一些重要信息,如總共運(yùn)行了多少個(gè)循環(huán)等。
200821_M06862_0006_000000000-C9TL7
├── AnalysisError.txt
├── AnalysisLog.txt
├── Basecalling_Netcopy_complete_Read1.txt
├── Basecalling_Netcopy_complete_Read2.txt
├── Basecalling_Netcopy_complete_Read3.txt
├── Basecalling_Netcopy_complete_Read4.txt
├── Basecalling_Netcopy_complete.txt
├── CompletedJobInfo.xml
├── Config
├── Data
├── GenerateFASTQRunStatistics.xml
├── ImageAnalysis_Netcopy_complete_Read1.txt
├── ImageAnalysis_Netcopy_complete_Read2.txt
├── ImageAnalysis_Netcopy_complete_Read3.txt
├── ImageAnalysis_Netcopy_complete_Read4.txt
├── ImageAnalysis_Netcopy_complete.txt
├── InterOp
├── Logs
├── QueuedForAnalysis.txt
├── Recipe
├── RTAComplete.txt
├── RunCheckDetail.txt
├── RunInfo.xml
├── runParameters.xml
├── SampleSheet.csv
└── Thumbnail_Images
--sample-sheet參數(shù),樣本清單,內(nèi)容如下:
[Header],,,,,,,,,
IEMFileVersion,5,,,,,,,,
Date,7/30/2020,,,,,,,,
Workflow,GenerateFASTQ,,,,,,,,
Application,FASTQ Only,,,,,,,,
Instrument Type,MiSeq,,,,,,,,
Assay,Nextera DNA,,,,,,,,
Index Adapters,"Nextera Index Kit (24 Indexes, 96 Samples)",,,,,,,,
Description,,,,,,,,,
Chemistry,Amplicon,,,,,,,,
,,,,,,,,,
[Reads],,,,,,,,,
76,,,,,,,,,
76,,,,,,,,,
,,,,,,,,,
[Settings],,,,,,,,,
ReverseComplement,0,,,,,,,,
Adapter,CTGTCTCTTATACACATCT,,,,,,,,
,,,,,,,,,
[Data],,,,,,,,,
Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
wenku1,,,,D701,ATTACTCG,D504,GGCTCTGA,,
wenku2,,,,D702,TCCGGAGA,D504,GGCTCTGA,,
wenku3,,,,D703,CGCTCATT,D504,GGCTCTGA,,
wenku4,,,,D704,GAGATTCC,D504,GGCTCTGA,,
wenku5,,,,D705,ATTCAGAA,D504,GGCTCTGA,,
這是一個(gè)每行都用逗號(hào),隔開(kāi)的SampleSheet.csv文件,可以用Excel或WPS軟件編輯成新的,也可以用Illumina Experiment Manager軟件來(lái)制作清單文件。
由于測(cè)序儀的通量比較大,如果一次只測(cè)一個(gè)樣本,會(huì)造成非常大的浪費(fèi),因此實(shí)際測(cè)序過(guò)程中都是多個(gè)樣本混合在一起測(cè),那么后期怎么把各個(gè)樣本的數(shù)據(jù)(即大量的reads)分開(kāi)呢,這就要涉及到建庫(kù)的原理了,需要較大的篇幅才能說(shuō)清,在此不便展開(kāi)。
簡(jiǎn)單來(lái)說(shuō),就是各個(gè)樣本都加了自己特有的條碼(barcode),就是SampleSheet文件中的index和index2序列,如wenku1的index序列ATTACTCG,以及index2序列GGCTCTGA,它們的組合與其他所有文庫(kù)的都不一樣,依據(jù)這些條碼就能實(shí)現(xiàn)數(shù)據(jù)的拆分,[Data]部分一行是一個(gè)樣本,每行最低限度只需要填寫(xiě)Sample_ID和index就可以了,如果是雙端index測(cè)序,再填上index2即可。
--output-dir參數(shù),結(jié)果文件保存的目錄。
--barcode-mismatches參數(shù),拆分時(shí)允許上述index序列錯(cuò)配的堿基個(gè)數(shù),通常設(shè)為1。
--use-bases-mask參數(shù),用于指導(dǎo)哪些測(cè)序循環(huán)的數(shù)據(jù)要保留,哪些要丟棄,示例中Y75n,I8,I8,Y75n的含義是:第一輪測(cè)序的前75個(gè)循環(huán)要保留,之后的循環(huán)丟棄,index的8個(gè)循環(huán)全部保留,index2的8個(gè)循環(huán)全部保留,第四輪測(cè)序的前75個(gè)循環(huán)要保留,之后的循環(huán)丟棄,這樣我們拆分出的數(shù)據(jù)是雙端75bp,當(dāng)然這個(gè)參數(shù)并非必需。
以上,就是illumina數(shù)據(jù)拆分的基本過(guò)程,結(jié)果得到FASTQ文件(每個(gè)樣本2個(gè)),后續(xù)分析都是基于這些文件的。
Demultiplexed/
├── wenku1_S1_L001_R1_001.fastq.gz
├── wenku1_S1_L001_R2_001.fastq.gz
├── wenku2_S2_L001_R1_001.fastq.gz
├── wenku2_S2_L001_R2_001.fastq.gz
├── wenku3_S3_L001_R1_001.fastq.gz
├── wenku3_S3_L001_R2_001.fastq.gz
├── wenku4_S4_L001_R1_001.fastq.gz
├── wenku4_S4_L001_R2_001.fastq.gz
├── wenku5_S5_L001_R1_001.fastq.gz
└── wenku5_S5_L001_R2_001.fastq.gz
數(shù)據(jù)分析任重道遠(yuǎn),正如莎士比亞的詠嘆:
自然啊,你是充滿(mǎn)無(wú)窮神秘的書(shū)!而我,只能讀懂些許部分!