DEFINE PTR="CARD" PROC PrettyPrint(PTR ARRAY data INT count,gsize,gcount) INT index,item,i,ingroup,group,a,t,c,g CHAR ARRAY s CHAR ch index=0 item=0 i=1 ingroup=0 group=0 a=0 t=0 g=0 c=0 s=data(0) DO WHILE i>s(0) DO i=1 item==+1 IF item>=count THEN EXIT FI s=data(item) OD IF item>=count THEN EXIT FI index==+1 IF group=0 AND ingroup=0 THEN IF index<10 THEN Put(32) FI IF index<100 THEN Put(32) FI PrintI(index) Print(":") FI IF ingroup=0 THEN Put(32) FI ch=s(i) i==+1 Put(ch) IF ch='A THEN a==+1 ELSEIF ch='T THEN t==+1 ELSEIF ch='C THEN c==+1 ELSEIF ch='G THEN g==+1 FI ingroup==+1 IF ingroup>=gsize THEN ingroup=0 group==+1 IF group>=gcount THEN group=0 FI FI OD PrintF("%E%EBases: A:%I, T:%I, C:%I, G:%I%E",a,t,c,g) PrintF("%ETotal: %I",a+t+g+c) RETURN PROC Main() PTR ARRAY data(10) BYTE LMARGIN=$52,oldLMARGIN oldLMARGIN=LMARGIN LMARGIN=0 ;remove left margin on the screen Put(125) PutE() ;clear the screen data(0)="CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG" data(1)="CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG" data(2)="AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT" data(3)="GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT" data(4)="CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG" data(5)="TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA" data(6)="TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT" data(7)="CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG" data(8)="TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC" data(9)="GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT" PrettyPrint(data,10,5,6) LMARGIN=oldLMARGIN ;restore left margin on the screen RETURN