A Java client to invoke the BOOST REST API.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is even with eoberortner:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



The Build-OptimizatiOn Software Tools (BOOST) provide a REST API to access the following functionalities programmatically:

  • Reverse-translation of protein sequences into DNA sequences
  • Codon juggling of protein coding regions within DNA sequences
  • Verification of DNA sequences against DNA synthesis constraints
  • Modification of protein coding regions that violate DNA synthesis constraints
  • Partitioning of DNA sequences into synthesizable building blocks

The data exchanged between a client and the BOOST REST API is represented in JavaScript Object Notation (JSON). After a successful login, every request from a client to the BOOST REST API requires a JSON Web Token (JWT) in the message header.

We have developed a simple Java client that abstracts JSON data representation and the JWT-based authentication mechanism by providing a method for each functionality of the BOOST REST API.

Utilization of the BOOST Client

Instantiating the BOOST Client

As a first step, you have to instantiate the BOOSTClient class using one of the following alternatives:

  • providing your BOOST username and password.
BOOSTClient client = new BOOSTClient("your-username", "your-password");
  • providing your BOOST JSON Web Token (JWT)
BOOSTClient client = new BOOSTClient("your-BOOST-JWT");

Supported methods of the BOOST Client

  • reverseTranslate
	"./protein_sequences.fasta",    // a FASTA file containing the input sequences 
	Strategy.MostlyUsed,            // the codon selection strategy
	"./data/Ecoli.cudb",            // the codon usage table of the target host
	FileFormat.GENBANK);            // the desired output format
  • codonJuggle
	"./dna_sequence.fasta",        // a FASTA file containing the input sequences 
	true,                          // are all sequences 5'-3' protein coding sequencese exclusively  
	Strategy.MostlyUsed,           // the codon replacement strategy
	"./data/Ecoli.cudb",           // the codon usage table of the target host
	FileFormat.GENBANK);           // the desired output format


An example of invoking every supported method is provided in the DemoClient

Questions, Feature Requests, or Bug-Report?

Please contact eoberortner (at) lbl (dot) gov