Bioinformatics/Subsequence: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) m (FWIW, not talking proteins here) |
|||
Line 296: | Line 296: | ||
=={{header|Ring}}== |
=={{header|Ring}}== |
||
<lang ring> |
<lang ring> |
||
load "consolecolors.ring" |
|||
row = 0 |
row = 0 |
||
dnaList = [] |
dnaList = [] |
||
dnaSeq = [] |
|||
base = ["A","C","G","T"] |
base = ["A","C","G","T"] |
||
long = 20 |
long = 20 |
||
plus = 0 |
|||
see "DNA sequence:" + nl |
|||
see "DNA sequence:" + nl + nl |
|||
see " 12345678901234567890" + nl |
|||
see " " + long + ": " |
see " " + long + ": " |
||
Line 307: | Line 312: | ||
rnd = random(3)+1 |
rnd = random(3)+1 |
||
baseStr = base[rnd] |
baseStr = base[rnd] |
||
see baseStr |
see baseStr |
||
plusLine() |
|||
if (row%20) = 0 and long < 200 |
|||
long = long + 20 |
|||
see nl |
|||
if long < 100 |
|||
see " " + long + ": " |
|||
else |
|||
see "" + long + ": " |
|||
ok |
|||
ok |
|||
add(dnaList,baseStr) |
add(dnaList,baseStr) |
||
next |
next |
||
see nl+ " 12345678901234567890" + nl |
|||
strDna = list2str(dnaList) |
|||
strBase = "" |
|||
strDna = substr(strDna,nl,"") |
|||
for n = 1 to 4 |
|||
rnd = random(3)+1 |
|||
while true |
|||
strBase = strBase + base[rnd] |
|||
strBase = "" |
|||
next |
|||
for n = 1 to 4 |
|||
rnd = random(3)+1 |
|||
strBase = strBase + base[rnd] |
|||
next |
|||
ind = substr(strDna,strBase) |
|||
if ind > 0 |
|||
exit |
|||
ok |
|||
end |
|||
see "subsequence to search: " + strBase + nl |
see nl + "subsequence to search: " + strBase + nl |
||
seqok = 0 |
seqok = 0 |
||
see "start positions of subsequence : " |
|||
for n = 1 to 196 |
for n = 1 to 196 |
||
Line 339: | Line 347: | ||
next |
next |
||
if flag = 1 |
if flag = 1 |
||
add(dnaSeq,n) |
|||
seqok = 1 |
seqok = 1 |
||
see " |
see "" + n + " " |
||
ok |
ok |
||
next |
next |
||
if seqok = 0 |
if seqok = 0 |
||
see " |
see "sequence not found" + nl |
||
ok |
ok |
||
row = 0 |
|||
showDna(dnaList) |
|||
func showDna(dnaList) |
|||
long = 20 |
|||
see nl + "found subsequences:" + nl + nl |
|||
see " 12345678901234567890" + nl |
|||
see " " + long + ": " |
|||
for nr = 1 to len(dnaList) |
|||
if plus = 0 |
|||
row = row + 1 |
|||
ok |
|||
if plus = 1 |
|||
nr = nr + 3 |
|||
row = row + 1 |
|||
plusLine() |
|||
ok |
|||
ind = find(dnaSeq,nr) |
|||
if ind > 0 |
|||
for n = nr to nr + 3 |
|||
cc_print(CC_BG_DARK_RED | CC_FG_WHITE,dnaList[n]) |
|||
if n != nr |
|||
row = row + 1 |
|||
ok |
|||
plusLine() |
|||
next |
|||
plus = 1 |
|||
if (row%20) = 0 |
|||
row = row + 1 |
|||
nr = nr + 1 |
|||
ok |
|||
else |
|||
plus = 0 |
|||
see dnaList[nr] |
|||
ok |
|||
plusLine() |
|||
next |
|||
see nl+ " 12345678901234567890" + nl |
|||
func plusLine() |
|||
if (row%20) = 0 and long < 200 |
|||
long = long + 20 |
|||
see nl |
|||
if long < 100 |
|||
see " " + long + ": " |
|||
else |
|||
see "" + long + ": " |
|||
ok |
|||
ok |
|||
</lang> |
</lang> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
DNA sequence: |
DNA sequence: |
||
12345678901234567890 |
|||
20: GAGTATAAAAAGCGACATAG |
|||
20: CAGTAAATAAGGAGAACAGG |
|||
40: AAGCAGGGGGGGAACAGACA |
|||
40: GATCTATCTGCGCAGTTGTT |
|||
60: ACAATTGTGAAAACTAATCA |
|||
60: CAAATCAAGAGGAAAAAGTT |
|||
80: ATACGGAAAAGGATAAACAT |
|||
80: AAATCCAACACGGTAGGATG |
|||
100: GAGGGACTGCGGTTGGTAGG |
|||
100: CATTGAAAGGTTGCGTAAGA |
|||
120: CGATGAAACCTAAGAATGAA |
|||
120: AAAAAGGAGGGAAATGATCG |
|||
140: AACGAGGAAGGTGTAAAGTG |
|||
140: AAACAAAGTACGTCAATTAG |
|||
160: ATGGGGTCATGGGACAGACA |
|||
160: ATGCCAAAGACCGATAAAAG |
|||
180: TAGCTAAATGGATAAAAGCG |
|||
180: GTATTAGTATTAGAGCAGCG |
|||
200: GGTGAAGTCGGTCGCAAACG |
|||
200: AATGAGGAAGACTTCGAGAA |
|||
subsequence to search: ATGA |
|||
12345678901234567890 |
|||
start position of subsequence = 79 |
|||
start position of subsequence = 103 |
|||
subsequence to search: AAGA |
|||
start position of subsequence = 116 |
|||
start positions of subsequence : 47 97 147 188 |
|||
found subsequences: |
|||
12345678901234567890 |
|||
20: CAGTAAATAAGGAGAACAGG |
|||
40: GATCTATCTGCGCAGTTGTT |
|||
60: CAAATCAAGAGGAAAAAGTT |
|||
80: AAATCCAACACGGTAGGATG |
|||
100: CATTGAAAGGTTGCGTAAGA |
|||
120: AAAAGGAGGGAAATGATCG |
|||
140: AAACAAAGTACGTCAATTAG |
|||
160: ATGCCAAAGACCGATAAAAG |
|||
180: GTATTAGTATTAGAGCAGCG |
|||
200: AATGAGGAAGACTTCGAGAA |
|||
12345678901234567890 |
|||
</pre> |
</pre> |
||