Bioinformatics/Subsequence: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) m (→{{header|11l}}) |
(Added solution for Action!) |
||
Line 65: | Line 65: | ||
26:30 |
26:30 |
||
94:98 |
94:98 |
||
</pre> |
|||
=={{header|Action!}}== |
|||
<lang Action!>DEFINE SEQLEN="200" |
|||
DEFINE SUBLEN="4" |
|||
PROC RandomSeq(CHAR ARRAY s BYTE len) |
|||
CHAR ARRAY letters="ACGT" |
|||
BYTE i |
|||
FOR i=1 TO len |
|||
DO |
|||
s(i)=letters(Rand(4)+1) |
|||
OD |
|||
s(0)=len |
|||
RETURN |
|||
PROC PrintSeq(CHAR ARRAY s) |
|||
BYTE i |
|||
FOR i=1 TO s(0) |
|||
DO |
|||
IF i MOD 20=1 THEN |
|||
IF i<10 THEN Put(32) FI |
|||
IF i<100 THEN Put(32) FI |
|||
PrintB(i) |
|||
Print(": ") |
|||
FI |
|||
Put(s(i)) |
|||
IF i MOD 20=0 THEN |
|||
PutE() |
|||
FI |
|||
OD |
|||
RETURN |
|||
BYTE FUNC StartsWith(CHAR ARRAY s,prefix BYTE start) |
|||
BYTE i |
|||
FOR i=1 TO prefix(0) |
|||
DO |
|||
IF s(start+i-1)#prefix(i) THEN |
|||
RETURN (0) |
|||
FI |
|||
OD |
|||
RETURN (1) |
|||
PROC Main() |
|||
CHAR ARRAY seq(SEQLEN+1),sub(SUBLEN+1) |
|||
BYTE i,notfirst |
|||
RandomSeq(seq,SEQLEN) |
|||
RandomSeq(sub,SUBLEN) |
|||
PrintE("Search sequence:") |
|||
PrintSeq(seq) |
|||
PutE() |
|||
PrintF("Subsequence to find: %S%E%E",sub) |
|||
PrintE("Found subsequence at positions:") |
|||
notfirst=0 |
|||
FOR i=1 TO SEQLEN-SUBLEN |
|||
DO |
|||
IF StartsWith(seq,sub,i) THEN |
|||
IF notfirst THEN |
|||
Print(", ") |
|||
FI |
|||
notfirst=1 |
|||
PrintF("%I-%I",i,i+SUBLEN-1) |
|||
FI |
|||
OD |
|||
IF notfirst=0 THEN |
|||
PrintE("Not found") |
|||
FI |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Bioinformatics_subsequence.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
Search sequence: |
|||
1: CGACTCAGGAAGGCCACGTG |
|||
21: GTAACTTCTTAGTTACCGTA |
|||
41: AGGCTAATAGCTAGCGCTGC |
|||
61: GTGACCAGGCATAGTAACCG |
|||
81: GCACGCACGTTCACCAAGGG |
|||
101: GTCCCGATGGGAGGCACGTT |
|||
121: ACTACTCCAAGAACTGTAGT |
|||
141: AAGTTACCGAAAAGTTCTCA |
|||
161: TCCTTGGGTAGTGAGTACTT |
|||
181: TGTGCTATGAAAAATAAGGA |
|||
Subsequence to find: ACGC |
|||
Found subsequence at positions: |
|||
83-86 |
|||
</pre> |
</pre> |
||