Bioinformatics/Sequence mutation: Difference between revisions
Content added Content deleted
(Add Swift) |
No edit summary |
||
Line 594: | Line 594: | ||
====== |
====== |
||
</pre> |
</pre> |
||
=={{header|J}}== |
|||
<lang J>ACGT=: 'ACGT' |
|||
MUTS=: ;: 'del ins mut' |
|||
NB. generate sequence of size y of uniformly selected nucleotides. |
|||
NB. represent sequences as ints in range i.4 pretty printed. nuc |
|||
NB. defined separately to avoid fixing value inside mutation |
|||
NB. functions. |
|||
nuc=: monad : '?4' |
|||
dna=: nuc"0 @ i. |
|||
NB. randomly mutate nucleotide at a random index by deletion insertion |
|||
NB. or mutation of a nucleotide. |
|||
del=: {.,[:}.}. |
|||
ins=: {.,nuc@],}. |
|||
mut=: {.,nuc@],[:}.}. |
|||
NB. pretty print nucleotides in rows of 50 with numbering |
|||
seq=: [: (;~ [: (4&":"0) 50*i.@#) _50]\{&ACGT |
|||
sim=: monad define |
|||
'n k ws'=. y NB. initial size, mutations, and weights for mutations |
|||
ws=. (% +/) ws NB. normalize weights |
|||
A=.0$]D0=.D=. dna n NB. initial dna and history of actions |
|||
NB. k times do a random action according to weights and record it |
|||
for. i.k do. |
|||
D=.". action=. (":?#D),' ',(":MUTS{::~(+/\ws)I.?0),' D' |
|||
A=. action ; A |
|||
end. |
|||
echo 'actions';,. A-.a: |
|||
echo ('mutation';'probability') , MUTS ,. <"0 ws |
|||
('start';'end'),.(seq D0) ,: seq D |
|||
) |
|||
simulate=: (sim@(1 1 1&; &. |. ))`sim@.(3=#)</lang> |
|||
{{out}} |
|||
<pre> simulate 200 ; 10 |
|||
┌─────────┐ |
|||
│actions │ |
|||
├─────────┤ |
|||
│60 mut D │ |
|||
├─────────┤ |
|||
│156 del D│ |
|||
├─────────┤ |
|||
│44 mut D │ |
|||
├─────────┤ |
|||
│64 mut D │ |
|||
├─────────┤ |
|||
│167 mut D│ |
|||
├─────────┤ |
|||
│40 ins D │ |
|||
├─────────┤ |
|||
│39 mut D │ |
|||
├─────────┤ |
|||
│187 del D│ |
|||
├─────────┤ |
|||
│186 del D│ |
|||
├─────────┤ |
|||
│150 del D│ |
|||
└─────────┘ |
|||
┌────────┬───────────┐ |
|||
│mutation│probability│ |
|||
├────────┼───────────┤ |
|||
│del │0.333333 │ |
|||
├────────┼───────────┤ |
|||
│ins │0.333333 │ |
|||
├────────┼───────────┤ |
|||
│mut │0.333333 │ |
|||
└────────┴───────────┘ |
|||
┌─────┬────┬──────────────────────────────────────────────────┐ |
|||
│start│ 0│GGCTGTTGGCCGCCAATCTACAATGATAGCGCGTGAGGAGGGCTAATGTA│ |
|||
│ │ 50│GAGCCAATAATGGATGCTCGCGCTTCTGCTTATGCTGGTTACTGCTGCCC│ |
|||
│ │ 100│AAAAACGGGGTACATTGAGCGATAAGCCCGCAAGGTTACTGCTCGTGACA│ |
|||
│ │ 150│GTCCGAACACCACATTCGTGGTTACTCGACTCTGCCACCTCTTAGCGGAT│ |
|||
├─────┼────┼──────────────────────────────────────────────────┤ |
|||
│end │ 0│GGCTGTTGGCCGCCAATCTACAATGATAGCGCGTGAGGACCGGCAAATGT│ |
|||
│ │ 50│AGAGCCAATACTGGATGCTCGCGCTTCTGCTTATGCTGGTTACTGCTGCC│ |
|||
│ │ 100│CAAAAACGGGGTACATTGAGCGATAAGCCCGCAAGGTTACTGCTCGTGAC│ |
|||
│ │ 150│ATCCGACACCACATTCCTGGTTACTCGACTCTGCCACCTTAGCGGAT │ |
|||
└─────┴────┴──────────────────────────────────────────────────┘ |
|||
simulate 200 ; 10 ; 1 3 1 |
|||
┌─────────┐ |
|||
│actions │ |
|||
├─────────┤ |
|||
│120 ins D│ |
|||
├─────────┤ |
|||
│199 ins D│ |
|||
├─────────┤ |
|||
│138 mut D│ |
|||
├─────────┤ |
|||
│15 ins D │ |
|||
├─────────┤ |
|||
│8 del D │ |
|||
├─────────┤ |
|||
│135 ins D│ |
|||
├─────────┤ |
|||
│29 ins D │ |
|||
├─────────┤ |
|||
│118 del D│ |
|||
├─────────┤ |
|||
│111 ins D│ |
|||
├─────────┤ |
|||
│10 del D │ |
|||
└─────────┘ |
|||
┌────────┬───────────┐ |
|||
│mutation│probability│ |
|||
├────────┼───────────┤ |
|||
│del │0.2 │ |
|||
├────────┼───────────┤ |
|||
│ins │0.6 │ |
|||
├────────┼───────────┤ |
|||
│mut │0.2 │ |
|||
└────────┴───────────┘ |
|||
┌─────┬────┬──────────────────────────────────────────────────┐ |
|||
│start│ 0│GAACATACAATATCGTGTGGGTGGTAAGGTGCGCCGATTTGGCAGTGTAG│ |
|||
│ │ 50│AGCGGCCTCTGGCCGGGCCCATACTGACATATCTTTTATCTCCGTGCTAG│ |
|||
│ │ 100│CAGAAGAATCAAACGCGTCAAGATGCTGGCGCGGGCTGATATGCGCCCGG│ |
|||
│ │ 150│CAGTGGAGAACTGCGTTGATACACCTCAAAGATAAGCGGACGATATTAGC│ |
|||
├─────┼────┼──────────────────────────────────────────────────┤ |
|||
│end │ 0│GAACATACAATCGTGCTGGGTGGTAAGGTTGCGCCGATTTGGCAGTGTAG│ |
|||
│ │ 50│AGCGGCCTCTGGCCGGGCCCATACTGACATATCTTTTATCTCCGTGCTAG│ |
|||
│ │ 100│CAGAAGAATCAACACGCGTAGAGATGCTGGCGCGGGACTGATATGCGCCC│ |
|||
│ │ 150│GGCAGTGGAGAACTGCGTTGATACACCTCAAAGATAAGCGGACGATATTA│ |
|||
│ │ 200│GGC │ |
|||
└─────┴────┴──────────────────────────────────────────────────┘</pre> |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |