Line 74: | Line 74: | ||
We use a combination of existing tools to come to the prediction of novel cry proteins. The entire pipeline consists of four scripts in total, one of which is entirely dedicated to analysis of the Random Forest model and not further used in the main program. The others are there to group the Machine Learning specific functions, the functions that handle known cry proteins, and the functions that handle raw sequence data. Figure 2 gives a graphical representation of the pipeline, though some modules have been left out for the sake of readability. Here, we shall go through each part of the process in a step-by-step manner.</p> | We use a combination of existing tools to come to the prediction of novel cry proteins. The entire pipeline consists of four scripts in total, one of which is entirely dedicated to analysis of the Random Forest model and not further used in the main program. The others are there to group the Machine Learning specific functions, the functions that handle known cry proteins, and the functions that handle raw sequence data. Figure 2 gives a graphical representation of the pipeline, though some modules have been left out for the sake of readability. Here, we shall go through each part of the process in a step-by-step manner.</p> | ||
<map name="pipeline-map" id="pipeline-map"> | <map name="pipeline-map" id="pipeline-map"> | ||
− | <area alt=" | + | <area alt="idba_ud" title="" href="http://i.cs.hku.hk/~alse/hkubrg/projects/idba_ud/" shape="poly" coords="663,10,744,89,663,165,584,88" /> |
− | <area alt="genemark" title="" href=" | + | <area alt="genemark" title="" href="http://exon.gatech.edu/GeneMark/" shape="poly" coords="664,247,742,324,663,402,587,325" /> |
− | <area alt=" | + | <area alt="cry protein" title="" href="http://www.lifesci.sussex.ac.uk/home/Neil_Crickmore/Bt/" shape="poly" coords="67,231,217,232,218,352,68,351" /> |
− | <area alt="hmmscan" title="" href=" | + | <area alt="hmmscan" title="" href="www.hmmr.org" shape="poly" coords="492,738,573,817,493,895,416,821" /> |
− | <area alt="blastp" title="" href=" | + | <area alt="blastp" title="" href="https://www.ncbi.nlm.nih.gov/pubmed/2231712" shape="poly" coords="307,748,382,821,305,899,229,823" /> |
− | <area alt=" | + | <area alt="RandomForest" title="" href="http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html" shape="poly" coords="115,747,193,826,115,902,39,827" /> |
</map> | </map> | ||
− | <figure><img src=https://static.igem.org/mediawiki/2016/0/08/T--Wageningen_UR--pipeline_overview_TS.png | + | <figure><img src=https://static.igem.org/mediawiki/2016/0/08/T--Wageningen_UR--pipeline_overview_TS.png usemap="#pipeline-map"><figcaption>Figure 2: A graphical representation of the pipeline showing the various methods and tools used.</figcaption></figure> |
<h2>Software description</h2> | <h2>Software description</h2> | ||
Line 89: | Line 89: | ||
The nodes of the graph represent whole reads or parts of each read called k-mers, while the edges represent the overlap between them.</span></a>. | The nodes of the graph represent whole reads or parts of each read called k-mers, while the edges represent the overlap between them.</span></a>. | ||
<sup><a href="#ts3" id="ref_ts3">3</a></sup> | <sup><a href="#ts3" id="ref_ts3">3</a></sup> | ||
− | Once the genome is assembled into <a class="tooltip">contigs <span class="tooltiptext" style="width:500px;"> | + | Once the genome is assembled into <a class="tooltip">contigs<span class="tooltiptext" style="width:500px;"> |
A contig is a closed loop in the graph, the longest stretches of DNA possible from all of the reads.</span></a> | A contig is a closed loop in the graph, the longest stretches of DNA possible from all of the reads.</span></a> | ||
we can start doing gene prediction. In this pipeline we used the | we can start doing gene prediction. In this pipeline we used the |
Revision as of 11:56, 13 October 2016
Toxin Scanner
iGEM and sequencing
For iGEM 2016 we designed a high-throughput pipeline for the identification of novel proteins directly from raw genome sequencing data in fasta or fastq format. Given the specificity of our tool and the importance of biobrick discovery in iGEM, we made this tool publicly available for everyone to modify and use. It can be found in this Gitlab repository. For the purpose of the BeeT project, we use it as a cry toxin (oid) predictor, given genomes of selected bacteria. With some modifications it has the potential to be a more broadly applicable tool for finding specific genes in newly sequenced genomes.
Background
For this project we need a toxin specific to Varroa destructor. There are many insecticidal protein families, but the one we were most interested in are the "crystal" (or "cry") proteins. These are usually found on plasmids found in Bacillus Thuringiensis and related species. 14
We know Varroa-specific insecticidal activity exists in Bacillus thuringiensis and related species, due to a paper called: "In vitro susceptibility of Varroa destructor and Apis mellifera to native strains of Bacillus thuringiensis." by Alquisira-Ramírez et al. 2 In this paper several isolates are described that cause a mite mortality of up to 100%. Importantly the strains also showed no insecticidal activity against bee larvae. Because of this we started several sub-projects in parallel to maximize our chances of finding a viable V. destructor-killer. The specificity
part of our project focuses on creating V. destructor-binding cry toxins and finding V. destructor-specific insecticidal proteins.
This tool was made in preparation for results of the latter, finding V. destructor-specific insecticidal proteins, which we assume to be of the cry protein family.
These cry proteins are a diverse group, but are known to be highly specific for individual insects and nematodes. Cry proteins are not necessarily a group of proteins that all perform the same function in the same manner. The distinction between cry and non-cry proteins is defined by a committee: Cry Protein website Based on 45% sequence similarity there are over 70 groups, this high amount of diversity makes it hard to predict when something is or isn't a cry protein.
Current developments
There already exists a publication about a tool called “Bt Toxin Scanner”1. This tool does not fully support local deployment, which is needed for high-throughput analysis, and the relatively basic analysis done by the tool. Due to these reasons we decided to develop our own tool that is fully open-source and improves upon the Bt Toxin Scanner. Our goal with this tool is to run raw sequencing files, and deliver potential cry proteins with just the click of a button.
Pipeline validation
PRJEB5931
We tested the pipeline on a genome sample from a study with accession number PRJEB5931. 13 This genome was found after a co-evolution experiment, and a Bacillus thuringiensis with known nematicidal cry proteins present.
ERX463573 is the accession code of the experiment from which these raw read files came. The description reads: "Population of Bacillus thuringiensis coming from 5 strains experimentally coevolved with Caenorhabditis as host" and the Name: "Coevolution G12 Pop4". From the study we know to expect at the very least the following two proteins:
Cry35Aa4
and
Cry21Aa2.
According to the cry protein toxin list it is known that Cry35Aa4 is a binary toxin with Cry34Aa4 and as such we may expect to find this protein, or one like it, as well.
Key result
The easiest way to visualize the results from the three separate components of the pipeline is to use a Venn diagram.
As Blast had only 5 results it is easier to examine this method in detail. Two of the five were proteins we were expecting from the paper: Cry35Aa4 and Cry21Aa2. These were found to be:
- Gene_5932, which had 100.00% identity with: Cry35Aa4
- Gene_5527, which had 96.04% identity with: Cry21Aa2
Based on the fact that Cry35Aa4 is a binary protein we expected to find its complementary protein as well, which we did:
- Gene_5931, which had 100.00% identity with all four proteins in the Cry34Aa group.
Two other proteins appeared with a good overlap and a good e-value, namely:
- Gene_5934, which had 98.39% identity with: Cry38Aa1, which has no known insecticidal target, but is highly similar to proteins that do: Cry15Aa1, Cry23Aa1, and Cry33Aa1. 17
- Gene_5518, which had 85.87% identity with: Cry14Ab1. Which is only mentioned in a patent by Sampson et al. 2012. 18
Both of these were also picked up by the Hidden Markov Model method of cry protein detection as shown in figure 1, but not by the RandomForest method.
Methods
Overview
We use a combination of existing tools to come to the prediction of novel cry proteins. The entire pipeline consists of four scripts in total, one of which is entirely dedicated to analysis of the Random Forest model and not further used in the main program. The others are there to group the Machine Learning specific functions, the functions that handle known cry proteins, and the functions that handle raw sequence data. Figure 2 gives a graphical representation of the pipeline, though some modules have been left out for the sake of readability. Here, we shall go through each part of the process in a step-by-step manner.
Software description
Genome assembly
Raw genome data directly from a Next Generation Sequencing device comes in the form of files containing many pieces of DNA called ‘reads’. These reads are usually obtained through cutting up the genome and sequencing the small bits at random after amplifying them many times. The idea is that many reads will overlap and can be assembled like a big puzzle. Our pipeline uses a de novo assembler, meaning that it can assemble the reads from scratch, without a reference genome to map them to. This is done by a 'graph-based approach' The nodes of the graph represent whole reads or parts of each read called k-mers, while the edges represent the overlap between them.. 3 Once the genome is assembled into contigs A contig is a closed loop in the graph, the longest stretches of DNA possible from all of the reads. we can start doing gene prediction. In this pipeline we used the IDBA-UD The Iterative De Bruijn Graph De Novo Assembler for highly Uneven sequencing Depth (IDBA-UD) is a tool for assembling genomes in a de novo manner. . 15
Gene prediction
The pipeline does gene prediction through the use of Hidden Markov Models (HMM) 4 that have been trained to distinguish between prokaryotic coding and non-coding regions. These regions are then translated using BioPython's 6 translate function. These are the proteins we compare to our existing Cry Protein database 5 In this pipeline we used the GeneMarkS utilizes a non-supervised training procedure and can be used for a newly sequenced prokaryotic genome with no prior knowledge of any protein or rRNA genes. program for this purpose. 15
Machine Learning
As cry proteins are a group that is hard to define biologically, other than having specific insecticidal activity, it is somewhat of a challenge to find them through means other than direct sequence comparisons. This is why we use three methods to find potential cry proteins:
- A direct sequence comparison with a stringent cut-off ( E value 0.1 or lower): BLAST The Basic Local Alignment Search Tool (BLAST) is an algorithm for comparing sequence information, such as the amino-acid (protein) or nucleic-acid (DNA/RNA) sequences. 8 Using a database of only cry proteins, this tool will allow us to rapidly identify other proteins with highly similar sequences.
- A probabilistic approach based on the primary subdivision between cry proteins (45% sequence similarity): HMMER.
The HMMER toolkit contains several programs that the pipeline uses. 9 The program first builds many different profiles based on the multiple sequence alignment of the primary cry protein groups. This is handled by Clustal Omega. 10- HMMbuild: Builds a profile HMM from an input multiple alignment.
- HMMpress: Formats an HMM database into a binary format for hmmscan.
- HMMscan: Searches a protein sequence against a protein profile HMM database.
- A machine learning approach based on protein features using many weak classifiers to give a majority vote: "RandomForest".7 This part is explained further in the protein classification section.
Protein Classification
The protein classification part of the machine learning is done by the pipeline in two steps: First the features of a protein are predicted using Biopython 6 , and then the pre-trained model predicts a class based on those features.
Features
After some experimentation with the features chosen for modelling, we came up with the following list which we think will capture essential structural elements and allow for good predictions.
- Molecular weight of the protein.
- Aromaticity, ie the relative frequency of aromatic amino acids (Phenylalanine, Tryptophan and Tyrosine)
- Instability index, ie the relative frequency of instability causing dipeptides, for more information see Guruprasad et al 1990.11
- Isoelectric point, which is the pH at which a particular molecule carries no net electrical charge.
- Alpha Helix fraction, the relative frequency of amino acids that tend to be in found in the secondary structure known as alpha helices.
- Turn fraction, the relative frequency of amino acids that tend to be in found in the secondary structure known as turns.
- Beta Sheet fraction, the relative frequency of amino acids that tend to be in found in the secondary structure known as beta sheets.
Scikit-Learn
We made the classification model using scikit-learn or sklearn.12 The class used for this model is called the RandomForestClassifier which works by fitting a number of decision trees, in our case 2000, on various sub-samples of the dataset and averaging these weak classifiers to improve accuracy and control for. overfitting Overfitting is what happens when a model follows its training data so well it can not predict anything new with any accuracy because too much of the noise from the training data has been modelled, rather than the underlying relationship. We assess the predictive accuracy of our model by doing a stratified 10-fold crossvalidation technique from the StratifiedKFold class. These 10-fold cross-validation runs were assessed with the roc-curves method. A ROC curve is a plot of the true positive rate (TPR) The proportion of correctly predicted instances of the testing data. against the false positive rate (FPR) The proportion of wrongly predicted instances of the testing data. 19 These kinds of plots are extremely useful in determining whether or not a Machine Learning model such as RandomForest is well trained.
Venn-Diagrams
All three separate methods give a different output. In order to make an easy visual comparison, we make use of a web tool that can easily calculate and draw custom Venn-diagrams. This tool was made by the university of Gent and can be found here.
References
1. Ye, W., Zhu, L., Liu, Y., Crickmore, N., Peng, D., Ruan, L., & Sun, M. (2012). Mining new crystal protein genes from Bacillus thuringiensis on the basis of mixed plasmid-enriched genome sequencing and a computational pipeline. Applied and environmental microbiology, 78(14), 4795-4801. ↩2. Alquisira-Ramírez, E. V., Paredes-Gonzalez, J. R., Hernández-Velázquez, V. M., Ramírez-Trujillo, J. A., & Peña-Chora, G. (2014). In vitro susceptibility of Varroa destructor and Apis mellifera to native strains of Bacillus thuringiensis. Apidologie, 45(6), 707-718. ↩
3. Compeau, P. E., Pevzner, P. A., & Tesler, G. (2011). How to apply de Bruijn graphs to genome assembly. Nature biotechnology, 29(11), 987-991. ↩
4. Rabiner, L., & Juang, B. (1986). An introduction to hidden Markov models. ieee assp magazine, 3(1), 4-16. ↩
5. Crickmore, N., Baum, J., Bravo, A., Lereclus, D., Narva, K., Sampson, K., Schnepf, E., Sun, M. and Zeigler, D.R. " Bacillus thuringiensis toxin nomenclature" (2016) http://www.btnomenclature.info/ ↩
6. Cock PA, Antao T, Chang JT, Bradman BA, Cox CJ, Dalke A, Friedberg I, Hamelryck T, Kauff F, Wilczynski B and de Hoon MJL (2009) Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics, 25, 1422-1423 ↩
7. Liaw, A., & Wiener, M. (2002). Classification and regression by randomForest. R news, 2(3), 18-22. ↩
@. Altschul, S. F., Gish, W., Miller, W., Myers, E. W., & Lipman, D. J. (1990). Basic local alignment search tool. Journal of molecular biology, 215(3), 403-410. ↩
9. Eddy, S. R. (1998). Profile hidden Markov models. Bioinformatics, 14(9), 755-763. ↩
10. Sievers, F., & Higgins, D. G. (2014). Clustal Omega, accurate alignment of very large numbers of sequences. Multiple sequence alignment methods, 105-116. ↩
11. Guruprasad, K., Reddy, B. B., & Pandit, M. W. (1990). Correlation between stability of a protein and its dipeptide composition: a novel approach for predicting in vivo stability of a protein from its primary sequence. Protein engineering, 4(2), 155-161. ↩
12. Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., ... & Vanderplas, J. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12(Oct), 2825-2830. ↩
13. Masri, L., Branca, A., Sheppard, A. E., Papkou, A., Laehnemann, D., Guenther, P. S., ... & Brzuszkiewicz, E. (2015). Host–pathogen coevolution: the selective advantage of Bacillus thuringiensis virulence and its cry toxin genes. PLoS Biol, 13(6), e1002169. ↩
14.de Maagd, R. A., Bravo, A., & Crickmore, N. (2001). How Bacillus thuringiensis has evolved specific toxins to colonize the insect world. TRENDS in Genetics, 17(4), 193-199. ↩
15. Peng, Y., Leung, H. C., Yiu, S. M., & Chin, F. Y. (2012). IDBA-UD: a de novo assembler for single-cell and metagenomic sequencing data with highly uneven depth. Bioinformatics, 28(11), 1420-1428. ↩
16. Besemer, J., Lomsadze, A., & Borodovsky, M. (2001). GeneMarkS: a self-training method for prediction of gene starts in microbial genomes. Implications for finding sequence motifs in regulatory regions. Nucleic acids research, 29(12), 2607-2618. ↩
17. Baum, J. A., Chu, C. R., Rupar, M., Brown, G. R., Donovan, W. P., Huesing, J. E., ... & Vaughn, T. (2004). Binary toxins from Bacillus thuringiensis active against the western corn rootworm, Diabrotica virgifera virgifera LeConte. Applied and environmental microbiology, 70(8), 4889-4898. ↩
18. Sampson, K. S., Tomso, D. J., & Dumitru, R. V. (2012). U.S. Patent No. 8,318,900. Washington, DC: U.S. Patent and Trademark Office. ↩
19. Bradley, A. P. (1997). The use of the area under the ROC curve in the evaluation of machine learning algorithms. Pattern recognition, 30(7), 1145-1159. ↩