Skip to main content

A package for generating toehold switches with homology ranking for gene expression control

Project description

ToeGen: Toehold Switch Generator with Homology Ranking

ToeGen is a Python package designed to generate toehold switches for gene expression control, including the ability to rank homologous sequences. This is useful for applications like synthetic biology and gene expression analysis.

Features

  • Generate eukaryotic and prokaryotic toehold switches.
  • Perform homology searches against custom genome sequences.
  • Rank homologous sequences based on mfe (minimum free energy) and distance.

Installation

Step 1: Install Required Dependencies

Ensure you have the following dependencies installed in your Python environment:

  • Biopython
  • pandas
  • joblib
  • fuzzysearch
  • ViennaRNA

These can be installed using pip:

pip install biopython numpy pandas joblib fuzzysearch viennarna

Step 2: Install Nupack

nupack is a special requirement that cannot be installed via pip. Please follow the official installation guide here.

Instructions to Install NUPACK:

  1. Visit the official NUPACK download page.
  2. Download the appropriate version for your operating system.
  3. Follow the installation instructions on the Getting Started Guide.
  4. After installation, ensure that nupack is properly added to your environment.

Step 3: Install ToeGen

Once the dependencies are installed, you can install ToeGen:

pip install toegen

Usage

Once installed, you can use ToeGen to generate eukaryotic and prokaryotic toehold switches with homology ranking.

  • Use Case: Generating a Eukaryotic Toehold Switch
from toegen import SwitchGenerator

# Example trigger sequence for eukaryotic systems (23 nucleotides)
trigger_sequence = "AUGGCCUAGCGCUAUGCCCUAGG"

# Example reporter gene sequence
reporter_gene = "AUGGCCUAGCGCUAUGCCCUAUGGGAUGCUUCGGAUAG"

# Initialize the SwitchGenerator for eukaryotic systems
switch_generator = SwitchGenerator(translated_gene_sequence=reporter_gene)

# Generate the toehold switch
switch_strand, ensemble_defect, concentration, mfe_structure = switch_generator.get_switch(trigger_sequence)

# Display the results
print(f"Eukaryotic Switch Strand: {switch_strand}")
print(f"Ensemble Defect: {ensemble_defect}")
print(f"Complex Concentration: {concentration}")
print(f"MFE Structure: {mfe_structure}")
  • Use Case: Generating a Eukaryotic Toehold Switch
from toegen import ProkaryoticSwitchGenerator

# Example trigger sequence for prokaryotic systems (30 nucleotides)
trigger_sequence = "AUGGCUCGAUUGCCCUUCUAGGAUCGUAGC"

# Example reporter gene sequence
reporter_gene = "AUGGCCUAGCGCUAUGCCCUAUGGGAUGCUUCGGAUAG"

# Initialize the ProkaryoticSwitchGenerator for prokaryotic systems
prokaryotic_switch_generator = ProkaryoticSwitchGenerator(translated_gene_sequence=reporter_gene)

# Generate the toehold switch
switch_strand, ensemble_defect, concentration, mfe_structure = prokaryotic_switch_generator.get_switch(trigger_sequence)

# Display the results
print(f"Prokaryotic Switch Strand: {switch_strand}")
print(f"Ensemble Defect: {ensemble_defect}")
print(f"Complex Concentration: {concentration}")
print(f"MFE Structure: {mfe_structure}")
  • Use Case: Generating Toehold Switches with Homology Ranking
from toegen import HomologySwitchGenerator

# Example genome data simulating transcript sequences (replace with real data if available)
transcripts_dict = [
    {
        'gene': 'GeneA',
        'protein': 'ProteinA',
        'sequence': 'AUGGCCUAGCGCUAUGCCCUAUGGGAUGCUUCGGAUAG'
    },
    {
        'gene': 'GeneB',
        'protein': 'ProteinB',
        'sequence': 'AUGGCUCGAUUGCCCUUCUAGGAUCGUAGCUAGGAUC'
    }
]

# Example list of trigger sequences
triggers = [
    "AUGGCCUAGCGCUAUGCCCUAGG",  # Eukaryotic trigger (23 nucleotides)
    "AUGGCUCGAUUGCCCUUCUAGGAUCGUAGC"  # Prokaryotic trigger (30 nucleotides)
]

# Example reporter gene sequence
reporter_gene = "AUGGCCUAGCGCUAUGCCCUAUGGGAUGCUUCGGAUAG"

# Initialize the HomologySwitchGenerator class for Homo sapiens (eukaryotic)
homology_switch_generator = HomologySwitchGenerator(
    cell_type="Homo sapiens",  # Specify the cell type
    reporter_gene=reporter_gene,  # Specify the reporter gene sequence
    transcripts_dict=transcripts_dict  # Pass in mock genome data
)

# Generate toehold switches with homology search and ranking
results = homology_switch_generator.generate_switch_with_homology(triggers, homology_switch_generator.transcripts_dict)

# Display the results (ranked homology matches and switch generation)
print(results)

License

This project is licensed under the terms of the MIT license.

Project details


Download files

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

Source Distribution

toegen-0.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

toegen-0.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file toegen-0.1.0.tar.gz.

File metadata

  • Download URL: toegen-0.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for toegen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3fa81f6549e0fc2a92dd2d5fcc56acaa8c0157bb52f9a6f7c2f0c48056090b14
MD5 795c8762d60f36ea25a8abb129ba2ec4
BLAKE2b-256 468b526d45cbeef3a149af4d89e7cb0a2e35ebe29dfa50dbe1ca1b39395ebbcf

See more details on using hashes here.

File details

Details for the file toegen-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: toegen-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for toegen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c4ff674be32c4e41c1b5cfd3e4862dcb869fe97049e91aa11efe4391454dfa3
MD5 601531b01d12d39a258634e31a323540
BLAKE2b-256 716e4767c9f8ae8a74f8f675962e3d1298d03d1a9c0986ebbb1fbf0c3e58f33d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page