shragi
asked on
longest sequence...
I got the below code from expert-exchange for getting the longest sequence.... starts with atg and ends with any of 3 codens..
when i give one sequence as input it gives perfect answer ....
but when i give two sequence as inputs it's giving answer for only one sequence....
so what modifications should i do...
sample sequences:
>G7H5
AATATGATTTTGAATTTGGTTCAAAA TGAAACCGTC TCCGTTCATT GTTTTGATAT TTGCTGTTAT TATAGGCCTG TGTGGTTGTG CACCACCCAA GGCCGAAGAA ACTCAATCTG CTACGAGTAC GAAAGCCGAG TCTTCTAATG CGGGTCAGAG CGGAAATCGA TATCCACCGG TGAAGATGAA TTTTGAAAAA GTGTTTACTC CTAGTTTTTG TAAAGGTTTG CAAGATCAGC AATCAAAAAT TGAAGAACTT TCGGCAGACT TGGAGAGGTT TGAGGGTCAG GAATTGAAGT CAAATTATGG AACATATTCC GACAAAAAGG ACCATAAATA AAAATTTGTC CAGCAAAAGA TATGGTTGCA TAATAAACGC AAATATAATC ATACACGCCC AAAAAAAAAA AAAAAAAAAA AAAA
>G8C4
GGGAGTATAATCTTGAATTTGGTTCA AAATGAAACT GTCTCTGTTC ATTATTTTTT TGATATTTGC TGTTATTATA GGCCTGTGTG GTTGTGCACC ACCCAAGGCC GAAGGAACTA AATCTGGTAT GGGAACGCAA GCCGAGTCTT CTAATGCGGG TCAGAGAGGA AGTCGAAACA ATGGCATCTC ATCGGCGGAG TTGAACTTTG ACAGAATTTC TCCTGGTTTT ATTAAAGGTT TGCGTGAAGA TCAATCAGGA TATGAAAAAG TTGGAGAGAT CTTGAAGAGG GCTCAGGATC AGCAATTGAA GTCAAATTAT GGAAAATATT CCGACAAAAA GGCCCATAAT TAAAAATTTG TTCAGCAAAA AATTTGGTTG CATAATAAAC CCAAAAATAA TCATCCCCGC AAAAAAAAAA AAAAAAAAAA AAAAAA
when i give one sequence as input it gives perfect answer ....
but when i give two sequence as inputs it's giving answer for only one sequence....
so what modifications should i do...
sample sequences:
>G7H5
AATATGATTTTGAATTTGGTTCAAAA
>G8C4
GGGAGTATAATCTTGAATTTGGTTCA
#!/usr/bin/perl
use warnings;
use strict;
open INPUT,"<input.txt" or die $!;
my $name=<INPUT>;
local $/;
$_ = <INPUT>;
close INPUT;
s/\s+//g;
my $longest_str ='';
my $longest_len = 0;
open P,">possible.txt" or die $!;
while( /ATG(?=((?:...)*?(?:TAA|TAG|TGA)))/g ){
print P "ATG$1\n";
if( length $1 >$longest_len ){
$longest_str=$1;
$longest_len=length $1;
}
}
close P;
open OUTPUT,">output.fasta" or die $!;
print OUTPUT $name,"ATG",$longest_str if $longest_len;
close OUTPUT
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I need a space between them...
Just change line 27 in the script above as:
(added space before and after ATG in quotes)
print OUTPUT $name," ATG ",$longest_str,"\n" if $longest_len;
(added space before and after ATG in quotes)
print OUTPUT $name," ATG ",$longest_str,"\n" if $longest_len;
If you don't want one after the ATG then use
print OUTPUT $name," ATG",$longest_str,"\n" if $longest_len;
ASKER
Perfect..
ASKER
there is no space between name and sequence...