FluffyBunny has asked for the wisdom of the Perl Monks concerning the following question:
UPDATE :My current output is like:#!/usr/bin/perl use warnings; use strict; my %bow1 = (); my $file1 = shift; open (FILE1, "$file1"); # Open first file while (<FILE1>) { my ($ID1, undef, undef, undef, $Seq1) = split; $bow1{$ID1}[0] = $ID1; $bow1{$ID1}[1] = $Seq1; } close FILE1; my %bow2 = (); my $file2 = shift; open (FILE2, "$file2"); # Open second file while (<FILE2>) { my ($ID2, undef, undef, undef, $Seq2) = split; $bow2{$ID2}[0] = $ID2; $bow2{$ID2}[1] = $Seq2; } close FILE2; for my $ID1 (keys %bow1) { for my $ID2 (keys %bow2) { if (defined $bow1{$ID1}[0] and defined $bow2{$ID2}[0]) { if ($bow1{$ID1}[0] eq $bow2{$ID2}[0]) { if ($bow1{$ID1}[1] =! $bow2{$ID2}[1] ) { print "$bow1{$ID1}[0]\t$bow1{$ID1}[1]\t$bow2{$ID2} +[0]\t$bow2{$ID2}[1]\n"; } } if ($bow1{$ID1}[0] ne $bow2{$ID2}[0]) { print "\nIDs do not match\n"; print "$bow1{$ID1}[0]\t$bow1{$ID1}[1]\t$bow2{$ID2}[0]\t$bo +w2{$ID2}[1]\n"; } } } } exit;
Input file one:IDs do not match HWUSI-EAS548:7:120:1791:800#0/1 HWUSI-EAS548:7:1:5:1566#0/1 + CCACTGTGCTCCAGACTGCGTGACAGAGTGAGACTC IDs do not match HWUSI-EAS548:7:120:1791:800#0/1 HWUSI-EAS548:7:1:5:893#0/1 + TTTGATGATTTCATTTGATTCCATTCGTTAATGATT IDs do not match HWUSI-EAS548:7:120:1791:800#0/1 HWUSI-EAS548:7:1:5:1527#0/1 + CGGAGCTTGCAGTGAGCCGAGATCGCGCTACTGCAC IDs do not match HWUSI-EAS548:7:120:1791:800#0/1 HWUSI-EAS548:7:1:4:331#0/1 + ANTGAGATACCATCTCACGCCAGTCAGACTGGCAAT IDs do not match HWUSI-EAS548:7:120:1791:800#0/1 HWUSI-EAS548:7:1:5:1098#0/1 + CTTTGCATATTTTGGATAGACACCCAGAAGTGGAAT IDs do not match HWUSI-EAS548:7:120:1791:800#0/1 HWUSI-EAS548:7:1:5:877#0/1 + AGGCCAGCAGATCACCTGAGGTTGGGAGTTCGAGAC IDs do not match HWUSI-EAS548:7:1:5:68#0/1 AATTAGCCAGGTGTGGTGGCGCATGCCTGTAATCCC + HWUSI-EAS548:7:120:1791:900#0/1 ATTCCATTCCATTCCATTCCATTCCATTCCGTTCN +G IDs do not match HWUSI-EAS548:7:1:5:68#0/1 AATTAGCCAGGTGTGGTGGCGCATGCCTGTAATCCC + HWUSI-EAS548:7:120:1791:800#0/1 TTTAAAAAAAAAAAAAAAAAAAAAAAAATAATTTN +T IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:377#0/1 + TTCCTTTCAATCATTCCCTTTGATTCCATTCAAAGG IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:1530#0/1 + TTCCTGTCGCGTCCATTCCATTCCATTTCACTCCAT IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:4:12#0/1 + CCCTGCGACTTGATNCCCTTAGCTGCTGAAGGACNC IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:1566#0/1 + CCACTGTGCTCCAGACTGCGTGACAGAGTGAGACTC IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:893#0/1 + TTTGATGATTTCATTTGATTCCATTCGTTAATGATT IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:1527#0/1 + CGGAGCTTGCAGTGAGCCGAGATCGCGCTACTGCAC IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:4:331#0/1 + ANTGAGATACCATCTCACGCCAGTCAGACTGGCAAT IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:1098#0/1 + CTTTGCATATTTTGGATAGACACCCAGAAGTGGAAT IDs do not match HWUSI-EAS548:7:1:5:68#0/1 HWUSI-EAS548:7:1:5:877#0/1 + AGGCCAGCAGATCACCTGAGGTTGGGAGTTCGAGAC IDs do not match HWUSI-EAS548:7:1:5:377#0/1 TTCCTTTCAATCATTCCCTTTGATTCCATTCAAAGG + HWUSI-EAS548:7:120:1791:900#0/1 ATTCCATTCCATTCCATTCCATTCCATTCCGTTCN +G IDs do not match HWUSI-EAS548:7:1:5:377#0/1 TTCCTTTCAATCATTCCCTTTGATTCCATTCAAAGG + HWUSI-EAS548:7:120:1791:800#0/1 TTTAAAAAAAAAAAAAAAAAAAAAAAAATAATTTN +T IDs do not match HWUSI-EAS548:7:1:5:377#0/1 TTCCTTTCAATCATTCCCTTTGATTCCATTCAAAGG + HWUSI-EAS548:7:1:5:68#0/1 AATTAGCCAGGTGTGGTGGCGCATGCCTGTAATCC +C IDs do not match HWUSI-EAS548:7:1:5:377#0/1 HWUSI-EAS548:7:1:5:1530#0/1 + TTCCTGTCGCGTCCATTCCATTCCATTTCACTCCAT IDs do not match HWUSI-EAS548:7:1:5:377#0/1 HWUSI-EAS548:7:1:4:12#0/1 + CCCTGCGACTTGATNCCCTTAGCTGCTGAAGGACNC IDs do not match HWUSI-EAS548:7:1:5:377#0/1 HWUSI-EAS548:7:1:5:1566#0/1 + CCACTGTGCTCCAGACTGCGTGACAGAGTGAGACTC IDs do not match HWUSI-EAS548:7:1:5:377#0/1 HWUSI-EAS548:7:1:5:893#0/1 + TTTGATGATTTCATTTGATTCCATTCGTTAATGATT
Input file two:HWUSI-EAS548:7:1:5:1527#0/1 + chr12 52084152 CGGAGC +TTGCAGTGAGCCGAGATCGCGCTACTGCAC a`]``_``_```TTXF_[SXU^]aQ`][ZVZVPQ\ +\ 29 HWUSI-EAS548:7:1:5:1098#0/1 + chr1 245241196 CTTTGC +ATATTTTGGATAGACACCCAGAAGTGGAAT ababbabbbbababaaaaYV`baab^aa`WXPN^a +` 0 HWUSI-EAS548:7:1:5:877#0/1 + chr13 40851377 AGGCCA +GCAGATCACCTGAGGTTGGGAGTTCGAGAC a`aaaa^aaaa`b`a`ab^_XZ`a``\`^a`]aRL +\ 1 HWUSI-EAS548:7:1:4:331#0/1 - chr13 91090676 ANTGAG +ATACCATCTCACGCCAGTCAGACTGGCAAT BB]RXZVVT]aYZYZYY``]Y]^]Y]_]`]`aa__ +a 0 34:T>N HWUSI-EAS548:7:1:4:12#0/1 + chr4 100790527 CCCTGC +GACTTGATNCCCTTAGCTGCTGAAGGACNC aaaaaa`\a```a`B`aa`]_Za]Y_]YQ[OOX`B +a 0 14:G>N,34:T>N HWUSI-EAS548:7:1:5:1530#0/1 - chr10 42117291 TTCCTG +TCGCGTCCATTCCATTCCATTTCACTCCAT XXSL]a][`aa^^aaa\_aa`]_`aaa`b^a]_aa +a 0 30:T>G,31:A>T HWUSI-EAS548:7:1:5:893#0/1 + chr16 44950626 TTTGAT +GATTTCATTTGATTCCATTCGTTAATGATT aabaYabaaa`aaa`aa`aaa_aa`aa_`Z]`]a` +^ 1 HWUSI-EAS548:7:1:5:1566#0/1 - chr1 36436440 CCACTG +TGCTCCAGACTGCGTGACAGAGTGAGACTC BBBBB\P_WR]YVa^]Z_`bba\^aaaabbab]ab +` 0 HWUSI-EAS548:7:1:5:377#0/1 - chr16 44951483 TTCCTT +TCAATCATTCCCTTTGATTCCATTCAAAGG Y]\W``Ya`Z[`^a[]``[U^a^`_[`aaab``aa +a 1 HWUSI-EAS548:7:1:5:68#0/1 + chr2 68413664 AATTAG +CCAGGTGTGGTGGCGCATGCCTGTAATCCC ``bab`bba`XPa[U[__]a`a_X^a`ZZTZOU^` +_ 233 HWUSI-EAS548:7:120:1791:926#0/1 - chr4 48846414 ATTCCA +TTCCATTCCATTCCATTCCATTCCGTTCNG `YS^a`]X_``_W`ba^[aaa``bbbaabaaa`aB +a 3 1:C>N HWUSI-EAS548:7:120:1791:800#0/1 - chr8 13214240 AAAAAA +AAAAAAAAAAAAAAAAAAAAAATAATTTNT aaaaaaaaaaa`aaaaaaaaaa`[`aaaT_[a_aB +` 0 1:C>N
HWUSI-EAS548:7:1:5:1527#0/1 + chr12 52084152 CGGAGC +TTGCAGTGAGCCGAGATCGCGCTACTGCAC a`]``_``_```TTXF_[SXU^]aQ`][ZVZVPQ\ +\ 29 HWUSI-EAS548:7:1:5:1098#0/1 + chr1 245241196 CTTTGC +ATATTTTGGATAGACACCCAGAAGTGGAAT ababbabbbbababaaaaYV`baab^aa`WXPN^a +` 0 HWUSI-EAS548:7:1:5:877#0/1 + chr13 40851377 AGGCCA +GCAGATCACCTGAGGTTGGGAGTTCGAGAC a`aaaa^aaaa`b`a`ab^_XZ`a``\`^a`]aRL +\ 1 HWUSI-EAS548:7:1:4:331#0/1 - chr13 91090676 ANTGAG +ATACCATCTCACGCCAGTCAGACTGGCAAT BB]RXZVVT]aYZYZYY``]Y]^]Y]_]`]`aa__ +a 0 34:T>N HWUSI-EAS548:7:1:4:12#0/1 + chr4 100790527 CCCTGC +GACTTGATNCCCTTAGCTGCTGAAGGACNC aaaaaa`\a```a`B`aa`]_Za]Y_]YQ[OOX`B +a 0 14:G>N,34:T>N HWUSI-EAS548:7:1:5:1530#0/1 - chr10 42117291 TTCCTG +TCGCGTCCATTCCATTCCATTTCACTCCAT XXSL]a][`aa^^aaa\_aa`]_`aaa`b^a]_aa +a 0 30:T>G,31:A>T HWUSI-EAS548:7:1:5:893#0/1 + chr16 44950626 TTTGAT +GATTTCATTTGATTCCATTCGTTAATGATT aabaYabaaa`aaa`aa`aaa_aa`aa_`Z]`]a` +^ 1 HWUSI-EAS548:7:1:5:1566#0/1 - chr1 36436440 CCACTG +TGCTCCAGACTGCGTGACAGAGTGAGACTC BBBBB\P_WR]YVa^]Z_`bba\^aaaabbab]ab +` 0 HWUSI-EAS548:7:1:5:377#0/1 - chr16 44951483 TTCCTT +TCAATCATTCCCTTTGATTCCATTCAAAGG Y]\W``Ya`Z[`^a[]``[U^a^`_[`aaab``aa +a 1 HWUSI-EAS548:7:1:5:68#0/1 + chr2 68413664 AATTAG +CCAGGTGTGGTGGCGCATGCCTGTAATCCC ``bab`bba`XPa[U[__]a`a_X^a`ZZTZOU^` +_ 233 HWUSI-EAS548:7:120:1791:900#0/1 - chr4 48846414 ATTCCA +TTCCATTCCATTCCATTCCATTCCGTTCNG `YS^a`]X_``_W`ba^[aaa``bbbaabaaa`aB +a 3 1:C>N HWUSI-EAS548:7:120:1791:800#0/1 - chr8 13214240 TTTAAA +AAAAAAAAAAAAAAAAAAAAAATAATTTNT aaaaaaaaaaa`aaaaaaaaaa`[`aaaT_[a_aB +` 0 1:C>N
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: how to compare two hashes with perl?
by BioLion (Curate) on Nov 04, 2009 at 20:32 UTC | |
by FluffyBunny (Acolyte) on Nov 04, 2009 at 21:01 UTC | |
by 7stud (Deacon) on Nov 04, 2009 at 23:22 UTC | |
by 7stud (Deacon) on Nov 04, 2009 at 23:36 UTC | |
by BioLion (Curate) on Nov 05, 2009 at 00:23 UTC | |
by FluffyBunny (Acolyte) on Nov 05, 2009 at 22:50 UTC | |
by FluffyBunny (Acolyte) on Nov 06, 2009 at 22:11 UTC | |
| |
|
Re: how to compare two hashes with perl?
by Old_Gray_Bear (Bishop) on Nov 04, 2009 at 20:58 UTC | |
by FluffyBunny (Acolyte) on Nov 04, 2009 at 21:12 UTC | |
|
Re: how to compare two hashes with perl?
by colwellj (Monk) on Nov 04, 2009 at 23:44 UTC | |
by graff (Chancellor) on Nov 05, 2009 at 08:37 UTC | |
by colwellj (Monk) on Nov 05, 2009 at 22:17 UTC |