无法处理解析文件中的数据

时间:2010-12-22 17:59:17

标签: perl

我正在尝试从名为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。最让我烦恼的是,它并没有发生在每一个数据项上,而它发生的那些数据项主要是那些不应该首先获得两个值的数据项。它似乎有点伪随机,但确定性的是每次都会发生相同的项目。

1 个答案:

答案 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;
    }
}