68 lines
1.8 KiB
Plaintext
68 lines
1.8 KiB
Plaintext
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
|