周末接了一个师兄的电话,大致场景如下:只有一台windows电脑,也没有服务器怎么跑perl写的流程呢?因此就有本文,记录了在测试时的所遇到的坑。
miRNA介绍
miRNA 是一类由具有发夹结构的初级转录本 (pri-miRNA)经过一系列加工过程,包括核酸内切酶 DCL1 加工后生成,通过对靶标 mRNA 直接切除或抑制其翻译在转录及转录后水平对基因表达起调节作用的内源性非蛋白质编码小 RNA,成熟miRNA序列长度一般为20-24个碱基。
由于小 RNA 表达的时空特异性,导致传统的实验方法研究小 RNA 效率很低,成本较高,因此借助计算方法研究小 RNA 是一个很好的补充,大大加速了该领域的研究进程。
通过计算方法识别miRNA基因主要基于以上提到的miRNA序列及结构上的特征,以及不同物种间的保守性。可以分为以下几类方法:
- 同源比对的方法主要是通过已知保守miRNA的在不同物种间的序列相似性进行同源序列搜索预测miRNA的方法。
- 基因查找方法可以不考虑miRNA的保守性,对整个基因组进行扫描,但只适用于动物miRNA基因的预测。
- 基于动物miRNA经常成簇存在于基因组上的特点,通过对已知miRNA附近区域进行茎环结构预测来发现成簇存在的miRNA。
- 基于比较基因组方法代表性研究是Jones-Rhoades和Bartel (2004)利用拟南芥和水稻全基因组鉴定在两个物种中保守的miRNA序列。
- 基于大规模测序数据的发掘方法
今天的推送介绍一下比较基因组中所开发使用了 MirCheck 程序如何在本地运行的吧。
README
以下操作步骤均在 win10 64位系统下测试demo数据通过。
MirCheck 主要通过计算一段序列是否存在理想的茎环结构,以及是否有20mers的短序列位于茎的位置上,然后根据其在两个物种中的保守性来查找保守的miRNA基因。
REQUIREMENTS
根据指南,首先需要部署window下的perl:
开始 - 运行 - cmd 或者 win R -cmd
若显示版本即可使用;若报错,则需要先安装 perl;推荐使用 ActiverPerl 进行安装。
- ActiverPerl 64位
下载地址:https://pc.qq.com/detail/12/detail_3012.html
安装 (默认即可)
或者选择安装位置:
然后简单测试,显示版本即可正常使用。
注:这里我测试了 powershell 下的 perl是否可以使用,命令框打开方式一致(win R powershell)
DOWNLOAD
下载MirCheck
http://bartellab.wi.mit.edu/softwareDocs/miRcheck.tar
TEST
以下测试在 powershell中进行:
进入 MirCheck路径
按照下面的步骤进行测试:
代码语言:javascript复制# Calls patscan to identify near matches to miRNAs in target genome.
$ perl run_patscan.pl sample_miRNAs.fa sample_genome.fa 2 0 0 sample_miRNA_matches
# Retrieves genomic regions containing matches identifed
$ perl retrieve_genomic_regions.pl window sample_miRNA_matches sample_genome.fa sample_miRNA_matches_genomic
# Calls patscan to identify near matches to miRNAs in target genome.
$ perl run_patscan.pl sample_miRNAs.fa sample_genome.fa 2 0 0 sample_miRNA_matches
# Calls miRcheck to evaluate secondary structures of miRNA candidates
$ perl evaluate_miRNA_candidates.pl sample_miRNA_matches_genomic_folded sample_miRNA_matches_genomic_mirs
# Script to run einverted (emboss) to find inverted repeats in genome-sized sequences. Breaks genomic sequences up into overlapping fragments and calls einverted on each fragment.
$ perl run_einverted.pl sample_genome.fa sample_IRs
# script to retrieve genomic sequences of inverted repeats identified by run_einverted.pl and fold with RNAfold
$ perl fold_inverted_repeats.pl sample_IRs sample_genome.fa sample_IRs_f
# script that calls miRcheck on folded inverted repeats to identify 20mer miRNA candidates
$ perl extract_einverted_20mers.pl sample_IRs_f sample_IRs_f_20mers
第一步就报错了额
因此需要打开路径下的 run_patscan.pl (notepad )进行查看。
第一个问题需要将 touch 改为 echo test>,这是windows下的使用方法。
第二个问题竟然是默认我安装了 patscan,你咋不在 REQUIREMENTS 说呢!
PatScan
Investigates biological patterns. PatScan is an application based on the use of an expressive pattern language to detect predetermined DNA and protein sequence patterns. Users have the possibility to look for repeats, hairpins, stem loops or pseudoknots. The application can be run under a command-line interface for researchers with advanced skills or as a simplified web interface exploiting a drag & drop system.
然后默默地再安装:
patscan下载地址 http://www.theseed.org/servers/downloads/scan_for_matches.tgz
安装也会遇到问题...
在解压路径中进行准备,会生成一个exe文件,也就是MirCheck需要调用的程序。
代码语言:javascript复制$ gcc -O -o scan_for_matches ggpunit.c scan_for_matches.c
然后再次运行第一步:
代码语言:javascript复制$ perl run_patscan.pl sample_miRNAs.fa sample_genome.fa 2 0 0 sample_miRNA_matches
成功如下图:
然后第二步:
代码语言:javascript复制$ perl retrieve_genomic_regions.pl window sample_miRNA_matches sample_genome.fa sample_miRNA_matches_genomic
又有一个报错。
然后把 lib路径修改为下载地址,比如 J:/download/chrome/miRcheck/_miRcheck_scripts/miRcheck
代码语言:javascript复制# Calls miRcheck to evaluate secondary structures of miRNA candidates
$ perl evaluate_miRNA_candidates.pl sample_miRNA_matches_genomic_folded sample_miRNA_matches_genomic_mirs
# Script to run einverted (emboss) to find inverted repeats in genome-sized sequences. Breaks genomic sequences up into overlapping fragments and calls einverted on each fragment.
$ perl run_einverted.pl sample_genome.fa sample_IRs
# script to retrieve genomic sequences of inverted repeats identified by run_einverted.pl and fold with RNAfold
$ perl fold_inverted_repeats.pl sample_IRs sample_genome.fa sample_IRs_f
# script that calls miRcheck on folded inverted repeats to identify 20mer miRNA candidates
$ perl extract_einverted_20mers.pl sample_IRs_f sample_IRs_f_20mers
之后就一步步运行即可。
Citation
DOI:https://doi.org/10.1016/j.molcel.2004.05.027
参考资料
http://www.biophys.uni-duesseldorf.de/~steger/BioInfII/PatScan/readme_scan_for_matches.html
http://blog.theseed.org/servers/2010/07/scan-for-matches.html