免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: rougayo
打印 上一主题 下一主题

【生物信息】一个perl脚本的求助 [复制链接]

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
11 [报告]
发表于 2017-02-28 11:26 |只看该作者
本帖最后由 moperyblue 于 2017-02-28 11:44 编辑

回复 10# rougayo


对文件遍历两次
第一次遍历 保存每个序列L栏的的最高值(保存在映射a中)  
第二次遍历 判断如果L栏的值等于映射a中序列对应的值 则输该行数据

论坛徽章:
0
12 [报告]
发表于 2017-03-02 10:33 |只看该作者
回复 7# sunzhiguolu


您好!请问能稍微讲解下第7行么?

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:00
13 [报告]
发表于 2017-03-02 10:36 |只看该作者
#,楼主加油,我们都看好你哦

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
14 [报告]
发表于 2017-03-02 11:04 |只看该作者
回复 12# rougayo
用逗号分割每条记录并返回一个列表,chomp 函数将列表元素中可能包含的换行符去掉。

论坛徽章:
0
15 [报告]
发表于 2017-03-02 11:28 |只看该作者
回复 7# sunzhiguolu

您好!我尝试下您的代码 确实可以从一堆query中挑出其中一个query对应的所有信息,不过我验证的时候发现挑选出来的 那一行的sorce并不是最优的score。这个是为啥呀?百思不得其解

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
16 [报告]
发表于 2017-03-02 21:41 |只看该作者
回复 15# rougayo
我是按照你的要求将记录中每种生物名称作为 ID 对记录信息进行分类统计,输出前按照 L 列的数值做了一个降序排序 将第一个元素的值输出。即你说的 Score 最大值的那个元素。
如果输出结果不是你逾期的结果,请将你的最优的 Score (L 列) 的提取条件说明,方便的话 请给出一个示例并提供一个结果。谢谢。

论坛徽章:
0
17 [报告]
发表于 2017-03-03 11:10 |只看该作者
回复 16# sunzhiguolu


您好!这个是我根据您的脚本所撰写的脚本:
#!/usr/bin/perl
use strict;
use warnings;

my$infile=shift||die"$_";
my$outfile=shift||die"$_";
open(IN,$infile);
open(OUT,">$outfile");

my@aData=();
while(<IN>){
  chomp(my@aT=split(/,/));
  my($id,$val)=@aT[0,-1];
  unless(@aData){
  @aData=($id,$val,$_);
  next;
  }

if($aData[0] ne $id){
  print OUT splice(@aData,2);
  @aData=($id,$val,$_);
  next;
  }

if($aData[1] == $val){
  push(@aData,$_);
  next;
  }
  @aData=($id,$val,$_)if($aData[1]<$val);

}
print OUT splice (@aData,2);





close IN;
close OUT;


输出的结果为

--DATA--
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        65.71        70        24        0        32        101        211185        211394        1.00E-32        105
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        65.71        70        24        0        32        101        214239        214448        1.00E-32        105
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        53.12        32        15        0        1        32        210991        211086        1.00E-32        38.5
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        53.12        32        15        0        1        32        214045        214140        1.00E-32        38.5
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        41.86        43        25        0        100        142        211493        211621        1.00E-32        37.7
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        41.86        43        25        0        100        142        214547        214675        1.00E-32        37.7
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        45.59        68        37        0        32        99        209012        209215        1.00E-22        73.2
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        55.32        47        21        0        96        142        209316        209456        1.00E-22        54.3
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        55.71        70        31        0        32        101        193419        193628        2.00E-19        91.7
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        58.82        68        28        0        34        101        217170        217373        3.00E-19        90.9
ENSACAP00000010464        gnl|UMD3.1|GK000025.2        54.79        73        33        0        29        101        207456        207674        9.00E-19        89.7
ENSACAP00000010464        gnl|UMD3.1|GK000011.2        53.42        73        34        0        70        142        650498        650280        4.00E-16        82
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        30.46        151        58        5        3        108        48997720        48998166        4.00E-11        66.6
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        35.53        76        43        1        32        101        49007223        49007450        7.00E-08        57
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        38.16        76        41        2        32        101        49023242        49023469        5.00E-07        54.3
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        44        50        28        0        52        101        49049345        49049494        1.00E-06        53.1
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        36.84        76        42        2        32        101        49341123        49340896        1.00E-06        53.1
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        36.84        76        42        2        32        101        49340178        49339951        1.00E-06        53.1
ENSACAP00000010464        gnl|UMD3.1|GK000015.2        36.84        76        42        2        32        101        49073678        49073905        1.00E-06        53.1
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        50        160        40        2        2        121        48997711        48998190        3.00E-31        126
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        68.54        89        27        1        33        120        49039473        49039739        3.00E-26        105
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        46.67        30        16        0        2        31        49039265        49039354        3.00E-26        34.7
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        61.45        83        32        0        33        115        49007226        49007474        1.00E-20        95.1
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        49.57        115        53        1        33        147        49023245        49023574        1.00E-19        92.4
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        69.33        75        23        0        33        107        49341120        49340896        2.00E-19        91.7
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        69.33        75        23        0        33        107        49340175        49339951        2.00E-19        91.7
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        69.33        75        23        0        33        107        49073681        49073905        2.00E-19        91.7
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        63.89        72        26        0        36        107        49049279        49049494        1.00E-17        86.7
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        58.67        75        31        0        33        107        49056621        49056845        6.00E-15        78.6
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        61.33        75        29        0        33        107        49012677        49012901        2.00E-14        77
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        53.49        43        20        0        106        148        48999230        48999358        2.00E-07        55.8
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        52.38        42        20        0        107        148        49050335        49050460        3.00E-07        55.1
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        48.84        43        22        0        106        148        49008286        49008414        6.00E-07        53.9
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        54.76        42        19        0        107        148        49013817        49013942        2.00E-06        52.4
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        40.85        71        36        2        37        107        211200        211394        6.00E-12        52.4
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        40.85        71        36        2        37        107        214254        214448        6.00E-12        52.4
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        42.86        42        24        0        106        147        211493        211618        6.00E-12        39.7
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        42.86        42        24        0        106        147        214547        214672        6.00E-12        39.7
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        41.33        75        38        1        33        107        193422        193628        3.00E-08        58.2
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        41.33        75        38        1        33        107        207468        207674        4.00E-08        57.4
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        34.25        73        42        1        33        105        209015        209215        1.00E-07        48.9
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        34        50        29        1        102        147        209304        209453        1.00E-07        28.1
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        43.4        53        30        0        65        117        217245        217403        3.00E-06        44.7
ENSACAP00000011963        gnl|UMD3.1|GK000025.2        41.94        31        18        0        114        144        217487        217579        3.00E-06        27.7
ENSACAP00000011963        gnl|UMD3.1|GK000011.2        36.99        73        46        0        75        147        650501        650283        1.00E-06        53.1
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        50        160        40        2        2        121        48997711        48998190        3.00E-31        126
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        68.54        89        27        1        33        120        49039473        49039739        3.00E-26        105
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        46.67        30        16        0        2        31        49039265        49039354        3.00E-26        34.7
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        61.45        83        32        0        33        115        49007226        49007474        1.00E-20        95.1
ENSACAP00000011963        gnl|UMD3.1|GK000015.2        49.57        115        53        1        33        147        49023245        49023574        1.00E-19        92.4
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        62.5        72        27        0        32        103        214239        214454        1.00E-32        97.1
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        65.12        43        15        0        100        142        214547        214675        1.00E-32        58.9
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        34.38        32        21        0        1        32        214045        214140        1.00E-32        26.2
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        62.5        72        27        0        32        103        211185        211400        1.00E-31        93.2
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        65.12        43        15        0        100        142        211493        211621        1.00E-31        58.9
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        34.38        32        21        0        1        32        210991        211086        1.00E-31        26.2
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        75.71        70        17        0        32        101        193419        193628        6.00E-29        119
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        72        75        21        0        27        101        207450        207674        6.00E-29        119
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        50        68        34        0        32        99        209012        209215        4.00E-22        75.5
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        48.94        47        24        0        96        142        209316        209456        4.00E-22        50.8
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        86.05        43        6        0        100        142        193823        193951        1.00E-15        80.5
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        88.1        42        5        0        100        141        207870        207995        2.00E-15        79.3
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        45.57        79        43        0        34        112        217170        217406        3.00E-12        70.5
ENSAMEP00000007230        gnl|UMD3.1|GK000025.2        78.12        32        7        0        1        32        192943        193038        2.00E-07        55.5
ENSAMEP00000007230        gnl|UMD3.1|GK000011.2        49.32        73        37        0        70        142        650498        650280        8.00E-15        77.8
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        44.74        76        36        2        32        101        48997918        48998145        9.00E-11        65.9
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        41.11        90        46        3        32        114        49039470        49039739        5.00E-09        60.5
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        39.47        76        40        2        32        101        49007223        49007450        2.00E-08        58.2
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        39.47        76        40        1        32        101        49341123        49340896        3.00E-08        58.2
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        39.47        76        40        1        32        101        49340178        49339951        3.00E-08        58.2
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        39.47        76        40        1        32        101        49073678        49073905        3.00E-08        58.2
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        38.16        76        41        1        32        101        49023242        49023469        3.00E-07        54.7
ENSAMEP00000007230        gnl|UMD3.1|GK000015.2        38.89        72        38        2        38        103        49049285        49049500        4.00E-07        54.3
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        89.36        47        5        0        96        142        209316        209456        6.00E-34        89
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        50        68        34        0        32        99        209012        209215        6.00E-34        77
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        75.71        70        17        0        32        101        193419        193628        5.00E-30        122
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        72        75        21        0        27        101        207450        207674        8.00E-30        122
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        62.86        70        26        0        32        101        214239        214448        3.00E-29        98.6
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        51.16        43        21        0        100        142        214547        214675        3.00E-29        45.8
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        34.38        32        21        0        1        32        214045        214140        3.00E-29        26.2
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        62.86        70        26        0        32        101        211185        211394        9.00E-29        97.1
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        51.16        43        21        0        100        142        211493        211621        9.00E-29        45.8
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        34.38        32        21        0        1        32        210991        211086        9.00E-29        26.2
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        50        68        34        0        34        101        217170        217373        2.00E-13        73.6
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        78.12        32        7        0        1        32        192943        193038        2.00E-07        55.1
ENSAMEP00000007233        gnl|UMD3.1|GK000025.2        55.81        43        19        0        100        142        193823        193951        1.00E-06        52.8
ENSAMEP00000007233        gnl|UMD3.1|GK000011.2        75.34        73        18        0        70        142        650498        650280        1.00E-28        118
ENSAMEP00000007233        gnl|UMD3.1|GK000015.2        44.74        76        36        2        32        101        48997918        48998145        7.00E-11        66.2
ENSAMEP00000007233        gnl|UMD3.1|GK000015.2        40.96        83        43        2        32        108        49039470        49039718        2.00E-09        61.6


我想要每一个序列中,score值最高的那一行的内容(红字标注)。

这个脚本我写了上去,输出的结果如下,不知道是不是我哪里写错了还是添加输入文件输出文件的时候对脚本造成了影响。

这个脚本是我根据您第二个脚本写得。
#!/usr/bin/perl
use strict;
use warnings;


my $INfile=shift||die"$_";
my $OUTfile=shift||die"$_";
open(IN,$INfile);
open(OUT,">$OUTfile");


my %Data=();
while(<IN>){
  chomp(my@T=split(/,/));
  my($id,$score)=@T[0,-1];
  push(@{$Data{$id}},[$score,$_]);
}
foreach(keys%Data){
  my@T=sort{$b->[-1] <=> $a->[-1]}@{$Data{$_}};
  print OUT map(@{$_}[-1],grep(@{$T[0]}[0] == @{$_}[0],@T));
}
  close IN;
  close OUT;


输出的结果如下:

ENSMEUP00000000639        gnl|UMD3.1|GK000025.2        44        75        36        2        31        105        211185        211391        3.00E-09        61.2
ENSMEUP00000000639        gnl|UMD3.1|GK000025.2        44        75        36        2        31        105        211185        211391        3.00E-09        61.2
ENSMEUP00000000639        gnl|UMD3.1|GK000025.2        44        75        36        2        31        105        211185        211391        3.00E-09        61.2
ENSLOCP00000009436        gnl|UMD3.1|GK000025.2        42.65        68        39        0        35        102        209012        209215        4.00E-12        52.4
ENSTGUP00000004511        gnl|UMD3.1|GK000025.2        53.06        49        23        0        95        143        193805        193951        2.00E-07        55.8
ENSOARP00000020551        gnl|UMD3.1|GK000015.2        74.68        79        20        0        56        134        49073669        49073905        1.00E-33        134
ENSOARP00000020551        gnl|UMD3.1|GK000015.2        74.68        79        20        0        56        134        49073669        49073905        1.00E-33        134
ENSMLUP00000011277        gnl|UMD3.1|GK000025.2        42.55        47        27        0        96        142        209316        209456        1.00E-16        42.7
ENSFALP00000010579        gnl|UMD3.1|GK000015.2        64.52        31        11        0        1        31        49039265        49039357        3.00E-40        43.5
ENSFALP00000010579        gnl|UMD3.1|GK000015.2        64.52        31        11        0        1        31        49039265        49039357        3.00E-40        43.5
ENSFALP00000010579        gnl|UMD3.1|GK000015.2        64.52        31        11        0        1        31        49039265        49039357        3.00E-40        43.5
ENSFALP00000010579        gnl|UMD3.1|GK000015.2        64.52        31        11        0        1        31        49039265        49039357        3.00E-40        43.5
ENSGGOP00000026624        gnl|UMD3.1|GK000015.2        43.42        76        37        2        32        101        48997918        48998145        5.00E-10        63.5
ENSMUSP00000020531        gnl|UMD3.1|GK000015.2        36.84        76        42        1        32        101        49341123        49340896        3.00E-07        55.1
ENSGACP00000019116        gnl|UMD3.1|GK000025.2        47.22        72        38        0        31        102        214239        214454        4.00E-24        78.6
ENSMICP00000033506        gnl|UMD3.1|GK000015.2        38.89        72        38        2        38        103        49049285        49049500        1.00E-06        53.1
ENSPANP00000013424        gnl|UMD3.1|GK000025.2        57.14        70        30        0        32        101        193419        193628        2.00E-17        85.9
ENSXETP00000053076        gnl|UMD3.1|GK000015.2        61.33        75        29        0        31        105        49073678        49073902        3.00E-14        76.3


结果输出,基本上每个序列都只有一个输出结果,于是我将序列代码复制下来,在原始文件中寻找了下,比如ENSMEUP00000000639,发现在原始文件中,这个序列对应的有更优的结果。其他的序列也有一些是并没有将最优结果输出的,我尝试改了下脚本,但是也没有成功。
很抱歉一直打扰您,如果您有时间的话,希望得到您的答复!感谢!
ENSMEUP00000000639gnl|UMD3.1|GK000015.265.97144101110548997711489981423.00E-51184

该表为ENSMEUP00000000639的最优结果。




论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
18 [报告]
发表于 2017-03-03 11:28 |只看该作者
回复 17# rougayo
麻烦你 将包含下面这条记录的部分示例数据贴出来下 (贴出一块数据, 不要部分内容 这样我也便于判断是不是我的程序逻辑出现问题导致结果 出错),不用这么客气,我也是通过大家的帮助指点 一点一点学习的。
ENSMEUP00000000639gnl|UMD3.1|GK000015.265.97144101110548997711489981423.00E-51184

论坛徽章:
0
19 [报告]
发表于 2017-03-03 12:06 |只看该作者
回复 18# sunzhiguolu

ENSMEUP00000000639gnl|UMD3.1|GK000015.265.97144101110548997711489981423.00E-51184
ENSMEUP00000000639gnl|UMD3.1|GK000015.28875903110549039470490396943.00E-43142
ENSMEUP00000000639gnl|UMD3.1|GK000015.269.443611013649039265490393723.00E-4355.1
ENSMEUP00000000639gnl|UMD3.1|GK000015.278.67751603110549007223490074478.00E-39134
ENSMEUP00000000639gnl|UMD3.1|GK000015.267.743110013149007008490071008.00E-3948.1
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549341123493408993.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549340178493399543.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549073678490739023.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.275721803410549049276490494912.00E-31126
ENSMEUP00000000639gnl|UMD3.1|GK000015.274.67751903110549023242490234666.00E-31125
ENSMEUP00000000639gnl|UMD3.1|GK000015.242.57148421110549056399490568422.00E-27115
ENSMEUP00000000639gnl|UMD3.1|GK000015.269.86732203110349012674490128925.00E-25108
ENSMEUP00000000639gnl|UMD3.1|GK000015.283.33305011814748999269489993585.00E-0960.5
ENSMEUP00000000639gnl|UMD3.1|GK000015.270309011814749008325490084144.00E-0651.6
ENSMEUP00000000639gnl|UMD3.1|GK000015.270309011814749050371490504606.00E-0650.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.242.6775372311052074652076718.00E-1063.2
ENSMEUP00000000639gnl|UMD3.1|GK000025.242.6775372311051934191936251.00E-0962.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.24475362311052111852113913.00E-0961.2
ENSMEUP00000000639gnl|UMD3.1|GK000025.24475362311052142392144454.00E-0960.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.239.1974391311042090122092151.00E-0858.9
ENSMEUP00000000639gnl|UMD3.1|GK000025.243.8473352331052171702173704.00E-0651.2
ENSMEUP00000000639gnl|UMD3.1|GK000011.249.3375380721466505076502832.00E-0962
ENSMEUP00000000639gnl|UMD3.1|GK000015.265.97144101110548997711489981423.00E-51184
ENSMEUP00000000639gnl|UMD3.1|GK000015.28875903110549039470490396943.00E-43142
ENSMEUP00000000639gnl|UMD3.1|GK000015.269.443611013649039265490393723.00E-4355.1
ENSMEUP00000000639gnl|UMD3.1|GK000015.278.67751603110549007223490074478.00E-39134
ENSMEUP00000000639gnl|UMD3.1|GK000015.267.743110013149007008490071008.00E-3948.1
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549341123493408993.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549340178493399543.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549073678490739023.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.275721803410549049276490494912.00E-31126
ENSMEUP00000000639gnl|UMD3.1|GK000015.274.67751903110549023242490234666.00E-31125
ENSMEUP00000000639gnl|UMD3.1|GK000015.242.57148421110549056399490568422.00E-27115
ENSMEUP00000000639gnl|UMD3.1|GK000015.269.86732203110349012674490128925.00E-25108
ENSMEUP00000000639gnl|UMD3.1|GK000015.283.33305011814748999269489993585.00E-0960.5
ENSMEUP00000000639gnl|UMD3.1|GK000015.270309011814749008325490084144.00E-0651.6
ENSMEUP00000000639gnl|UMD3.1|GK000015.270309011814749050371490504606.00E-0650.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.242.6775372311052074652076718.00E-1063.2
ENSMEUP00000000639gnl|UMD3.1|GK000025.242.6775372311051934191936251.00E-0962.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.24475362311052111852113913.00E-0961.2
ENSMEUP00000000639gnl|UMD3.1|GK000025.24475362311052142392144454.00E-0960.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.239.1974391311042090122092151.00E-0858.9
ENSMEUP00000000639gnl|UMD3.1|GK000025.243.8473352331052171702173704.00E-0651.2
ENSMEUP00000000639gnl|UMD3.1|GK000011.249.3375380721466505076502832.00E-0962
ENSMEUP00000000639gnl|UMD3.1|GK000015.265.97144101110548997711489981423.00E-51184
ENSMEUP00000000639gnl|UMD3.1|GK000015.28875903110549039470490396943.00E-43142
ENSMEUP00000000639gnl|UMD3.1|GK000015.269.443611013649039265490393723.00E-4355.1
ENSMEUP00000000639gnl|UMD3.1|GK000015.278.67751603110549007223490074478.00E-39134
ENSMEUP00000000639gnl|UMD3.1|GK000015.267.743110013149007008490071008.00E-3948.1
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549341123493408993.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549340178493399543.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.281.33751403110549073678490739023.00E-33132
ENSMEUP00000000639gnl|UMD3.1|GK000015.275721803410549049276490494912.00E-31126
ENSMEUP00000000639gnl|UMD3.1|GK000015.274.67751903110549023242490234666.00E-31125
ENSMEUP00000000639gnl|UMD3.1|GK000015.242.57148421110549056399490568422.00E-27115
ENSMEUP00000000639gnl|UMD3.1|GK000015.269.86732203110349012674490128925.00E-25108
ENSMEUP00000000639gnl|UMD3.1|GK000015.283.33305011814748999269489993585.00E-0960.5
ENSMEUP00000000639gnl|UMD3.1|GK000015.270309011814749008325490084144.00E-0651.6
ENSMEUP00000000639gnl|UMD3.1|GK000015.270309011814749050371490504606.00E-0650.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.242.6775372311052074652076718.00E-1063.2
ENSMEUP00000000639gnl|UMD3.1|GK000025.242.6775372311051934191936251.00E-0962.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.24475362311052111852113913.00E-0961.2
ENSMEUP00000000639gnl|UMD3.1|GK000025.24475362311052142392144454.00E-0960.8
ENSMEUP00000000639gnl|UMD3.1|GK000025.239.1974391311042090122092151.00E-0858.9
ENSMEUP00000000639gnl|UMD3.1|GK000025.243.8473352331052171702173704.00E-0651.2
ENSMEUP00000000639gnl|UMD3.1|GK000011.249.3375380721466505076502832.00E-0962

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
20 [报告]
发表于 2017-03-03 13:11 |只看该作者
回复 19# rougayo
问题可能是由于 split 函数的分割限定符导致的。还是先前的代码将 split 的分割限定符更改为默认就好。
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my %hData = ();
  5. while (<DATA>){
  6.         my @aT = split;   # 这里改为默认的形式
  7.         my ($id, $val) = @aT[0, -1];
  8.         push (@{$hData{$id}}, [$val, $_]);
  9. }

  10. foreach (keys %hData){
  11.         my @aT = sort {$b->[0] <=> $a->[0]} @{$hData{$_}};
  12.         print  map(@{$_}[-1], grep (@{$aT[0]}[0] == @{$_}[0], @aT));
  13. }
  14. __DATA__
  15. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    65.97    144    10    1    1    105    48997711    48998142    3.00E-51    184
  16. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    88    75    9    0    31    105    49039470    49039694    3.00E-43    142
  17. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    69.44    36    11    0    1    36    49039265    49039372    3.00E-43    55.1
  18. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    78.67    75    16    0    31    105    49007223    49007447    8.00E-39    134
  19. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    67.74    31    10    0    1    31    49007008    49007100    8.00E-39    48.1
  20. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49341123    49340899    3.00E-33    132
  21. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49340178    49339954    3.00E-33    132
  22. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49073678    49073902    3.00E-33    132
  23. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    75    72    18    0    34    105    49049276    49049491    2.00E-31    126
  24. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    74.67    75    19    0    31    105    49023242    49023466    6.00E-31    125
  25. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    42.57    148    42    1    1    105    49056399    49056842    2.00E-27    115
  26. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    69.86    73    22    0    31    103    49012674    49012892    5.00E-25    108
  27. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    83.33    30    5    0    118    147    48999269    48999358    5.00E-09    60.5
  28. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    70    30    9    0    118    147    49008325    49008414    4.00E-06    51.6
  29. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    70    30    9    0    118    147    49050371    49050460    6.00E-06    50.8
  30. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    42.67    75    37    2    31    105    207465    207671    8.00E-10    63.2
  31. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    42.67    75    37    2    31    105    193419    193625    1.00E-09    62.8
  32. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    44    75    36    2    31    105    211185    211391    3.00E-09    61.2
  33. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    44    75    36    2    31    105    214239    214445    4.00E-09    60.8
  34. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    39.19    74    39    1    31    104    209012    209215    1.00E-08    58.9
  35. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    43.84    73    35    2    33    105    217170    217370    4.00E-06    51.2
  36. ENSMEUP00000000639    gnl|UMD3.1|GK000011.2    49.33    75    38    0    72    146    650507    650283    2.00E-09    62
  37. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    65.97    144    10    1    1    105    48997711    48998142    3.00E-51    184
  38. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    88    75    9    0    31    105    49039470    49039694    3.00E-43    142
  39. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    69.44    36    11    0    1    36    49039265    49039372    3.00E-43    55.1
  40. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    78.67    75    16    0    31    105    49007223    49007447    8.00E-39    134
  41. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    67.74    31    10    0    1    31    49007008    49007100    8.00E-39    48.1
  42. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49341123    49340899    3.00E-33    132
  43. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49340178    49339954    3.00E-33    132
  44. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49073678    49073902    3.00E-33    132
  45. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    75    72    18    0    34    105    49049276    49049491    2.00E-31    126
  46. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    74.67    75    19    0    31    105    49023242    49023466    6.00E-31    125
  47. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    42.57    148    42    1    1    105    49056399    49056842    2.00E-27    115
  48. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    69.86    73    22    0    31    103    49012674    49012892    5.00E-25    108
  49. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    83.33    30    5    0    118    147    48999269    48999358    5.00E-09    60.5
  50. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    70    30    9    0    118    147    49008325    49008414    4.00E-06    51.6
  51. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    70    30    9    0    118    147    49050371    49050460    6.00E-06    50.8
  52. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    42.67    75    37    2    31    105    207465    207671    8.00E-10    63.2
  53. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    42.67    75    37    2    31    105    193419    193625    1.00E-09    62.8
  54. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    44    75    36    2    31    105    211185    211391    3.00E-09    61.2
  55. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    44    75    36    2    31    105    214239    214445    4.00E-09    60.8
  56. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    39.19    74    39    1    31    104    209012    209215    1.00E-08    58.9
  57. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    43.84    73    35    2    33    105    217170    217370    4.00E-06    51.2
  58. ENSMEUP00000000639    gnl|UMD3.1|GK000011.2    49.33    75    38    0    72    146    650507    650283    2.00E-09    62
  59. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    65.97    144    10    1    1    105    48997711    48998142    3.00E-51    184
  60. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    88    75    9    0    31    105    49039470    49039694    3.00E-43    142
  61. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    69.44    36    11    0    1    36    49039265    49039372    3.00E-43    55.1
  62. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    78.67    75    16    0    31    105    49007223    49007447    8.00E-39    134
  63. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    67.74    31    10    0    1    31    49007008    49007100    8.00E-39    48.1
  64. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49341123    49340899    3.00E-33    132
  65. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49340178    49339954    3.00E-33    132
  66. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    81.33    75    14    0    31    105    49073678    49073902    3.00E-33    132
  67. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    75    72    18    0    34    105    49049276    49049491    2.00E-31    126
  68. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    74.67    75    19    0    31    105    49023242    49023466    6.00E-31    125
  69. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    42.57    148    42    1    1    105    49056399    49056842    2.00E-27    115
  70. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    69.86    73    22    0    31    103    49012674    49012892    5.00E-25    108
  71. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    83.33    30    5    0    118    147    48999269    48999358    5.00E-09    60.5
  72. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    70    30    9    0    118    147    49008325    49008414    4.00E-06    51.6
  73. ENSMEUP00000000639    gnl|UMD3.1|GK000015.2    70    30    9    0    118    147    49050371    49050460    6.00E-06    50.8
  74. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    42.67    75    37    2    31    105    207465    207671    8.00E-10    63.2
  75. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    42.67    75    37    2    31    105    193419    193625    1.00E-09    62.8
  76. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    44    75    36    2    31    105    211185    211391    3.00E-09    61.2
  77. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    44    75    36    2    31    105    214239    214445    4.00E-09    60.8
  78. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    39.19    74    39    1    31    104    209012    209215    1.00E-08    58.9
  79. ENSMEUP00000000639    gnl|UMD3.1|GK000025.2    43.84    73    35    2    33    105    217170    217370    4.00E-06    51.2
  80. ENSMEUP00000000639    gnl|UMD3.1|GK000011.2    49.33    75    38    0    72    146    650507    650283    2.00E-09    62
复制代码



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP