![[logo]](https://raw.githubusercontent.com/Edinburgh-Genome-Foundry/Caravagene/master/logo.png)
Caravagene is a Python library to plot schemas of DNA constructs from a list of parts:
from caravagene import Part, Construct, ConstructList
constructs = ConstructList([Construct([
Part('promoter', label='my promoter'),
Part('CDS', label='gene with a very very long name'),
Part('terminator', label='PolyA'),
Part('insulator', label='I1')
])])
constructs.to_image('construct.jpeg')
![[logo]](https://raw.githubusercontent.com/Edinburgh-Genome-Foundry/Caravagene/master/examples/construct.jpeg)
Here is another example producing this PDF showing multiple constructs:
from caravagene import Part, Construct, ConstructList
my_constructs = ConstructList(
title="My constructs",
constructs=[
Construct(name="ASM1", parts=[
Part('HA1', category='homology-arm'),
Part('rc1', category='recombinase-recognition-sequence'),
Part('my promoter', category='promoter'),
Part('RNA stability', category='rna-stability-sequence'),
Part('<i>acs</i>', category='CDS'),
Part('PolyA', category='terminator'),
Part('I1', category='insulator'),
]),
Construct(name="ASM2", parts=[
Part('my promoter', category='promoter'),
Part('gene with a very very long name', category='CDS'),
Part('PolyA', category='terminator'),
Part('I1', category='insulator')
])
]
)
my_constructs.to_pdf('multiconstruct.pdf')
![[logo]](https://raw.githubusercontent.com/Edinburgh-Genome-Foundry/Caravagene/master/examples/multiconstruct_screen_capture.png)
Note that ConstructList
can be supplied with a font. It is also possible to extend Caravagene to support other categories/symbols, as follows:
from caravagene import SYMBOL_FILES
SYMBOL_FILES['my-new-category'] = 'path/to/some/symbol.svg'
Finally, here is an example using an Excel spreadsheet:
Spreadsheet:
![[logo]](https://raw.githubusercontent.com/Edinburgh-Genome-Foundry/Caravagene/master/examples/from_spreadsheet_sample.png)
Python code:
from caravagene import ConstructList
my_constructs = ConstructList("my_spreadsheet.xlsx")
my_constructs.to_pdf('my_schemas.pdf')
or command-line (one-time use):
caravagene my_spreadsheet.xlsx my_schemas.pdf
or command-line (re-render when the spreadsheet changes on disk):
caravagene my_spreadsheet.xlsx my_schemas.pdf --watch
Output:
![[logo]](https://raw.githubusercontent.com/Edinburgh-Genome-Foundry/Caravagene/master/examples/from_spreadsheet_screen_capture.png)
Installation
Caravagene requires WkHTMLtoPDF to be installed. On Ubuntu, install it with:
apt-get install wkhtmltopdf
You can install caravagene through PIP:
sudo pip install caravagene
For using it in the terminal, install with:
pip install caravagene[cli]
Licence
Caravagene is an open-source software originally written at the Edinburgh Genome Foundry by Zulko and released on Github under the MIT license (Copyright 2017 Edinburgh Genome Foundry, University of Edinburgh). Everyone is welcome to contribute!
Tweet