How to resolve the algorithm Bioinformatics/Sequence mutation step by step in the FreeBASIC programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Bioinformatics/Sequence mutation step by step in the FreeBASIC programming language

Table of Contents

Problem Statement

Given a string of characters A, C, G, and T representing a DNA sequence write a routine to mutate the sequence, (string) by:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Bioinformatics/Sequence mutation step by step in the FreeBASIC programming language

Source code in the freebasic programming language

'' 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

  

You may also check:How to resolve the algorithm Repeat a string step by step in the Kotlin programming language
You may also check:How to resolve the algorithm Sort an integer array step by step in the Yorick programming language
You may also check:How to resolve the algorithm Zhang-Suen thinning algorithm step by step in the Perl programming language
You may also check:How to resolve the algorithm N'th step by step in the Insitux programming language
You may also check:How to resolve the algorithm Factorial step by step in the PHP programming language