Chinaunix首页 | 论坛 | 博客
  • 博客访问: 581657
  • 博文数量: 69
  • 博客积分: 2204
  • 博客等级: 大尉
  • 技术积分: 808
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-11 22:37
个人简介

..微笑着看着杯中的花茶一片片撑开.. ..透明的花瓣里水破开的声音很轻微..

文章分类

全部博文(69)

文章存档

2018年(1)

2017年(2)

2016年(10)

2015年(8)

2014年(6)

2013年(6)

2012年(4)

2011年(8)

2010年(12)

2009年(12)

分类: 信息化

2016-08-27 10:10:08

miRDeep是个老牌的从高通量数据中注释miRNA的程序。本文撰写时,其最新版本为2.0.0.8.更新时间为2016年的5月。本文记录一些在安装使用过程中遇到的问题,希望为遇到类似问题的朋友们提供一些启示和帮助。

环境:
系统:ubuntu 16.04 LTS
Perl:5.22+
miRDeep:2.0.0.8

问题1:install.pl 和 make_html.pl
目前如果要使用miRDeep2,必须要运行install.pl来确认所需依赖的组件都正确安装。未安装的,程序会自动下载并安装。安装的方法我就不细讲了,网上教程一搜一大把,主要问题容易出现在PDF::API2模块上。系统会自动安装最新的版本,但每次检查仍不通过,我按照网上的方法安装了0.74版本的旧版本(实际版本好像是2.015),但make_html.pl仍然会报错。这里有两个问题:

1.关于PDF::API2模块的安装问题。
如果你手动安装了PDF::API2模块并确信安装没有问题(可用 $perl -e 'use PDF::API2;' 来检查一下,没有报错则表示安装正确。),那么可以手动修改install.pl中的601行之后的内容,这里是通过checkBIN函数的返回值$ret来判断模块是否安装成功,只要在该行下面加上$ret = 0;就可以强制程序认为模块安装成功。修改后再运行一次,检测全部通过后,会在程序路径下生成一个名字为install_successful的空文件。有了这个文件,其它程序才能正常运行。

注:我后来没有重新尝试最新版的PDF::API2模块是否可用,但从程序的更新时间来看,应该不至于还不兼容该版本的模块,毕竟这是生成结果所需的一个重要组件。所以我想最新版本的可能也没问题。只是install.pl对Perl模块的安装状态的检测方法还有问题,因此无论安装成功与否,都无法通过检查。

2.关于系统Perl版本为5.22的问题。
Perl 5.22以后对正则表达式的要求做了一定的修改,其中不允许在//间加裸{},但在make_html.pl的参数判断部分,可能由于开发时间较早,该部分的//中存在哈希的名字诸如:/$hash{abc}/这类的写法,因此引起报错。具体有几行内容,详见报错信息给出的行数。解决办法很简单。只要用\把{}注释一下就可以了,如:/$hash\{abc\}/。修改完毕后,运行下make_html.pl,检查是否报错。

问题2:关于fasta文件的格式问题。
1. fasta格式的头中不能包含空格。
这个是老生常谈,奇葩的规定,但没得选择。如果log文件中的报错信息提示你某个文件头中不能有空格,还是乖乖的再检查一遍你的fasta文件吧。

2.重要的事情说三遍:文件要unix格式,文件要unix格式,文件要unix格式!!!
这也是个奇葩,我自己在win下准备的miRNA成熟体和前体文件,命名用眼睛看都没有空格,到了服务器上依旧报错说有空格。找了半天原因也没找到,明明用tutorial中的测试数据all green,换了自己的数据就傻眼。别问为什么,因为DOS换行是‘\r\n’,linux是‘\n’。‘\r’是空白!是空白!是空白!没错,在perl的正则表达里\r也属于\s!!!还有路径里也不能有空格!!!

问题3:关于miRDeep.pl的-t参数。
这个-t参数是指定物种的,据说明文档讲,是连接UCSC是要用到的。可以指定的物种是有限的,要看说明,看说明,看看哪些是可以使用的,对于说明里没有的物种不要乱指定,否则结果很奇葩,会告诉你无法创建表达估算的相关文件,英文意思自己看,我不copy原文了,都在导出的report里。为什么?因为中间的一步过程中需要调用quantifier.pl程序,这个程序是接受-t参数的,如果物种不在指定范围内将直接中断运行,从而继续后面的程序。这样将无法创建表达相关的结果(例如:expression_analyses、expression_xx_xx_xx.html等),对后面结果的生成也有影响。如果苦逼的做小物种的怎么办?恭喜你,不指定该参数一样可以运行。只要取消了miRDeep后面的-t参数及物种,程序就可以顺利完成了。

阅读(2495) | 评论(3) | 转发(2) |
给主人留下些什么吧!~~

lanmeibanban2017-08-05 18:51:58

devils0:313547978,这是我QQ,大神如果有联系方式,麻烦留一个,跪谢了,,,

抱歉,很久弄过博客了。才看到。希望你已经解决问题了。如果没有解决可以到我的QQ群里咨询:178750864

回复 | 举报

devils02017-07-02 00:09:21

devils0:大神,我跑miRDeep2遇到了一个问题,怎么都解决不了,求救啊!!!非常感谢!!!!!

313547978,这是我QQ,大神如果有联系方式,麻烦留一个,跪谢了,,,

回复 | 举报

devils02017-07-02 00:07:14

大神,我跑miRDeep2遇到了一个问题,怎么都解决不了,求救啊!!!非常感谢!!!!!