function count = pattern(filename); fid = fopen(filename,'rt'); % open the file if fid < 0 error(['File ' filename ' not found']); end genome = fgetl(fid); count = 0; i=1; while i < length(genome)-6 % Look for the beginning of a gene - starts with TAC if genome(i) == 'T' & genome(i+1) == 'A' & genome(i+2) == 'C' % Look for an end of the gene - ends with ACT, ATT, ATC for j=i+3:3:length(genome)-5 if genome(j) == 'A' if genome(j+1) == 'T' if genome(j+2) == 'T' | genome(j+2) == 'C' printIt(genome,i,j); break; end elseif genome(j+1) == 'C' & genome(j+2) == 'T' printIt(genome,i,j); break; end end end i = j+3; % this goes here to prevent infinite loop if end condon else % is not found after a beginning condon i = i+3; end end end function printIt(genome,i,j); name = ['from ' num2str(i) ' to ' num2str(j+2) ' (' num2str(j+3-i) '): ']; if j+2-i > 36 for k=i:i+15 name = [name genome(k)]; end name = [name '...']; for k=j+2-15:j+2 name = [name genome(k)]; end else for k=i:j+2 name = [name genome(k)]; end end disp(name); end