RosettaCodeData/Task/Bioinformatics-base-count/FutureBasic/bioinformatics-base-count.b...

46 lines
1.4 KiB
Plaintext

window 1, @"Bioinformatics/base count"
local fn SubstringCount( string as CFStringRef, substring as CFStringRef ) as long
CFStringRef tempString = fn StringByReplacingOccurrencesOfString( string, substring, @"" )
end fn = len(string) - len(tempString)
void local fn DoIt
CFArrayRef sequence
CFStringRef string
long index = 0
long a = 0, c = 0, g = 0, t = 0
sequence = @[@"CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG",
@"CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG",
@"AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT",
@"GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT",
@"CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG",
@"TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA",
@"TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT",
@"CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG",
@"TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC",
@"GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT"]
for string in sequence
printf @"%3ld: %@",index,string
index += len(string)
a += fn SubstringCount( string, @"A" )
c += fn SubstringCount( string, @"C" )
g += fn SubstringCount( string, @"G" )
t += fn SubstringCount( string, @"T" )
next
print
printf @"A:\t\t%3ld",a
printf @"C:\t\t%3ld",c
printf @"G:\t\t%3ld",g
printf @"T:\t\t%3ld",t
printf @"\t\t---"
printf @"Total:\t%ld",a+c+g+t
end fn
fn DoIt
HandleEvents