我正在尝试从名为mirdeep的程序中解析html输出文件。我已经将脚本提取到数据已被提取到数组数组中,并且我试图从适当的列中提取我想要的特定信息。由于一些奇怪的原因,我不断获得不可能的输出。
基本上它应该是从mirdeep和未检测到的mirRNA检测到的mirbase miRNA的计数,但只留下统计表和新的部分。
但是,当前正在为未检测到的部分提取的计数奇怪地存储不正确。 (由于它们输出的方式,一些所谓的“星”和“成熟”数据被分成不同的行,而不是在同一行,所以我试图重新组合它们。我相当确定重组中的错误是问题的根源。
我正在用print语句检查我的进度,并注意到一些只应该有成熟计数或星数的数据都有,并且第二个数字似乎总是等于行的成熟计数下面的html文件,对我来说没有意义。有人可以帮我追踪什么是错的吗?这是我第一次广泛使用包进行面向对象,因此这里可能存在任何错误。
Heres the script and an example data file
刚刚创建了一个帐户,由于某种原因我无法安装HTML :: TableExtract;
运行make install make test已返回错误状态,在此命令期间无法安装无法失败:GAAS / HTML-Parser-3.68.tar.gz:make_test NO MSISK / HTML-TableExtract-2.10.tar.gz: make_test NO
似乎我的perl安装是screwey,我试图使用bioperl,并且由于某种原因,bums使用fink,它安装了perl的OWN副本,而不是为perl的主系统安装提供库。有没有人知道如何使主要MAC perl安装(& cpan)使fink好玩?当我使用主perl它工作,但我不能将模块安装到较旧的fink perl,我必须使用它来访问bioperl。太好了不是。
P.S。最让我烦恼的是,它并没有发生在每一个数据项上,而它发生的那些数据项主要是那些不应该首先获得两个值的数据项。它似乎有点伪随机,但确定性的是每次都会发生相同的项目。
答案 0 :(得分:0)
这是几百行代码。如果您只是想从HTML中提取表格,请使用HTML::TableExtract。
例如:
#!/usr/bin/perl
use strict; use warnings;
use HTML::TableExtract;
use YAML;
my $te = HTML::TableExtract->new(
headers => [
'',
'novel miRNAs',
'known miRBase miRNAs',
'',
'',
],
slice_columns => 0,
);
$te->parse_file('t.html');
for my $table ( $te->tables ) {
for my $row ( $table->rows ) {
print Dump $row;
}
}