[Bioperl-l] Very basic Perl/BioPerl Help
Colin Erdman
cerdman2 at du.edu
Thu Apr 14 11:41:10 EDT 2005
Sean and Stefan,
FANTASTIC, I did have my accessions loaded up as arrays and this was EXACTLY
what I was looking for (the array comparison). The diff capability in
unix/linux will be nice when I get the final code going on the production
server... just on win32 for now. Thanks very much!
Colin
-----Original Message-----
From: Sean Davis [mailto:sdavis2 at mail.nih.gov]
Sent: Thursday, April 14, 2005 9:33 AM
To: Colin Erdman
Cc: bioperl-l at portal.open-bio.org
Subject: Re: [Bioperl-l] Very basic Perl/BioPerl Help
On Apr 14, 2005, at 11:03 AM, Colin Erdman wrote:
> Hello all,
>
>
>
> I certainly pounded away at this one last night, I thought this part
> would
> be easy, but after spending so much time getting my Entrez gene data
> parsed
> etc my brain was a bit rubbery.
>
>
>
> What I am trying to do is take either A) Two fasta files with
> refseq/genbank
> data OR B) Two text files with 1 accession# per line and compare them,
> outputting only those fasta seqs or accession #'s that are not present
> in
> both.
>
> So is it easier to just use perl somehow to compare the
> two raw
> acc# text files?
>
Colin,
If you load your text files as one array for each file, you can easily
do what I think you are asking by looking here:
http://www.unix.org.ua/orelly/perl/cookbook/ch04_08.htm
> I just will need to match up those accession #'s NOT currently in our
> list
> with the appropriate Entrez Genes using gene2accession, but I am not
> sure
> how to do that either. I am assuming using a hash, but they have been
> steep
> for me in terms of learning curve, but I'd like to learn them now, I
> will
> just need some intuitive support.
Yep. Hash will do it. Read in your file grabbing the appropriate
columns and putting them in a hash like:
my %acc2genehash;
while (my $line=<INF>) {
my @params=split(/\t/,$line);
$acc2genehash{$params[1]}=$params[5];
}
Then you can do:
print $acc2genehash{'AAD12597.1'}
will give you 1246500, the gene id of that accession (from the first
line of gene2accession);
I haven't tested the above code, and you still need to do file loading,
etc., but I hope you get the point.
Sean
More information about the Bioperl-l
mailing list