Skip to main content

Contains classes and code for representing double stranded DNA and functions for simulating homologous recombination between DNA molecules.

Project description

Pydna provide functions for molecular biology using python. Double stranded DNA sequence classes that make cut and paste cloning and PCR very simple is provided (see example below).

>>> import pydna
>>> seq = pydna.Dseq("GGATCCAAA","TTTGGATCC",ovhg=0)
>>> seq
Dseq(-9)
GGATCCAAA
CCTAGGTTT
>>> from Bio.Restriction import BamHI
>>> a,b = seq.cut(BamHI)
>>> a
Dseq(-5)
G
CCTAG
>>> b
Dseq(-8)
GATCCAAA
    GTTT
>>> a+b
Dseq(-9)
GGATCCAAA
CCTAGGTTT
>>> b+a
Dseq(-13)
GATCCAAAG
    GTTTCCTAG
>>> b+a+b
Dseq(-17)
GATCCAAAGGATCCAAA
    GTTTCCTAGGTTT
>>> b+a+a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pydna/dsdna.py", line 217, in __add__
    raise TypeError("sticky ends not compatible!")
TypeError: sticky ends not compatible!
>>>

Notably, homologous recombination and Gibson assembly between linear DNA fragments can be easily simulated.

Most functionality is implemented as methods for the double stranded DNA sequence record classes Dseq and Dseqrecord, which are subclasses of the Biopython Seq and SeqRecord classes.

Pydna was designed to provide a form of executable documentation describing a subcloning or DNA assembly experiment. The pydna code unambiguously describe a sub cloning experiment, and can be executed to yield the sequence of the of the resulting DNA molecule.

Pydna was designed to semantically imitate how sub cloning experiments are typically documented in Scientific literature. Pydna code describing a sub cloning is reasonably compact and meant to be easily readable.

The nine lines of Python below, simulates the construction of a recombinant plasmid. DNA sequences are downloaded from Genbank by accession numbers that are guaranteed to be stable.

import pydna

gb = pydna.Genbank("myself@email.com") # Tell Genbank who you are!

gene = gb.nucleotide("X06997") # Kluyveromyces lactis LAC12 gene for lactose permease.

primer_f,primer_r = pydna.parse(''' >760_KlLAC12_rv (20-mer)
                                    ttaaacagattctgcctctg

                                    >759_KlLAC12_fw (19-mer)
                                    aaatggcagatcattcgag
                                    ''', ds=False)

pcr_prod = pydna.pcr(primer_f,primer_r, gene)

vector = gb.nucleotide("AJ001614") # pCAPs cloning vector

from Bio.Restriction import EcoRV

lin_vector = vector.linearize(EcoRV)

rec_vec =  ( lin_vector + pcr_prod ).looped()

Pydna might also be useful to automate the simulation of sub cloning experiments using python. This could be helpful to generate examples for teaching purposes. Read the documentation or the cookbook with example files for further information.

An on-line shell running Python with pydna is avaiable for experimentation.

Please post a message in the google group for pydna if you have problems, questions or comments.

Feedback in the form of questions, comments or critisism is very welcome!

version

date

comment

0.6.2

2014-06-13

Dseqrecord gained three new methods:

isorf() method returning True or False.

list_features() method printa a lists all features in an ASCII table.

extract_feature() extracts a feature in the form os a new Dseqrecord object.

Changes to how the primer_design functions work, especially assembly primers.

0.6.1

2014-04-25

Fixed a bug in the Dseqrecord synced method and removed the utils synced function.

0.6.0

2014-04-18

Bugfixes and improvements in documentation.

0.5.0

2013-12-16

Changes to how the amplify and assembly modules work the Amplicon and Assembly classes are now subclasses of Dseqrecord.

0.2.2

2013-11-05

bugfix: changed the handling of compound features to fit with the new version of BioPython (1.62) which is now a requirement.

0.2.1

2013-08-18

0.1.8

2013-06-02

bugfix: changed the SeqFeatures added to PCR products in the amplify module to a dict of list of strings instead of a dict of strings.

0.1.7

2013-05-29

Changed the code in amplify.Amplicon to handle features spanning the origin of circular sequences.

0.1.6

2013-04-22

Changed the behaviour of the find method of the Dseq object to find substrings that span the origin. Slicing for circular Dseq objects now works slightly different.

0.1.5

2013-04-18

Changed the setup.py script to permit installation of the source installer without access to a c compiler.

0.1.4

2013-04-10

Cleaned up some docstrings Renamed Drecord -> Dseqrecord to be more consistent with Dseq and Biopython Seq/SeqRecord.

Changed name of keyword argument for read and parse. ds=True returns Dseqrecord(s) while ds=False returns SeqRecords.

0.1.3

2013-04-09

pydna created from Python-dna.

System Requirements

Python 2.x

This package was developed on and for Python 2.7. Other versions have not been tested.

Python 3.x

This code has not been tried with Python 3. If there is sufficient interest, there might be a Python 3 version in the future.

Installation

PIP

The best way of installing pydna is with pip. Pip is the officially recommended tool for installaion of Python packages from PyPi. Pip installs dependencies automatically.

Linux:

bjorn@bjorn-UL30A:~/Dropbox/pydna$ sudo pip install pydna

Windows:

C:\> pip install pydna

If you do not have pip, you can get it by following these instructions.

Source

If you install from source, you need to install the dependencies (listed above). Download one of the source installers from the pypi site and extract the file. Open the pydna source code directory (containing the setup.py file) in terminal and type:

python setup.py install

Binary distribution

Binary installers for 32 and 64 bit editions of MS Windows are provided.

The dependencies have to be installed separately. This can be done using the binary installers for Windows for those who are not comfortable at the command line:

Dependency

Hyperlink

Python (32,64)

<http://www.python.org/download/>

Biopython (32)

<http://biopython.org/wiki/Download>

Biopython (64)

<http://www.lfd.uci.edu/~gohlke/pythonlibs/#biopython>

networkx (32,64)

<http://www.lfd.uci.edu/~gohlke/pythonlibs/#networkx>

Source Code Repository

Pydna is hosted by google code: http://code.google.com/p/pydna/

Distribution Structure

README.txt – This file.

LICENSE.txt – What you can do with the code.

setup.py – Installation file.

run_tests.py – run tests by “python run_tests.py”<enter>

pydna/ – The code.

docs/ – Documentation and cookbook.

scripts/ – Miscellaneous and perhaps useful scripts and examples.

tests/ – Testing code.

Todo

  • fix Dseq & Dseqrecord lower() methods so they return Dseq & Dseqrecord objects

  • inverse PCR on circular templates does not seem to preserve features of Dseqrecord objects

  • Add identification of each fragment in the Contig.small_figure method.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distributions

pydna-0.6.2.zip (2.4 MB view details)

Uploaded Source

pydna-0.6.2.tar.gz (2.3 MB view details)

Uploaded Source

Built Distributions

pydna-0.6.2.win-amd64.exe (337.2 kB view details)

Uploaded Source

pydna-0.6.2.win32.exe (309.6 kB view details)

Uploaded Source

pydna-0.6.2-py2.7.egg (438.7 kB view details)

Uploaded Source

pydna-0.6.2-py2-none-any.whl (106.8 kB view details)

Uploaded Python 2

File details

Details for the file pydna-0.6.2.zip.

File metadata

  • Download URL: pydna-0.6.2.zip
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pydna-0.6.2.zip
Algorithm Hash digest
SHA256 c9fffb8673d552cbc4f350af75c1c5cc0fa391887a1eba1b2d66b8bfab8c392d
MD5 c3786950a08dc202e8286fe11b4fcd28
BLAKE2b-256 3f4056497c90bcc6589ce080f5021843620824a203d5dc327c061b741b879af4

See more details on using hashes here.

Provenance

File details

Details for the file pydna-0.6.2.tar.gz.

File metadata

  • Download URL: pydna-0.6.2.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pydna-0.6.2.tar.gz
Algorithm Hash digest
SHA256 9ae9b270a70cba93d937ef391514500141a51ef873c26c5cd8f1a12a7441c658
MD5 33a80c447074f6ff0d9135a992ffbec9
BLAKE2b-256 9b4ec4f9e8004536d67c3a1455faad12803fb07efc631c01a04d0a3105880d2a

See more details on using hashes here.

Provenance

File details

Details for the file pydna-0.6.2.win-amd64.exe.

File metadata

File hashes

Hashes for pydna-0.6.2.win-amd64.exe
Algorithm Hash digest
SHA256 6fef753386219f6f0ffac55428744176c1bf11d71e631836e353aa8cbbe19db6
MD5 7a8c50251b749512767e84c3f2cf14c6
BLAKE2b-256 110b1f10e76af18607d862a26f4cc0de06c04e8be9bc7b99084e594ab1920a6f

See more details on using hashes here.

Provenance

File details

Details for the file pydna-0.6.2.win32.exe.

File metadata

  • Download URL: pydna-0.6.2.win32.exe
  • Upload date:
  • Size: 309.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pydna-0.6.2.win32.exe
Algorithm Hash digest
SHA256 ed02b54aa406eca441bb2c852b1196f5ebad613185feefe1cca691b3abb164d6
MD5 5c8cd1895f50bd851f663c9673dbc59c
BLAKE2b-256 eb5cf45ac5432b3662d0f2f1f99d59ae685463de728094fb7c9d5dd417106994

See more details on using hashes here.

Provenance

File details

Details for the file pydna-0.6.2-py2.7.egg.

File metadata

  • Download URL: pydna-0.6.2-py2.7.egg
  • Upload date:
  • Size: 438.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pydna-0.6.2-py2.7.egg
Algorithm Hash digest
SHA256 f81244a4dd7d625053ef2dc24a17b090641fd015732880601173c3aa827452e8
MD5 1425fce158662684e11b570ae24f04ba
BLAKE2b-256 6cbf1a69252f272c64f7d5dba7cc61abfb78f0d2d37344c02b15c3dc438ec24b

See more details on using hashes here.

Provenance

File details

Details for the file pydna-0.6.2-py2-none-any.whl.

File metadata

File hashes

Hashes for pydna-0.6.2-py2-none-any.whl
Algorithm Hash digest
SHA256 bde7a9412d3d425343b96b83cc77311555255de0054ae22e28b61a9bf59a7c39
MD5 68e31772405a6e9e516365588cfa78d3
BLAKE2b-256 c992288b5cfd052f23c7f680e6bd0a49ae36e3a5d11417f6e35fca2f3a54ce2c

See more details on using hashes here.

Provenance

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