Skip to main content

🧬 Codeine

Codeine is a Python library for generating synonymous protein-coding sequences under biological constraints.

Installation & documentation

Codeine is available on PyPI:

pip install codeine

Full documentation: https://codeine.readthedocs.io/.

Quick start

from codeine import CodingSpace

space = CodingSpace('MKTIIALSYIFCLVF')

print(space.n_valid_sequences)
print(space.sample())

Overview

A protein sequence can typically be encoded by an enormous number of synonymous DNA/RNA coding sequences.

For biotechnological applications such as recombinant expression, we typically must choose a coding sequence while respecting one or more practical constraints, for example:

  • avoiding restriction enzyme sites,
  • avoiding nucleotide homopolymers,
  • fixing specific codons,
  • mutating relative to a reference sequence.

Identifying valid coding sequences under such constraints quickly becomes challenging, especially for longer protein sequences.

Codeine represents the complete space of valid coding sequences for a given protein and experimental setup. It enables highly efficient sampling, enumeration and mutation library design while guaranteeing that the generated sequences satisfy user-specified constraints.

Examples

Count valid sequences:

from codeine import CodingSpace

space = CodingSpace('MKTLEFQNGSCPRYKKL')

print(space.n_valid_sequences)

Sample a single valid sequences:

from codeine import CodingSpace

space = CodingSpace('MKTLEFQNGSCPRYKKL')

seq = space.sample()
print(seq)

Sample many:

from codeine import CodingSpace

space = CodingSpace('MKTLEFQNGSCPRYKKL')

for seq in space.sample(n=5):
    print(seq)

Apply restrictions:

from codeine import CodingSpace, RestrictionSite

space = CodingSpace(
    'MKTLEFQNGSCPRYKKL',
    forbidden_motifs=[
        RestrictionSite.EcoRI,
        RestrictionSite.BamHI,
        'CTGCAG',
    ],
    codon_restrictions={
        2: 'AAG',
        16: 'AAG',
    },
    max_homopolymer=4,
)

print(space.n_valid_sequences)
print(space.sample())

Use custom codon weights to change sampling distribution:

from codeine import CodingSpace, CodonWeights

weights = CodonWeights.ecoli()

space = CodingSpace("MKTLEFQNGSCPRYKKL", codon_weights=weights)

seq = space.sample()
print(seq)

Nonstandard translation tables and RNA:

from codeine import CodingSpace, TranslationTable

table = TranslationTable(table_id=2, rna=True)

space = CodingSpace("MKTLEFQNGSCPRYKKL", translation_table=table)

seq = space.sample()
print(seq)

Enumerate all sequences (only recommended for small spaces):

from codeine import CodingSpace

space = CodingSpace('CYIQNCPLG')

for sequence in space:
    print(sequence)

Explore mutants of a chosen reference sequence:

from codeine import CodingSpace

space = CodingSpace('MKTLEFQNGSCPRYKKL')

reference = space.sample()

mutants = space.mutants(
    reference,
    free_positions=range(5, 14),
    min_nts=2,
    max_nts=5,
)

mutant = mutants.sample()
print(mutant)

Metadata

Release files for codeine 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for codeine 0.2.1
File Size Uploaded
codeine-0.2.1.tar.gz 40.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for codeine 0.2.1
File Interpreter ABI Platform
codeine-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 88.5 kB

Release files / codeine-0.2.1.tar.gz

Download URL codeine-0.2.1.tar.gz
Size 40.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cabda645205a8810aa3c722fde69e41c0401d5711d6c55ec574c01423a539184
BLAKE2b-256 checksum
How to use checksums
5885b44f452c927bb2bd6bcff12905931b5bdac7eee9dd94733de09c94d257d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release files / codeine-0.2.1-py3-none-any.whl

Download URL codeine-0.2.1-py3-none-any.whl
Size 48.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5bfb8e389426e7da3f7f62b51b5a133798b3031a2c6a2d619f7a17f03968c816
BLAKE2b-256 checksum
How to use checksums
924f97eca8d602526fadd533c7662bffeeae1e237d620b89a932def845f7745d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page