之前講過預測植物miRNA的一款軟件miR-PREFER, 今天在介紹一款軟件miRDeep-p2, 也叫miRDP2
-
安裝
在此之前,應安裝一下軟件
Bowite, Bowtie2, Vienna (RNA二級結構預測軟件大禮包)
安裝以上軟件以后,在mirdp2下載最新版的miRDP2,以及ncRNA_rfam.tar.g
1 tar -xf miRDP2-v1.1.4.tar
2mv 1.1.4 miRDP2-v1.1.4
在TestData下載測試數據集--TestData.tar.gz
-
miRNA數據處理
(1)去接頭,長度選擇在18-30 bp,選用cutadapt
(2) 去低質量reads, 可以用fastp
(3)將fastq 文件轉成fasta文件,並去除冗余序列,每個reads的編號:read0_x29909,x后面表示相同的序列數,最后要保證FASTA中的每個序列都唯一。
可以選用以下腳本(將.fq 放在一個文件夾):
1 #!/usr/bin/env python 2 3 import os,re 4 from collections import defaultdict 5 6 li = os.listdir(os.getcwd()) 7 oli = filter(lambda x: x.endswith(".fa"),li) 8 oli.sort() 9 10 11 for fil in oli: 12 info = defaultdict(int) 13 with open(fil) as f,\ 14 open("%s.fa" %fil,"w") as o: 15 while 1: 16 name = f.readline() 17 seq = f.readline() 18 plus = f.readline() 19 qual = f.readline() 20 if name == '': 21 break 22 info[seq.strip()] +=1 23 count = -1 24 for k,v in info.items(): 25 count +=1 26 o.write(">read%s_x%s\n%s\n" %(count,v,k))
-
運行
再次之前,修改一下miRDP2-v1.1.4_pipeline.bash中的一個參數,因為我的RNAfold跑不通,所以修改
RNAfold --noPS 中的 --noPS參數。為-noPS
新建文件夾,用於存放測試數據
1 mkdir miRDP2_Test
將下載的測試數據以及Rfam文件上傳到改文件夾,並壓縮
1 tar xf ncRNA_rfam.tar.gz 2 tar xf TestData.tar.gz
建立索引
1 bowtie-build -f ./TestData/TAIR10_genome.fa ./TestData/TAIR10_genome.fa 3 ##為Rfam建立索引,一定得在流程中script/index 下目錄下 5 bowtie-build -f ./ncRNA_rfam.fa miRDP2-v1.1.4/scripts/ram_index
其中ncRNA_rfam.fa 為Rfam中非編碼RNA (包括rRNA, tRNA,snRNA, and snoRNA), 也可以從Rfam上自行下載所有RNA.fa序列,並根據RNA類型進行分類合並。
運行流程
1 miRDP2-v1.1.4_pipeline.bash -g ./TestData/TAIR10_genome.fa -x ./TestData/TAIR10_genome -f -i ./TestData/GSM2094927.fa -o ./
2
3 #-g 基因組序列
4 #-x 索引
5 #-f sRNA-seq 為fasta格式
6 #-i 輸入RNA文件,多個文件用逗號隔開
7 #可選
8 #-L:reads匹配到最少的位置,默認15, 以防有重復序列
9 #-M:bowtie 的錯配,默認為0
結果:
- miRNA預測結果:
GSM2094927-15-0-10_filter_P_prediction
, 每列的內容分別為,“染色體編號”,“所在鏈”,“代表性的短讀編號”,“前體編號”,“成熟miRNA位置”,“前體位置”,“成熟序列”,“前體序列 ” - 日志文件:
script_log
和script_err
, 在運行出錯時用於排除
-
軟件大概步驟
(1)將reads 比對到ncRNA seq,和known miR mature seq得到 rfam_reads.aln, known_miR.aln
利用腳本 preprocess_reads.pl 對上述 rfam_reads.aln, known_miR.aln 過濾reads,得到 *.fa 以及 *-precessed.fa,*.total_reads
(2)mapping filtered reads
將 *-precessed.fa 比對參考基因組, 得到 *_processed.aln
用 convert_bowtie_to_blast.pl 將 *_processed.aln --》 *-processed.bst (
用 filter_alignments.pl 過濾掉比對到一定次數以上(默認15)的reads, *-processed.bst ---》 *-processed_filter${len}.bst
(3)根據比對位置,提取上下游一定長度序列作為前提序列,並預測二級結構
利用 excise_candidate.pl ,將 *-processed_filter${len}.bst --》 *_precursors.fa
利用 RNAfold 軟件 預測2級結構, *_precursors.fa --》 _structures
(4)提取不是ncRNA的reads 作為signature preparation
將 *.fa 比對到參考基因組, 得到 *.aln
利用convert_bowtie_to_blast.pl 將 *.aln --》*.bst
用 filter_alignments.pl 過濾掉比對到一定次數以上(默認15)的reads, 將 *.bst ---》 *_filter${len}.bst
用 filter_alignments.pl 將 *_filter${len}.bst --》 *_filtered.fa
准備 reads signature file
對 *_precursors.fa 進行bowtie-build 建庫
將 *_filtered.fa 比對到 *_precursors.fa, 得到 *_precursors.aln
利用convert_bowtie_to_blast.pl 將 **_precursors.aln --》*_precursors.bst
將 *_precursors.bst --〉*_signatures
(5)miRDP core algorithm
利用 mod-miRDP.pl 將 *_signatures, *_structures --》_predictions
------END------
關注下方公眾號可獲得更多精彩