前言
??今天來跟大家分享一個smallRNA的分析流程——sRNAnalyzer炬藤。這個流程是由perl語言寫的,對于老生信人來說應(yīng)該很熟悉娇哆,畢竟perl以前也是很受歡迎的編程語言寒随,不過對于近幾年入行生信的來說就有點陌生了猖任,因為現(xiàn)在做生信分析大多使用的是python和R語言了。所以對于這個流程的源碼我也是看的似懂非懂的狀態(tài),因為我對perl也是一點不懂。那為什么要分享這個流程呢播瞳?首先是這個流程可擴展性比較好,就是你可以自己定義所使用的參考基因組的數(shù)量和順序免糕;再者就是定量miRNA時直接定量為前體或者成熟的miRNA赢乓,相當(dāng)方便;還有就是在定量的時候可以考慮錯配的堿基數(shù)目石窑,可以分別統(tǒng)計錯配0牌芋、1、2個堿基的定量情況尼斧。該流程做了很多工作還有一些其他額外的功能姜贡,大家可以根據(jù)需要自己去探索一下,我只是使用了其中定量的功能棺棵,下面也就定量的功能來做一個介紹楼咳。
準(zhǔn)備工作
??在使用這個流程之前先保證你的工作環(huán)境中已經(jīng)安裝好了fastx_toolkit、cutadapt烛恤、bowtie這三個軟件母怜,流程中的數(shù)據(jù)預(yù)處理和比對會用到這些軟件。下面還需要準(zhǔn)備參考基因組缚柏,如果你沒有特別的要求可以直接去軟件的官網(wǎng)直接下載:
http://srnanalyzer.systemsbiology.net/苹熏。到官網(wǎng)后你可以看到如下圖所示的表格,第一個鏈接是流程的代碼币喧,剩下的是配套的參考基因組鏈接轨域,如果只是做簡單的定量,只需下載smallRNA數(shù)據(jù)庫文件sRNA_DBs就可以了(該文件包含了GtRNAdb 杀餐、miRBase 干发、MirGeneDB 、piRBase snoRNABase參考基因組)史翘,其他的數(shù)據(jù)庫文件挺大的下載起來需要很長時間枉长。如果你覺得參考基因組不夠或不是自己想要的,你也可以直接用bowtile軟件自己構(gòu)建琼讽,注意是bowtile不是bowtile2必峰。
數(shù)據(jù)預(yù)處理
??準(zhǔn)備好軟件和參考基因組,下面可以開始分析流程了钻蹬,首先就是數(shù)據(jù)預(yù)處理吼蚁,做這個步驟時,需要填寫一個流程的參數(shù)配置文件:
pipeline_config.conf:
preprocess:
kit: NEB
gzip: true
stop-oligo: false
alignment:
type: single
human_miRNA: 2
human_miRNA_sub: 2
human_piRNA: 2
human_snoRNA: 2
??可以看出來該配置文件包含了數(shù)據(jù)預(yù)處理和比對兩個步驟的參數(shù)設(shè)置问欠,preprocess設(shè)置的是數(shù)據(jù)預(yù)處理的參數(shù):
??kit: NEB桂敛,設(shè)置建庫試劑盒,據(jù)此來設(shè)置不同的接頭序列溅潜,還有兩個參數(shù)為Illumina术唬、4N
??gzip: true,設(shè)置fastq是否為壓縮格式
??stop-oligo: false滚澜,設(shè)置是否有結(jié)束序列
alignment設(shè)置比對時的參數(shù):
??type: single粗仓,設(shè)置數(shù)據(jù)是單端還是雙端
??human_miRNA: 2 #設(shè)置比對時最大的錯配堿基數(shù)
??human_miRNA_sub: 2
??human_piRNA: 2
??human_snoRNA: 2
??設(shè)置好配置文件,可以使用腳本做預(yù)處理了设捐,將所有需要處理的fastq文件放置在一個文件夾里面借浊,然后進入到該文件夾里面,運行如下的代碼萝招,腳本就會將所有的文件都處理好蚂斤,會在該文件加下生成處理好的文件:
preprocess.pl --config pipeline_config.conf
結(jié)果類似如下:
GSM3593646_Cutadapt_Prinseq.report
GSM3593646_Cutadapt.report
GSM3593646.fastq.gz
GSM3593646_Processed.fa
比對及定量
??當(dāng)做好數(shù)據(jù)預(yù)處理步驟后,就可以做比對及定量了槐沼,不過在此之前需要兩個配置文件曙蒸,一個是上面準(zhǔn)備的配置文件捌治,另一個是數(shù)據(jù)庫配置文件,如下所示:
DB_config.conf:
base: path/to/database
human_miRNA: miRBase/hairpin_hsa_anno
human_miRNA_sub: miRBase/hairpin_hsa_sub_anno
human_piRNA: piRBase/piR_human_v1.0
human_snoRNA: snoRNABase/snoRNABase
virus_miRNA: miRBase/hairpin_virus_anno
plant_miRNA: miRBase/hairpin_plant_anno
all_miRNA: miRBase/hairpin_anno
all_miRNA_sub: miRBase/hairpin_sub_anno
MirGeneDB_human_miRNA: MirGeneDB/MirGeneDB_hsa_precursor_anno
GtRNAdb_human_tRNA: GtRNAdb/hg38-tRNAs
GtRNAdb_bacteria_tRNA: GtRNAdb/bacterial-tRNAs
GtRNAdb_all_tRNA: GtRNAdb/GtRNAdb-all-tRNAs
??要注意path/to/database是所有數(shù)據(jù)庫的共同路徑纽窟,例如上面所示的human_miRNA參考基因組的絕對路徑就是path/to/database/miRBase/hairpin_hsa_anno肖油。還有一點需要注意的是,數(shù)據(jù)庫的順序也是有意義的臂港,因為在比對時森枪,會按照這里面的順序逐個去比對,沒有比對上的read會比對下一個參考基因組审孽,直到所有的參考基因組都比對一遍县袱。這樣有一個好處就是read只會比對到一個參考基因組,不存在同時比對到多個基因組的情況佑力。
準(zhǔn)備好配置文件式散,就可以做比對及定量分析了,代碼如下:
align.pl fastadir pipeline_config.conf DB_config.conf
fastadir:數(shù)據(jù)預(yù)處理的文件夾
pipeline_config.conf:數(shù)據(jù)預(yù)處理時的流程配置文件
DB_config.conf:數(shù)據(jù)庫配置文件
做完比對和定量后搓萧,會在文件加下面多生成一些文件杂数,類似如下所示:
GSM3593663_Cutadapt_Prinseq.report
GSM3593663.fastq.gz
GSM3593663_Processed.fa #處理后數(shù)據(jù),fasta格式
GSM3593663_Processed.profile #記錄了每一條read比對結(jié)果
GSM3593663_Cutadapt.report
GSM3593663_Processed.dist #reads長度分布文件
GSM3593663_Processed.feature #定量結(jié)果
GSM3593663_Processed_unMatch.fa #沒有比對上參考基因組的reads
??到此定量就完成了瘸洛,但是流程為了方便大家揍移,還準(zhǔn)備了一個匯總結(jié)果的腳本,也就是說如果有很多樣本反肋,該腳本會將所有樣本的每一種結(jié)果都匯總到單獨的一個文件里面那伐,代碼如下:
summarize.pl DB_config.conf --project smallrna
會在文件夾下面生成以下的文件:
smallrna_des.feature
smallrna_distCount.sum
smallrna.feature
smallrna_matchRate.sum
smallrna_stp.sum
smallrna_des.profile
smallrna.distRate.sum
smallrna_matchCount.sum
smallrna.profile
smallrna_trimRate.sum
??這樣所有的樣本的結(jié)果都匯總在一個文件中,方便后續(xù)的使用石蔗。到此罕邀,定量就全部完成了。其實這個流程還有一個特別之處养距,就是miRNA的參考基因組诉探,使用的全部是前體的序列,只不過在head部分保留了成熟miRNA序列在前體中的位置信息棍厌,然后根據(jù)比對的結(jié)果落在成熟miRNA區(qū)域在整個read長度占比情況來判斷屬于前體或者成熟的miRNA肾胯,也就是說如果與成熟miRNA的區(qū)域重疊超過60%則屬于成熟的miRNA,否則屬于前體耘纱。
下面展示一下經(jīng)過處理的miRNA參考基因組的fasta文件:
>hsa-let-7a-1|0:79||hsa-let-7a-1-5p|5:26||hsa-let-7a-1-3p|56:76| MI0000060 Homo sapiens let-7a-1 stem-loop
TGGGATGAGGTAGTAGGTTGTATAGTTTTAGGGTCACACCCACCACTGGGAGATAACTATACAATCTACTGTCTTTCCTA
>hsa-let-7b|0:82||hsa-let-7b-5p|5:26||hsa-let-7b-3p|59:80| MI0000063 Homo sapiens let-7b stem-loop
CGGGGTGAGGTAGTAGGTTGTGTGGTTTCAGGGCAGTGATGTTGCCCCTCGGAAGATAACTATACAACCTACTGCCTTCCCTG
>hsa-let-7c|0:83||hsa-let-7c-5p|10:31||hsa-let-7c-3p|55:76| MI0000064 Homo sapiens let-7c stem-loop
GCATCCGGGTTGAGGTAGTAGGTTGTATGGTTTAGAGTTACACCCTGGGAGTTAACTGTACAACCTTCTAGCTTTCCTTGGAGC
??經(jīng)過處理miRNA參考基因組中雖然保留了成熟miRNA的信息敬肚,但是需要注意一點,就是結(jié)果中成熟miRNA的ID可能與miRBase數(shù)據(jù)庫中不完全一致束析,例如“hsa-mir-101-1”前體的成熟miRNA在miRBase數(shù)據(jù)庫中的ID是“hsa-miR-101-3p”艳馒,但在sRNAnalyzer流程的結(jié)果中成熟miRNA的ID是“hsa-miR-101-1-3p”≡笨埽可能作者在處理miRNA參考基因組時弄慰,成熟miRNA的ID是根據(jù)直接前體ID來生成的而不是用的數(shù)據(jù)庫中的名稱第美,這一點大家一定要留意一下!2芏斋日!
最后
??這個流程用來定量還是很方便的牲览,如果想要做novel miRNA的預(yù)測可以結(jié)合使用miRDeep2墓陈。今天就分享到這里了~~~