Hello GSperlbio
I think you will find anything you need here Compare two arrays
Update: I was reading again your question and I got stack at the point where you say you want to compare every single word. The arrays that you provide us as an example contain same letters in different sequences. So I want to ask you if you mean every "letter" or every "word" to compare. The solution is completely different after.
Update 2: Maybe something like this?
#!/usr/bin/perl
use strict;
use warnings;
my @seq1 = qw(ATGC TGCT GCTA CTAA GTCA TAAC );
my @seq2 = qw(GTCA TGCT);
my $i = 0;
foreach my $array1Element (@seq1) {
foreach my $array2Element (@seq2) {
if ($array1Element eq $array2Element) {
print "Matched: " . $array1Element . " at possition " . $i . "
+ of \@seq1.\n";
}
}
$i++;
}
__END__
Matched: TGCT at possition 1 of @seq1.
Matched: GTCA at possition 4 of @seq1.
Update 3: More complicated than proposed solutions but I could not resist to play around. Maybe you like it:
Update 4: Sorry I was not printing mismatched I was printing matched. Modified the code also in sorting order. This looks better.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @seq1 = qw(ATGC TGCT GCTA CTAA TAAC );
my @seq2 = qw(GTCA);
my @AoHSeq1 = AoH(@seq1);
my @charactersSeq2 = splitStringToCharacters(@seq2);
my %seq2Hash = ArrayToHash(@charactersSeq2);
my (@result,@found) = ();
my $line;
foreach my $arrayHashNum ( 0 .. $#AoHSeq1 ) {
foreach my $key ( sort {$a<=>$b} keys %{ $AoHSeq1[$arrayHashNum] }
+ ) {
foreach my $character (values %seq2Hash) {
if ($character ne $AoHSeq1[$arrayHashNum]{$key}) {
$line = "On element: $arrayHashNum from \@seq1, character ".$c
+haracter." missmatched ".$AoHSeq1[$arrayHashNum]{$key}." form \@seq2
+at position $key";
push @found, $line;
}
}
}
push @result, @found;
}
print Dumper \@result;
sub splitStringToCharacters {
my @characters = split(//,$_[0]);
return @characters;
}
sub ArrayToHash {
my $i = 0;
my %hash = map { $i++ => $_ } @_;
return %hash;
}
sub AoH {
my @characters = ();
my @AoHCharacters = ();
my %charactersSeq = ();
foreach my $element (@_) {
@characters = splitStringToCharacters($element);
%charactersSeq = ArrayToHash(@characters);
push @AoHCharacters , {%charactersSeq};
}
return @AoHCharacters;
}
__END__
$VAR1 = [
'On element: 0 from @seq1, character C missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character T missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character G missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character C missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character A missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character G missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character A missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character C missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character T missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character G missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character C missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character A missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character G missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character A missmatched C form @s
+eq2 at position 3',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character C missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character A missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character G missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character A missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 3',
'On element: 0 from @seq1, character C missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character T missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character G missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character C missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character A missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character G missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character A missmatched C form @s
+eq2 at position 3',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character C missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character A missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character G missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character A missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 3',
'On element: 2 from @seq1, character C missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character T missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character A missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character T missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character G missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character A missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character C missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character G missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character A missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character C missmatched A form @s
+eq2 at position 3',
'On element: 2 from @seq1, character T missmatched A form @s
+eq2 at position 3',
'On element: 2 from @seq1, character G missmatched A form @s
+eq2 at position 3',
'On element: 0 from @seq1, character C missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character T missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character G missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character C missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character A missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character G missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character A missmatched C form @s
+eq2 at position 3',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character C missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character A missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character G missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character A missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 3',
'On element: 2 from @seq1, character C missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character T missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character A missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character T missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character G missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character A missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character C missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character G missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character A missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character C missmatched A form @s
+eq2 at position 3',
'On element: 2 from @seq1, character T missmatched A form @s
+eq2 at position 3',
'On element: 2 from @seq1, character G missmatched A form @s
+eq2 at position 3',
'On element: 3 from @seq1, character T missmatched C form @s
+eq2 at position 0',
'On element: 3 from @seq1, character G missmatched C form @s
+eq2 at position 0',
'On element: 3 from @seq1, character A missmatched C form @s
+eq2 at position 0',
'On element: 3 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 3 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 3 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 3 from @seq1, character C missmatched A form @s
+eq2 at position 2',
'On element: 3 from @seq1, character T missmatched A form @s
+eq2 at position 2',
'On element: 3 from @seq1, character G missmatched A form @s
+eq2 at position 2',
'On element: 3 from @seq1, character C missmatched A form @s
+eq2 at position 3',
'On element: 3 from @seq1, character T missmatched A form @s
+eq2 at position 3',
'On element: 3 from @seq1, character G missmatched A form @s
+eq2 at position 3',
'On element: 0 from @seq1, character C missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character T missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character G missmatched A form @s
+eq2 at position 0',
'On element: 0 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 0 from @seq1, character C missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character A missmatched G form @s
+eq2 at position 2',
'On element: 0 from @seq1, character T missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character G missmatched C form @s
+eq2 at position 3',
'On element: 0 from @seq1, character A missmatched C form @s
+eq2 at position 3',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 0',
'On element: 1 from @seq1, character C missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character A missmatched G form @s
+eq2 at position 1',
'On element: 1 from @seq1, character T missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character G missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character A missmatched C form @s
+eq2 at position 2',
'On element: 1 from @seq1, character C missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character G missmatched T form @s
+eq2 at position 3',
'On element: 1 from @seq1, character A missmatched T form @s
+eq2 at position 3',
'On element: 2 from @seq1, character C missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character T missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character A missmatched G form @s
+eq2 at position 0',
'On element: 2 from @seq1, character T missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character G missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character A missmatched C form @s
+eq2 at position 1',
'On element: 2 from @seq1, character C missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character G missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character A missmatched T form @s
+eq2 at position 2',
'On element: 2 from @seq1, character C missmatched A form @s
+eq2 at position 3',
'On element: 2 from @seq1, character T missmatched A form @s
+eq2 at position 3',
'On element: 2 from @seq1, character G missmatched A form @s
+eq2 at position 3',
'On element: 3 from @seq1, character T missmatched C form @s
+eq2 at position 0',
'On element: 3 from @seq1, character G missmatched C form @s
+eq2 at position 0',
'On element: 3 from @seq1, character A missmatched C form @s
+eq2 at position 0',
'On element: 3 from @seq1, character C missmatched T form @s
+eq2 at position 1',
'On element: 3 from @seq1, character G missmatched T form @s
+eq2 at position 1',
'On element: 3 from @seq1, character A missmatched T form @s
+eq2 at position 1',
'On element: 3 from @seq1, character C missmatched A form @s
+eq2 at position 2',
'On element: 3 from @seq1, character T missmatched A form @s
+eq2 at position 2',
'On element: 3 from @seq1, character G missmatched A form @s
+eq2 at position 2',
'On element: 3 from @seq1, character C missmatched A form @s
+eq2 at position 3',
'On element: 3 from @seq1, character T missmatched A form @s
+eq2 at position 3',
'On element: 3 from @seq1, character G missmatched A form @s
+eq2 at position 3',
'On element: 4 from @seq1, character C missmatched T form @s
+eq2 at position 0',
'On element: 4 from @seq1, character G missmatched T form @s
+eq2 at position 0',
'On element: 4 from @seq1, character A missmatched T form @s
+eq2 at position 0',
'On element: 4 from @seq1, character C missmatched A form @s
+eq2 at position 1',
'On element: 4 from @seq1, character T missmatched A form @s
+eq2 at position 1',
'On element: 4 from @seq1, character G missmatched A form @s
+eq2 at position 1',
'On element: 4 from @seq1, character C missmatched A form @s
+eq2 at position 2',
'On element: 4 from @seq1, character T missmatched A form @s
+eq2 at position 2',
'On element: 4 from @seq1, character G missmatched A form @s
+eq2 at position 2',
'On element: 4 from @seq1, character T missmatched C form @s
+eq2 at position 3',
'On element: 4 from @seq1, character G missmatched C form @s
+eq2 at position 3',
'On element: 4 from @seq1, character A missmatched C form @s
+eq2 at position 3'
];
Hope this helps.
Seeking for Perl wisdom...on the process of learning...not there...yet!
|