Anonymous user
Bioinformatics/Sequence mutation: Difference between revisions
m
Added weighted mutations
m (Added weighted mutations) |
|||
Line 1,334:
const pad = leftPadN(4);
const print = (v, s) => console.log(`${pad(v)}:\t${s}`)
const rem = seq.reduce((p, c) => {
const s = p + c;
if (s.length === 50) {
Line 1,383:
}
// Bias the operations
const operations = [swap, del, insert];▼
const weightMap = new Map();
weightMap.set(swap, 1);
weightMap.set(del, 2);
weightMap.set(insert, 3);
const weightedOps = weightMap => {
return [...weightMap.entries()].reduce((p, [op, weight]) =>
[...p, ...(Array(weight).fill(op))], []);
};
// Create the starting sequence
Line 1,394 ⟶ 1,403:
// Mutate the sequence
const [hist, mut] = mutations.reduce((p, c, i) => c(p), [[], seq]);
console.log('ORIGINAL SEQUENCE:')
Line 1,403 ⟶ 1,412:
console.log('\nMUTATION LOG:')
hist.forEach((e, i) => console.log(`${i}:\t${e}`));
console.log('\nMUTATED SEQUENCE:')
Line 1,415 ⟶ 1,424:
<pre>
ORIGINAL SEQUENCE:
0: GTGATCGTAGCGTATCACACGTGCGGGCAGATTGCGGGGCTTCCGTAAGT
50: CTCTCGATTGGCTAAACCTAACGTATGGAGTCGGGCCTGTTCAGAACTGC
100: GCCATAACCACAAACGTCGACAGATAAAGTTCGTGAAGGGACAGGATGAG
150: ATTTTTTTCCCGGTCTGTGCTCAGGGCTTAAATTAGTGCCTTTCCCGAAT
200: GGATACCAACGATTCTGACTGGTTATTTTAATCACCTAATGCCAGTAGTC
BASE COUNTS:
A:
C: 57
G:
T:
Σ: 250
MUTATION LOG:
0:
1:
2:
3: Inserted
4:
5: Swapped
6:
7: Inserted G at
8:
9:
10:
11: Inserted
12:
13:
14:
15: Deleted
16:
17:
18:
19:
20: Inserted
21:
22:
23: Deleted
24: Deleted A at
25:
26: Inserted C at
27:
28: Inserted G at
29:
MUTATED SEQUENCE:
0: TGATCGTAGCGGTATCACACGTGCGGGCAGTTCGGGGGGCTTCCGTAAGT
50: CTCTCGATTGGCTAACACCCTAACGGTATGGAGTGCGGGCCTGTTAGACT
100: GCGCCATAATACCACAAACGTCGACAGATAAAGTTCGGTGAAGGGACAGG
150: ATTGAGATTTTGTTTCCCGGACTGTGCCAGGGCTTAAATTAGTGCCTTCC
200: CGAATGGATACCAGACGATTCTCGACTGGTTACCTTTCTAAATCACCTAA
250: TGCCAGTAGTC
MUTATED BASE COUNTS:
A:
C:
G:
T:
Σ:
</pre>
|