in reply to Alignment and matrix generation
1 A 20.0 C 0.0 G 0.0 T 0.0 2 A 0.0 C 0.0 G 0.0 T 20.0 3 A 0.0 C 0.0 G 20.0 T 0.0 4 A 0.0 C 0.0 G 20.0 T 0.0 5 A 0.0 C 0.0 G 20.0 T 0.0 ... 115 A 0.0 C 0.0 G 0.0 T 100.0 116 A 0.0 C 20.0 G 80.0 T 0.0 117 A 0.0 C 0.0 G 60.0 T 40.0 118 A 60.0 C 0.0 G 40.0 T 0.0 119 A 0.0 C 80.0 G 0.0 T 20.0 120 A 0.0 C 0.0 G 0.0 T 100.0
It was generated by the following script:
#!/usr/bin/perl use strict; use warnings; use Syntax::Construct qw{ // }; my ($startpos, $endpos, $count); my %occurrences; while (<DATA>) { if (/^\s+ ([0-9]+) \s+ ([0-9]+) \s*$/x) { ($startpos, $endpos) = ($1, $2); $count = 0; } elsif (/\s+ ([-actg]+) \s*$/x) { ++$count; my @nucleotides = split //, $1; for my $pos (0 .. $#nucleotides) { ++$occurrences{ $nucleotides[$pos] }[$startpos + $pos] unless '-' eq $nucleotides[$pos]; } } } for my $pos (1 .. $endpos) { print "$pos\t"; for my $nucleotide (sort keys %occurrences) { printf "%s\t%0.1f\t", uc $nucleotide, 100 * ($occurrences{$nucleotide}[$pos] // 0) / $count; } print "\n"; } __DATA__ CLUSTAL O(1.2.1) multiple sequence alignment 1 + 60 gnl|hbvcds|AB014370_PreC_P-A ----------------------------------- +------------------------- gnl|hbvcds|AB064314_PreC_P-A ----------------------------------- +------------------------- gnl|hbvcds|AB014384_C_P-C ----------------------------------- +------------------------- gnl|hbvcds|AB014385_C_P-C ----------------------------------- +------------------------- gnl|hbvcds|AB048701_PreS1_P-D atggggcagaatctttccaccagcaatcctctggg +attctttcccgaccatcagttggat gnl|hbvcds|AB078031_PreS1_P-D atggggcagaatctttccaccagcaaccctctggg +attctttcccgaccaccagttggat gnl|hbvcds|AB030513_S_P-A ----------------------------------- +------------------------- gnl|hbvcds|AB064314_S_P-A ----------------------------------- +------------------------- gnl|hbvcds|AB194947_PreS2_P-E ----------------------------------- +------------------------- gnl|hbvcds|AB194948_PreS2_P-E ----------------------------------- +------------------------- 61 + 120 gnl|hbvcds|AB014370_PreC_P-A tagagtctcctgagcattgctcacctcaccatact +gcactcaggcaagccattctctgct gnl|hbvcds|AB064314_PreC_P-A tagagtctcctgagcattgctcacctcaccatacg +gcactcaggcaagccattctctgct gnl|hbvcds|AB014384_C_P-C tagagtctccggaacattgttcacctcaccataca +gcactcaggcaagctattctgtgtt gnl|hbvcds|AB014385_C_P-C tagagtctccggaacattgttcacctcaccataca +gcactcaggcaagctattctgtgtt gnl|hbvcds|AB048701_PreS1_P-D gggtttttcttgttgacaagaatcctcacaatacc +gcagagtctagactcgtggtggact gnl|hbvcds|AB078031_PreS1_P-D gggtttttcttgttgacaagaatcctcacaatacc +gcagagtctagactcgtggtggact gnl|hbvcds|AB030513_S_P-A gggtttttcttgttgacaagaatcctcacaatacc +gcagagtctagactcgtggtggact gnl|hbvcds|AB064314_S_P-A gggtttttcttgttgacaagaatcctcacaatacc +gcagagtctagactcgtggtggact gnl|hbvcds|AB194947_PreS2_P-E gggtttttcttgttgacaaaaatcctcacaatacc +gcagagtctagactcgtggtggact gnl|hbvcds|AB194948_PreS2_P-E gggtttttcttgttgacaaaaatcctcacaatacc +gcagagtctagactcgtggtggact * * ** * * ****** **** +*** * * * *
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Alignment and matrix generation
by newtoperlprog (Sexton) on Mar 30, 2015 at 16:44 UTC | |
by choroba (Cardinal) on Mar 30, 2015 at 20:59 UTC | |
by newtoperlprog (Sexton) on Mar 31, 2015 at 15:45 UTC | |
by choroba (Cardinal) on Mar 31, 2015 at 15:57 UTC | |
by newtoperlprog (Sexton) on Apr 01, 2015 at 14:12 UTC |