The program is far slower than expected and I need it to be a lot quicker. I used the Benchmark module to determine which part of the code was being soo slow and it turned out to be this bit below;
Does anyone know of a way to speed this bit of code up? It is just calculating frequencies of different base pairs in a sequence. Cheers!
if (($genome[$i] eq 'a') && ($genome[$i+1] eq 'a')) { ++$tt; } elsif (($genome[$i] eq 'a') && ($genome[$i+1] eq 'g')) { ++$ +ag; } elsif (($genome[$i] eq 'a') && ($genome[$i+1] eq 'c')) { ++$ +ac; } elsif (($genome[$i] eq 'a') && ($genome[$i+1] eq 't')) { ++$ +at; } elsif (($genome[$i] eq 't') && ($genome[$i+1] eq 'a')) { ++$ +ta; } elsif (($genome[$i] eq 't') && ($genome[$i+1] eq 'g')) { ++$ +tg; } elsif (($genome[$i] eq 't') && ($genome[$i+1] eq 'c')) { ++$ +ga; } elsif (($genome[$i] eq 't') && ($genome[$i+1] eq 't')) { ++$ +tt; } elsif (($genome[$i] eq 'c') && ($genome[$i+1] eq 'a')) { ++$ +tg; } elsif (($genome[$i] eq 'c') && ($genome[$i+1] eq 'g')) { ++$ +cg; } elsif (($genome[$i] eq 'c') && ($genome[$i+1] eq 'c')) { ++$ +cc; } elsif (($genome[$i] eq 'c') && ($genome[$i+1] eq 't')) { ++$ +ag; } elsif (($genome[$i] eq 'g') && ($genome[$i+1] eq 'a')) { ++$ +ga; } elsif (($genome[$i] eq 'g') && ($genome[$i+1] eq 'g')) { ++$ +cc; } elsif (($genome[$i] eq 'g') && ($genome[$i+1] eq 'c')) { ++$ +gc; } elsif (($genome[$i] eq 'g') && ($genome[$i+1] eq 't')) { ++$ +ac; }
In reply to how can I speed up this perl?? by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |