Bioinformatics/Sequence mutation: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
No edit summary |
||
Line 367: | Line 367: | ||
200 : CC |
200 : CC |
||
Total count => A: 46 T: 47 G: 55 C: 54</pre> |
Total count => A: 46 T: 47 G: 55 C: 54</pre> |
||
=={{header|BBC BASIC}}== |
|||
{{works with|BBC BASIC for Windows}} |
|||
<syntaxhighlight lang="bbcbasic"> Mutations = 10 |
|||
InitialLength = 400 |
|||
@%=3 |
|||
REM Generate sequence and Pretty Print result. |
|||
FOR I%=1 TO InitialLength |
|||
Sequence$ += FNRandomBase |
|||
NEXT |
|||
PROCDisplaySequence(Sequence$, 50) |
|||
REM Make mutations and Pretty Print result. |
|||
PRINT '"Mutating..." |
|||
FOR I%=1 TO Mutations |
|||
Position = RND(LENSequence$) |
|||
CurBase$ = MID$(Sequence$, Position, 1) |
|||
NewBase$ = FNRandomBase |
|||
CASE RND(3) OF |
|||
WHEN 1 REM Change a base |
|||
PRINT "Change base " CurBase$ " at position " Position " to base " NewBase$ |
|||
MID$(Sequence$, Position, 1)=NewBase$ |
|||
WHEN 2 REM Delete a base |
|||
PRINT "Delete base " CurBase$ " at position " Position |
|||
Sequence$=LEFT$(Sequence$, Position - 1) + MID$(Sequence$, Position + 1) |
|||
WHEN 3 REM Insert a base |
|||
PRINT "Insert base " NewBase$ " at position " Position |
|||
Sequence$=LEFT$(Sequence$, Position) + NewBase$ + MID$(Sequence$, Position + 1) |
|||
ENDCASE |
|||
NEXT |
|||
PROCDisplaySequence(Sequence$, 50) |
|||
END |
|||
DEF FNRandomBase = MID$("ACGT", RND(4), 1) |
|||
DEF PROCDisplaySequence(seq$, snap%) |
|||
LOCAL a, c, g, t, i%, p% |
|||
p% = !^seq$ |
|||
FOR i%=0 TO LENseq$ - 1 |
|||
IF i% MOD snap% == 0 PRINT 'i% ": "; |
|||
VDU p%?i% |
|||
CASE p%?i% OF |
|||
WHEN ASC"A" a += 1 |
|||
WHEN ASC"C" c += 1 |
|||
WHEN ASC"G" g += 1 |
|||
WHEN ASC"T" t += 1 |
|||
ENDCASE |
|||
NEXT |
|||
PRINT ' "A: " a ' "C: " c ' "G: " g ' "T: " t |
|||
PRINT "Total: "; a + c + g + t |
|||
ENDPROC</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
0: CATGGAAGCTACGTGACTGAGGTACCCGTCGCAGGTTCGAATAAATGATA |
|||
50: CTAAAATATCGACGCTAGATACAATATAATGTCTGTAGAAAGCGTCCCTT |
|||
100: ATGTTTACATAGGAAAGTATGTGTCGGGCGCCCATGCATTTTCTTAGGCA |
|||
150: GCGGAAGCCCCGTGGCGCTCGGCCTCCGCTTTTATTACTTTTAACGTAAC |
|||
200: GAGGCGCGGGCGTTGCTTTCTTCCGGCTACCGGCGTCGCACCTAACGCCG |
|||
250: GCTGCGAATCGCGCGTTTGTAATTACAAGTTAATTACGATATGCCTCGCA |
|||
300: AGTTTTGGCTACCGCTGCCCGGATACTTGGGACGTACGGTATTTCACGCA |
|||
350: TCAACAGGTATCCCCCTCCCCTTAGTCTTCCACGACTACTTATTTGAGGG |
|||
A: 90 |
|||
C: 104 |
|||
G: 97 |
|||
T: 109 |
|||
Total: 400 |
|||
Mutating... |
|||
Delete base A at position 69 |
|||
Change base A at position 154 to base T |
|||
Delete base T at position 342 |
|||
Delete base T at position 83 |
|||
Insert base G at position 278 |
|||
Insert base G at position 336 |
|||
Delete base A at position 48 |
|||
Insert base T at position 233 |
|||
Change base T at position 233 to base C |
|||
Delete base G at position 148 |
|||
0: CATGGAAGCTACGTGACTGAGGTACCCGTCGCAGGTTCGAATAAATGTAC |
|||
50: TAAAATATCGACGCTAGTACAATATAATGTCGTAGAAAGCGTCCCTTATG |
|||
100: TTTACATAGGAAAGTATGTGTCGGGCGCCCATGCATTTTCTTAGGCACGG |
|||
150: TAGCCCCGTGGCGCTCGGCCTCCGCTTTTATTACTTTTAACGTAACGAGG |
|||
200: CGCGGGCGTTGCTTTCTTCCGGCTACCGGCGCTCGCACCTAACGCCGGCT |
|||
250: GCGAATCGCGCGTTTGTAATTACAAGTGTAATTACGATATGCCTCGCAAG |
|||
300: TTTTGGCTACCGCTGCCCGGATACTTGGGACGTACGGGTATTCACGCATC |
|||
350: AACAGGTATCCCCCTCCCCTTAGTCTTCCACGACTACTTATTTGAGGG |
|||
A: 87 |
|||
C: 105 |
|||
G: 98 |
|||
T: 108 |
|||
Total: 398</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |
||
Adenine ( A ) is always swapped for Thymine ( T ) and vice versa. Similarly with Cytosine ( C ) and Guanine ( G ). |
Adenine ( A ) is always swapped for Thymine ( T ) and vice versa. Similarly with Cytosine ( C ) and Guanine ( G ). |