Engineering

Engineering Cycle: A Continuum of “Trial and Error

Synthetic biology is frequently described as a branch of bioengineering, as it employs engineering principles to design and construct biological systems that fulfill specific functions. This approach mirrors the methodology that engineers utilize when developing new products, following a systematic sequence of steps known as the Engineering Cycle. As implied by its name, this cycle involves repeating a series of steps until the resulting prototype satisfies the established criteria. In the realm of synthetic biology, this iterative process continues until a biological system capable of executing the desired function is successfully identified.

The Engineering Cycle encompasses four distinct phases: (1) designing, (2) building, (3) testing, and (4) learning.

  1. Designing Phase: In the initial phase, we articulate the specifications of the biological system and the specific functions we aim for it to perform. During this stage, modeling tools play a crucial role; they enable us to devise the appropriate constructs more efficiently than if we were to rely solely on experimental methods in the laboratory. This predictive modeling accelerates the identification of a biological system that can achieve the targeted functionality.
  2. Building Phase: Following the design, we proceed to the construction phase, where we implement our engineered constructs.
  3. Testing Phase: After construction, the testing phase begins. Here, we rigorously evaluate the performance of the biological system to determine whether it successfully fulfills the intended function. This evaluation is critical, as it provides insights into the efficacy of our engineering efforts.
  4. Learning Phase: Lastly, in the learning phase, we conduct a thorough analysis of any discrepancies between our desired outcomes and the actual performance of the biological system. The insights gained during this evaluation are invaluable; they inform adjustments and enhancements to the initial design, thereby refining the process for subsequent iterations.

This cyclical process is considered the modelling-milestone, through which synthetic biology continually advances, leading to the development of innovative biological systems tailored to meet specific functional demands.

Engineering Cycle Photo
Figure: The Engineering Cycle

The Three-Axon-Engineering Scheme

Throughout the duration of our project, we utilised the engineering cycle at multiple stages, allowing us to refine our approach and achieve significant progress. Below, we highlight three pivotal cycles that played a crucial role in helping us reach key milestones outlined in our project plan. Press each button to read the corresponding section.

Software

Model

Wet Lab

Engineering Cycles for Software Developement

Our goal since we started working on our Software Promoter Strength Prediction Model (PSP Model) was to design and build a machine learning model from scratch, instead of searching for an already designed model and use it for our task. To successfully achieve our goal, we implemented the steps of the Engineering Cycle.

Throughout the first cycle, we created a first version of the Promoter Strength Prediction Model and identified issues we needed to address during the second engineering cycle.

Design:

Initially, we defined the purpose of our machine learning model and the expected input(s) and output(s). We needed our model to be able to predict the strength value (expected output) of promoter sequences in prokaryotic microorganisms (and more specifically, in E. coli, which we would use in our experiments), using as input only the promoter sequence.

Secondly, we had to search for training data that matched our requirements and afterwards, clean or/and preprocess them, if needed. We used the same training data that the iGEM Tsinghua 2023 Team fitted their model with (our software project idea was greatly inspired by the iGEM Tsinghua 2023 Software 1 and our PSP Model has the same purpose as their Promoter Promotion Model, which is to predict the strength of promoter sequences in E. coli). Also, we used One-Hot Encoding to transform the promoter sequences into numerical data.

After we finished the first two steps, we moved on to design the architecture of our machine learning model. Before we started designing our model, we contacted Prof. Andigoni Malousi (Bioinformatics Teaching Staff at Aristotle University of Thessaloniki) and Prof. Ioanna Chouvarda (Associate Professor at Aristotle University of Thessaloniki) to seek their advice. Prof. Andigoni Malousi had previously worked on a similar project and she collaborated on designing a machine learning model that could predict the strength of promoter sequences 2 3. Thus, we designed a similar model which consisted of two Convolutional Layers, each of them followed by a Max Pooling Layer and a Dropout Layer, and at the end we added a Bidirectional Long-Short Term Memory Layer to make our model learn long-term dependencies of sequential data.

Initial Model Architecture
Figure 1: Our Initial Model Architecture

Build:

Then, we started the code development for our PSP Model. We used Keras and TensorFlow for our model development and all the necessary Python Libraries (numpy, pandas). We deployed and trained our model using Google Colab T4 GPU.

The Code for the First Model
Figure 2: Code for the First Model

Test:

The next step was to evaluate our model performance and for this purpose, we used Mean Squared Error (MSE) as the loss function and Mean Average Error (MAE) as the metric. The figure below shows both MSE and MAE, throughout the model training. Our Test MAE was approximately 3716.49.

Model Performance Metrics
Figure 3: Initial Model MSE and MAE Values

Learn:

The values of Test Loss (Mean Squared Error) and Test MAE (Mean Average Error) are quite high. This indicates that our initial model was unable to accurately predict the strength of the promoter sequences. Consequently, we needed to find out why our model showed such poor performance.

One of the main reasons for our high error values was that our model was unsuccessful at capturing essential motifs and patterns in the promoter sequences that affect the strength value. To tackle this issue, we had to rebuild our model so that it was much more efficient at recognizing those patterns and taking them into consideration for the final prediction output. Thus, our next step was to search for more advanced machine learning models, architectures and mechanisms and study their functions and purposes, so that we could efficiently redesign our model.

Another potential issue to explain the poor model performance is the presence of data imbalances in the training dataset. For this reason, we created a histogram to distribute the promoter sequences based on their strength value.

Distribution Histogram
Figure 4: Histogram for the distribution of Sequences by Strength (range: 0 – 5000)

The figure above shows the number of sequences by their strength, by distributing them in bins of width 100. We included the range from 0 to 5000 only, so that we have a clear representation of the histogram. It is evident that the vast majority of the promoters in the training dataset have a low strength value, and as the value of strength increases, the number of sequences with higher strength decreases significantly. Out of the total 11884 promoter sequences, nearly 5000 of them have a strength value in the range of 0-100. This imbalance affects the model’s performance significantly. In order to assess the model efficacy, we had to separately assess its performance for low strength promoters and high strength promoters. Another way to address this issue was by excluding training data, in order to make the dataset more balanced. This approach could also negatively influence the model’s efficacy, because it would be trained with fewer training data, impacting its performance at low strength promoters too.

Taking into consideration the above findings, we decided to create two different datasets and train our next models with both of them independently. The first dataset contained all the 11884 promoter sequences and the second dataset contained the promoter sequences with strength less or equal than 7000. We chose the strength value of 7000 arbitrarily, so that we exclude promoters with very high strength values that might negatively influence the model performance.

Also, we came up with the idea of calculating the Mean Average Error independently for the promoters with strength lower or equal than 7000 and for the promoters with strength higher than 7000 (for the model we train with the whole dataset – all 11884 sequences), and assess the model performance at predicting low-medium promoter strength values and high promoter strength values separately.

During this cycle, we rebuilt our model with a goal of improving its efficiency, taking into account all the observations and what we learned at the first cycle. We created our proposed machine learning model during this cycle.

Design:

Firstly, we conducted literature research with the goal of finding models, architectures and mechanisms that are able to capture even subtle motifs in the promoter sequences, when added to the model.

A machine learning model architecture that seemed very promising and ideal for our task was the Residual Network 4. ResNet uses convolutional blocks (Convolutional Neural Network Architecture) and is enriched with residual (or skip) connections, forming what are known as Residual Blocks. Those residual connections help the model capture more patterns in the sequences, resulting in better model performance. We have explained the functionality of ResNet in our Software Page.

Build:

We proceeded to write code for our model. We mainly used Convolutional Blocks and added residual connections between them. During this step, we modified the parameters of the model again and again, to further enhance the model performance. Also, we treated the data logarithmically to ensure numerical stability (instead of predicting the real strength value of a promoter, the model would predict the log2(strength), and at the end we applied the necessary transformation to get the actual final prediction). We also added some code, so that we can download the predictions from the test dataset and analyse our model’s predictions further.

Our code can be accessed at our GitLab Repository.

Test:

This time, the model Mean Average Error was reduced to 1154.79, which is a significant reduction from the previous 3716.49.

Further, we calculated, from the file we downloaded with the model predictions, the Mean Average Error for promoters with strength value less or equal to 7000 and promoters with strength value greater than 7000 separately. For the promoters whose real strength value was less or equal to 7000, the Mean Average Error was approximately 363.94. For the promoters whose real strength value was more than 7000, the Mean Average Error was approximately 27685.07.

It is clear from those values, that our model is able to predict with much greater accuracy the strength of low-strength promoters, and that the high value of the overall Mean Average Error is mainly due to inaccurate predictions regarding the high-strength promoters.

More information about the model performance is available at our Software Page.

Learn:

We managed to successfully resolve the two issues we identified during the first cycle of our PSP Model. We built a model that can efficiently capture more motifs and patterns in the promoter sequences, and make more accurate predictions. We also identified an issue (limitations and imbalances in the training dataset) that negatively affects the model performance.

Although we have submitted our model for now, we acknowledge that we still have to enhance our model further. We need to improve its architecture (for example by adding mechanisms that can achieve this, like Long-Short Term Memory and Attention Layers) and address the issue regarding the imbalanced training data. As we mentioned before, we tried to find more training data that matched our requirements and enrich our current dataset, but we were unable to do so.

Engineering Cycles for Model

Aim:

The primary objective of this phase was to construct a Chimeric Antigen Receptor (CAAR) that can effectively target and bind to specific proteins involved in Multiple Sclerosis (MS). The challenges we faced included ensuring the stability of the receptor design and its applicability in human subjects.

Design:

To address our aim, we examined existing literature to identify a stable CAAR design. We focused our experimentation on two critical components: the binding domain and the linker. Specifically, we assessed two proposals for the binding domain based on established constructs: a MOG-CAAR construct and, following this engineering cycle, an MBP-CAAR construct.

Build:

We initiated our testing efforts with the MOG-CAAR construct.

  1. MOG-CAAR Construct: This construct includes a domain of the myelin oligodendrocyte glycoprotein (amino acids 35-55, BBa_K5310001) along with necessary components such as the CD8 signal peptide, the CD8α hinge domain, the transmembrane region of the CD8 molecule, and an intracellular signaling domain comprising both CD137 and CD3ζ intracellular domains. The CAAR encoding gene was strategically inserted into the C1 PGK vector.
  2. MBP-CAAR Construct: This design encodes a domain of the myelin basic peptide (amino acids 83–99, BBa_K5310003), replacing the MOG domain. The rest of the structural elements remained as in the previous construct, and this construct was also inserted into the PGK C1 vector.

Test:

However, upon evaluation, we encountered significant challenges. The extracellular part design proved to be intricate, raising concerns about its functionality in a biological system. Furthermore, integrated human practices (discussion with Neurologist Prof. Boziki from the Second Neurology Department of Aristotle University of Thessaloniki) indicated that MOG was not as suitable a target as MBP for application in human subjects.

Learn:

In view of these issues, we choose to create the new MBP-CAAR construct. This alternate design demonstrated improved stability and met the criteria for possible human application.

The shift from the MOG-CAAR to the MBP-CAAR construct provided significant understanding into the heterogeneity of targets among multiple sclerosis patients, as well as the extracellular immunodominant epitope design. Recognizing the constraints of the initial design early on in the process allowed us to direct our efforts on a second, more viable architecture that improved our project's desired outcomes.

Aim:

In this phase, our objective was to determine the necessity of an extracellular linker between the transmembrane region and the binding domain of the CAAR construct. This linker could be critical as it connects the autoantibody-binding domain to the transmembrane domain, influencing both the stability and functionality of the receptor.

Design:

We faced two primary questions: (1) Should we incorporate a linker, and (2) If so, which design option would be most effective? Our goal for the linker was to achieve both stability—ensuring it would not easily break—and flexibility, allowing the head of the receptor to optimally fit the target molecule.

Build:

Initially, we conducted modeling tests without a linker and encountered issues with the extracellular domain folding. To inform our decision, we reviewed relevant literature again, in depth, which highlighted several advantages of using linkers in scFv-based CAR designs. Linkers can facilitate the correct orientation of the receptor domains, provide necessary flexibility for effective binding, and enhance overall structural stability (see our Design Page).

As suggested by the literature, we designed a 15-mer linker (BBa_K5310005) composed of three repeats of the Gly-Ser (G4S) sequence, a 20-mer linker with four G4S repeats (BBa_K5310004) and a long stable GS linker (BBa_K5310006) with half the serine residues of BBa_K5310004.

Test:

We tested the two designs in PyMOL and Robetta. We wish to further test their function in vitro, however the sequences have not arrived to our lab so the experiments could not be done by the wiki freeze.

After further consultation with experts, including Mrs. Giannaki and Mrs. Papadopoulou, we made a pivotal change by reducing the number of serine residues. Our revised design incorporated a linker sequence of (G4S)-(G5)-(G4S)-(G5), aiming to enhance stability in the spatial relationship between the transmembrane and extracellular domains. This adjustment was intended to enhance control over the orientation of the small immunogenic domain presented to autoantibodies.

Learn:

Since we have implemented the revised linker design, we wish to conduct stability tests. The new configuration should demonstrate improvements in maintaining structural integrity and performance during integration into T-reg cells. The drawbacks this change is expected to have is a drop in the solubility of the receptor.

The iterative process of assessing the linker’s necessity and subsequent design adjustments provide valuable insights into the design of CAAR constructs. The successful incorporation of a linker should improve the stability and functionality of the receptor, reinforcing the importance of structural integrity in receptor design.

Aim:

The primary goal in this phase was to design appropriate guide RNAs (sgRNAs) for CRISPR-dCAS9-VPR technology, enabling the transfection of T cells—specifically the K562 cell line, which is used due to ethical considerations and its similarity to T cells. Our ultimate objective was to induce the epigenetic expression of the FOXP3 protein, thereby transforming these cells into regulatory T cells (T-regs).

FOXP3 plays a critical role in the immune system as a transcription factor essential for the development and function of T-regs. It is pivotal in maintaining immune tolerance and preventing autoimmune responses. By effectively expressing FOXP3 in our target cells, we aimed to enhance their ability to regulate immune responses.

Design:

To initiate our design process, we utilized the CRISPick tool, which provided guidance on selecting optimal sgRNA sequences targeting the FOXP3 gene located on the X chromosome.

Build:

Initially, we selected five potential gRNAs, resulting in ten sequences when including their complementary strands for the single-guide RNA (sgRNA) format. Prior to finalizing our selection, we assessed these gRNAs for potential off-target effects in humans and animal models, and all evaluations returned favorable results.

Test:

However, upon further discussion with biology professor Mrs. Psatha and her PhD candidate, Mrs. Paschoudi, we identified a significant issue. Four of the initially chosen gRNAs were overlapping, meaning that one sequence was contained within another. Specifically, one pair overlapped by five bases, while another pair overlapped by seven bases, which could compromise the experimental integrity and yield inaccurate results.

Learn:

In response, we revisited the search process to identify five new sgRNAs that met all necessary criteria without any overlaps. After careful selection, we ensured that the new sgRNAs were compatible with the intended CRISPR-dCAS9-VPR application.

Following the redesign, we incorporated the appropriate enzyme digestion end-sequences into the selected gRNAs, preparing them for use in our CRISPR-dCAS9-VPR experiments. These modifications were needed to ensure successful integration during the transfection process.

This experience taught us the importance of thorough validation during the sgRNA design process. The identification of overlapping sequences underlined the need for meticulous attention to detail and the value of expert consultation in refining our approach. Ultimately, by successfully selecting non-overlapping gRNAs, we enhanced the likelihood of achieving accurate results in our efforts to induce FOXP3 expression in K562 cells.

Design:

In this phase, we focused on the Hybridization Chain Reaction (HCR), a powerful technique used in molecular biology to amplify specific nucleic acid sequences through a series of hybridization events. Our goal was to create a highly specific microRNA release mechanism. The first part, the specificity mechanism, would recognise disease-specific microRNAs while the second part, the HCR mechanism, would release new microRNAs, which would then trigger remyelination processes in damaged oligodendrocytes. It is imperative that this mechanism, described in our Design Page, achieves high specificity to the disease and to the cell type, for a better safety profile. We outline two main criteria:

  • the microRNAs we select should be specific to multiple sclerosis patients and/or to oligodendrocytes,
  • the release mechanism should not release the initiator unless both microRNAs selected above are present.

Build:

For the hairpin construction, we utilized two miRNAs implicated in demyelination: miR-125a-3p and miR-146a-5p. In the proposed X structure, we incorporated both miRNAs along with two initiator sequences. Conversely, the Y structure employed both miRNAs, but only one initiator. A Y structure had previously been tested by our 2022 team in their project “Theriac” (see iGEM Thessaloniki 2022 Wiki - Engineering Page 9), which provided a foundational basis for our experimentation.

Given some promising results from previous work in literature, we decided to initially explore the pioneering X structure. We conducted stability assessments on the RNAfold web server and NuPACK to evaluate the thermodynamic properties and the release of the initiator strand from the X structure.

Test:

Our initial tests revealed that the X structure exhibited secondary loops. These created instability in certain regions, which posed a risk of strand displacement and initiator release in cells or environments with no abundance of the disease-specific microRNAs. This would negate the whole reasoning for having a specificity mechanism in the first place.

Learn:

Given these challenges with the X structure, we pivoted to the Y structure model (which eventually looked more like a T structure). This alternative structure was thoroughly compliant with all requirements and did not exhibit the same issues of instability.

Our findings underlined the necessity of rigorous testing to identify potential weaknesses and interactions that could impede function. By ultimately selecting the Y structure, we ensured a more robust and effective approach for activating the targeted miRNAs in our project, paving the way for more reliable outcomes in our efforts to address demyelination in oligodendrocytes.

Aim:

In this phase, we focused on optimizing the Y structure that ensures the safe and specific release of our microRNAs. Our objective was to incorporate a central bulge in the hairpin, as suggested by existing literature (See Design), to enhance its flexibility and efficacy in initiating the HCR process (it reduces the structure metastability).

Design:

Research has shown that incorporating a bulge—typically consisting of 3-4 unpaired bases—within the hairpin structure increases its flexibility and mobility. This design adjustment facilitates the dehybridization of the initial toehold, making it easier for the hairpin to interact with in situ miRNAs, specifically miR-125a-3p and miR-146a-5p, which are associated with oligodendrocyte damage. Following this rationale, we designed a 3- and a 4-bulge hairpin.

Build:

We designed:

  • the Y1a strand complementary to microRNA-125a-3p,
  • the Y2 strand complementary to microRNA-146a-5p,
  • the Y1b strand complementary to part of Y2 strand, and
  • the Y3 strand complementary to the other two, following the Watson-Crick complementarity. Y3 was designed in a way that left two unpaired bases on itself and two unpaired bases on the Y1 strand, creating a 4-base bulge. Then, removing one unpaired base from the Y3 strand also gave us a 3-base bulge.
4-base bulge Y structure
Figure 1: 4-base bulge Y structure

Test:

We first tested the design with four unbound bases. However, our analysis using the RNAfold and NUPACK software programs indicated that this configuration increased the instability of the molecule. In contrast, the NUPACK design feature suggested a two-base bulge that demonstrated greater stability. This configuration not only maintained the structural integrity, but also proved effective in destabilizing in the presence of the disease-specific microRNAs and initiating the HCR process.

2-base bulge T structure
Figure 2: 2-base bulge T structure

Learn:

We concluded on using the T-structure for our experiments. We designed further testing in vitro to confirm that the Y hairpin with the two-base bulge functions well during the strand displacements, and releases the initiator under our strict conditions (simultaneous presence of both microRNAs). Importantly, we also assessed the safety of the toeholds and initiators used in our design, finding no indications of off-target or adverse effects.

Engineering Cycles for Wet Lab

Aim:

In this phase, our main goal was to create stable cell lines that express a specific gene using lentiviral transduction. Unlike transient transfection methods that only provide short-term results, lentiviral vectors allow for long-term expression. By using this approach, we aimed to reduce variability in our experiments, making them more reproducible. Successfully generating these stable cell lines would enable us to study gene function and protein expression over longer periods, helping us better understand the roles of our target genes 5.

Design:

In the design phase of our lentiviral-based transduction, we prepared to create stable cell lines by choosing the right target cells and lentiviral particles. We selected Hut 78 cells and ensured they were in optimal growth conditions for transduction. We calculated the necessary multiplicity of infection (MOI) to achieve the best results while reducing toxicity. We also prepared key reagents, like hexadimethrine bromide, to improve transduction efficiency. By focusing on these essential components, we set the stage for a successful transduction aligned with our project goals.

Build:

After the design phase, we moved into the build phase for our lentiviral transduction. We prepared our target cells (Hut 78) and lentiviral particles for effective transduction. First, we seeded the cells at the right density and calculated how many lentiviral particles to use based on the desired multiplicity of infection (MOI). Then, we thawed the lentiviral particles and added them to the cells, along with hexadimethrine bromide to improve transduction. This phase was crucial for putting our engineered constructs into action and highlighted the importance of careful preparation for successful transduction.

Test:

During our experiments, we started with the lentiviral-based transduction protocol using Hut 78 cells. We prepared the target cells and estimated the multiplicity of infection required for successful gene delivery. However, we encountered difficulties in reaching the requisite transduction efficiency. Despite adhering to the protocol, our estimates occasionally seemed incorrect, raising questions regarding the efficacy of the lentiviral particles and hexadimethrine bromide.

Learn:

To improve our approach, we recalculated and improved the transduction incubation periods. We wanted to increase efficiency by paying strict attention to the protocol and guaranteeing correct pipetting. After making these changes, we noticed a considerable improvement in outcomes. Transduction efficiency increased, resulting in greater expression of the desired gene in Hut 78 cells. This experience showed the importance of meticulous preparation and adjustment in obtaining efficient gene delivery via lentiviral transduction, paving the way for the generation of stable cell lines for future research.

Accurately measuring the multiplicity of infection proved critical for optimal gene delivery. By addressing issues with initial transduction efficiency, we discovered the importance of flexibility and iterative adjustments in our experimental design.

Aim:

In this phase, the primary objective was to determine whether to use traditional cloning or NEBuilder HiFi DNA Assembly for our Wet Lab experiments. More specifically, traditional cloning relies on the use of restriction enzymes and DNA ligase to assemble fragments, a method that has been foundational in molecular biology 6. In contrast, NEBuilder HiFi offers a more advanced approach, allowing for the seamless assembly of multiple DNA fragments without the constraints of length or end compatibility 7. Our decision will be driven by a careful evaluation of the efficiency and accuracy of our traditional cloning method.

Design:

In the design phase, we prepared our engineered constructs by carefully selecting the necessary genetic components for our project. We added BamH1 and Kpn1 restriction sites to the 5’ and 3’ ends of our sequences, respectively, and ensured they were suitable for assembly. We also used computational tools to model our constructs and optimize their design.

Build:

This phase involved carefully assembling the genetic components we had planned. We prepared our DNA fragments and used our traditional cloning method to insert the constructs into the PGK C1 vector. By optimizing reaction conditions, we aimed to ensure effective ligation and successful assembly.

Test:

During our experiments, we initially used traditional cloning to construct our desired genetic sequences. The process began with the digestion of our plasmid and insertion of DNA using restriction enzymes, aiming for precise cut sites for ligation. However, we came across a series of problems. Despite closely following the protocol, our ligation reactions consistently yielded low efficiency. This was intensified by challenges in the transformation phase, where our attempts to introduce the recombinant plasmids into competent bacterial cells did not result in the expected numbers of colony formation.

Learn:

For troubleshooting, we adjusted ligation times, but it became apparent that traditional cloning was still not providing the expected results 8.

We consequently switched to NEBuilder HiFi DNA Assembly, which allows for the seamless joining of multiple DNA fragments using complementary overlaps instead of restriction enzymes. By designing primers with overlapping ends, we enabled precise assembly, and this shift to the NEBuilder protocol simplified our workflow 7.

After applying NEBuilder cloning, we noticed a difference in our results. The effectiveness of our ligation processes improved, resulting in a normal number of converted colonies. Subsequent digests validated the successful incorporation of our constructs.

References

  1. iGEM Tsinghua 2023 Wiki - Software Page https://2023.igem.wiki/tsinghua/software/
  2. Rafi A. M., Nogina D., Penzar D., Lee D., Lee D., Kim N., Kim S., Kim D., Shin Y., Kwak I. Y., Meshcheryakov G., Lando A., Zinkevich A., Kim B. C., Lee J., Kang T., Vaishnav E. D., Yadollahpour P., Random Promoter DREAM Challenge Consortium, Kim, S., … de Boer, C. (2024). Evaluation and optimization of sequence-based gene regulatory deep learning models. bioRxiv : the preprint server for biology, 2023.04.26.538471.
  3. Code Repository - Proposed AUTH Model for DREAM Challenge https://github.com/de-Boer-Lab/random-promoter-dream-challenge-2022/tree/main/dream_submissions/auth
  4. K. He, X. Zhang, S. Ren and J. Sun., Deep Residual Learning for Image Recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 2016, pp. 770-778
  5. https://www.addgene.org/protocols/generating-stable-cell-lines/
  6. https://www.neb.com/en/applications/cloning-and-synthetic-biology/traditional-cloning
  7. https://www.neb.com/en/-/media/nebus/files/manuals/manuale2621_e5520.pdf?rev=120c86ac1f4f48ed95f1eb46990d9d0e&hash=DBB3AAA03690BBDA4C873814C891A375
  8. https://www.snapgene.com/guides/the-plasmid-cloning-cycle
  9. https://2022.igem.wiki/thessaloniki/engineering