Bioinformatics/base count: Difference between revisions
Content added Content deleted
(Add Tcl version) |
No edit summary |
||
Line 1,441: | Line 1,441: | ||
-> A+C+G+T = 500 |
-> A+C+G+T = 500 |
||
</lang> |
</lang> |
||
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
|||
<lang Mathematica>seq = "CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATGCTCGTGCTTTCCA\ |
|||
ATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTGAGGACAAAGGTCAAGATGGAGCGCATCGAACGC\ |
|||
AATAAGGATCATTTGATGGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTTCGA\ |
|||
TTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGGTCAGTCCCAATGTGCGGGGTTTC\ |
|||
TTTTAGTACGTCGGGAGTGGTATTATATTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTT\ |
|||
AGGTTATCGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTGTCCTAAATTTGAA\ |
|||
TGGCAAACACAAATAAGATTTAGCAATTCGTGTAGACGACCGGGGACTTGCATGATGGGAGCAGCTTTGT\ |
|||
TAAACTACGAACGTAAT"; |
|||
size = 70; |
|||
parts = StringPartition[seq, UpTo[size]]; |
|||
begins = Most[Accumulate[Prepend[StringLength /@ parts, 1]]]; |
|||
ends = Rest[Accumulate[Prepend[StringLength /@ parts, 0]]]; |
|||
StringRiffle[MapThread[ToString[#1] <> "-" <> ToString[#2] <> ": " <> #3 &, {begins, ends, parts}], "\n"] |
|||
StringRiffle[#1 <> ": " <> ToString[#2] & @@@ Tally[Characters[seq]], "\n"]</lang> |
|||
{{out}} |
|||
<pre>1-70: CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATGCTCGTGCTTTCCAATTATGT |
|||
71-140: AAGCGTTCCGAGACGGGGTGGTCGATTCTGAGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGG |
|||
141-210: ATCATTTGATGGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTTCGATTCTGCT |
|||
211-280: TATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGGTCAGTCCCAATGTGCGGGGTTTCTTTTAGT |
|||
281-350: ACGTCGGGAGTGGTATTATATTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT |
|||
351-420: CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTGTCCTAAATTTGAATGGCAAA |
|||
421-490: CACAAATAAGATTTAGCAATTCGTGTAGACGACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTA |
|||
491-500: CGAACGTAAT |
|||
C: 97 |
|||
G: 119 |
|||
T: 155 |
|||
A: 129</pre> |
|||
=={{header|MATLAB}} / {{header|Octave}}== |
|||
<lang Matlab> |
|||
function r = base_count(f) |
|||
fid = fopen(f,'r'); |
|||
nn=[0,0,0,0]; |
|||
while ~feof(fid) |
|||
s = fgetl(fid); |
|||
fprintf(1,'%5d :%s\n', sum(nn), s(s=='A'|s=='C'|s=='G'|s=='T')); |
|||
nn = nn+[sum(s=='A'),sum(s=='C'),sum(s=='G'),sum(s=='T')]; |
|||
end |
|||
fclose(fid); |
|||
fprintf(1, '\nBases:\n\n A : %d\n C : %d\n G : %d\n T : %d\n', nn); |
|||
fprintf(1, '\nTotal: %d\n\n', sum(nn)); |
|||
end; |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
base_count('base_count_data.txt'); |
|||
0 :CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG |
|||
50 :CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG |
|||
100 :AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT |
|||
150 :GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT |
|||
200 :CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG |
|||
250 :TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA |
|||
300 :TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT |
|||
350 :CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG |
|||
400 :TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC |
|||
450 :GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT |
|||
Bases: |
|||
A : 129 |
|||
C : 97 |
|||
G : 119 |
|||
T : 155 |
|||
Total: 500 |
|||
</pre> |
|||
=={{header|Nim}}== |
=={{header|Nim}}== |
||
Line 1,517: | Line 1,591: | ||
TGTTAAACTA CGAACGTAAT</pre> |
TGTTAAACTA CGAACGTAAT</pre> |
||
=={{header|MATLAB}} / {{header|Octave}}== |
|||
<lang Matlab> |
|||
function r = base_count(f) |
|||
fid = fopen(f,'r'); |
|||
nn=[0,0,0,0]; |
|||
while ~feof(fid) |
|||
s = fgetl(fid); |
|||
fprintf(1,'%5d :%s\n', sum(nn), s(s=='A'|s=='C'|s=='G'|s=='T')); |
|||
nn = nn+[sum(s=='A'),sum(s=='C'),sum(s=='G'),sum(s=='T')]; |
|||
end |
|||
fclose(fid); |
|||
fprintf(1, '\nBases:\n\n A : %d\n C : %d\n G : %d\n T : %d\n', nn); |
|||
fprintf(1, '\nTotal: %d\n\n', sum(nn)); |
|||
end; |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
base_count('base_count_data.txt'); |
|||
0 :CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG |
|||
50 :CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG |
|||
100 :AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT |
|||
150 :GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT |
|||
200 :CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG |
|||
250 :TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA |
|||
300 :TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT |
|||
350 :CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG |
|||
400 :TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC |
|||
450 :GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT |
|||
Bases: |
|||
A : 129 |
|||
C : 97 |
|||
G : 119 |
|||
T : 155 |
|||
Total: 500 |
|||
</pre> |
|||
=={{header|Pascal}}== |
=={{header|Pascal}}== |