made with requirebin
Created
September 3, 2014 22:09
-
-
Save bmpvieira/9394f4844e5ecb6ff007 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bionode-seq | |
// docs: https://rawgit.com/bionode/bionode-seq/master/docs/bionode-seq.html | |
var seq = require('bionode-seq') | |
document.write([ | |
' 1 ' + seq.checkType("ATGACCCTGAGAA") | |
, ' 2 ' + seq.checkType("ATGACCCTGAGAAGAGCACCG") | |
, ' 3 ' + seq.checkType("AUGACCCUGAAGGUGAAUGAA") | |
, ' 4 ' + seq.checkType("MAYKSGKRPTFFEVFKAHCSDS") | |
, ' 5 ' + seq.checkType("AMTGACCCTGAGAAGAGCACCG") | |
, ' 6 ' + seq.checkType("AMUGACCCUGAAGGUGAAUGAA") | |
, ' 7 ' + seq.reverse("ATGACCCTGAAGGTGAA") | |
, ' 8 ' + seq.complement("ATGACCCTGAAGGTGAA") | |
, ' 9 ' + seq.complement("ATGACCCTGAAGGTGAA", true) | |
, '10 ' + seq.reverseComplement("ATGACCCTGAAGGTGAA") | |
, '11 ' + seq.getTranscribedBase("A") | |
, '12 ' + seq.getTranslatedAA("AUG") | |
, '13 ' + seq.removeIntrons("ATGACCCTGAAGGTGAATGACAG", [[1, 8]]) | |
, '14 ' + seq.transcribe("ATGACCCTGAAGGTGAA") | |
, '15 ' + seq.translate("ATGACCCTGAAGGTGAATGACAGGAAGCCCAAC") | |
, '16 ' + seq.translate("AUGACCCUGAAGGUGAAUGACAGGAAGCCCAAC") | |
, '17 ' + seq.translate("ATGACCCTGAAGGTGAATGACAGGAAGCC", [[3, 21]]) | |
, '18 ' + seq.reverseExons([[2,8]], 20) | |
, '19 ' + seq.findNonCanonicalSplices("GGCGGCGGCGGTGAGGTGGACCTGCGCGAATACGTGGTCGCCCTGT", [[0, 10], [20, 30]]) | |
, '20 ' + seq.checkCanonicalTranslationStartSite("ATGACCCTGAAGGT") | |
, '21 ' + seq.getReadingFrames("ATGACCCTGAAGGTGAATGACAGGAAGCCCAAC") | |
, '22 ' + seq.getOpenReadingFrames("ATGACCCTGAAGGTGAATGACAGGAAGCCCAAC") | |
, '23 ' + seq.getAllOpenReadingFrames("ATGACCCTGAAGGTGAATGACA") | |
, '24 ' + seq.findLongestOpenReadingFrame("ATGACCCTGAAGGTGAATGACA") | |
].join('<br>')) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var seq=module.exports;var _baseMatrix={A:"T",C:"G",W:"S",M:"K",R:"Y",B:"V",D:"H"};var _dnaComplementBasesMatrix=Object.create(_baseMatrix);var _rnaComplementBasesMatrix=Object.create(_baseMatrix);var _transcribeBasesMatrix=Object.create(_baseMatrix);var _translateCodonsMatrix={GCU:"A",GCC:"A",GCA:"A",GCG:"A",CGU:"R",CGC:"R",CGA:"R",CGG:"R",AGA:"R",AGG:"R",AAU:"N",AAC:"N",GAU:"D",GAC:"D",UGU:"C",UGC:"C",CAA:"Q",CAG:"Q",GAA:"E",GAG:"E",GGU:"G",GGC:"G",GGA:"G",GGG:"G",CAU:"H",CAC:"H",AUU:"I",AUC:"I",AUA:"I",UUA:"L",UUG:"L",CUU:"L",CUC:"L",CUA:"L",CUG:"L",AAA:"K",AAG:"K",AUG:"M",UUU:"F",UUC:"F",CCU:"P",CCC:"P",CCA:"P",CCG:"P",UCU:"S",UCC:"S",UCA:"S",UCG:"S",AGU:"S",AGC:"S",ACU:"T",ACC:"T",ACA:"T",ACG:"T",UGG:"W",UAU:"Y",UAC:"Y",GUU:"V",GUC:"V",GUA:"V",GUG:"V",UAA:"*",UGA:"*",UAG:"*",XAA:"X",XAC:"X",XAG:"X",XAU:"X",XCA:"X",XCC:"X",XCG:"X",XCU:"X",XGA:"X",XGC:"X",XGG:"X",XGU:"X",XUA:"X",XUC:"X",XUG:"X",XUU:"X",XAX:"X",XCX:"X",XGX:"X",XUX:"X",XXA:"X",XXC:"X",XXG:"X",XXU:"X",XXX:"X",gcu:"a",gcc:"a",gca:"a",gcg:"a",cgu:"r",cgc:"r",cga:"r",cgg:"r",aga:"r",agg:"r",aau:"n",aac:"n",gau:"d",gac:"d",ugu:"c",ugc:"c",caa:"q",cag:"q",gaa:"e",gag:"e",ggu:"g",ggc:"g",gga:"g",ggg:"g",cau:"h",cac:"h",auu:"i",auc:"i",aua:"i",uua:"l",uug:"l",cuu:"l",cuc:"l",cua:"l",cug:"l",aaa:"k",aag:"k",aug:"m",uuu:"f",uuc:"f",ccu:"p",ccc:"p",cca:"p",ccg:"p",ucu:"s",ucc:"s",uca:"s",ucg:"s",agu:"s",agc:"s",acu:"t",acc:"t",aca:"t",acg:"t",ugg:"w",uau:"y",uac:"y",guu:"v",guc:"v",gua:"v",gug:"v",uaa:"*",uga:"*",uag:"*",xaa:"x",xac:"x",xag:"x",xau:"x",xca:"x",xcc:"x",xcg:"x",xcu:"x",xga:"x",xgc:"x",xgg:"x",xgu:"x",xua:"x",xuc:"x",xug:"x",xuu:"x",xax:"x",xcx:"x",xgx:"x",xux:"x",xxa:"x",xxc:"x",xxg:"x",xxu:"x",xxx:"x"};_rnaComplementBasesMatrix["A"]="U";delete _rnaComplementBasesMatrix["T"];_transcribeBasesMatrix["A"]="U";mirrorAndLowerCaseMatrices([_dnaComplementBasesMatrix,_rnaComplementBasesMatrix,_transcribeBasesMatrix]);_transcribeBasesMatrix["T"]="A";_transcribeBasesMatrix["t"]="a";function mirrorAndLowerCaseMatrices(matricesArray){matricesArray.forEach(function(matrix){for(var k in matrix){var v=matrix[k];matrix[k.toLowerCase()]=v.toLowerCase();matrix[v]=k;matrix[v.toLowerCase()]=k.toLowerCase()}})}seq.checkType=function(sequence){var acgMatch=sequence.match(/[ACG]/i);var tMatch=sequence.match(/[T]/i);var nMatch=sequence.match(/[N]/i);var uMatch=sequence.match(/[U]/i);var potentialNucleotideMatch=sequence.match(/[WSMKRYBDHV]/i);var proteinMatch=sequence.match(/[EFIJLOPQZX\*]/i);if(proteinMatch){return"protein"}else if(acgMatch&&!potentialNucleotideMatch&&!uMatch){return"dna"}else if(acgMatch&&potentialNucleotideMatch&&!uMatch){return"ambiguousDna"}else if(acgMatch&&!potentialNucleotideMatch&&uMatch&&!tMatch){return"rna"}else if(acgMatch&&potentialNucleotideMatch&&uMatch&&!tMatch){return"ambiguousRna"}};seq.createComplementBase=function(sequenceType){var complementBasesMatrix=sequenceType==="rna"||sequenceType==="ambiguousRna"?_rnaComplementBasesMatrix:_dnaComplementBasesMatrix;var getComplementBase=function(base){var complement=complementBasesMatrix[base];return complement||base};return getComplementBase};seq.reverse=function(sequence){return sequence.split("").reverse().join("")};seq.complement=function(sequence,reverse){var reverse=reverse||false;var sequenceType=seq.checkType(sequence);var getComplementBase=seq.createComplementBase(sequenceType);if(reverse){return sequence.split("").reverse().map(getComplementBase).join("")}else{return sequence.split("").map(getComplementBase).join("")}};seq.reverseComplement=function(sequence){return seq.complement(sequence,true)};seq.getTranscribedBase=function(base){return _transcribeBasesMatrix[base]||base};seq.getTranslatedAA=function(codon){return _translateCodonsMatrix[codon]};seq.removeIntrons=function(sequence,exonsRanges){var sequenceWithoutIntrons="";var exonsRangesSorted=exonsRanges.sort(function(a,b){return a[0]-b[0]});exonsRangesSorted.forEach(function(exonRange){sequenceWithoutIntrons+=sequence.substring(exonRange[0],exonRange[1])});return sequenceWithoutIntrons};seq.transcribe=function(sequence,exonsRanges){if(exonsRanges){var sequenceWithoutIntrons=seq.removeIntrons(sequence,exonsRanges);sequence=sequenceWithoutIntrons}var sequenceType=seq.checkType(sequence);if(sequenceType==="dna"||sequenceType==="ambiguousDna"){return sequence.replace(/t/g,"u").replace(/T/g,"U")}else if(sequenceType==="rna"||sequenceType==="ambiguousRna"){return sequence.replace(/u/g,"t").replace(/U/g,"T")}};seq.translate=function(sequence,exonsRanges){if(exonsRanges){var sequenceWithoutIntrons=seq.removeIntrons(sequence,exonsRanges);sequence=sequenceWithoutIntrons}var sequenceType=seq.checkType(sequence);var rna;if(sequenceType==="protein"){return sequence}else if(sequenceType==="dna"||sequenceType==="ambiguousDna"){if(sequenceType==="ambiguousDna")sequence.replace(/[wsmkrybdhv]/g,"x").replace(/[WSMKRYBDHV]/g,"X");rna=seq.transcribe(sequence,exonsRanges)}else if(sequenceType==="rna"||sequenceType==="ambiguousRna"){if(sequenceType==="ambiguousRna")sequence.replace(/[wsmkrybdhv]/g,"x").replace(/[WSMKRYBDHV]/g,"X");rna=sequence}return rna.match(/.{1,3}/g).map(seq.getTranslatedAA).join("")};seq.reverseExons=function(exonsRanges,referenceLength){var reversedExonsRanges=[];exonsRanges.forEach(function(exonRange){var start=referenceLength-exonRange[1];var stop=referenceLength-exonRange[0];reversedExonsRanges.push([start,stop])});return reversedExonsRanges};seq.findNonCanonicalSplices=function(sequence,exonsRanges){var nonCanonicalSplices=[];var exonsRangesSorted=exonsRanges.sort(function(a,b){return a[0]-b[0]});exonsRangesSorted.forEach(checkNonCanonicalIntron);function checkNonCanonicalIntron(exonRange,i){var donor=exonRange;var acceptor=exonsRangesSorted[i+1];if(!acceptor)return null;var intronRange=[donor[1],acceptor[0]];var intronStartBases=sequence.slice(intronRange[0],intronRange[0]+2).toLowerCase().replace("t","u");var intronStopBases=sequence.slice(intronRange[1]-2,intronRange[1]).toLowerCase();if(intronStartBases!=="gu")nonCanonicalSplices.push(intronRange[0]);if(intronStopBases!=="ag")nonCanonicalSplices.push(intronRange[1])}return nonCanonicalSplices};seq.checkCanonicalTranslationStartSite=function(sequence){return sequence.substring(0,3).toLowerCase().replace("t","u")==="aug"};seq.getReadingFrames=function(sequence){var reverse=seq.reverseComplement(sequence);return[sequence,sequence.substring(1),sequence.substring(2),reverse,reverse.substring(1),reverse.substring(2)]};seq.getOpenReadingFrames=function(sequence){var sequenceType=seq.checkType(sequence);var stopCodons;if(sequenceType==="dna"||sequenceType==="ambiguousDna"){stopCodons=["TAA","TGA","TAG","taa","tga","tag"]}else if(sequenceType==="rna"||sequenceType==="ambiguousRna"){stopCodons=["UAA","UGA","UAG","uaa","uga","uag"]}var openReadingFrames=[];var openReadingFrame="";sequence.match(/.{1,3}/g).forEach(function(codon){openReadingFrame+=codon;if(stopCodons.indexOf(codon)!==-1&&openReadingFrame.length>0){openReadingFrames.push(openReadingFrame);openReadingFrame=""}});openReadingFrames.push(openReadingFrame);return openReadingFrames};seq.getAllOpenReadingFrames=function(sequence){var readingFrames=seq.getReadingFrames(sequence);var allOpenReadingFrames=readingFrames.map(seq.getOpenReadingFrames);return allOpenReadingFrames};seq.findLongestOpenReadingFrame=function(sequence,frameSymbol){var frameSymbols=["+1","+2","+3","-1","-2","-3"];if(frameSymbol){var framePosition=frameSymbols.indexOf(frameSymbol);var readingFrame=seq.getReadingFrames(sequence)[framePosition];var openReadingFrames=seq.getOpenReadingFrames(readingFrame);var longestOpenReadingFrame=getLongestOpenReadingFrame(openReadingFrames);return longestOpenReadingFrame}else{var longestOpenReadingFrames=seq.getAllOpenReadingFrames(sequence).map(getLongestOpenReadingFrame);var longestOpenReadingFrame=getLongestOpenReadingFrame(longestOpenReadingFrames.slice());var framePosition=longestOpenReadingFrames.indexOf(longestOpenReadingFrame);var frameSymbol=frameSymbols[framePosition];return[longestOpenReadingFrame,frameSymbol]}function sortReadingFrames(a,b){var aSort=a.length;var bSort=b.length;if(bSort-aSort===0){var aStartCodon=a.slice(0,3).toUpperCase().replace("T","U");var bStartCodon=b.slice(0,3).toUpperCase().replace("T","U");if(aStartCodon==="AUG"){aSort++}if(bStartCodon==="AUG"){bSort++}}return bSort-aSort}function getLongestOpenReadingFrame(array){return array.sort(sortReadingFrames)[0]}}},{}],"bionode-seq":[function(require,module,exports){module.exports=require("./lib/bionode-seq")},{"./lib/bionode-seq":1}]},{},[]);var seq=require("bionode-seq");document.write([" 1 "+seq.checkType("ATGACCCTGAGAA")," 2 "+seq.checkType("ATGACCCTGAGAAGAGCACCG")," 3 "+seq.checkType("AUGACCCUGAAGGUGAAUGAA")," 4 "+seq.checkType("MAYKSGKRPTFFEVFKAHCSDS")," 5 "+seq.checkType("AMTGACCCTGAGAAGAGCACCG")," 6 "+seq.checkType("AMUGACCCUGAAGGUGAAUGAA")," 7 "+seq.reverse("ATGACCCTGAAGGTGAA")," 8 "+seq.complement("ATGACCCTGAAGGTGAA")," 9 "+seq.complement("ATGACCCTGAAGGTGAA",true),"10 "+seq.reverseComplement("ATGACCCTGAAGGTGAA"),"11 "+seq.getTranscribedBase("A"),"12 "+seq.getTranslatedAA("AUG"),"13 "+seq.removeIntrons("ATGACCCTGAAGGTGAATGACAG",[[1,8]]),"14 "+seq.transcribe("ATGACCCTGAAGGTGAA"),"15 "+seq.translate("ATGACCCTGAAGGTGAATGACAGGAAGCCCAAC"),"16 "+seq.translate("AUGACCCUGAAGGUGAAUGACAGGAAGCCCAAC"),"17 "+seq.translate("ATGACCCTGAAGGTGAATGACAGGAAGCC",[[3,21]]),"18 "+seq.reverseExons([[2,8]],20),"19 "+seq.findNonCanonicalSplices("GGCGGCGGCGGTGAGGTGGACCTGCGCGAATACGTGGTCGCCCTGT",[[0,10],[20,30]]),"20 "+seq.checkCanonicalTranslationStartSite("ATGACCCTGAAGGT"),"21 "+seq.getReadingFrames("ATGACCCTGAAGGTGAATGACAGGAAGCCCAAC"),"22 "+seq.getOpenReadingFrames("ATGACCCTGAAGGTGAATGACAGGAAGCCCAAC"),"23 "+seq.getAllOpenReadingFrames("ATGACCCTGAAGGTGAATGACA"),"24 "+seq.findLongestOpenReadingFrame("ATGACCCTGAAGGTGAATGACA")].join("<br>")); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"bionode-seq": "0.1.1" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; } | |
body, html { height: 100%; width: 100%; }</style> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment