[Bioperl-l] comparing data between hashes

Michael S. Robeson II popgen23 at mac.com
Mon Oct 25 00:15:41 EDT 2004


I guess then the next question is how do I dynamically add multiple 
values to a single key?

-Mike

On Oct 24, 2004, at 15:16, Brian Osborne wrote:

> Michael,
>
> Perhaps instead of appending to a string ($class{$position} .= "$pos" 
> . "
> ,") you could make each position a secondary key:
>
>  $class{$position}{$pos} = 1;
>
> Then comparing 2 species is a matter of looping over the secondary 
> keys and
> asking if a given key is defined in both species.
>
>
> Brian O.
>
> -----Original Message-----
> From: bioperl-l-bounces at portal.open-bio.org
> [mailto:bioperl-l-bounces at portal.open-bio.org]On Behalf Of Michael S.
> Robeson II
> Sent: Saturday, October 23, 2004 10:22 PM
> To: bioperl-l at portal.open-bio.org
> Subject: [Bioperl-l] comparing data between hashes
>
> I have a several "hash of a hashes" that look like this (sorry if my
> formating is a little off):
>
> Human => {                      # HoH for human
>         1  => [1,32,54,67]      # numbers in [ ] is a string delimited 
> by
> commas
> not separate hash values
>         2  => [14,52,74,87]
>         5  => [33,44,64,107]
> }
> Chimp => {                      # HoH for Chimp
>         1  => [1,32,67]
>         2  => [14,74,87]
>         5  => [33,44]
> }
>
> Note: The numbers in between the [ ] is a STRING delimited by commas
> and NOT separate hash values. I already have a working script that
> appends these numbers to the appropriate hash separated by a comma or
> newline like this:
>                 $class{$position} .= "$pos" . " ,";             #to 
> get:  5
> => [33,44,64,107]
>
> And I am having trouble trying to compare data. I want to compare each
> number (i.e. 1, 2, & 5) and its data with e the same number in the
> other species. For example, I would like to print out a table (see
> below) that compares the data between the group "1" in each species.
>
> Alleles for set: 1
> Allele: 1       32      54      67
> Human   1       1       1       1               # 1 = present
> Chimp   1       1       0       1               # 0 = absent
>
> And so on for 2 and 5.
>
> I can most likely do the print formating for the table myself so I do
> not need help with that. I just need help with being able to compare
> the data within each Hash of a Hash (HoH). I do not know if I should
> read this data into yet another Hash (which would be very busy) or an
> array somehow? I have been trying to figure this out all week to no
> avail.
>
> Any ideas or suggestions?
>
> - Thanks
> - Mike
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
>



More information about the Bioperl-l mailing list