antha

package module
v0.0.0-...-040724e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2019 License: BSD-3-Clause, GPL-2.0 Imports: 0 Imported by: 0

README

Antha

GoDoc Build Status

Antha v0.5

Contents:

  • Installation Instructions
    • OSX (Native)
    • Linux (Native)
    • Windows (Native)
  • Checking Your Installation
  • Making and Running Antha Elements
  • Adding Custom Equipment Drivers
    • List of Supported Interfaces
    • Connecting the Driver to Antha
  • Demo

Installation Instructions

Antha is divided into the core language and tools in this repo and protocols and elements which are in antha-lang/elements. Instructions for using both are stored here.

OSX (Native)

First step is to install or upgrade to the latest version of Go. Follow the instructions at the Golang site.

Update the GOPATH:

export GOPATH=$HOME/go >> $HOME/.bash_profile
export PATH=$PATH:$HOME/go/bin >> $HOME/.bash_profile
source ~/.bash_profile

After you install go, if you don't have Homebrew, please install it. Then, follow these steps to setup a working antha development environment:

# Install the xcode developer tools
xcode-select --install

# Install some external dependencies
brew update
brew install mercurial pkg-config glpk

# Install antha
mkdir -p ${GOPATH:-$HOME/go}/src/github.com/antha-lang
cd ${GOPATH:-$HOME/go}/src/github.com/antha-lang
git clone https://github.com/antha-lang/elements
cd elements
git submodule update --init
make
Linux (Native)

Depending on your Linux distribution, you may not have the most recent version of go available from your distribution's package repository. We recommend you download go directly.

For Debian-based distributions like Ubuntu on x86_64 machines, the installation instructions follow. If you do not use a Debian based system or if you are not using an x86_64 machine, you will have to modify these instructions by replacing the go binary with one that corresponds to your platform and replacing apt-get with your package manager.

Head to https://golang.org/dl/ to download the latest version of go.

The example below assumes this is version go1.10

# Install your downloaded version of go
sudo tar -C /usr/local -xzf go1.10.3.linux-amd64.tar.gz

# Add /usr/local/go/bin to the path
export PATH=$PATH:/usr/local/go/bin

# Install antha external dependencies
sudo apt-get install -y libglpk-dev git

# Install antha
mkdir -p $GOPATH/src/github.com/antha-lang
cd $GOPATH/src/github.com/antha-lang
git clone https://github.com/antha-lang/elements
cd elements
git submodule update --init
make

# add the local go bin to the path
export PATH=$PATH:$HOME/go/bin
Windows (Native)

Installing antha on Windows is significantly more involved than for OSX or Linux. The basic steps are:

  • Setup a go development environment:
    • Install the source code manager git
    • Install go
    • Install the compiler mingw. Depending on whether you installed the 386 (32-bit) or amd64 (64-bit) version of go, you need to install the corresponding version of mingw.
  • Download antha external dependencies
    • Install glpk development library and make sure that mingw can find it.

If this procedure sounds daunting, you can try using some scripts we developed to automate the installation procedure on Windows. Download, unzip them and run install.bat. This will try to automatically apply the Windows installation procedure with the default options. Caveat emptor.

Checking Your Installation

After following the installation instructions for your machine. You can check if Antha is working properly by running a test protocol

cd $HOME/go/src/github.com/antha-lang/elements/an/AnthaAcademy/Lesson1_Commands/Lesson1G_SampleForTotalVolume
antha run --bundle Lesson1_SampleForTotalVolume.bundle.json

Making and Running Antha Elements

The easiest way to start developing your own antha elements is to place them in the $HOME/go/src/github.com/antha-lang/elements/an directory and follow the structure of the existing elements there. Afterwards, you can compile and use your elements with the following commands: Compile:

make -C $HOME/go/src/github.com/antha-lang/elements

Run:

antha run --bundle workflow-and-parameters.json

You can also make elements stored elsewhere by adding AN_DIRS=<your-directory-here> e.g...

make -C $HOME/go/src/github.com/antha-lang/elements AN_DIRS=$HOME/Documents

See https://github.com/antha-lang/elements for instructions on how to set up an alias to compile the Antha elements.

Adding Custom Equipment Drivers

In order to write a custom driver for a piece of equipment and use it with Antha, you would need:

  1. Find out what device interfaces does Antha currently support (see the list below)
  2. Implementing the driver against that gRPC interface
  3. Connect the driver to Antha.
List of Supported Interfaces

This list could be interpreted as a list of device functions that this version of Antha can automate.

Connecting the Driver to Antha

Connecting the driver is as simple as running antharun with a flag --driver [driver_tcp_port]. It could look like this:

antha run --workflow wf.json --parameters params.json --driver localhost:50051

More instructions can be found here:

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
antha
AnthaStandardLibrary/Packages/Inventory
Package Inventory containing example part structures and defines a PartSource interface which allows the making of a custom inventory.
Package Inventory containing example part structures and defines a PartSource interface which allows the making of a custom inventory.
AnthaStandardLibrary/Packages/Labware
Example labware definitions
Example labware definitions
AnthaStandardLibrary/Packages/Liquidclasses
Example liquidclasses and liquid properties
Example liquidclasses and liquid properties
AnthaStandardLibrary/Packages/Parser
Package parser provides methods for reading file formats, in particular focused toward dna sequence parsing
Package parser provides methods for reading file formats, in particular focused toward dna sequence parsing
AnthaStandardLibrary/Packages/UnitOperations
Package for working with bioprocessing unitoperations
Package for working with bioprocessing unitoperations
AnthaStandardLibrary/Packages/buffers
Package for dealing with manipulation of buffers Package for dealing with manipulation of buffers
Package for dealing with manipulation of buffers Package for dealing with manipulation of buffers
AnthaStandardLibrary/Packages/buffers/order
pacakge order deals with adding order details to an LHComponent.
pacakge order deals with adding order details to an LHComponent.
AnthaStandardLibrary/Packages/devices
Look up tables stroring device properties.
Look up tables stroring device properties.
AnthaStandardLibrary/Packages/doe
Package doe facilitates DOE methodology in antha
Package doe facilitates DOE methodology in antha
AnthaStandardLibrary/Packages/eng
Package containing formulae for the estimation of evaporation times based upon thermodynamics and empirical equations Package for performing engineering calculations; at present this consists of evaporation rate estimation, thawtime estimation and fluid dynamics Package for performing engineering calculations; at present this consists of evaporation rate estimation, thawtime estimation and fluid dynamics
Package containing formulae for the estimation of evaporation times based upon thermodynamics and empirical equations Package for performing engineering calculations; at present this consists of evaporation rate estimation, thawtime estimation and fluid dynamics Package for performing engineering calculations; at present this consists of evaporation rate estimation, thawtime estimation and fluid dynamics
AnthaStandardLibrary/Packages/enzymes
Package enzymes for working with enzymes; in particular restriction enzymes
Package enzymes for working with enzymes; in particular restriction enzymes
AnthaStandardLibrary/Packages/enzymes/lookup
Package lookup enables looking up restriction enzyme properties from name.
Package lookup enables looking up restriction enzyme properties from name.
AnthaStandardLibrary/Packages/export
Package export provides functions for exporting common file formats into the Antha File type.
Package export provides functions for exporting common file formats into the Antha File type.
AnthaStandardLibrary/Packages/igem
Package for interacting with the iGem registry
Package for interacting with the iGem registry
AnthaStandardLibrary/Packages/jobfile
Package jobfile provides for basic operations for manipulating files associated with a job
Package jobfile provides for basic operations for manipulating files associated with a job
AnthaStandardLibrary/Packages/pcr
This is a package that contains types and function used for PCR reactions
This is a package that contains types and function used for PCR reactions
AnthaStandardLibrary/Packages/platereader
Package platereader contains functions for manipulating absorbance readings and platereader data.
Package platereader contains functions for manipulating absorbance readings and platereader data.
AnthaStandardLibrary/Packages/platereader/dataset
interface platereaderparse.go Part of the Antha language Copyright (C) 2015 The Antha authors.
interface platereaderparse.go Part of the Antha language Copyright (C) 2015 The Antha authors.
AnthaStandardLibrary/Packages/plot
Package plot provides methods for plotting data.
Package plot provides methods for plotting data.
AnthaStandardLibrary/Packages/pubchem
Package for interacting with the pubchem database to look up chemical properties
Package for interacting with the pubchem database to look up chemical properties
AnthaStandardLibrary/Packages/rebase
Package rebase for parsing the rebase restriction enzyme database
Package rebase for parsing the rebase restriction enzyme database
AnthaStandardLibrary/Packages/schemas
Package schemas contains utilities for defining data schemas.
Package schemas contains utilities for defining data schemas.
AnthaStandardLibrary/Packages/search
Package search is a utility package providing functions useful for: Searching for a target entry in a slice; Removing duplicate values from a slice; Comparing the Name of two entries of any type with a Name() method returning a string.
Package search is a utility package providing functions useful for: Searching for a target entry in a slice; Removing duplicate values from a slice; Comparing the Name of two entries of any type with a Name() method returning a string.
AnthaStandardLibrary/Packages/sequences
Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype synthesisvalidation.go Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype
Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype synthesisvalidation.go Package sequences is for interacting with and manipulating biological sequences; in extension to methods available in wtype
AnthaStandardLibrary/Packages/sequences/Seqtools
Package for processing sequencing results
Package for processing sequencing results
AnthaStandardLibrary/Packages/sequences/align
Package align allows aligning Antha sequences using the biogo implementation of the Needleman-Wunsch and Smith-Waterman alignment algorithms
Package align allows aligning Antha sequences using the biogo implementation of the Needleman-Wunsch and Smith-Waterman alignment algorithms
AnthaStandardLibrary/Packages/sequences/biogo/biogo/feat
Package feat provides the base for storage and manipulation of biological interval information.
Package feat provides the base for storage and manipulation of biological interval information.
AnthaStandardLibrary/Packages/sequences/biogo/biogo/io/seqio
Package seqio provides interfaces for sequence I/O functions.
Package seqio provides interfaces for sequence I/O functions.
AnthaStandardLibrary/Packages/sequences/biogo/biogo/io/seqio/fasta
Package fasta provides types to read and write FASTA format files.
Package fasta provides types to read and write FASTA format files.
AnthaStandardLibrary/Packages/sequences/biogo/biogo/seq
Package seq provides the base for storage and manipulation of biological sequence information.
Package seq provides the base for storage and manipulation of biological sequence information.
AnthaStandardLibrary/Packages/sequences/biogo/biogo/seq/linear
Package linear handles single sequences.
Package linear handles single sequences.
AnthaStandardLibrary/Packages/sequences/biogo/ncbi/blast
Package blast provides support for interaction with the NCBI BLAST service.
Package blast provides support for interaction with the NCBI BLAST service.
AnthaStandardLibrary/Packages/sequences/biogo/ncbi/entrez
Package entrez provides support for interaction with the NCBI Entrez Utility Programs (E-utilities).
Package entrez provides support for interaction with the NCBI Entrez Utility Programs (E-utilities).
AnthaStandardLibrary/Packages/sequences/biogo/ncbi/ncbi
Package ncbi provides support for interaction with the NCBI services, Entrez and Blast.
Package ncbi provides support for interaction with the NCBI services, Entrez and Blast.
AnthaStandardLibrary/Packages/sequences/blast
Package for performing blast queries
Package for performing blast queries
AnthaStandardLibrary/Packages/sequences/entrez
package for querying all of NCBI databases
package for querying all of NCBI databases
AnthaStandardLibrary/Packages/sequences/oligos
Package for designing oligos
Package for designing oligos
AnthaStandardLibrary/Packages/sequences/parse
package parse converts DNA sequence files into a set of DNA sequences.
package parse converts DNA sequence files into a set of DNA sequences.
AnthaStandardLibrary/Packages/sequences/parse/fasta
package fasta converts DNA sequence files in FASTA format into a set of DNA sequences.
package fasta converts DNA sequence files in FASTA format into a set of DNA sequences.
AnthaStandardLibrary/Packages/sequences/parse/gdx
package gdx converts DNA sequence files in .gdx format into a set of DNA sequences.
package gdx converts DNA sequence files in .gdx format into a set of DNA sequences.
AnthaStandardLibrary/Packages/sequences/parse/genbank
package genbank converts DNA sequence files in genbank format into a set of DNA sequences.
package genbank converts DNA sequence files in genbank format into a set of DNA sequences.
AnthaStandardLibrary/Packages/sequences/plasmid
Package plasmid checks for common plasmid features in a test DNA sequence.
Package plasmid checks for common plasmid features in a test DNA sequence.
AnthaStandardLibrary/Packages/setpoints
Functions used in calculating mass transfer in microwells
Functions used in calculating mass transfer in microwells
AnthaStandardLibrary/Packages/solutions
solutions is a utility package for working with solutions of LHComponents utility package for working with solutions solutions is a utility package for working with solutions of LHComponents
solutions is a utility package for working with solutions of LHComponents utility package for working with solutions solutions is a utility package for working with solutions of LHComponents
AnthaStandardLibrary/Packages/spreadsheet
Package spreadsheet for interacting with spreadsheets Package spreadsheet for interacting with spreadsheets
Package spreadsheet for interacting with spreadsheets Package spreadsheet for interacting with spreadsheets
AnthaStandardLibrary/Packages/text
Package text formats strings for printing in a terminal using ansi codes
Package text formats strings for printing in a terminal using ansi codes
anthalib/data
Package data provides lazy data tables with file format support.
Package data provides lazy data tables with file format support.
anthalib/data/csv
Package csv provides tools for data tables seriaization to/from CSV files.
Package csv provides tools for data tables seriaization to/from CSV files.
anthalib/data/parquet
Package parquet provides tools for data tables serialization to and from Parquet files - in the form of files on disk, memory buffer or io.Reader/io.Writer.
Package parquet provides tools for data tables serialization to and from Parquet files - in the form of files on disk, memory buffer or io.Reader/io.Writer.
anthalib/mixer
Package mixer deals with mixing and sampling in Antha
Package mixer deals with mixing and sampling in Antha
anthalib/num
Package num provides tools for floats arithmetic.
Package num provides tools for floats arithmetic.
anthalib/wtype
defines types for dealing with liquid handling requests defines types for dealing with liquid handling requests defines types for dealing with liquid handling requests solutions is a utility package for working with solutions of LHComponents Package wtype contains core Antha types
defines types for dealing with liquid handling requests defines types for dealing with liquid handling requests defines types for dealing with liquid handling requests solutions is a utility package for working with solutions of LHComponents Package wtype contains core Antha types
anthalib/wunit
Package wunit is a core Antha package for dealing with units in Antha Core Antha package for dealing with units in Antha
Package wunit is a core Antha package for dealing with units in Antha Core Antha package for dealing with units in Antha
anthalib/wutil
Utility package anthalib/wutil/ints.go: Part of the Antha language Copyright (C) 2016 The Antha authors.
Utility package anthalib/wutil/ints.go: Part of the Antha language Copyright (C) 2016 The Antha authors.
anthalib/wutil/text
Package text formats strings for printing in a terminal using ansi codes
Package text formats strings for printing in a terminal using ansi codes
ast
Package ast declares the types used to represent syntax trees for Go/Antha packages.
Package ast declares the types used to represent syntax trees for Go/Antha packages.
compile
Package compile declares the functions required to translate an Antha AST into a go source file
Package compile declares the functions required to translate an Antha AST into a go source file
format
Package format implements standard formatting of Go/Antha source.
Package format implements standard formatting of Go/Antha source.
parser
Package parser implements a parser for Go/Antha source files.
Package parser implements a parser for Go/Antha source files.
printer
Package printer implements printing of AST nodes.
Package printer implements printing of AST nodes.
scanner
Package scanner implements a scanner for Go/Antha source text.
Package scanner implements a scanner for Go/Antha source text.
token
Package token defines constants representing the lexical tokens of the Antha programming language and basic operations on tokens (printing, predicates).
Package token defines constants representing the lexical tokens of the Antha programming language and basic operations on tokens (printing, predicates).
api
v1
Package org_antha_lang_antha_v1 is a generated protocol buffer package.
Package org_antha_lang_antha_v1 is a generated protocol buffer package.
cmd
Package codegen compiles generic instructions to target-specific ones.
Package codegen compiles generic instructions to target-specific ones.
antha_framework_v1
Package antha_framework_v1 is a generated protocol buffer package.
Package antha_framework_v1 is a generated protocol buffer package.
antha_human_v1
Package antha_human_v1 is a generated protocol buffer package.
Package antha_human_v1 is a generated protocol buffer package.
antha_platereader_v1
Package antha_platereader_v1 is a generated protocol buffer package.
Package antha_platereader_v1 is a generated protocol buffer package.
antha_quantstudio_v1
Package antha_quantstudio_v1 is a generated protocol buffer package.
Package antha_quantstudio_v1 is a generated protocol buffer package.
antha_runner_v1
Package antha_runner_v1 is a generated protocol buffer package.
Package antha_runner_v1 is a generated protocol buffer package.
antha_shakerincubator_v1
Package antha_shakerincubator_v1 is a generated protocol buffer package.
Package antha_shakerincubator_v1 is a generated protocol buffer package.
liquidhandling/pb
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.
Package execute connects Antha elements to the trace execution infrastructure.
Package execute connects Antha elements to the trace execution infrastructure.
Package graph provides common graph algorithms
Package graph provides common graph algorithms
Package inject implements delayed binding of function calls to runtime.
Package inject implements delayed binding of function calls to runtime.
Package meta provides functions for manipulating golang objects generically
Package meta provides functions for manipulating golang objects generically
microArch
scheduler/liquidhandling
defines types for dealing with liquid handling requests
defines types for dealing with liquid handling requests
Package target provides the construction of a target machine from a collection of devices
Package target provides the construction of a target machine from a collection of devices
auto
Package auto provides methods for creating a simulation target based on auto discovery of drivers via gRPC
Package auto provides methods for creating a simulation target based on auto discovery of drivers via gRPC
Package workflow implements DAG scheduling of networks of functions generated at runtime.
Package workflow implements DAG scheduling of networks of functions generated at runtime.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL