RosettaCodeData/Task/Bioinformatics-base-count/XPL0/bioinformatics-base-count.xpl0
2023-07-01 13:44:08 -04:00

35 lines
1.1 KiB
Text

char Bases;
int Counts(256), Cnt, I, Ch;
[Bases:= "
CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG
CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG
AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT
GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT
CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG
TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA
TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT
CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG
TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC
GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAATx ";
for I:= 0 to 255 do Counts(I):= 0;
Format(5, 0);
Cnt:= 0;
I:= 0;
loop [repeat Ch:= Bases(I);
I:= I+1;
if Ch = ^x then quit;
Counts(Ch):= Counts(Ch)+1;
ChOut(0, Ch);
until Ch = \LF\$0A;
RlOut(0, float(Cnt)); Text(0, ": ");
Cnt:= Cnt + 50;
];
CrLf(0); CrLf(0);
Text(0, "Base counts A: "); IntOut(0, Counts(^A));
Text(0, " C: "); IntOut(0, Counts(^C));
Text(0, " G: "); IntOut(0, Counts(^G));
Text(0, " T: "); IntOut(0, Counts(^T));
Text(0, "
Total: "); IntOut(0, Cnt); CrLf(0);
]