Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,67 @@
|
|||
const rowLength = 50;
|
||||
|
||||
const bases = ['A', 'C', 'G', 'T'];
|
||||
|
||||
// Create the starting sequence
|
||||
const seq = `CGTAAAAAATTACAACGTCCTTTGGCTATCTCTTAAACTCCTGCTAAATG
|
||||
CTCGTGCTTTCCAATTATGTAAGCGTTCCGAGACGGGGTGGTCGATTCTG
|
||||
AGGACAAAGGTCAAGATGGAGCGCATCGAACGCAATAAGGATCATTTGAT
|
||||
GGGACGTTTCGTCGACAAAGTCTTGTTTCGAGAGTAACGGCTACCGTCTT
|
||||
CGATTCTGCTTATAACACTATGTTCTTATGAAATGGATGTTCTGAGTTGG
|
||||
TCAGTCCCAATGTGCGGGGTTTCTTTTAGTACGTCGGGAGTGGTATTATA
|
||||
TTTAATTTTTCTATATAGCGATCTGTATTTAAGCAATTCATTTAGGTTAT
|
||||
CGCCGCGATGCTCGGTTCGGACCGCCAAGCATCTGGCTCCACTGCTAGTG
|
||||
TCCTAAATTTGAATGGCAAACACAAATAAGATTTAGCAATTCGTGTAGAC
|
||||
GACCGGGGACTTGCATGATGGGAGCAGCTTTGTTAAACTACGAACGTAAT`
|
||||
.split('')
|
||||
.filter(e => bases.includes(e))
|
||||
|
||||
/**
|
||||
* Convert the given array into an array of smaller arrays each with the length
|
||||
* given by n.
|
||||
* @param {number} n
|
||||
* @returns {function(!Array<*>): !Array<!Array<*>>}
|
||||
*/
|
||||
const chunk = n => a => a.reduce(
|
||||
(p, c, i) => (!(i % n)) ? p.push([c]) && p : p[p.length - 1].push(c) && p,
|
||||
[]);
|
||||
const toRows = chunk(rowLength);
|
||||
|
||||
/**
|
||||
* Given a number, return function that takes a string and left pads it to n
|
||||
* @param {number} n
|
||||
* @returns {function(string): string}
|
||||
*/
|
||||
const padTo = n => v => ('' + v).padStart(n, ' ');
|
||||
const pad = padTo(5);
|
||||
|
||||
/**
|
||||
* Count the number of elements that match the given value in an array
|
||||
* @param {Array<string>} arr
|
||||
* @returns {function(string): number}
|
||||
*/
|
||||
const countIn = arr => s => arr.filter(e => e === s).length;
|
||||
|
||||
/**
|
||||
* Utility logging function
|
||||
* @param {string|number} v
|
||||
* @param {string|number} n
|
||||
*/
|
||||
const print = (v, n) => console.log(`${pad(v)}:\t${n}`)
|
||||
|
||||
const prettyPrint = seq => {
|
||||
const chunks = toRows(seq);
|
||||
console.log('SEQUENCE:')
|
||||
chunks.forEach((e, i) => print(i * rowLength, e.join('')))
|
||||
}
|
||||
|
||||
const printBases = (seq, bases) => {
|
||||
const filterSeq = countIn(seq);
|
||||
const counts = bases.map(filterSeq);
|
||||
console.log('\nBASE COUNTS:')
|
||||
counts.forEach((e, i) => print(bases[i], e));
|
||||
print('Total', counts.reduce((p,c) => p + c, 0));
|
||||
}
|
||||
|
||||
prettyPrint(seq);
|
||||
printBases(seq, bases);
|
||||
Loading…
Add table
Add a link
Reference in a new issue