Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: How do I use the map command for this?

by kcott (Archbishop)
on Jun 20, 2022 at 08:32 UTC ( [id://11144870]=note: print w/replies, xml ) Need Help??


in reply to How do I use the map command for this?

"How do I use the map command for this?"

No idea. :-)

"I am pretty sure I need to use the map command"

Why?

In the code below, I simplified the data so that it's easier to see what's happening. I've also jumbled it up to demonstrate the two sorts — you may not need or want either of these (biological data can be huge, so don't do any sorting unless it's absolutely necessary).

#!/usr/bin/env perl use strict; use warnings; my %res; { local $/ = "\n>"; while (my $record = <DATA>) { chomp $record; $record = substr $record, 1 if $. == 1; $record =~ s/\s*\z//m; my ($id, $anno_seq) = split /\|/, $record, 2; push @{$res{$anno_seq}}, $id; } } print '>', join('|', (sort @{$res{$_}}), $_), "\n" for sort { $res{$a}[0] cmp $res{$b}[0] } keys %res; __DATA__ >id7|anno2 GHI >id1|anno1 ABC >id6|anno1 ABC >id4|anno2 GHI >id2|anno3 DEF >id3|anno1 ABC >id5|anno1 ABC

Output:

>id1|id3|id5|id6|anno1 ABC >id2|anno3 DEF >id4|id7|anno2 GHI

— Ken

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11144870]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2024-03-28 15:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found