Bioinformatics/Subsequence: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Raku}}: Allow for later versions to work) |
(Added FreeBasic) |
||
Line 311: | Line 311: | ||
600 39 .biosub nl</syntaxhighlight> |
600 39 .biosub nl</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> 0: ATTCAAGGAC |
||
0: ATTCAAGGAC |
|||
10: CACTATTAAC |
10: CACTATTAAC |
||
20: CTGCATTGTG |
20: CTGCATTGTG |
||
Line 345: | Line 344: | ||
145..149 |
145..149 |
||
289..293 |
289..293 |
||
312..316 |
312..316</pre> |
||
⚫ | |||
=={{header|FreeBASIC}}== |
|||
{{trans|Wren}} |
|||
<syntaxhighlight lang="vb">Const base_ = "ACGT" |
|||
Sub findDnaSubsequence(dnaSize As Integer, chunkSize As Integer) |
|||
Dim As String dnaSeq(1 To dnaSize) |
|||
Dim As Integer i, chunk |
|||
For i = 1 To dnaSize |
|||
dnaSeq(i) = Mid(base_, Int(Rnd * 4)+1, 1) |
|||
Next |
|||
Dim As String dnaStr |
|||
For i = 1 To dnaSize |
|||
dnaStr += dnaSeq(i) |
|||
Next |
|||
Dim As String dnaSubseq(1 To 4) |
|||
For i = 1 To 4 |
|||
dnaSubseq(i) = Mid(base_, Int(Rnd * 4)+1, 1) |
|||
Next |
|||
Dim As String dnaSubstr |
|||
For i = 1 To 4 |
|||
dnaSubstr += dnaSubseq(i) |
|||
Next |
|||
Print "DNA sequence:" |
|||
For chunk = 1 To Len(dnaStr) Step chunkSize |
|||
Print Using "###_._.###: &"; chunk; chunk+chunkSize-1; Mid(dnaStr, chunk, chunkSize) |
|||
Next |
|||
Print !"\nSubsequence to locate: "; dnaSubstr |
|||
Dim As Integer idx = Instr(dnaStr, dnaSubstr) |
|||
Print Iif(idx <> 0, "Matches found at the following indices:", "No matches found.") |
|||
Do While idx > 0 |
|||
If idx <> 0 Then Print Using "###_._.###"; idx; idx + 3 |
|||
idx = Instr(idx+4, dnaStr, dnaSubstr) |
|||
Loop |
|||
End Sub |
|||
findDnaSubsequence(200, 20) |
|||
Print |
|||
findDnaSubsequence(600, 40) |
|||
Sleep</syntaxhighlight> |
|||
{{out}} |
|||
<pre>DNA sequence: |
|||
1.. 20: TTATAGTCTTGGAGGCATGT |
|||
21.. 40: TAACTTATGCGGAGCAGACA |
|||
41.. 60: CGGAGTATGCATTCCTCTTA |
|||
61.. 80: CCAAACGGTGCTGCCCGCGC |
|||
81..100: ACTCGCTGTATTCCGTATCG |
|||
101..120: TCACATTATCTAAACCACGA |
|||
121..140: TTTCCAGCGTGCGTGGGAAG |
|||
141..160: GCCATGTTTAGTCGGGGGCC |
|||
161..180: AAGGTCTTTGGCTTATGCTG |
|||
181..200: TTTTTTTTTCTTCGGTTACA |
|||
Subsequence to locate: ATTT |
|||
Matches found at the following indices: |
|||
120..123 |
|||
DNA sequence: |
|||
1.. 40: GTGCGGGCCGTTAGCAGCTACGAGTGCTAGATGGAACTAG |
|||
41.. 80: TCCCCGCTCCCAAATGCAAAGCGTCCCAGACCAGTCTTGA |
|||
81..120: AGCCCGTTAAATTACACCTGAACCGTTGCAAATGATCGAT |
|||
121..160: AGACGGGGTATAATAGCGGAAAACACAGGGGAACTGCATG |
|||
161..200: CAAGCTCGAGCCGCTGAAGGATGGCTCCCCCCCGAGTGTA |
|||
201..240: AGTGGATCTCGCCCAAATAGCGGGGGAACAAAGAAAGGTA |
|||
241..280: AGTCTTACTTCGCACGTCCCCTCTCATACACGCCAGGACT |
|||
281..320: AATGGATCATTCATAGGTGACGGGTGACTTGCGGTGTTTC |
|||
321..360: TAGTTGGAGTCACCCGTCAGCTTAGATCTAAGTATGAACC |
|||
361..400: GTAAGAGTTTGTAACTGCACCTTCCGTCTCTTCCTCTGTA |
|||
401..440: GGAACGCTTTTGCTTGTTATCAGATAGTGTCTCCTTATCA |
|||
441..480: TAGGACAGGTTCCTTGTGAAGGTCCACAGAGTTTGCCCGG |
|||
481..520: GGTTCGAATATACGACGCTTGTGGTTCCGGCACTATAACT |
|||
521..560: TCCGCAGTGTTGTCGACGCCCCTAGCTCCCGGGGTCTTTT |
|||
561..600: CGCTTCCCTATAGCGCGAAATGAGTGCAAGGGTACCGGCC |
|||
Subsequence to locate: GCAC |
|||
Matches found at the following indices: |
|||
252..255 |
|||
377..380 |
|||
⚫ | |||
=={{header|Go}}== |
=={{header|Go}}== |
||
{{trans|Wren}} |
{{trans|Wren}} |