Bioinformatics/Sequence mutation: Difference between revisions
Content added Content deleted
(→{{header|Vlang}}: Rename "Vlang" in "V (Vlang)") |
(Added FreeBasic) |
||
Line 1,094: | Line 1,094: | ||
TOTAL: 204 |
TOTAL: 204 |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
{{trans|Yabasic}} |
|||
<syntaxhighlight lang="vb">'' Rosetta Code problem: https://rosettacode.org/wiki/Bioinformatics/Sequence_mutation |
|||
'' by Jjuanhdez, 05/2023 |
|||
Randomize Timer |
|||
Dim As Integer r, i |
|||
r = Int(Rnd * (300)) |
|||
Dim Shared As String dnaS |
|||
For i = 1 To 200 + r : dnaS += Mid("ACGT", Int(Rnd * (4))+1, 1) : Next |
|||
Sub show() |
|||
Dim As Integer acgt(4), i, j, x, total |
|||
For i = 1 To Len(dnaS) |
|||
x = Instr("ACGT", Mid(dnaS, i, 1)) |
|||
acgt(x) += 1 |
|||
Next |
|||
For i = 1 To 4 : total += acgt(i) : Next |
|||
For i = 1 To Len(dnaS) Step 50 |
|||
Print i; ":"; !"\t"; |
|||
For j = 0 To 49 Step 10 |
|||
Print Mid(dnaS, i+j, 10); " "; |
|||
Next |
|||
Print |
|||
Next |
|||
Print !"\nBase counts: A:"; acgt(1); ", C:"; acgt(2); ", G:"; acgt(3); ", T:"; acgt(4); ", total:"; total |
|||
End Sub |
|||
Sub mutate() |
|||
Dim As Integer i, p |
|||
Dim As String sdiS, repS, wasS |
|||
Print |
|||
For i = 1 To 10 |
|||
p = Int(Rnd * (Len(dnaS))) + 1 |
|||
sdiS = Mid("SDI", Int(Rnd * (3)) + 1, 1) |
|||
repS = Mid("ACGT", Int(Rnd * (4)) + 1, 1) |
|||
wasS = Mid(dnaS, p, 1) |
|||
Select Case sdiS |
|||
Case "S" |
|||
Mid(dnaS, p, 1) = repS |
|||
Print "swapped "; wasS; " at "; p; " for "; repS |
|||
Case "D" |
|||
dnaS = Left(dnaS, p - 1) + Right(dnaS, Len(dnaS) - p) |
|||
Print "deleted "; wasS; " at "; p |
|||
Case "I" |
|||
dnaS = Left(dnaS, p - 1) + repS + Right(dnaS, (Len(dnaS) - p + 1)) |
|||
Print "inserted "; repS; " at "; p; ", before "; wasS |
|||
End Select |
|||
Next |
|||
Print |
|||
End Sub |
|||
show() |
|||
mutate() |
|||
show() |
|||
Sleep</syntaxhighlight> |
|||
{{out}} |
|||
<pre> 1: GAAATGATTT GTATCGAGCA GACTGGAGAA AGCACTTATT TAAGCACCGT |
|||
51: TTCAAAGCCA CTCTGTTAGG AAGCTAATCC GTAGGTACGT AGGGACGACT |
|||
101: CGATCGGACC CTTGCTTCGG TGTCTTCGTT CATCCCGGTT TCCGCGCTCA |
|||
151: GCTGCATTTT GGTCGAGCCA GGCGATCGAC AATGTTCGAC GCAATAACGC |
|||
201: GCCGGATAGG CACCTGGTGT AGTTTAGGCT GTGTCCGCTT CTGCATCTCC |
|||
251: GTTTTGAACA ATGAATTTCC ACGCGTCCAA CAGAAAGATT TGCGCCTGTC |
|||
301: TGGAGTGGTC GGAACTTAGG TATTCCGTCG TCAGTCGCGC AGAGATCAGC |
|||
351: GACCCTCTTG CTCGTGGCCC TGGACGCGTT TCCTCGTTTT AACTCGACAT |
|||
401: CCCTGACCAG CATCACTA |
|||
Base counts: A: 88, C: 112, G: 106, T: 112, total: 418 |
|||
swapped T at 246 for C |
|||
swapped T at 90 for G |
|||
inserted C at 141, before T |
|||
deleted T at 62 |
|||
swapped T at 63 for G |
|||
deleted T at 381 |
|||
deleted T at 389 |
|||
swapped T at 81 for G |
|||
inserted G at 149, before C |
|||
swapped T at 256 for T |
|||
1: GAAATGATTT GTATCGAGCA GACTGGAGAA AGCACTTATT TAAGCACCGT |
|||
51: TTCAAAGCCA CCGGTTAGGA AGCTAATCCG GAGGTACGGA GGGACGACTC |
|||
101: GATCGGACCC TTGCTTCGGT GTCTTCGTTC ATCCCGGTTC TCCGCGCTGC |
|||
151: AGCTGCATTT TGGTCGAGCC AGGCGATCGA CAATGTTCGA CGCAATAACG |
|||
201: CGCCGGATAG GCACCTGGTG TAGTTTAGGC TGTGTCCGCT TCTGCACCTC |
|||
251: CGTTTTGAAC AATGAATTTC CACGCGTCCA ACAGAAAGAT TTGCGCCTGT |
|||
301: CTGGAGTGGT CGGAACTTAG GTATTCCGTC GTCAGTCGCG CAGAGATCAG |
|||
351: CGACCCTCTT GCTCGTGGCC CTGGACGCGT TCCTCGTTTA ACTCGACATC |
|||
401: CCTGACCAGC ATCACTA |
|||
Base counts: A: 88, C: 114, G: 110, T: 105, total: 417</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |
||
<syntaxhighlight lang="go">package main |
<syntaxhighlight lang="go">package main |