origenes

0.0.17 • Public • Published

Origenes

Nucleotide sequences manipulation tools.

Getting Started

Install the module with: npm install origenes

 
var Sequence = require('origenes').Sequence;
 
// Create some sequence instances
 
    var simple_seq = new Sequence('ACTG');
    /*
        { SEQ: 'ACTG', 
          LEN: 4,
          TYPE: 'DNA' }
     */
 
    var oligonucleotide = new Sequence("GTTGACCGTAGCGAGTCCG");
    /*
        { SEQ: 'GTTGACCGTAGCGAGTCCG',
          LEN: 19,
          TYPE: 'DNA',
          TM: 62,
          TA: 57 }
     */
 
    var rna = new Sequence("AUGGAACUGACUGAAGAUUGA");
    /*
        { SEQ: 'AUGGAACUGACUGAAGAUUGA', 
          LEN: 21,
          TYPE: 'RNA' }
     */
 
    var degenerate_seq = new Sequence('AN-RCTYGK');
    /*
        { SEQ: 'AN-RCTYGK',
          LEN: 9,
          TYPE: 'DNA' }
     */
 
 
// Sequence instances are immutable, their properties are constants
 
    simple_seq.SEQ = "ATATATATATA";
    simple_seq.aNewProperty = "something":
    simple_seq; 
    /*
        { SEQ: 'ACTG', 
          LEN: 4,
          TYPE: 'DNA' }
     */
 
 
// Melting and annealing temperatures are calculated for DNA oligonucleotides [18..25nt]
 
    oligonucleotide.TM; // 62  as 4*(G+C) + 2*(A+T) in °C
    oligonucleotide.TA; // 57  as (TM - 5) in °C
 
 
// Tm, Ta are not defined for sequences shorter than 18nt or longer than 25nt
 
    simple_seq.TM; // undefined
    simple_seq.TA; // undefined
 
 
// Sequence instance methods return new Sequence instances
 
    simple_seq.transcribe();
    /*
        { SEQ: 'ACUG', 
          LEN: 4,
          TYPE: 'RNA' }
     */
 
    rna.transcribe(); 
    /*
        'Error: can't transcribe RNA.' 
     */
 
    simple_seq.reverse();
    /*
        { SEQ: 'GTCA', 
          LEN: 4,
          TYPE: 'DNA' }
     */
 
    simple_seq.complement(); 
    /*
        { SEQ: 'TGAC', 
          LEN: 4,
          TYPE: 'DNA' }
     */
 
    degenerate_seq.complement(); 
    /* 
        { SEQ: 'TN-YGARCN',
          LEN: 9,
          TYPE: 'DNA' }
    */ 
 
    rna.complement(); 
    /*
        { SEQ: 'UACCUUGACUGACUUCUAACU', 
          LEN: 21,
          TYPE: 'RNA' }
     */
 
 
// Instance methods are chainable
 
    simple_seq.reverse().complement(); 
    /*
        { SEQ: 'CAGT', 
          LEN: 4,
          TYPE: 'DNA' }
     */
 
    simple_seq.SEQ == simple_seq.reverse().reverse().SEQ; // true
 
    simple_seq.reverse().complement().SEQ == simple_seq.complement().reverse().SEQ; // true
 
 
// Translate a RNA Sequence object into a new Sequence instance of type PROT
    
    rna.translate();
    /*
        { SEQ: 'MELTED*',
          LEN: 7,
          TYPE: 'PROT' }
     */
 
// translate a DNA Sequence object into new Sequence instance of type PROT
// with automatic/under the hood transcription()
 
    long_oligo.translate();
    /*
        { SEQ: 'VDRSES',
          LEN: 6,
          TYPE: 'PROT' }
     */
     

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.

Lint and test your code using Grunt.

License

Copyright (c) 2013 tripitakit
Licensed under the MIT license.

Readme

Keywords

none

Package Sidebar

Install

npm i origenes

Weekly Downloads

0

Version

0.0.17

License

none

Last publish

Collaborators

  • tripitakit