Caravagene

[logo]

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]

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]

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]

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]

Installation

Caravagene requires WkHTMLtoPDF to be installed. On Ubuntu, install it with:

(sudo) apt-get install wkhtmltopdf

You can install caravagene through PIP:

sudo pip install caravagene

Alternatively, you can unzip the source code in a folder and type:

sudo python setup.py install

Licence

Caravagene is an open-source software originally written at the Edinburgh Genome Foundry by Zulko and released on Github under the MIT licence (Copyright 2017 Edinburgh Genome Foundry). Everyone is welcome to contribute!