This repository contains the code for a project aimed at modeling protein synthesis in eukaryotic cells as a discrete-time process.
The process is simulated using SimPy
framework, with customized classes tailored to the specific requirements.
The process is modeled by the EukaryoticCell
class, which coordinates transcription and translation through its components: the Nucleus
class handles transcription, while the Ribosome
class manages translation.
The throughput of DNA sequences processed concurrently during protein synthesis is regulated by the Resource
object. Transcription relies on the availability of RNA_polymerase
as a critical resource, while translation demands ribosomes and RNA_transfer
molecules with the appropriate anticodons. Additionally, Nucleotides
are crucial resources present throughout the process.
All resources have been integrated into the simulation framework through extensions of SimPy
's resource or container classes.
For a visual representation of the Protein Synthesis Process modeling, refer to the diagram provided in the sources folder.
To test the model, experiments were conducted and are detailed in the following notebooks:
12h_simulation.ipynb
: This notebook presents a 12-hour simulation of protein synthesis aimed at testing the model and examining the resulting outcomes. Available here.comparative_analysis.ipynb
: This notebook contains a comparative analysis of models utilizing different resources. The objective of these experiments is to evaluate how the model's performance, in terms of the number of synthesized proteins and execution times, varies with the number of available resources. Available here.
To conduct the experiments, a dataset containing sequences from the human genome was utilized. The dataset was obtained from the RefSeqGene section of the Reference Sequence Database for the Homo sapiens gene from the RefSeq Database.
For more detailed information and access to the dataset, please refer to the repository where it is stored.
ProteinSynthesis/
โ
โโโโ HumanGenomeDataset/ # Repository contains a dataset loaded from the RefSeq Database
โ
โโโโ data/ # Data files used in simulations and experiments' parameters
โ โโโโ codons.json
โ โโโโ parameters_ribosome.json
โ โโโโ parameters_rna_polymerases.json
โ โโโโ peptides.json
โ
โโโโ experiments/
โ โโโโ 12h_simulation.ipynb # 12-hour simulation of protein synthesis
โ โโโโ comparative_analysis.ipynb # Comparative analysis of models utilizing different resources
โ
โโโโ src/ # Source code files
โ โโโโ process/
โ โ โโโโ protein_synthesis.py # EukarioticCell class, simulates the protein synthesis
โ โ โโโโ transcription.py # Nucleus class, simulates the transcription process
โ โ โโโโ translation.py # Ribosome class, simulates the translation process
โ โ
โ โโโโ resources/
โ โ โโโโ container.py # EukaryoticCellContainer class
โ โ โโโโ nucleotides.py # Nucleotides class
โ โ โโโโ resource.py # EukaryoticCellResource class
โ โ โโโโ transfer_mrna.py # TransferRNA class
โ โ
โ โโโโ utils/
โ โ โโโโ plot_utils.py # Function to visualize simulations' results
โ โ โโโโ utils.py # Utility function
โ โ
โ โโโโ variables/
โ โ โโโโ nucleotide_allocations.py
โ โ โโโโ variables.py # Class to store the variables of the simulation
โ โ
โ โโโโ simulation.py # Class to simulate the protein synthesis process
โ
โโโโ main.py # Main script to run experiments