Sha256: 5d0825e271a351441e31125904c45bc88f24d986f2be567e480e2f99dad3562c
Contents?: true
Size: 1000 Bytes
Versions: 132
Compression:
Stored size: 1000 Bytes
Contents
'use strict'; module.exports = translate; function translate(rnaStrand) { var proteins = []; if (rnaStrand) { for (var i = 0; i < rnaStrand.length; i += 3) { var protein = getProtein(rnaStrand.substring(i, i + 3)); if (protein) { if (protein === 'STOP') { break; } if (protein === 'INVALID') { throw new Error('Invalid codon'); } proteins.push(protein); } } } return proteins; } function getProtein(codon) { switch (codon) { case 'AUG': return 'Methionine'; case 'UUU': case 'UUC': return 'Phenylalanine'; case 'UUA': case 'UUG': return 'Leucine'; case 'UCU': case 'UCC': case 'UCA': case 'UCG': return 'Serine'; case 'UAU': case 'UAC': return 'Tyrosine'; case 'UGU': case 'UGC': return 'Cysteine'; case 'UGG': return 'Tryptophan'; case 'UAA': case 'UAG': case 'UGA': return 'STOP'; default: return 'INVALID'; } }
Version data entries
132 entries across 132 versions & 1 rubygems