Jump to content

Bioinformatics/Subsequence: Difference between revisions

m
Automated syntax highlighting fixup (second round - minor fixes)
m (syntax highlighting fixup automation)
m (Automated syntax highlighting fixup (second round - minor fixes))
Line 5:
Write a routine to find all the positions of a randomly generated subsequence   (four letters).
<br><br>
 
=={{header|11l}}==
{{trans|Python}}
 
<syntaxhighlight lang="11l">UInt32 seed = 34
F nonrandom_choice(lst)
:seed = (1664525 * :seed + 1013904223) [&] FFFF'FFFF
Line 66 ⟶ 65:
94:98
</pre>
 
=={{header|Action!}}==
<syntaxhighlight lang=Action"action!">DEFINE SEQLEN="200"
DEFINE SUBLEN="4"
 
Line 159 ⟶ 157:
83-86
</pre>
 
=={{header|Ada}}==
<syntaxhighlight lang=Ada"ada">with Ada.Text_Io;
with Ada.Strings.Fixed;
with Ada.Numerics.Discrete_Random;
Line 243 ⟶ 240:
Found at position: 371..374
Found at position: 380..383</pre>
 
=={{header|Arturo}}==
 
<syntaxhighlight lang="rebol">bases: [`A` `G` `C` `T`]
randSeq: join map 1..200 => [sample bases]
randSub: join map 1..4 => [sample bases]
Line 285 ⟶ 281:
Found subsequence at position: 71
Found subsequence at position: 169</pre>
 
=={{header|Factor}}==
{{works with|Factor|0.99 2021-02-05}}
<syntaxhighlight lang="factor">USING: accessors formatting grouping io kernel math
math.functions.integer-logs math.parser random regexp sequences ;
 
Line 352 ⟶ 347:
312..316
</pre>
 
=={{header|Go}}==
{{trans|Wren}}
<syntaxhighlight lang="go">package main
 
import (
Line 444 ⟶ 438:
388..391
</pre>
 
=={{header|jq}}==
{{works with|jq}}
Line 457 ⟶ 450:
`jot -r N MIN MAX` but a fourth argument can also be
used to specify a seed. An alternative would be to use `gshuf` along the lines of:
<syntaxhighlight lang="sh">
# For 200 pseudo-random integers in the range 0 to 3 inclusive:
gshuf -i 0-3 -r -n 200 --random-source=/dev/random
Line 463 ⟶ 456:
 
Note that the indices shown below are offsets (i.e., the index origin is taken to be 0).
<syntaxhighlight lang="sh">
#!/bin/bash
 
Line 494 ⟶ 487:
55 141 169
</pre>
 
=={{header|Julia}}==
<syntaxhighlight lang="julia">DNArand(n, bases=['A', 'T', 'C', 'G']) = String(rand(bases, n))
 
DNAsearch(needle, haystack, lap=true) = findall(needle, haystack, overlap=lap)
Line 512 ⟶ 504:
21:24 74:77 99:102
</pre>
 
=={{header|Nim}}==
<syntaxhighlight lang=Nim"nim">import random, sequtils, strutils
 
proc dnaSequence(n: Positive): string =
Line 571 ⟶ 562:
 
Subsequence found at positions: 61, 122, 170</pre>
 
=={{header|Perl}}==
<syntaxhighlight lang="perl">use strict;
use warnings;
use feature 'say';
Line 596 ⟶ 586:
TGCGAG >CCTG< TAGAGCCGGGCCTCAAATTAAACGAAAAAT
ATAAGTTTGCTTGGCACGCTGTACTACTTATCC >CCTG< ACT</pre>
 
=={{header|Phix}}==
Currently only searches for non-overlapped sequences, but it should be pretty obvious how to change that, in which case the next underline will simply partially overwrite the previous, so you'll get eg "<=<==>".
<!--<syntaxhighlight lang=Phix"phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
Line 675 ⟶ 664:
GCTA does not occur
</pre>
 
=={{header|Python}}==
 
Line 681 ⟶ 669:
{{libheader|regex}}
 
<syntaxhighlight lang="python">
from random import choice
import regex as re
Line 729 ⟶ 717:
167:171
</pre>
 
=={{header|Racket}}==
 
<syntaxhighlight lang="racket">#lang racket
 
(define (rand-seq n)
Line 796 ⟶ 783:
350 : GGCCTCGACCCAATTTAACCTCCCACTCCGTGGGTACAGCTTGAACCCCC
((245 . 248) (250 . 253) (329 . 332) (386 . 389))</pre>
 
=={{header|Raku}}==
Chances are actually pretty small that a random 4 codon string will show up at all in a random 200 codon sequence. Bump up the sequence size to get a reasonable chance of multiple matches.
<syntaxhighlight lang="raku" line>use String::Splice:ver<0.0.3>;
 
my $line = 80;
Line 839 ⟶ 825:
AGTACTCGACTGTTATGGTAAAAGGGCATCGTGATCGTTTATATTAATCATTGGGACAGGTGGTTAATGTCA<span style="color: #CC0000;">TAGC</span>TTAG<br>
</div>
 
=={{header|REXX}}==
This REXX version allows the user to specify:
Line 849 ⟶ 834:
:* &nbsp; DNA proteins to be searched in the data &nbsp; &nbsp; &nbsp; &nbsp; (the default is four unique random proteins).
:* &nbsp; the seed for the RANDOM function so runs can be repeated with the same data &nbsp; &nbsp; (no default).
<syntaxhighlight lang="rexx">/*REXX pgm gens random DNA (ACGT) sequence & finds positions of a random 4─protein seq. */
parse arg totLen rndLen basePr oWidth Bevery rndDNA seed .
if totLen=='' | totLen=="," then totLen= 200 /*Not specified? Then use the default.*/
Line 931 ⟶ 916:
the random DNA proteins were found in positions: 5 6 16 69 157 158 159 340 796 797 962 963
</pre>
 
=={{header|Ring}}==
<syntaxhighlight lang="ring">
/*-----------------------------------
# Project : DNA subsequences
Line 1,186 ⟶ 1,170:
 
[https://i.imgur.com/5hhbRBK.mp4 Bioinformatics/Subsequence - video]
 
=={{header|Wren}}==
{{libheader|Wren-pattern}}
{{libheader|Wren-str}}
{{libheader|Wren-fmt}}
<syntaxhighlight lang="ecmascript">import "random" for Random
import "/pattern" for Pattern
import "/str" for Str
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.