I am making a program that basically takes a string s as a single strand of DNA and returns the amino acid sequence of the longest gene it finds. Whereby, a gene is defined as a reading frame that: starts with AUG codon, ends with one of UAA,UAG, or UGA codon.
I tried making a cell of different "frames" but since they are not the same length I can't put them into an array. How do i work around this? Here's my code:
function [ptn]=Seq_transcribe2(x)y=seq_transcribe1(x);frames={};frames={x(1:end) x(2:end) x(3:end) y(1:end) y(2:end) y(3:end)};starts=[];stops=[];allorfs={};for i=1:3:numel(frames)-2 codon= frames([i i+1 i+2]) if codon=='AUG' starts(end+1)=codon;if strcmp(codon,'UAA') || strcmp(codon,'UAG') || strcmp(codon,'UGA') stops(end+1)=codon;endstops= find(stops>starts,1)lengthofthisstart=stops-startsallorfs{end+1}=frame(starts:stops-1)
Best Answer