C6 Multiplatform Demo

C6 is a JavaScript-based synthetic biology toolkit for modeling, designing, and simulating DNA construction strategies. It provides functionality for sequence manipulation, cloning simulation, annotation, oligo design, and more. This demo site illustrates how to use each part of the C6 library in live browser-based code.

C6-Seq: Sequence Utilities

Functions for cleaning, validating, reversing, and analyzing DNA sequences, as well as representing DNA molecules as structured objects that include strandedness, end chemistries, and circularity.

Live Examples


// Clean up and validate a DNA sequence
const cleaned = C6.cleanup("4201 ACAACCCCAA GGACCGCGCC");
console.log("Cleaned:", cleaned);

// Reverse complement
const rev = C6.revcomp("ACAACCCCAA");
console.log("Reverse complement:", rev);

// GC content
const gc = C6.gccontent("ACAACCCCAA");
console.log("GC content:", gc);

// Base balance
const balance = C6.basebalance("ACAACCCCAA");
console.log("Base balance:", balance);

// Max repeat
const repeat = C6.maxrepeat("AAACCCGGGTTT");
console.log("Max repeat:", repeat);

// Palindromic check
console.log("AATT is palindromic?", C6.isPalindromic("AATT"));

// Translate
console.log("Translated protein:", C6.translate("ATGGAGAACTAGGGTCTC"));

// Instantiating a double stranded circular plasmid as a Polynucleotide:
const plasmid1 = C6.plasmid("ACAACCCCAA");
console.log("Plasmid object:", plasmid1);

// Instantiating a single stranded linear oligo as a Polynucleotide:
const oligo1 = C6.oligo("ACAACCCCAA");
console.log("Oligo object:", oligo1);

// Instantiating a double stranded linear DNA:
const dsdna1 = C6.dsDNA("ACAACCCCAA");
console.log("dsDNA object:", dsdna1);

// Instantiating a double stranded linear DNA with sticky ends:
const sticky = C6.polynucleotide("ACAACCCCAA", "GATC", "-TGCA", true, false, false, "", "");
console.log("Sticky-Ended DNA object:", sticky);


  

C6-Oligos: Oligonucleotide Design

Functions for designing and evaluating oligonucleotides for synthetic biology applications, including support for standards like BioBrick, BglBrick, MoClo, and more.

Live Examples


// BglBrick oligos
const orf = "atgcatgtaagtaattttacagctggattgctattacttgtaatagcatttggcggaacataa";
console.log("BglBrick Forward:", C6.bglbrick(orf, 'F'));
console.log("BglBrick Reverse:", C6.bglbrick(orf, 'R'));

// BioBrick oligos
console.log("BioBrick Forward:", C6.biobrick(orf, true, 'F'));
console.log("BioBrick Reverse:", C6.biobrick(orf, true, 'R'));

// MoClo oligos
const ptet = "tccctatcagtgatagagattgacatccctatcagtgatagagatactgagcac";
console.log("MoClo Forward:", C6.moclo(ptet, 'P', 'F'));
console.log("MoClo Reverse:", C6.moclo(ptet, 'P', 'R'));

// Genejoin oligo
console.log("Genejoin Forward:", C6.genejoin(ptet, orf, 'F'));

// PCA synthesis oligos
const pcaseq = "ccataGAATTCATGCCGTCTGGTCGGCCACTGGGGCACCACCCCGGGCCTGAACTTCCTTCTCGCCCACATCAACCGCCTGATCGCCGATCACCAGCAGAACACCGTGTTCATCATGGGTCCTGGCCACGGCGGCCCCGGATCCatcag";
console.log("PCA oligos:", C6.pca(pcaseq));

// LCA synthesis oligos
const lcaseq = "ccataGAATTCATGCCGTCTGGTCGGCCACTGGGGCACATACACCCCGGTATGCCTGAACTTCCTTCTCGCCATACACATCAACCGCCTGATCGCCGATCACCAGCAGAACACCGTGTTCATCATGGGTCCTGGCCACGGCGGCCCCTAAGGATCCcatag";
console.log("LCA oligos:", C6.lca(lcaseq));

// RBS library
const glgS = "atggatcatagtcttaattctttaaataatttcgatttcctggcgcgtagttttgccagaatgcacgcagaaggtcgcccggtcgatattctggccgttactggtaacatggatgaagaacatagaacctggttttgcgcacgttatgcctggtattgtcaacagatgatgcaggcaagagagctggagttagagcactga";
const utr = "gccttaaaaggtatgcgataaccggaggatgtgctt";
console.log("RBS Library Forward:", C6.rbslib(glgS, utr, 'F'));
console.log("RBS Library Reverse:", C6.rbslib(glgS, utr, 'R'));
      

C6-Sim: Construction Simulation

Run full molecular simulations of cloning workflows defined in Construction Files (CFs).

Live Examples


// PCR simulation
const fwd = C6.oligo("gacttGAATTCgcggccgctTCTAGAgTCCCTATCAGTGATAGAG");
const rev = C6.oligo("catcaACTAGTaGTGCTCAGTATCTCTATCAC");
const tmpl = C6.plasmid("tccctatcagtgatagagattgacatccctatcagtgatagagatactgagcac");
console.log("PCR product:", C6.PCR(fwd, rev, tmpl));

// Golden Gate Assembly
const frag1 = C6.dsDNA("ccaaaGGTCTCAGCTTTGATCGATTCAACCTACTTCCCCTTCATAATCGGTACTAGAGACCacgac");
const frag2 = C6.dsDNA("GGTCTCATACTCAAAATTTACTGACTGGACATGGTCACCACTTAAGTAAGCTTTGAGACC");
console.log("GoldenGate product:", C6.goldengate([frag1, frag2], "BsaI"));

// Gibson Assembly
const gfrag1 = C6.dsDNA("TTGGGTGCACGAGTGGGTTACatcgaactggatctcaacagcggtaagatccttgagagttttcgccccgaagaacgttttccaatgatgagcacttttaaagttctgctatgtggcgcggtattatcccgtATTGACGCCGGGCAAGAGCAACT");
const gfrag2 = C6.dsDNA("ATTGACGCCGGGCAAGAGCAACTcggtcgccgcatacactattctcagaatgacttggttgagtactcaccagtcacagaaaagcatcttacggatggcatgacagtaagagaattatgcagtgctgccataaccatgagtgataacactgcggccaacttacttctgacaacgatcggaggaccgaaggagctaaccgcttttttgcacaacATGGGGGATCATGTAACTCg");
const gfrag3 = C6.dsDNA("ATGGGGGATCATGTAACTCgccttgatcgaaagtaaaagatgctgaagatcagTTGGGTGCACGAGTGGGTTAC");
console.log("Gibson product:", C6.gibson([gfrag1, gfrag2, gfrag3]));

// Restriction Digest
const digestTarget = C6.plasmid("AAAAAGAATTCTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGATCCGGGGG");
const digestResult = C6.digest(digestTarget, ["EcoRI", "BamHI"], 0);
console.log("Digest product:", digestResult);

// Simulate a full Construction File
const CF = {
  steps: [
    {
      operation: "PCR",
      output: "P6",
      forward_oligo: "P6libF",
      reverse_oligo: "P6libR",
      template: "pTP1"
    },
    {
      operation: "GoldenGate",
      output: "pP6",
      enzyme: "BsaI",
      dnas: ["P6"]
    },
    {
      operation: "Transform",
      dna: "pP6",
      output: "colonies"
    }
  ],
  sequences: {
    P6libF: C6.oligo("ccaaaggtctcATTATANNNNNNNNNNNNNNNNNTGTCAANNNNGAacccaggactcctcgaagtcgttcttaagacaac"),
    P6libR: C6.oligo("cagttGGTCTCAATAATNNNNNNANNNNGTtagtatttctcctcgtctacggttaactgatactc"),
    pTP1: C6.plasmid("ATTACCGCCTTTGAGTGAGCTGATACCGCTCGCCGCAGCCGAACGACCGAGCGCAGCGAGTCAGTGAGCGAGGAAGCCTGCAATGTCTGCCACGTATCGCCAGATGTTCCAGACTAGAATAAAGAAAAAGGGAGCCCATGGGCTCCCTTAATTTAAAATGGTTGTCTTAAGAACGACTTCTTTACATTTTTGCTTCCGTGTGGTATTATGGGAGCAGTAGGTCTACGGTTAACTGATACTCCCTAATACAGGAGATACTAGATGTCTTATTCAAAGCATGGCATCGTACAAGAAATGAAGACGAAATACCATATGGAAGGCAGTGTCAATGGCCATGAATTTACGATCGAAGGTGTAGGAACTGGGTACCCTTACGAAGGGAAACAGATGTCCGAATTAGTGATCATCAAGCCTGCGGGAAAACCCCTTCCATTCTCCTTTGACATACTGTCATCAGTCTTTCAATATGGAAACCGTTGCTTCACAAAGTACCCGGCAGACATGCCTGACTATTTCAAGCAAGCATTCCCAGATGGAATGTCATATGAAAGGTCATTTCTATTTGAGGATGGAGCAGTTGCTACAGCCAGCTGGAACATTCGACTCGAAGGAAATTGCTTCATCCACAAATCCATCTTTCATGGCGTAAACTTTCCCGCTGATGGACCCGTAATGAAAAAGAAGACCATTGACTGGGATAAGTCCTTCGAAAAAATGACTGTGTCTAAAGAGGTGCTAAGAGGTGACGTGACTATGTTTCTTATGCTCGAAGGAGGTGGTTCTCACAGATGCCAATTTCACTCCACTTACAAAACAGAGAAGCCGGTCACACTGCCCCCGAATCATGTCGTAGAACATCAAATTGTGAGGACCGACCTTGGCCAAAGTGCAAAAGGCTTTACAGTCAAGCTGGAAGCACATGCCGCGGCTCATGTTAACCCTTTGAAGGTTAAATAAGTTCCGGTGGAGCTCCAGCTTTTGTTCCCTTTAGTGAGGGTTAATTGCGCGCTTGGCGGCCGGCTTATCGGTCAGTTTCACCTGATTTACGTAAAAACCCGCTTCGGCGGGTTTTTGCTTTTGGAGGGGCAGAAAGATGAATGACTGTCCACGACGCTATACCCAAAAGAAATGTTCATGGTCATAGCTGTTTCCTGTGTGGTGGTAGATCCTCTACGCCGGACGCATCGTGGCCGGCATCACCGGCGCCACAGGTGCGGTTGCTGGCGCCTATATCGCCGACATCACCCAGAAATCATCCTTAGCGAAAGCTAAGGATTTTTTTTATCTGAAATTCTGCCTCGTGATACGCCTATTTTTATAGGTTAATGTCATGATAATAATGGTTTCTTAGACGTCAGGTGGCACTTTTCGGGGAAATGTGCGCGGAACCCCTATTTGTTTATTTTTCTAAATACATTCAAATATGTATCCGCTCATGAGACAATAACCCTGATAAATGCTTCAATAATATTGAAAAAGGAAGAGTATGAGTATTCAACATTTCCGTGTCGCCCTTATTCCCTTTTTTGCGGCATTTTGCCTTCCTGTTTTTGCTCACCCAGAAACGCTGGTGAAAGTAAAAGATGCTGAAGATCAGTTGGGTGCACGAGTGGGTTACATCGAACTGGATCTCAACAGCGGTAAGATCCTTGAGAGTTTTCGCCCCGAAGAACGTTTTCCAATGATGAGCACTTTTAAAGTTCTGCTATGTGGCGCGGTATTATCCCGTATTGACGCCGGGCAAGAGCAACTCGGTCGCCGCATACACTATTCTCAGAATGACTTGGTTGAGTACTCACCAGTCACAGAAAAGCATCTTACGGATGGCATGACAGTAAGAGAATTATGCAGTGCTGCCATAACCATGAGTGATAACACTGCGGCCAACTTACTTCTGACAACGATCGGAGGACCGAAGGAGCTAACCGCTTTTTTGCACAACATGGGGGATCATGTAACTCGCCTTGATCGTTGGGAACCGGAGCTGAATGAAGCCATACCAAACGACGAGCGTGACACCACGATGCCTGTAGCAATGGCAACAACGTTGCGCAAACTATTAACTGGCGAACTACTTACTCTAGCTTCCCGGCAACAATTAATAGACTGGATGGAGGCGGATAAAGTTGCAGGACCACTTCTGCGCTCGGCCCTTCCGGCTGGCTGGTTTATTGCTGATAAATCTGGAGCCGGTGAGCGTGGCTCTCGCGGTATCATTGCAGCACTGGGGCCAGATGGTAAGCCCTCCCGTATCGTAGTTATCTACACGACGGGGAGTCAGGCAACTATGGATGAACGAAATAGACAGATCGCTGAGATAGGTGCCTCACTGATTAAGCATTGGTAATTTTTTTAAGGCAGTTATTGGTGCCTACTATGGAACTGCCTCGGTGAGTTTTCTCCTTCATTACAGAAACGGCTTTTTCAAAAATATGGTATTGATAATCCTGATATGAATAAATTGCAGTTTCATTTGATGCTCGATGAGTTTTTCTAACTGAACTCTTTACAAATCTAAAATGTTTGTGACTGTATTATAAGAACAGAAATCCCCCTTACACGGAGGCATCAGTGACCAAACAGGAAAAAACCGCCCTTAACATGGCCCGCTTTATCAGAAGCCAGACATTAACGCTTCTGGAGAAACTCAACGAGCTGGACGCGGATGAACAGGCAGACATCTGTGAATCGCTTCACGACCACGCTGATGAGCTTTACCGCAGCTGCCTCGCGCGTTTCGGTGATGACGGTGAAAACCTCTGACACATGCAGCTCCCAGCAAAAGGCCAGGAACCGTAAAAAGGCCGCGTTGCTGGCGTTTTTCCATAGGCTCCGCCCCCCTGACGAGCATCACAAAAATCGACGCTCAAGTCAGAGGTGGCGAAACCCGACAGGACTATAAAGATACCAGGCGTTTCCCCCTGGAAGCTCCCTCGTGCGCTCTCCTGTTCCGACCCTGCCGCTTACCGGATACCTGTCCGCCTTTCTCCCTTCGGGAAGCGTGGCGCTTTCTCATAGCTCACGCTGTAGGTATCTCAGTTCGGTGTAGGTCGTTCGCTCCAAGCTGGGCTGTGTGCACGAACCCCCCGTTCAGCCCGACCGCTGCGCCTTATCCGGTAACTATCGTCTTGAGTCCAACCCGGTAAGACACGACTTATCGCCACTGGCAGCAGCCACTGGTAACAGGATTAGCAGAGCGAGGTATGTAGGCGGTGCTACAGAGTTCTTGAAGTGGTGGCCTAACTACGGCTACACTAGAAGGACAGTATTTGGTATCTGCGCTCTGCTGAAGCCAGTTACCTTCGGAAAAAGAGTTGGTAGCTCTTGATCCGGCAAACAAACCACCGCTGGTAGCGGTGGTTTTTTTGTTTGCAAGCAGCAGATTACGCGCAGAAAAAAAGGATCTCAAGAAGATCCTTTGATCTTTTCTACGGGGTCTGACGCTCAGTGGAACGAAAACTCACGTTAAGGGATTTTGGTCATGAGATTATCAAAAAGGATCTTCACCTAGATCCTTCG")
  }
};
console.log("Simulated CF:", C6.simCF(CF));
      

C6-Annotator: Feature Detection

Annotate sequences with biological features and infer transcriptional units and expression.

Live Example


// Load and annotate a plasmid sequence
const seq = "ATTACCGCCTTTGAGTGAGCaGATACCGCTCGCCGCAGCCGAACGACCGAGCGCAGCTTTGATCGATTCAACCTCTGATCATCACATTCTGACCCTGCTCCGGCAGGGTTTTTTGTTATCGAGTACCTAGCCTACGACGAGTCGTGATTGACATCTGGCCGATCCCAGCCTATAATCTGTCCATGAGGTGAGACTTCCCCTTCATAATCGGTACTGAGGTTGTCGTTGGTAATGAACtctagatttaagaaggagatatacatatgagtaaaggagaagctgtgattaaagagttcatgcgcttcaaagttcacatggagggttctatgaacggtcacgagttcgagatcgaaggcgaaggcgagggccgtccgtatgaaggcacccagaccgccaaactgaaagtgactaaaggcggcccgctgcctttttcctgggacatcctgagcccgcaatttatgtacggttctagggcgttcatcaaacacccagcggatatcccggactattataagcagtcttttccggaaggtttcaagtgggaacgcgtaatgaattttgaagatggtggtgccgtgaccgtcactcaggacacctccctggaggatggcaccctgatctataaagttaaactgcgtggtactaattttccacctgatggcccggtgatgcagaaaaagacgatgggttgggaggcgtctaccgaacgcttgtatccggaagatggtgtgctgaaaggcgacattaaaatggccctgcgcctgaaagatggcggccgctatctggctgacttcaaaaccacgtacaaagccaagaaacctgtgcagatgcctggcgcgtacaatgtggaccgcaaactggacatcacctctcataatgaagattatacggtggtagagcaatatgagcgctccgagggtcgtcattctaccggtggcatggatgaactatacaaataaCTTCATGTATGACCTTAAGCGCGCTTGATTCTTAGTTTCTCGTTGGGCTGCTTTAAGCAGGATGGGGATTTCTCCCCATTCATTTTATTCCCAACATCACATGGACAAGTTCGACTCTGAATTTACAGGACCAGTCCTAAATGATATAATGAATCGACTTGGTGGGCTTCCTTTATTAGCACATGTACTTTGTCGTAGTATCCCGAGTACACGAATAACATTAGTCTCCTTCGGGAGACTTTTTTTCATTTTACCAGCCACGTATCGCCAGATGTTTACATTTAATGATAATGTATTGACTGTAACAGAAGGATCTAAAATAACTCTATCAATGATAGAGTGTCAACAAAAATTAGGAATTAATGATGAGTAGATTAGATAAAAGTAAAGTGATTAACAGCGCATTAGAGCTGCTTAATGAGGTCGGAATCGAAGGTTTAAAAACCCGTAAACTCGCCCAGAAACTTGGTGTAGAGCAGCCTACATTGTATTGGCATGTAAAAAATAAGCGGGCTTTGCTCGACGCCTTAGCCATTGAGATGTTAGATAGGCACCATACTCACTTTTGCCCTTTAGAAGGGGAAAGCTGGCAAGATTTTTTACGTAATAACGCTAAAAGTTTTAGATGTGCTTTACTAAGTCATCGCGATGGAGCAAAAGTACATTTAGGTACACGGCCTACAGAAAAACAGTATGAAACTCTCGAAAATCAATTAGCCTTTTTATGCCAACAAGGTTTTTCACTAGAGAATGCATTATATGCACTCAGCGCTGTGGGGCATTTTACTTTAGGTTGCGTATTGGAAGATCAAGAGCATCAAGTCGCTAAAGAAGAAAGGGAAACACCTACTACTGATAGTATGCCGGCATTATTACGACAAGCTATCGAATTATTTGAACACCAAGGTGCAGAGCCAGCCTTCTTATTCGGCCTTGAATTGATCATATGCGGATTAGAAAAACAACTTAAATGTGAAAGTGGGTCTTAACGACTGCTCCAAGCTATCGGCTTggacataagcctgttcggttcgtaagctgtaatgcaagtagcgtatgcgctcacgcaactggtccagaaccttgaccgaacgcagcggtggtaacggcgcagtggcggttttcatggcttgttatgactgtttttttggggtacagtctatgcctcgggcatccaagcagcaagcgcgttacgccgtgggtcgatgtttgatgttatggagcagcaacgatgttacgcagcagggcagtcgccctaaaacaaagttaaacatcatgagggaagcggtgatcgccgaagtatcgactcaactatcagaggtagttggcgtcatcgagcgccatctcgaaccgacgttgctggccgtacatttgtacggctccgcagtggatggcggcctgaagccacacagtgatattgatttgctggttacggtgaccgtaaggcttgatgaaacaacgcggcgagctttgatcaacgaccttttggaaacttcggcttcccctggagagagcgagattctccgcgctgtagaagtcaccattgttgtgcacgacgacatcattccgtggcgttatccagctaagcgcgaactgcaatttggagaatggcagcgcaatgacattcttgcaggtatcttcgagccagccacgatcgacattgatctggctatcttgctgacaaaagcaagagaacatagcgttgccttggtaggtccagcggcggaggaactctttgatccggttcctgaacaggatctatttgaggcgctaaatgaaaccttaacgctatggaactcgccgcccgactgggctggcgatgagcgaaatgtagtgcttacgttgtcccgcatttggtacagcgcagtaaccggcaaaatcgcgccgaaggatgtcgctgccgactgggcaatggagcgcctgccggcccagtatcagcccgtcatacttgaagctagacaggcttatcttggacaagaagaagatcgcttggcctcgcgcgcagatcagttggaagaatttgtccactacgtgaaaggcgagatcaccaaggtagtcggcaaataatgtctaacaattcgttcaagcGCTTCCGGCTTATCGGTCAGTTTCACCTGATTTACGTAAAAACCCGCTTCGGCGGGTTTTTGCTTTTGGAGGGGCAGAAAGATGAATGACTGTCCACGACGCTATACCCAAAAGAAATGTTCATGGTCATAGCTGTTTCCTGTGTGGTGGTAGATCCTCTACGCCGGACGCATCGTGGCCGGCATCACCGGCGCCACAGGTGCGGTTGCTGGCGCCTATATCGCCGACATCACCCAGAAATCATCCTTAGCGAAAGCTAAGGATTTTTTTTATCTGAAATTCTGCCTCGTGATACgttgatgataccgctgccttactgggtgcattagccagtctgaatgacctgtcacgggataatccgaagtggtcagactggaaaatcagagggcaggaactgctgaacagcaaaaagtcagatagcaccacatagcagacccgccataaaacgccctgagaagcccgtgacgggcttttcttgtattatgggtagtttccttgcatgaatccataaaaggcgcctgtagtgccatttacccccattcactgccagagccgtgagcgcagcgaactgaatgtcacgaaaaagacagcgactcaggtgcctgatggtcggagacaaaaggaatattcagcgatttgcccgattgcggccgcaaccgagcttgcgagggtgctacttaagcctttagggttttaaggtctgttttgtagaggagcaaacagcgtttgcgacatccttttgtaatactgcggaactgactaaagtagtgagttatCcacagggctgggatctattctttttatctttttttattctttctttattctataaattataaccacttgaatataaacaaaaaaaacacacaaaggtctagcggaatttacagagggtctagcagaatttacaagttttccagcaaaggtctagcagaatttacagatacccacaactcaaaggaaaaggactagtaattatcattgactagcccatctcaattggtatagtgattaaaatcacctagaccaattgagatgtatgtctgaattagttgttttcaaagcaaatgaactagcgattagtcgctatgacttaacggagcatgaaaccaagctaattttatgctgtgtggcactactcaaccccacgattgaaaaccctacaaggaaagaacggacggtatcgttcacttataaccaatacgctcagatgatgaacatcagtagggaaaatgcttatggtgtattagctaaagcaaccagagagctgatgacgagaactgtggaaatcaggaatcctttggttaaaggctttgagattttccagtggacaaactatgccaagttctcaagcgaaaaattagaattagtttttagtgaagagatattgccttatcttttccagttaaaaaaattcataaaatataatctggaacatgttaagtcttttgaaaacaaatactctatgaggatttatgagtggttattaaaagaactaacacaaaagaaaactcacaaggcaaatatagagattagccttgatgaatttaagttcatgttaatgcttgaaaataactaccatgagtttaaaaggcttaaccaatgggttttgaaaccaataagtaaagatttaaacacttacagcaatatgaaattggtggttgataagcgaggccgcccgactgatacgttgattttccaagttgaactagatagacaaatggatctcgtaaccgaacttgagaacaaccagataaaaatgaatggtgacaaaataccaacaaccattacatcagattcctacctacgtaacggactaagaaaaacactacacgatgctttaactgcaaaaattcagctcaccagttttgaggcaaaatttttgagtgacatgcaaagtaagcatgatctcaatggttcgttctcatggctcacgcaaaaacaacgaaccacactagagaacatactggctaaatacggaaggatctgaggttcttatggctcttgtatC";
const features = C6.annotateSequence(seq);
console.log("Features:", features);

// Infer transcriptional units
const tus = C6.inferTranscriptionalUnits(features);
console.log("TUs:", tus);

// Expressed proteins
const proteins = C6.inferExpressedProteins(tus);
console.log("Expressed proteins:", proteins);

// Non-expressed CDS
const missing = C6.findNonExpressedCDS(features, proteins);
console.log("Non-expressed CDS:", missing);
      

🔬 Live Demonstration Console

Open your browser console (press F12 or Ctrl+Shift+I) to interact with the C6 library directly. All C6 modules are accessible via the global C6 object.

Try commands like:

console.log(C6.revcomp("ATGC"));
console.log(C6.plasmid("ACAACCCCAA"));