Bioinformatics/base count: Difference between revisions
Content added Content deleted
(added Haskell) |
(Added Wren) |
||
Line 1,038: | Line 1,038: | ||
["C": 97, "T": 155, "G": 119, "A": 129] |
["C": 97, "T": 155, "G": 119, "A": 129] |
||
Total: 500</pre> |
Total: 500</pre> |
||
=={{header|Wren}}== |
|||
{{trans|Go}} |
|||
{{libheader|Wren-fmt}} |
|||
{{libheader|Wren-sort}} |
|||
{{libheader|Wren-trait}} |
|||
<lang ecmascript>import "/fmt" for Fmt |
|||
import "/sort" for Sort |
|||
import "/trait" for Stepped |
|||
var dna = "CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG" + |
|||
"CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG" + |
|||
"AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT" + |
|||
"GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT" + |
|||
"CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG" + |
|||
"TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA" + |
|||
"TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT" + |
|||
"CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG" + |
|||
"TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC" + |
|||
"GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT" |
|||
System.print("SEQUENCE:") |
|||
var le = dna.count |
|||
for (i in Stepped.new(0...le, 50)) { |
|||
var k = i + 50 |
|||
if (k > le) k = le |
|||
System.print("%(Fmt.d(5, i)): %(dna[i...k])") |
|||
} |
|||
var baseMap = {} // allows for 'any' base |
|||
for (i in 0...le) { |
|||
var d = dna[i] |
|||
var v = baseMap[d] |
|||
baseMap[d] = !v ? 1 : v + 1 |
|||
} |
|||
var bases = baseMap.keys.toList |
|||
Sort.quick(bases) |
|||
System.print("\nBASE COUNT:") |
|||
for (base in bases) { |
|||
System.print(" %(base): %(Fmt.d(3, baseMap[base]))") |
|||
} |
|||
System.print(" ------") |
|||
System.print(" Σ: %(le)") |
|||
System.print(" ======")</lang> |
|||
{{out}} |
|||
<pre> |
|||
SEQUENCE: |
|||
0: CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG |
|||
50: CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG |
|||
100: AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT |
|||
150: GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT |
|||
200: CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG |
|||
250: TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA |
|||
300: TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT |
|||
350: CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG |
|||
400: TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC |
|||
450: GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT |
|||
BASE COUNT: |
|||
A: 129 |
|||
C: 97 |
|||
G: 119 |
|||
T: 155 |
|||
------ |
|||
Σ: 500 |
|||
====== |
|||
</pre> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |