Skip to main content

Genome Engineering Tool

Project description

Edge keeps structural changes between a genome and child genomes derived from it. A user creates a modified genome by applying a sequence based operation, such as homologous recombination, to a parent genome. Users can annotate or make corrections to sequences on a genome; Edge automatically applies the changes to the appropriate regions on the derived genomes. Edge does this efficiently: making a change on a parent genome takes O(1), and is automatically propagated to the modified genomes.

Edge uses O(D) amount of storage for each modified genome, where D is the number of differences between a modified genome and its parent. The current implementation additionally keeps a cache of annotations to base pair numbers, but this cache is soft-data and is invalidated and re-built on demand.

A modified genome can be re-created by re-applying operations to a new genome (think git rebase). Currently, however, annotating a genome is not an operation. Also, applying the same operation to a genome twice results in a single child genome, not two.

Edge provides UIs to look at operations and changes, and APIs for making changes. Edge can export genome sequences and annotations as GFF files. While Edge comes with a simple UI for browsing features and sequences, the UI is primitive compared to other specialized applications.

Try it using Docker

cd docker-edge-simple
bash run-server

Then checkout in your browser http://localhost:9000/edge/#/genomes

Example: to import an genome, try

cd docker-edge-simple
bash add-s288c

docker-edge-simple environment includes a Docker image without NCBI and primer3. To run tests, and to use Edge for real, use docker-edge

cd docker-edge
docker-compose up -d
./db-setup
docker-compose run --rm edge python manage.py test

Try it without Docker

Construct your virtual env and pip install dependencies (use requirements/{dev,core}.txt).

To start a server, first update src/server/settings.py to use either sqlite or MySQL. For MySQL, create the appropriate databse. Then,

python src/manage.py syncdb --noinput
python src/manage.py migrate
(cd example; gunzip ecoli-mg1655.gff.gz; gunzip yeast.gff.gz)
python src/manage.py import_gff 'E. coli MG1655' example/ecoli-mg1655.gff
python src/manage.py import_gff 'Saccharomyces cerevisiae' example/yeast.gff
python src/manage.py runserver 0.0.0.0:8000

Then set your browser to http://<your IP>:8000/edge/

You can edit genome and fragment metadata, such as name, notes, circular attributes, from Django admin. Create a Django admin superuser, then set your browser to http://<your IP>:8000/admin/

If you need BLAST support, run

cd ncbi; ./install
cd ../src; python manage.py build_edge_blastdb

If you need Primer3 support, run

cd primer3; ./install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edge-genome-0.3.0.tar.gz (2.3 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page