utterlyconfused has asked for the wisdom of the Perl Monks concerning the following question:
Hi Perlmonks
This is for a bioinformatics assignment that I have to complete. I'm aware there are forums for this and I have posted there but still have no reply.
I need help with getting the output to look the way I want it. I am comparing two strings (sequences) with one across the top and the other down the side with dots printed everywhere there's a match.
The problem is that the sequences are too long to fit on one line. Is there a way, whether it be in the code itself or in the UNIX terminal, to get it to display within the terminal space. The letters don't necessarily need to be legible. It's the pattern of dots that is important. I would appreciate it if you could take a look at my code and let me know what changes I could make to achieve this.
This is for a bioinformatics assignment that I have to complete. I'm aware there are forums for this and I have posted there but still have no reply.
I need help with getting the output to look the way I want it. I am comparing two strings (sequences) with one across the top and the other down the side with dots printed everywhere there's a match.
The problem is that the sequences are too long to fit on one line. Is there a way, whether it be in the code itself or in the UNIX terminal, to get it to display within the terminal space. The letters don't necessarily need to be legible. It's the pattern of dots that is important. I would appreciate it if you could take a look at my code and let me know what changes I could make to achieve this.
#!/usr/bin/perl use strict;use warnings; my $i;my $j;my $a; open (FH1,'<', "./CAM3UCA.txt"); open (FH2,'<', "./TCH3A.txt"); my $seq1 = do { local $/; <FH1> }; my $seq2 = do { local $/; <FH2> }; my @s1=split('',$seq1); my @s2=split('',$seq2); my @matrix=(); for($i=0;$i<scalar(@s2);$i++) { for($j=0;$j<scalar(@s1);$j++) { if($s2[$i] eq $s1[$j]) { $matrix[$i][$j]="."; } else { $matrix[$i][$j]=" "; } } } #Printing matrix of dot plot open (FHOUT,">dotplot.txt") or die "cannot open outfile\n"; for($a=0;$a<scalar(@s1);$a++) { print FHOUT "$s1[$a]"; } print FHOUT "\n"; #print"\n\n"; for($i=0;$i<scalar(@s2);$i++) { print FHOUT "$s2[$i]"; for($j=0;$j<scalar(@s1);$j++) { print FHOUT "$matrix[$i][$j]"; } print FHOUT "\n"; #print"\n\n"; } close FH1; close FH2; close FHOUT;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Dot-plot help please
by biohisham (Priest) on Feb 13, 2011 at 18:15 UTC | |
Re: Dot-plot help please
by roboticus (Chancellor) on Feb 13, 2011 at 19:08 UTC |
Back to
Seekers of Perl Wisdom