Skip to main content

🧬 Codeine

Codeine is a Python library for exploring synonymous protein-coding sequence spaces 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 many biotechnological applications, such as recombinant expression, we must choose a coding sequence while respecting practical constraints, for example:

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

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

Codeine represents the complete valid coding sequence space exactly for a given protein and experimental setup. It enables efficient counting, sampling, enumeration and mutation library design while guaranteeing that every generated sequence satisfies the specified constraints.

Examples

Count valid sequences:

from codeine import CodingSpace

space = CodingSpace('MKTLEFQNGSCPRYKKL')

print(space.n_valid_sequences)

Sample a single valid sequence:

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 constraints:

from codeine import CodingSpace, RestrictionSite
from codeine.constraints import TandemRepeatConstraint

space = CodingSpace(
    'MKTLEFQNGSCPRYKKL',
    forbidden_motifs=[
        RestrictionSite.EcoRI,
        RestrictionSite.BamHI,
        'CTGCAG',
    ],
    fixed_codons={
        2: 'AAG',
        16: 'AAG',
    },
    max_homopolymer=4,
    constraints=[
        TandemRepeatConstraint(repeat_length=3, copies=3),
    ],
)

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

Use custom codon weights to change the sampling distribution:

from codeine import CodingSpace, CodonWeights

weights = CodonWeights.ecoli()

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

print(space.sample())

Use alternative genetic codes and RNA:

from codeine import CodingSpace, TranslationTable

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

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

print(space.sample())

Enumerate all sequences (recommended only 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,
)

print(mutants.sample())

Metadata

Release files for codeine 0.4.0

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.4.0
File Size Uploaded
codeine-0.4.0.tar.gz 48.8 kB Details

Built distribution (wheel)

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

Total release size: 107.7 kB

Release files / codeine-0.4.0.tar.gz

Download URL codeine-0.4.0.tar.gz
Size 48.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9c0b42c978d0aac4b9f570e57f80145d3a02b4b5d6f2d28b838440430d2cec6c
BLAKE2b-256 checksum
How to use checksums
6ec2a55d07d3d359b9164780c293a5e30357d86b361f199b356b1aabb8f93ff4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL codeine-0.4.0-py3-none-any.whl
Size 58.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79d670d38c29cc218dfd985902a25bd8d0afca5bf883988343fd1e9da4ebeb08
BLAKE2b-256 checksum
How to use checksums
2f9d9ceb791cf7a0dc804db4907ac227c60c46df4d9d6f2bf5bb5a7341876f5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.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

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

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