{
  "id": 422288,
  "title": "Deep Go Paper Analysis | 💪🚀💪📈",
  "url": "/competitions/cafa-5-protein-function-prediction/discussion/422288",
  "author_name": "",
  "post_date": "2023-07-09T09:29:09.110541300Z",
  "votes": 10,
  "comment_count": 2,
  "views": 0,
  "content": "<p><strong><a href=\"https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true\" target=\"_blank\">Original Paper</a></strong></p>\n<h1>1 | Pre-Requistics  📝</h1>\n<ul>\n<li>Sturcture of Amino Acids and their Sequences</li>\n<li>GO Onotlogy</li>\n<li>Protein-Protein Interaction</li>\n<li>Convolution Neural Networks</li>\n<li>Sigmoid Activation Function</li>\n<li>Drop-Out Layers</li>\n<li>AUC ROC Curve</li>\n<li>Multi-Label Cross Entropy</li>\n<li>Root Mean Squared Propagation</li>\n</ul>\n<h1>2 | Starting 🌱</h1>\n<p>Recent <code>advancements</code> in <code>Bio-Tech Industry</code> have led to the enormous <code>increase</code> in the amount of <code>Genetic</code>/<code>Protein</code> <code>Sequences</code>, which is expected to increase further too. These studies help in <code>further advancements</code> such as</p>\n<ul>\n<li><strong>Phylogenetics</strong> - Study of the <code>evolutionary relationships</code> between <code>organisms</code></li>\n<li><strong>Evolutionary Biology</strong> - Subfield of biology that studies the <code>evolutionary processes</code> that produced the diversity of life on Earth</li>\n<li><strong>Behavior of Biological Systems</strong> - Study of <code>how living organisms interact with their environment</code>/<code>how they respond to stimuli</code></li>\n</ul>\n<p>Though , <code>Annotations</code> of these <code>Protein Sequences</code> are <code>not</code> at the <code>same pace</code>, which is done with <code>vitro</code>/<code>vivo</code> experiments. These <code>prediction process</code> face many <code>complex challenges</code> such as  </p>\n<ul>\n<li><strong>Complex Relation</strong> - <code>Sequence-Structure-Function</code> <code>SSF</code> adds <code>complex relations</code> among <code>protein sequence</code>/<code>structure</code>/<code>function</code></li>\n<li><strong>Multi Label Classification</strong> - Several <code>Proteins</code> do <code>not</code> only have a <code>single function</code> but may be <code>Pleiotropic</code> and have <code>multiple different functions</code></li>\n<li><strong>Huge amount of Classes</strong> - <code>GO</code> contains <code>strong</code>/<code>formally</code> defined <code>relations</code> between <code>functions</code> that need to be taken <code>into account</code> during <code>function prediction</code> to ensure that these<br>\npredictions are consistent</li>\n<li><strong>Non-Isolation Protein Function</strong> - <code>Higher-level Physiological functions</code> that go beyond simple molecular interactions, such as apoptosis or regulation of heart rate, will <code>require other proteins</code> and <code>cannot usually be predicted</code> by <code>considering a single protein</code> in <code>isolation</code>. </li>\n</ul>\n<h1>Approach 👣</h1>\n<p>There are <code>2</code> kinds of major Representations chooses. </p>\n<ul>\n<li><code>Traditional Protein Sequences</code> <code>GO Ontology</code></li>\n<li><code>Protein Protein Interaction</code> <code>PPI</code></li>\n</ul>\n<p>Firstly these <code>2</code> forms of <code>representations</code> are <code>trained</code> on a <code>Neural Network</code> </p>\n<ul>\n<li><strong>GO Ontology</strong> - Learns the <code>features</code> from the <code>Protein Sequences</code></li>\n<li><strong>PPI</strong> - Learns about the <code>interaction</code> among <code>different Proteins</code> based on their <code>location</code></li>\n</ul>\n<p>Further <code>these features</code> are used to in a <code>Novel Deep Neuro-Symbolic Model</code> that will <code>predict the classes</code> of the Proteins</p>\n<h1>Data 📊</h1>\n<table>\n<thead>\n<tr>\n<th>BPO</th>\n<th>MFO</th>\n<th>CCO</th>\n<th>Total</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>28,647</code></td>\n<td><code>10,161</code></td>\n<td><code>3,907</code></td>\n<td><code>44,683</code> <code>Classes</code>/<code>1,968</code> <code>Obsolete</code></td>\n</tr>\n</tbody>\n</table>\n<p><code>Protein Sequences</code> are taken from <strong><a href=\"https://www.uniprot.org/uniprotkb/?query=*\" target=\"_blank\">Uni-Prot</a></strong> containing <code>5,53,232</code> <code>Proteins</code>/<code>5,25,931</code> <code>Annotations</code>. </p>\n<table>\n<thead>\n<tr>\n<th></th>\n<th>Amount</th>\n<th>Total</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>BPO</td>\n<td>19,181</td>\n<td></td>\n</tr>\n<tr>\n<td>MFO</td>\n<td>6,221</td>\n<td></td>\n</tr>\n<tr>\n<td>CCO</td>\n<td>2,358</td>\n<td></td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td>60,710 Proteins</td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td>27,760 Classes</td>\n</tr>\n</tbody>\n</table>\n<p><img src=\"https://i.ibb.co/PGGhF39/Sequence-Lenght.png\"></p>\n<p>The Embeddings are taken from <a href=\"https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf\" target=\"_blank\">A Neural Probabilistic Language Model</a></p>\n<p>Along this <code>Protein-Protein Interaction - Neural Networks</code> <code>PPI-NNs</code> <strong><a href=\"https://pubmed.ncbi.nlm.nih.gov/25352553/\" target=\"_blank\">String V10</a></strong> combined with <strong><a href=\"http://eggnog5.embl.de/#/app/home\" target=\"_blank\">EggNOG DataBase</a></strong> are also used. </p>\n<h1>Pre-Processing 🔨</h1>\n<hr>\n<p>For the <strong><a href=\"https://www.uniprot.org/uniprotkb/?query=*\" target=\"_blank\">Uni-Prot</a></strong>, only <code>Proteins with experimental codes</code> with (<code>EXP</code>/<code>IDA</code>/<code>IPI</code>/<code>IGI</code>/<code>IEP</code>/<code>TAS</code>/<code>IC</code>) are <code>considered</code>. Protein with bigger than length <code>1002</code> and codes (<code>B</code>/<code>O</code>/<code>J</code>/<code>U</code>/<code>X</code>/<code>Z</code>) are ignored</p>\n<p>The Sequences are first padded made to a length of <code>1,002</code> and then projected to a vector of <code>1,000</code> Dimensions</p>\n<hr>\n<p>For the <strong><a href=\"https://pubmed.ncbi.nlm.nih.gov/25352553/\" target=\"_blank\">String V10</a></strong>, the data is first <code>filtered</code> by a <code>confidence score</code> of <code>300</code>, further concerted with <code>Orthology Relations</code> from <strong><a href=\"http://eggnog5.embl.de/#/app/home\" target=\"_blank\">EggNOG DataBase</a></strong>. In total there are <code>84,78,935</code> <code>Proteins</code>/<code>1,90,649</code> <code>Edge Types</code>/ <code>11,58,66,95,610</code> <code>Edges</code>. With this data, a Knowledge Graph is created with embeddings of size <code>256</code>. Further <code>69,60,395</code> <code>Proteins</code> are mapped from <code>Uni-Prot</code></p>\n<h1>Model 💻</h1>\n<hr>\n<p>A <code>Classical 1-D CNN</code> is used here. with the <code>Convolution Function</code> being </p>\n<p>$$h(y) = \\sum\\limits_{x = 1}^{k}f(x) * g(y * d - x + c)$$<br>\nwhere </p>\n<ul>\n<li>c = k - d + 1</li>\n</ul>\n<p>This is the same formula for the output layer of a Convolution</p>\n<p>The <code>First Layer</code> is intended to <code>learn embeddings</code> where each <code>index</code> is <code>mapped to a dense vector</code> by referring to a <code>lookup embedding table</code> with a <code>size</code> of <code>128</code>, representing a <code>Protein Sequence</code> of length of <code>1002</code> as a matrix of <code>1000 x 128</code>.</p>\n<table>\n<thead>\n<tr>\n<th>Layer</th>\n<th>Filters</th>\n<th>Filter Size</th>\n<th>Stride</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Conv1D - 1</td>\n<td>32</td>\n<td>128</td>\n<td></td>\n</tr>\n<tr>\n<td>Max-Pooling - 1</td>\n<td></td>\n<td>64</td>\n<td>32</td>\n</tr>\n</tbody>\n</table>\n<p>In the end, a vector of <code>832</code> <code>Dimensions</code></p>\n<hr>\n<p>The PPI Sequences is connected with a Layer of <code>1,024</code> Neurons </p>\n<p><img src=\"https://i.ibb.co/HzchbRR/Deep-Go-Model.png\"></p>\n<p><code>Sigmoid</code> as the Default Activation Function is used, along with <code>Dropout Layers</code> to avoid Overfitting for both the models </p>\n<h1>Loss 💔</h1>\n<p><code>Multi-Output-Binary-Cross-Entropy</code> , a loss function that is used for <code>multi-label classification</code> problems is used </p>\n<p>$$loss = -\\sum(ylog(p) + (1 - y)log(1 - p))$$</p>\n<h1>Optimizer ⚙️</h1>\n<p><code>Root-Mean-Squared-Propagation</code> <code>Optimizer</code>, an <code>Adaptive Learning Rate</code> <code>Optimizer</code>, which <code>adjusts</code> the <code>learning rate</code> of the algorithm based on the <code>history of gradients</code> is used with <code>Batch size - 128</code>/<code>Lr - 0.01</code></p>\n<p>$$w = β w_{-1} + (1 - β)g^2$$<br>\n$$α = α<em>{-1}\\frac{1}{w</em>{-1}}$$</p>\n<h1>Training 🏋️‍♂️</h1>\n<p>First the dataset is separated with <code>4:1</code> Ratio </p>\n<ul>\n<li><strong>Training</strong> - <code>80%</code></li>\n<li><strong>Validation</strong> - <code>20%</code></li>\n</ul>\n<p>Training is done on <code>NVIDIA Pascals X GPU</code>, whcih took a little less than <code>3 Hours</code> (<code>BPO Model</code>)</p>\n<p>The Training loop can be seen on <a href=\"https://github.com/bio-ontology-research-group/deepgo\" target=\"_blank\">deepgo</a></p>\n<h1>Comparison ⚖️</h1>\n<ul>\n<li><a href=\"http://bioinfadmin.cs.ucl.ac.uk/downloads/ffpred/cafa3/\" target=\"_blank\">CAFA 3 - FFPred3</a></li>\n<li>GoFDR</li>\n</ul>\n<p>The test set for Comparison is from the <code>5 June 2017</code>, which contains <code>1367</code> <code>Proteins</code> <code>3619</code> <code>Annotations</code></p>\n<p><img src=\"https://i.ibb.co/XsDB7fB/D-Evalution-3.png\"></p>\n<p><img src=\"https://i.ibb.co/G3T4c6n/D-Evalution-2.png\"></p>\n<h1>Evaluation 📄</h1>\n<p>The Evaluation is made on the metrics of <code>F-Max Score</code></p>\n<p>$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒP_i(t))}$$<br>\n$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒt_i)}$$<br>\n$$AvgPr(t) = \\frac{1}{m(t)}\\sum\\limits_{i = 1}^{m(t)}pr_i(t)$$<br>\n$$AvgRc(t) = \\frac{1}{n}\\sum\\limits_{i = 1}^{n}rc_i(t)$$<br>\n$$F_{max} = max(\\frac{2AvgPr(t)AvgRc(t)}{AvgPr(t) + AvgRc(t)})$$</p>\n<p>where </p>\n<ul>\n<li>f - GO class</li>\n<li>Pi(t) - predicted classes for</li>\n<li>i - Protein</li>\n<li>t - Threshold</li>\n<li>Ti - annotated classes</li>\n</ul>\n<p>The Second Metric is the AUC-ROC Curve of Sensitivity</p>\n<p>Additionally Global AucRoc Curve is also calculated</p>\n<p><img src=\"https://i.ibb.co/3Mbx1LZ/D-Evalution-1.png\"></p>\n<p><img src=\"https://i.ibb.co/bH5T3B7/D-Evalution-5.png\"></p>\n<h1>Refrences 📚</h1>\n<table>\n<thead>\n<tr>\n<th>Paper Name</th>\n<th>Authors</th>\n<th>Place</th>\n<th>Year</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Tensorflow: A system for large-scale machine learning</td>\n<td>Abadi,M. et al.</td>\n<td>Berkeley, CA, USA</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Molecular Biology of the Cell, 4th edn</td>\n<td>Alberts,B. et al.</td>\n<td>New York, NY, USA</td>\n<td>2002</td>\n</tr>\n<tr>\n<td>Predicting the sequence specificities of DNA- and RNA-binding proteins by deep learning</td>\n<td>Alipanahi,B. et al.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n<tr>\n<td>Neuro-symbolic representation learning on biological knowledge graphs</td>\n<td>Alshahrani,M. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Gapped BLAST and PSI-BLAST: a new generation of protein database search programs</td>\n<td>Altschul,S.F. et al.</td>\n<td>-</td>\n<td>1997</td>\n</tr>\n<tr>\n<td>Gene ontology: tool for the unification of biology</td>\n<td>Ashburner,M. et al.</td>\n<td>-</td>\n<td>2000</td>\n</tr>\n<tr>\n<td>Systematic functional annotation and visualization of biological networks</td>\n<td>Baryshnikova,A.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>A neural probabilistic language model</td>\n<td>Bengio,Y. et al.</td>\n<td>-</td>\n<td>2003</td>\n</tr>\n<tr>\n<td>UniProtKB/Swiss-Prot, the Manually Annotated Section of the UniProt KnowledgeBase: How to Use the Entry View</td>\n<td>Boutet,E. et al.</td>\n<td>New York, NY</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Information-theoretic evaluation of predicted ontological annotations</td>\n<td>Clark,W.T. and Radivojac,P.</td>\n<td>-</td>\n<td>2013</td>\n</tr>\n<tr>\n<td>Natural language processing (almost) from scratch</td>\n<td>Collobert,R. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>A global genetic interaction network maps a wiring diagram of cellular function</td>\n<td>Costanzo,M. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Ffpred 3: feature-based function prediction for all gene ontology domains</td>\n<td>Cozzetto,D. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Functional classification of cath superfamilies: a domain-based approach for protein function annotation</td>\n<td>Das,S. et al.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n<tr>\n<td>Genome-scale phylogenetic function annotation of large and diverse protein families</td>\n<td>Engelhardt,B.E. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>Interpro in 2017beyond protein family and domain annotations</td>\n<td>Finn,R.D. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Phylogenetic-based propagation of functional annotations within the gene ontology consortium</td>\n<td>Gaudet,P. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>The anatomy of phenotype ontologies: principles, properties and applications</td>\n<td>Gkoutos,G.V. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Understanding the difficulty of training dee feedforward neural networks</td>\n<td>Glorot,X. and Bengio,Y.</td>\n<td>-</td>\n<td>2010</td>\n</tr>\n<tr>\n<td>Gofdr: a sequence alignment based method for predicting protein functions</td>\n<td>Gong,Q. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Learning distributed representations of concepts</td>\n<td>Hinton,G.E.</td>\n<td>Amherst, MA</td>\n<td>1986</td>\n</tr>\n<tr>\n<td>Protein function prediction from functional connectivity</td>\n<td>Hou,J.</td>\n<td>Salt Lake City, UT, USA</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>eggnog 4.5: a hierarchical orthology framework with improved functional annotations for eukaryotic, prokaryotic and viral sequences</td>\n<td>Huerta-Cepas,J. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Predicting protein function by multi-label correlated semi-supervised learning</td>\n<td>Jiang,J.Q. and McQuay,L.J.</td>\n<td>-</td>\n<td>2012</td>\n</tr>\n<tr>\n<td>Protein Function Prediction Based on Patterns in Biological Networks</td>\n<td>Kirac,M. and Ozsoyoglu,G.</td>\n<td>-</td>\n<td>2008</td>\n</tr>\n<tr>\n<td>Convolutional networks for images, speech, and time series</td>\n<td>LeCun,Y. and Bengio,Y.</td>\n<td>Cambridge, MA, USA</td>\n<td>1998</td>\n</tr>\n<tr>\n<td>Critical assessment of methods of protein structure prediction (casp) round x</td>\n<td>Moult,J. et al.</td>\n<td>-</td>\n<td>2014</td>\n</tr>\n<tr>\n<td>Protein annotation from protein interaction networks and gene ontology</td>\n<td>Nguyen,C.D. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>Annotating the human genome with disease ontology</td>\n<td>Osborne,J. et al.</td>\n<td>-</td>\n<td>2009</td>\n</tr>\n<tr>\n<td>A large-scale evaluation of computational protein function prediction</td>\n<td>Radivojac,P. et al.</td>\n<td>-</td>\n<td>2013</td>\n</tr>\n<tr>\n<td>Semantic similarity in a taxonomy: an Information-Based measure and its application to problems of ambiguity in natural language</td>\n<td>Resnik,P.</td>\n<td>-</td>\n<td>1999</td>\n</tr>\n<tr>\n<td>Network-based prediction of protein function</td>\n<td>Sharan,R. et al.</td>\n<td>-</td>\n<td>2007</td>\n</tr>\n<tr>\n<td>Hierarchical classification of gene ontology terms using the gostruct method</td>\n<td>Sokolov,A. and Ben-Hur,A.</td>\n<td>-</td>\n<td>2010</td>\n</tr>\n<tr>\n<td>String v10: proteinprotein interaction networks, integrated over the tree of life</td>\n<td>Szklarczyk,D. et al.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n<tr>\n<td>Lecture 6.5—RmsProp: Divide the gradient by a running average of its recent magnitude</td>\n<td>Tieleman,T. and Hinton,G.</td>\n<td>-</td>\n<td>2012</td>\n</tr>\n<tr>\n<td>Roles for Text Mining in Protein Function Prediction</td>\n<td>Verspoor,K.M.</td>\n<td>-</td>\n<td>2014</td>\n</tr>\n<tr>\n<td>Accurate de novo prediction of protein contact map by ultra-deep learning model</td>\n<td>Wang,S. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Combfunc: predicting protein function using heterogeneous data sources</td>\n<td>Wass,M.N. et al.</td>\n<td>-</td>\n<td>2012</td>\n</tr>\n<tr>\n<td>Predicting effects of noncoding vari</td>\n<td>Zhou,J. and Troyanskaya,O.G.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n</tbody>\n</table>",
  "messages": [
    {
      "id": "2336274",
      "postDate": "07/09/2023 09:29:09",
      "content": "<p><strong><a href=\"https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true\" target=\"_blank\">Original Paper</a></strong></p>\n<h1>1 | Pre-Requistics  📝</h1>\n<ul>\n<li>Sturcture of Amino Acids and their Sequences</li>\n<li>GO Onotlogy</li>\n<li>Protein-Protein Interaction</li>\n<li>Convolution Neural Networks</li>\n<li>Sigmoid Activation Function</li>\n<li>Drop-Out Layers</li>\n<li>AUC ROC Curve</li>\n<li>Multi-Label Cross Entropy</li>\n<li>Root Mean Squared Propagation</li>\n</ul>\n<h1>2 | Starting 🌱</h1>\n<p>Recent <code>advancements</code> in <code>Bio-Tech Industry</code> have led to the enormous <code>increase</code> in the amount of <code>Genetic</code>/<code>Protein</code> <code>Sequences</code>, which is expected to increase further too. These studies help in <code>further advancements</code> such as</p>\n<ul>\n<li><strong>Phylogenetics</strong> - Study of the <code>evolutionary relationships</code> between <code>organisms</code></li>\n<li><strong>Evolutionary Biology</strong> - Subfield of biology that studies the <code>evolutionary processes</code> that produced the diversity of life on Earth</li>\n<li><strong>Behavior of Biological Systems</strong> - Study of <code>how living organisms interact with their environment</code>/<code>how they respond to stimuli</code></li>\n</ul>\n<p>Though , <code>Annotations</code> of these <code>Protein Sequences</code> are <code>not</code> at the <code>same pace</code>, which is done with <code>vitro</code>/<code>vivo</code> experiments. These <code>prediction process</code> face many <code>complex challenges</code> such as  </p>\n<ul>\n<li><strong>Complex Relation</strong> - <code>Sequence-Structure-Function</code> <code>SSF</code> adds <code>complex relations</code> among <code>protein sequence</code>/<code>structure</code>/<code>function</code></li>\n<li><strong>Multi Label Classification</strong> - Several <code>Proteins</code> do <code>not</code> only have a <code>single function</code> but may be <code>Pleiotropic</code> and have <code>multiple different functions</code></li>\n<li><strong>Huge amount of Classes</strong> - <code>GO</code> contains <code>strong</code>/<code>formally</code> defined <code>relations</code> between <code>functions</code> that need to be taken <code>into account</code> during <code>function prediction</code> to ensure that these<br>\npredictions are consistent</li>\n<li><strong>Non-Isolation Protein Function</strong> - <code>Higher-level Physiological functions</code> that go beyond simple molecular interactions, such as apoptosis or regulation of heart rate, will <code>require other proteins</code> and <code>cannot usually be predicted</code> by <code>considering a single protein</code> in <code>isolation</code>. </li>\n</ul>\n<h1>Approach 👣</h1>\n<p>There are <code>2</code> kinds of major Representations chooses. </p>\n<ul>\n<li><code>Traditional Protein Sequences</code> <code>GO Ontology</code></li>\n<li><code>Protein Protein Interaction</code> <code>PPI</code></li>\n</ul>\n<p>Firstly these <code>2</code> forms of <code>representations</code> are <code>trained</code> on a <code>Neural Network</code> </p>\n<ul>\n<li><strong>GO Ontology</strong> - Learns the <code>features</code> from the <code>Protein Sequences</code></li>\n<li><strong>PPI</strong> - Learns about the <code>interaction</code> among <code>different Proteins</code> based on their <code>location</code></li>\n</ul>\n<p>Further <code>these features</code> are used to in a <code>Novel Deep Neuro-Symbolic Model</code> that will <code>predict the classes</code> of the Proteins</p>\n<h1>Data 📊</h1>\n<table>\n<thead>\n<tr>\n<th>BPO</th>\n<th>MFO</th>\n<th>CCO</th>\n<th>Total</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>28,647</code></td>\n<td><code>10,161</code></td>\n<td><code>3,907</code></td>\n<td><code>44,683</code> <code>Classes</code>/<code>1,968</code> <code>Obsolete</code></td>\n</tr>\n</tbody>\n</table>\n<p><code>Protein Sequences</code> are taken from <strong><a href=\"https://www.uniprot.org/uniprotkb/?query=*\" target=\"_blank\">Uni-Prot</a></strong> containing <code>5,53,232</code> <code>Proteins</code>/<code>5,25,931</code> <code>Annotations</code>. </p>\n<table>\n<thead>\n<tr>\n<th></th>\n<th>Amount</th>\n<th>Total</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>BPO</td>\n<td>19,181</td>\n<td></td>\n</tr>\n<tr>\n<td>MFO</td>\n<td>6,221</td>\n<td></td>\n</tr>\n<tr>\n<td>CCO</td>\n<td>2,358</td>\n<td></td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td>60,710 Proteins</td>\n</tr>\n<tr>\n<td></td>\n<td></td>\n<td>27,760 Classes</td>\n</tr>\n</tbody>\n</table>\n<p><img src=\"https://i.ibb.co/PGGhF39/Sequence-Lenght.png\"></p>\n<p>The Embeddings are taken from <a href=\"https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf\" target=\"_blank\">A Neural Probabilistic Language Model</a></p>\n<p>Along this <code>Protein-Protein Interaction - Neural Networks</code> <code>PPI-NNs</code> <strong><a href=\"https://pubmed.ncbi.nlm.nih.gov/25352553/\" target=\"_blank\">String V10</a></strong> combined with <strong><a href=\"http://eggnog5.embl.de/#/app/home\" target=\"_blank\">EggNOG DataBase</a></strong> are also used. </p>\n<h1>Pre-Processing 🔨</h1>\n<hr>\n<p>For the <strong><a href=\"https://www.uniprot.org/uniprotkb/?query=*\" target=\"_blank\">Uni-Prot</a></strong>, only <code>Proteins with experimental codes</code> with (<code>EXP</code>/<code>IDA</code>/<code>IPI</code>/<code>IGI</code>/<code>IEP</code>/<code>TAS</code>/<code>IC</code>) are <code>considered</code>. Protein with bigger than length <code>1002</code> and codes (<code>B</code>/<code>O</code>/<code>J</code>/<code>U</code>/<code>X</code>/<code>Z</code>) are ignored</p>\n<p>The Sequences are first padded made to a length of <code>1,002</code> and then projected to a vector of <code>1,000</code> Dimensions</p>\n<hr>\n<p>For the <strong><a href=\"https://pubmed.ncbi.nlm.nih.gov/25352553/\" target=\"_blank\">String V10</a></strong>, the data is first <code>filtered</code> by a <code>confidence score</code> of <code>300</code>, further concerted with <code>Orthology Relations</code> from <strong><a href=\"http://eggnog5.embl.de/#/app/home\" target=\"_blank\">EggNOG DataBase</a></strong>. In total there are <code>84,78,935</code> <code>Proteins</code>/<code>1,90,649</code> <code>Edge Types</code>/ <code>11,58,66,95,610</code> <code>Edges</code>. With this data, a Knowledge Graph is created with embeddings of size <code>256</code>. Further <code>69,60,395</code> <code>Proteins</code> are mapped from <code>Uni-Prot</code></p>\n<h1>Model 💻</h1>\n<hr>\n<p>A <code>Classical 1-D CNN</code> is used here. with the <code>Convolution Function</code> being </p>\n<p>$$h(y) = \\sum\\limits_{x = 1}^{k}f(x) * g(y * d - x + c)$$<br>\nwhere </p>\n<ul>\n<li>c = k - d + 1</li>\n</ul>\n<p>This is the same formula for the output layer of a Convolution</p>\n<p>The <code>First Layer</code> is intended to <code>learn embeddings</code> where each <code>index</code> is <code>mapped to a dense vector</code> by referring to a <code>lookup embedding table</code> with a <code>size</code> of <code>128</code>, representing a <code>Protein Sequence</code> of length of <code>1002</code> as a matrix of <code>1000 x 128</code>.</p>\n<table>\n<thead>\n<tr>\n<th>Layer</th>\n<th>Filters</th>\n<th>Filter Size</th>\n<th>Stride</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Conv1D - 1</td>\n<td>32</td>\n<td>128</td>\n<td></td>\n</tr>\n<tr>\n<td>Max-Pooling - 1</td>\n<td></td>\n<td>64</td>\n<td>32</td>\n</tr>\n</tbody>\n</table>\n<p>In the end, a vector of <code>832</code> <code>Dimensions</code></p>\n<hr>\n<p>The PPI Sequences is connected with a Layer of <code>1,024</code> Neurons </p>\n<p><img src=\"https://i.ibb.co/HzchbRR/Deep-Go-Model.png\"></p>\n<p><code>Sigmoid</code> as the Default Activation Function is used, along with <code>Dropout Layers</code> to avoid Overfitting for both the models </p>\n<h1>Loss 💔</h1>\n<p><code>Multi-Output-Binary-Cross-Entropy</code> , a loss function that is used for <code>multi-label classification</code> problems is used </p>\n<p>$$loss = -\\sum(ylog(p) + (1 - y)log(1 - p))$$</p>\n<h1>Optimizer ⚙️</h1>\n<p><code>Root-Mean-Squared-Propagation</code> <code>Optimizer</code>, an <code>Adaptive Learning Rate</code> <code>Optimizer</code>, which <code>adjusts</code> the <code>learning rate</code> of the algorithm based on the <code>history of gradients</code> is used with <code>Batch size - 128</code>/<code>Lr - 0.01</code></p>\n<p>$$w = β w_{-1} + (1 - β)g^2$$<br>\n$$α = α<em>{-1}\\frac{1}{w</em>{-1}}$$</p>\n<h1>Training 🏋️‍♂️</h1>\n<p>First the dataset is separated with <code>4:1</code> Ratio </p>\n<ul>\n<li><strong>Training</strong> - <code>80%</code></li>\n<li><strong>Validation</strong> - <code>20%</code></li>\n</ul>\n<p>Training is done on <code>NVIDIA Pascals X GPU</code>, whcih took a little less than <code>3 Hours</code> (<code>BPO Model</code>)</p>\n<p>The Training loop can be seen on <a href=\"https://github.com/bio-ontology-research-group/deepgo\" target=\"_blank\">deepgo</a></p>\n<h1>Comparison ⚖️</h1>\n<ul>\n<li><a href=\"http://bioinfadmin.cs.ucl.ac.uk/downloads/ffpred/cafa3/\" target=\"_blank\">CAFA 3 - FFPred3</a></li>\n<li>GoFDR</li>\n</ul>\n<p>The test set for Comparison is from the <code>5 June 2017</code>, which contains <code>1367</code> <code>Proteins</code> <code>3619</code> <code>Annotations</code></p>\n<p><img src=\"https://i.ibb.co/XsDB7fB/D-Evalution-3.png\"></p>\n<p><img src=\"https://i.ibb.co/G3T4c6n/D-Evalution-2.png\"></p>\n<h1>Evaluation 📄</h1>\n<p>The Evaluation is made on the metrics of <code>F-Max Score</code></p>\n<p>$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒP_i(t))}$$<br>\n$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒt_i)}$$<br>\n$$AvgPr(t) = \\frac{1}{m(t)}\\sum\\limits_{i = 1}^{m(t)}pr_i(t)$$<br>\n$$AvgRc(t) = \\frac{1}{n}\\sum\\limits_{i = 1}^{n}rc_i(t)$$<br>\n$$F_{max} = max(\\frac{2AvgPr(t)AvgRc(t)}{AvgPr(t) + AvgRc(t)})$$</p>\n<p>where </p>\n<ul>\n<li>f - GO class</li>\n<li>Pi(t) - predicted classes for</li>\n<li>i - Protein</li>\n<li>t - Threshold</li>\n<li>Ti - annotated classes</li>\n</ul>\n<p>The Second Metric is the AUC-ROC Curve of Sensitivity</p>\n<p>Additionally Global AucRoc Curve is also calculated</p>\n<p><img src=\"https://i.ibb.co/3Mbx1LZ/D-Evalution-1.png\"></p>\n<p><img src=\"https://i.ibb.co/bH5T3B7/D-Evalution-5.png\"></p>\n<h1>Refrences 📚</h1>\n<table>\n<thead>\n<tr>\n<th>Paper Name</th>\n<th>Authors</th>\n<th>Place</th>\n<th>Year</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Tensorflow: A system for large-scale machine learning</td>\n<td>Abadi,M. et al.</td>\n<td>Berkeley, CA, USA</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Molecular Biology of the Cell, 4th edn</td>\n<td>Alberts,B. et al.</td>\n<td>New York, NY, USA</td>\n<td>2002</td>\n</tr>\n<tr>\n<td>Predicting the sequence specificities of DNA- and RNA-binding proteins by deep learning</td>\n<td>Alipanahi,B. et al.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n<tr>\n<td>Neuro-symbolic representation learning on biological knowledge graphs</td>\n<td>Alshahrani,M. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Gapped BLAST and PSI-BLAST: a new generation of protein database search programs</td>\n<td>Altschul,S.F. et al.</td>\n<td>-</td>\n<td>1997</td>\n</tr>\n<tr>\n<td>Gene ontology: tool for the unification of biology</td>\n<td>Ashburner,M. et al.</td>\n<td>-</td>\n<td>2000</td>\n</tr>\n<tr>\n<td>Systematic functional annotation and visualization of biological networks</td>\n<td>Baryshnikova,A.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>A neural probabilistic language model</td>\n<td>Bengio,Y. et al.</td>\n<td>-</td>\n<td>2003</td>\n</tr>\n<tr>\n<td>UniProtKB/Swiss-Prot, the Manually Annotated Section of the UniProt KnowledgeBase: How to Use the Entry View</td>\n<td>Boutet,E. et al.</td>\n<td>New York, NY</td>\n<td>-</td>\n</tr>\n<tr>\n<td>Information-theoretic evaluation of predicted ontological annotations</td>\n<td>Clark,W.T. and Radivojac,P.</td>\n<td>-</td>\n<td>2013</td>\n</tr>\n<tr>\n<td>Natural language processing (almost) from scratch</td>\n<td>Collobert,R. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>A global genetic interaction network maps a wiring diagram of cellular function</td>\n<td>Costanzo,M. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Ffpred 3: feature-based function prediction for all gene ontology domains</td>\n<td>Cozzetto,D. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Functional classification of cath superfamilies: a domain-based approach for protein function annotation</td>\n<td>Das,S. et al.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n<tr>\n<td>Genome-scale phylogenetic function annotation of large and diverse protein families</td>\n<td>Engelhardt,B.E. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>Interpro in 2017beyond protein family and domain annotations</td>\n<td>Finn,R.D. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Phylogenetic-based propagation of functional annotations within the gene ontology consortium</td>\n<td>Gaudet,P. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>The anatomy of phenotype ontologies: principles, properties and applications</td>\n<td>Gkoutos,G.V. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Understanding the difficulty of training dee feedforward neural networks</td>\n<td>Glorot,X. and Bengio,Y.</td>\n<td>-</td>\n<td>2010</td>\n</tr>\n<tr>\n<td>Gofdr: a sequence alignment based method for predicting protein functions</td>\n<td>Gong,Q. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Learning distributed representations of concepts</td>\n<td>Hinton,G.E.</td>\n<td>Amherst, MA</td>\n<td>1986</td>\n</tr>\n<tr>\n<td>Protein function prediction from functional connectivity</td>\n<td>Hou,J.</td>\n<td>Salt Lake City, UT, USA</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>eggnog 4.5: a hierarchical orthology framework with improved functional annotations for eukaryotic, prokaryotic and viral sequences</td>\n<td>Huerta-Cepas,J. et al.</td>\n<td>-</td>\n<td>2016</td>\n</tr>\n<tr>\n<td>Predicting protein function by multi-label correlated semi-supervised learning</td>\n<td>Jiang,J.Q. and McQuay,L.J.</td>\n<td>-</td>\n<td>2012</td>\n</tr>\n<tr>\n<td>Protein Function Prediction Based on Patterns in Biological Networks</td>\n<td>Kirac,M. and Ozsoyoglu,G.</td>\n<td>-</td>\n<td>2008</td>\n</tr>\n<tr>\n<td>Convolutional networks for images, speech, and time series</td>\n<td>LeCun,Y. and Bengio,Y.</td>\n<td>Cambridge, MA, USA</td>\n<td>1998</td>\n</tr>\n<tr>\n<td>Critical assessment of methods of protein structure prediction (casp) round x</td>\n<td>Moult,J. et al.</td>\n<td>-</td>\n<td>2014</td>\n</tr>\n<tr>\n<td>Protein annotation from protein interaction networks and gene ontology</td>\n<td>Nguyen,C.D. et al.</td>\n<td>-</td>\n<td>2011</td>\n</tr>\n<tr>\n<td>Annotating the human genome with disease ontology</td>\n<td>Osborne,J. et al.</td>\n<td>-</td>\n<td>2009</td>\n</tr>\n<tr>\n<td>A large-scale evaluation of computational protein function prediction</td>\n<td>Radivojac,P. et al.</td>\n<td>-</td>\n<td>2013</td>\n</tr>\n<tr>\n<td>Semantic similarity in a taxonomy: an Information-Based measure and its application to problems of ambiguity in natural language</td>\n<td>Resnik,P.</td>\n<td>-</td>\n<td>1999</td>\n</tr>\n<tr>\n<td>Network-based prediction of protein function</td>\n<td>Sharan,R. et al.</td>\n<td>-</td>\n<td>2007</td>\n</tr>\n<tr>\n<td>Hierarchical classification of gene ontology terms using the gostruct method</td>\n<td>Sokolov,A. and Ben-Hur,A.</td>\n<td>-</td>\n<td>2010</td>\n</tr>\n<tr>\n<td>String v10: proteinprotein interaction networks, integrated over the tree of life</td>\n<td>Szklarczyk,D. et al.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n<tr>\n<td>Lecture 6.5—RmsProp: Divide the gradient by a running average of its recent magnitude</td>\n<td>Tieleman,T. and Hinton,G.</td>\n<td>-</td>\n<td>2012</td>\n</tr>\n<tr>\n<td>Roles for Text Mining in Protein Function Prediction</td>\n<td>Verspoor,K.M.</td>\n<td>-</td>\n<td>2014</td>\n</tr>\n<tr>\n<td>Accurate de novo prediction of protein contact map by ultra-deep learning model</td>\n<td>Wang,S. et al.</td>\n<td>-</td>\n<td>2017</td>\n</tr>\n<tr>\n<td>Combfunc: predicting protein function using heterogeneous data sources</td>\n<td>Wass,M.N. et al.</td>\n<td>-</td>\n<td>2012</td>\n</tr>\n<tr>\n<td>Predicting effects of noncoding vari</td>\n<td>Zhou,J. and Troyanskaya,O.G.</td>\n<td>-</td>\n<td>2015</td>\n</tr>\n</tbody>\n</table>",
      "rawMarkdown": "**[Original Paper](https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true)**\n\n# 1 | Pre-Requistics  📝\n\n* Sturcture of Amino Acids and their Sequences\n* GO Onotlogy\n* Protein-Protein Interaction\n* Convolution Neural Networks\n* Sigmoid Activation Function\n* Drop-Out Layers\n* AUC ROC Curve\n* Multi-Label Cross Entropy\n* Root Mean Squared Propagation\n\n# 2 | Starting 🌱\n\nRecent `advancements` in `Bio-Tech Industry` have led to the enormous `increase` in the amount of `Genetic`/`Protein` `Sequences`, which is expected to increase further too. These studies help in `further advancements` such as\n* **Phylogenetics** - Study of the `evolutionary relationships` between `organisms`\n* **Evolutionary Biology** - Subfield of biology that studies the `evolutionary processes` that produced the diversity of life on Earth\n* **Behavior of Biological Systems** - Study of `how living organisms interact with their environment`/`how they respond to stimuli`\n\nThough , `Annotations` of these `Protein Sequences` are `not` at the `same pace`, which is done with `vitro`/`vivo` experiments. These `prediction process` face many `complex challenges` such as  \n* **Complex Relation** - `Sequence-Structure-Function` `SSF` adds `complex relations` among `protein sequence`/`structure`/`function`\n* **Multi Label Classification** - Several `Proteins` do `not` only have a `single function` but may be `Pleiotropic` and have `multiple different functions`\n* **Huge amount of Classes** - `GO` contains `strong`/`formally` defined `relations` between `functions` that need to be taken `into account` during `function prediction` to ensure that these\npredictions are consistent\n* **Non-Isolation Protein Function** - `Higher-level Physiological functions` that go beyond simple molecular interactions, such as apoptosis or regulation of heart rate, will `require other proteins` and `cannot usually be predicted` by `considering a single protein` in `isolation`. \n\n# Approach 👣\n\nThere are `2` kinds of major Representations chooses. \n* `Traditional Protein Sequences` `GO Ontology`\n* `Protein Protein Interaction` `PPI`\n\nFirstly these `2` forms of `representations` are `trained` on a `Neural Network` \n* **GO Ontology** - Learns the `features` from the `Protein Sequences`\n* **PPI** - Learns about the `interaction` among `different Proteins` based on their `location`\n \nFurther `these features` are used to in a `Novel Deep Neuro-Symbolic Model` that will `predict the classes` of the Proteins\n\n# Data 📊\n\n|BPO|MFO|CCO|Total\n|---|---|---|---|\n|`28,647`|`10,161`|`3,907`|`44,683` `Classes`/`1,968` `Obsolete`\n\n`Protein Sequences` are taken from **[Uni-Prot](https://www.uniprot.org/uniprotkb/?query=*)** containing `5,53,232` `Proteins`/`5,25,931` `Annotations`. \n\n||Amount|Total\n|---|---|---\n|BPO|19,181|\n|MFO|6,221|\n|CCO|2,358|\n|||60,710 Proteins\n|||27,760 Classes\n\n<img src=\"https://i.ibb.co/PGGhF39/Sequence-Lenght.png\" width = 400>\n\nThe Embeddings are taken from [A Neural Probabilistic Language Model](https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf)\n\nAlong this `Protein-Protein Interaction - Neural Networks` `PPI-NNs` **[String V10](https://pubmed.ncbi.nlm.nih.gov/25352553/)** combined with **[EggNOG DataBase](http://eggnog5.embl.de/#/app/home)** are also used. \n\n# Pre-Processing 🔨\n****\nFor the **[Uni-Prot](https://www.uniprot.org/uniprotkb/?query=*)**, only `Proteins with experimental codes` with (`EXP`/`IDA`/`IPI`/`IGI`/`IEP`/`TAS`/`IC`) are `considered`. Protein with bigger than length `1002` and codes (`B`/`O`/`J`/`U`/`X`/`Z`) are ignored\n\nThe Sequences are first padded made to a length of `1,002` and then projected to a vector of `1,000` Dimensions\n****\nFor the **[String V10](https://pubmed.ncbi.nlm.nih.gov/25352553/)**, the data is first `filtered` by a `confidence score` of `300`, further concerted with `Orthology Relations` from **[EggNOG DataBase](http://eggnog5.embl.de/#/app/home)**. In total there are `84,78,935` `Proteins`/`1,90,649` `Edge Types`/ `11,58,66,95,610` `Edges`. With this data, a Knowledge Graph is created with embeddings of size `256`. Further `69,60,395` `Proteins` are mapped from `Uni-Prot`\n\n# Model 💻\n****\nA `Classical 1-D CNN` is used here. with the `Convolution Function` being \n\n$$h(y) = \\sum\\limits_{x = 1}^{k}f(x) * g(y * d - x + c)$$\nwhere \n* c = k - d + 1\n\nThis is the same formula for the output layer of a Convolution\n\nThe `First Layer` is intended to `learn embeddings` where each `index` is `mapped to a dense vector` by referring to a `lookup embedding table` with a `size` of `128`, representing a `Protein Sequence` of length of `1002` as a matrix of `1000 x 128`.\n\n|Layer|Filters|Filter Size|Stride|\n|---|---|---|---\n|Conv1D - 1|32|128||\n|Max-Pooling - 1||64|32\n\nIn the end, a vector of `832` `Dimensions`\n****\nThe PPI Sequences is connected with a Layer of `1,024` Neurons \n\n<img src=\"https://i.ibb.co/HzchbRR/Deep-Go-Model.png\">\n\n`Sigmoid` as the Default Activation Function is used, along with `Dropout Layers` to avoid Overfitting for both the models \n\n# Loss 💔\n`Multi-Output-Binary-Cross-Entropy` , a loss function that is used for `multi-label classification` problems is used \n\n$$loss = -\\sum(ylog(p) + (1 - y)log(1 - p))$$\n# Optimizer ⚙️\n`Root-Mean-Squared-Propagation` `Optimizer`, an `Adaptive Learning Rate` `Optimizer`, which `adjusts` the `learning rate` of the algorithm based on the `history of gradients` is used with `Batch size - 128`/`Lr - 0.01`\n\n$$w = β w_{-1} + (1 - β)g^2$$\n$$α = α_{-1}\\frac{1}{w_{-1}}$$\n\n# Training 🏋️‍♂️\nFirst the dataset is separated with `4:1` Ratio \n* **Training** - `80%`\n* **Validation** - `20%`\n\nTraining is done on `NVIDIA Pascals X GPU`, whcih took a little less than `3 Hours` (`BPO Model`)\n\nThe Training loop can be seen on [deepgo](https://github.com/bio-ontology-research-group/deepgo)\n\n# Comparison ⚖️\n* [CAFA 3 - FFPred3](http://bioinfadmin.cs.ucl.ac.uk/downloads/ffpred/cafa3/)\n* GoFDR\n\nThe test set for Comparison is from the `5 June 2017`, which contains `1367` `Proteins` `3619` `Annotations`\n\n<img src=\"https://i.ibb.co/XsDB7fB/D-Evalution-3.png\">\n\n<img src=\"https://i.ibb.co/G3T4c6n/D-Evalution-2.png\">\n\n# Evaluation 📄 \n\nThe Evaluation is made on the metrics of `F-Max Score`\n\n$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒP_i(t))}$$\n$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒt_i)}$$\n$$AvgPr(t) = \\frac{1}{m(t)}\\sum\\limits_{i = 1}^{m(t)}pr_i(t)$$\n$$AvgRc(t) = \\frac{1}{n}\\sum\\limits_{i = 1}^{n}rc_i(t)$$\n$$F_{max} = max(\\frac{2AvgPr(t)AvgRc(t)}{AvgPr(t) + AvgRc(t)})$$\n\nwhere \n* f - GO class\n* Pi(t) - predicted classes for\n* i - Protein\n* t - Threshold\n* Ti - annotated classes\n\nThe Second Metric is the AUC-ROC Curve of Sensitivity\n\nAdditionally Global AucRoc Curve is also calculated\n\n<img src=\"https://i.ibb.co/3Mbx1LZ/D-Evalution-1.png\">\n\n<img src=\"https://i.ibb.co/bH5T3B7/D-Evalution-5.png\">\n\n# Refrences 📚\n\n| Paper Name | Authors | Place | Year |\n| --- | --- | --- | --- |\n| Tensorflow: A system for large-scale machine learning | Abadi,M. et al. | Berkeley, CA, USA | 2016 |\n| Molecular Biology of the Cell, 4th edn | Alberts,B. et al. | New York, NY, USA | 2002 |\n| Predicting the sequence specificities of DNA- and RNA-binding proteins by deep learning | Alipanahi,B. et al. | - | 2015 |\n| Neuro-symbolic representation learning on biological knowledge graphs | Alshahrani,M. et al. | - | 2017 |\n| Gapped BLAST and PSI-BLAST: a new generation of protein database search programs | Altschul,S.F. et al. | - | 1997 |\n| Gene ontology: tool for the unification of biology | Ashburner,M. et al. | - | 2000 |\n| Systematic functional annotation and visualization of biological networks | Baryshnikova,A. | - | 2016 |\n| A neural probabilistic language model | Bengio,Y. et al. | - | 2003 |\n| UniProtKB/Swiss-Prot, the Manually Annotated Section of the UniProt KnowledgeBase: How to Use the Entry View | Boutet,E. et al. | New York, NY | - |\n| Information-theoretic evaluation of predicted ontological annotations | Clark,W.T. and Radivojac,P. | - | 2013 |\n| Natural language processing (almost) from scratch | Collobert,R. et al. | - | 2011 |\n| A global genetic interaction network maps a wiring diagram of cellular function | Costanzo,M. et al. | - | 2016 |\n| Ffpred 3: feature-based function prediction for all gene ontology domains | Cozzetto,D. et al. | - | 2016 |\n| Functional classification of cath superfamilies: a domain-based approach for protein function annotation | Das,S. et al. | - | 2015 |\n| Genome-scale phylogenetic function annotation of large and diverse protein families | Engelhardt,B.E. et al. | - | 2011 |\n| Interpro in 2017beyond protein family and domain annotations | Finn,R.D. et al. | - | 2017 |\n| Phylogenetic-based propagation of functional annotations within the gene ontology consortium | Gaudet,P. et al. | - | 2011 |\n| The anatomy of phenotype ontologies: principles, properties and applications | Gkoutos,G.V. et al. | - | 2017 |\n| Understanding the difficulty of training dee feedforward neural networks | Glorot,X. and Bengio,Y. | - | 2010 |\n| Gofdr: a sequence alignment based method for predicting protein functions | Gong,Q. et al. | - | 2016 |\n| Learning distributed representations of concepts | Hinton,G.E. | Amherst, MA | 1986 |\n| Protein function prediction from functional connectivity | Hou,J. | Salt Lake City, UT, USA | 2017 |\n| eggnog 4.5: a hierarchical orthology framework with improved functional annotations for eukaryotic, prokaryotic and viral sequences | Huerta-Cepas,J. et al. | - | 2016 |\n| Predicting protein function by multi-label correlated semi-supervised learning | Jiang,J.Q. and McQuay,L.J. | - | 2012 |\n| Protein Function Prediction Based on Patterns in Biological Networks | Kirac,M. and Ozsoyoglu,G. | - | 2008 |\n| Convolutional networks for images, speech, and time series | LeCun,Y. and Bengio,Y. | Cambridge, MA, USA | 1998 |\n| Critical assessment of methods of protein structure prediction (casp) round x | Moult,J. et al. | - | 2014 |\n| Protein annotation from protein interaction networks and gene ontology | Nguyen,C.D. et al. | - | 2011 |\n| Annotating the human genome with disease ontology | Osborne,J. et al. | - | 2009 |\n| A large-scale evaluation of computational protein function prediction | Radivojac,P. et al. | - | 2013 |\n| Semantic similarity in a taxonomy: an Information-Based measure and its application to problems of ambiguity in natural language | Resnik,P. | - | 1999 |\n| Network-based prediction of protein function | Sharan,R. et al. | - | 2007 |\n| Hierarchical classification of gene ontology terms using the gostruct method | Sokolov,A. and Ben-Hur,A. | - | 2010 |\n| String v10: proteinprotein interaction networks, integrated over the tree of life | Szklarczyk,D. et al. | - | 2015 |\n| Lecture 6.5—RmsProp: Divide the gradient by a running average of its recent magnitude | Tieleman,T. and Hinton,G. | - | 2012 |\n| Roles for Text Mining in Protein Function Prediction | Verspoor,K.M. | - | 2014 |\n| Accurate de novo prediction of protein contact map by ultra-deep learning model | Wang,S. et al. | - | 2017 |\n| Combfunc: predicting protein function using heterogeneous data sources | Wass,M.N. et al. | - | 2012 |\n| Predicting effects of noncoding vari | Zhou,J. and Troyanskaya,O.G. | - | 2015 |",
      "votes": null
    },
    {
      "id": "2416413",
      "postDate": "08/31/2023 03:14:18",
      "content": "<p>Thank you for writing this summary.<br>\nHere's the citation and link to the paper as the link mentioned is broken.<br>\n\"DeepGO: predicting protein functions from sequence and interactions using a deep ontology-aware classifier\", Bioinformatics 2018<br>\nLink: [<a href=\"https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true\" target=\"_blank\">Abstract</a>]</p>",
      "rawMarkdown": "Thank you for writing this summary.\nHere's the citation and link to the paper as the link mentioned is broken.\n\"DeepGO: predicting protein functions from sequence and interactions using a deep ontology-aware classifier\", Bioinformatics 2018\nLink: [[Abstract](https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true)]",
      "votes": null
    },
    {
      "id": "2416414",
      "postDate": "08/31/2023 03:16:16",
      "content": "<p>Thank you Kaushalya for the correct link :). I have updated the summary </p>",
      "rawMarkdown": "Thank you Kaushalya for the correct link :). I have updated the summary",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 2416413,
      "author_name": "kaumad",
      "author_url": "",
      "post_date": "08/31/2023 03:14:18",
      "content": "<p>Thank you for writing this summary.<br>\nHere's the citation and link to the paper as the link mentioned is broken.<br>\n\"DeepGO: predicting protein functions from sequence and interactions using a deep ontology-aware classifier\", Bioinformatics 2018<br>\nLink: [<a href=\"https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true\" target=\"_blank\">Abstract</a>]</p>",
      "votes": null,
      "replies": [
        {
          "id": 2416414,
          "author_name": "ayushs9020",
          "author_url": "",
          "post_date": "08/31/2023 03:16:16",
          "content": "<p>Thank you Kaushalya for the correct link :). I have updated the summary </p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "2336274": "**[Original Paper](https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true)**\n\n# 1 | Pre-Requistics  📝\n\n* Sturcture of Amino Acids and their Sequences\n* GO Onotlogy\n* Protein-Protein Interaction\n* Convolution Neural Networks\n* Sigmoid Activation Function\n* Drop-Out Layers\n* AUC ROC Curve\n* Multi-Label Cross Entropy\n* Root Mean Squared Propagation\n\n# 2 | Starting 🌱\n\nRecent `advancements` in `Bio-Tech Industry` have led to the enormous `increase` in the amount of `Genetic`/`Protein` `Sequences`, which is expected to increase further too. These studies help in `further advancements` such as\n* **Phylogenetics** - Study of the `evolutionary relationships` between `organisms`\n* **Evolutionary Biology** - Subfield of biology that studies the `evolutionary processes` that produced the diversity of life on Earth\n* **Behavior of Biological Systems** - Study of `how living organisms interact with their environment`/`how they respond to stimuli`\n\nThough , `Annotations` of these `Protein Sequences` are `not` at the `same pace`, which is done with `vitro`/`vivo` experiments. These `prediction process` face many `complex challenges` such as  \n* **Complex Relation** - `Sequence-Structure-Function` `SSF` adds `complex relations` among `protein sequence`/`structure`/`function`\n* **Multi Label Classification** - Several `Proteins` do `not` only have a `single function` but may be `Pleiotropic` and have `multiple different functions`\n* **Huge amount of Classes** - `GO` contains `strong`/`formally` defined `relations` between `functions` that need to be taken `into account` during `function prediction` to ensure that these\npredictions are consistent\n* **Non-Isolation Protein Function** - `Higher-level Physiological functions` that go beyond simple molecular interactions, such as apoptosis or regulation of heart rate, will `require other proteins` and `cannot usually be predicted` by `considering a single protein` in `isolation`. \n\n# Approach 👣\n\nThere are `2` kinds of major Representations chooses. \n* `Traditional Protein Sequences` `GO Ontology`\n* `Protein Protein Interaction` `PPI`\n\nFirstly these `2` forms of `representations` are `trained` on a `Neural Network` \n* **GO Ontology** - Learns the `features` from the `Protein Sequences`\n* **PPI** - Learns about the `interaction` among `different Proteins` based on their `location`\n \nFurther `these features` are used to in a `Novel Deep Neuro-Symbolic Model` that will `predict the classes` of the Proteins\n\n# Data 📊\n\n|BPO|MFO|CCO|Total\n|---|---|---|---|\n|`28,647`|`10,161`|`3,907`|`44,683` `Classes`/`1,968` `Obsolete`\n\n`Protein Sequences` are taken from **[Uni-Prot](https://www.uniprot.org/uniprotkb/?query=*)** containing `5,53,232` `Proteins`/`5,25,931` `Annotations`. \n\n||Amount|Total\n|---|---|---\n|BPO|19,181|\n|MFO|6,221|\n|CCO|2,358|\n|||60,710 Proteins\n|||27,760 Classes\n\n<img src=\"https://i.ibb.co/PGGhF39/Sequence-Lenght.png\" width = 400>\n\nThe Embeddings are taken from [A Neural Probabilistic Language Model](https://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf)\n\nAlong this `Protein-Protein Interaction - Neural Networks` `PPI-NNs` **[String V10](https://pubmed.ncbi.nlm.nih.gov/25352553/)** combined with **[EggNOG DataBase](http://eggnog5.embl.de/#/app/home)** are also used. \n\n# Pre-Processing 🔨\n****\nFor the **[Uni-Prot](https://www.uniprot.org/uniprotkb/?query=*)**, only `Proteins with experimental codes` with (`EXP`/`IDA`/`IPI`/`IGI`/`IEP`/`TAS`/`IC`) are `considered`. Protein with bigger than length `1002` and codes (`B`/`O`/`J`/`U`/`X`/`Z`) are ignored\n\nThe Sequences are first padded made to a length of `1,002` and then projected to a vector of `1,000` Dimensions\n****\nFor the **[String V10](https://pubmed.ncbi.nlm.nih.gov/25352553/)**, the data is first `filtered` by a `confidence score` of `300`, further concerted with `Orthology Relations` from **[EggNOG DataBase](http://eggnog5.embl.de/#/app/home)**. In total there are `84,78,935` `Proteins`/`1,90,649` `Edge Types`/ `11,58,66,95,610` `Edges`. With this data, a Knowledge Graph is created with embeddings of size `256`. Further `69,60,395` `Proteins` are mapped from `Uni-Prot`\n\n# Model 💻\n****\nA `Classical 1-D CNN` is used here. with the `Convolution Function` being \n\n$$h(y) = \\sum\\limits_{x = 1}^{k}f(x) * g(y * d - x + c)$$\nwhere \n* c = k - d + 1\n\nThis is the same formula for the output layer of a Convolution\n\nThe `First Layer` is intended to `learn embeddings` where each `index` is `mapped to a dense vector` by referring to a `lookup embedding table` with a `size` of `128`, representing a `Protein Sequence` of length of `1002` as a matrix of `1000 x 128`.\n\n|Layer|Filters|Filter Size|Stride|\n|---|---|---|---\n|Conv1D - 1|32|128||\n|Max-Pooling - 1||64|32\n\nIn the end, a vector of `832` `Dimensions`\n****\nThe PPI Sequences is connected with a Layer of `1,024` Neurons \n\n<img src=\"https://i.ibb.co/HzchbRR/Deep-Go-Model.png\">\n\n`Sigmoid` as the Default Activation Function is used, along with `Dropout Layers` to avoid Overfitting for both the models \n\n# Loss 💔\n`Multi-Output-Binary-Cross-Entropy` , a loss function that is used for `multi-label classification` problems is used \n\n$$loss = -\\sum(ylog(p) + (1 - y)log(1 - p))$$\n# Optimizer ⚙️\n`Root-Mean-Squared-Propagation` `Optimizer`, an `Adaptive Learning Rate` `Optimizer`, which `adjusts` the `learning rate` of the algorithm based on the `history of gradients` is used with `Batch size - 128`/`Lr - 0.01`\n\n$$w = β w_{-1} + (1 - β)g^2$$\n$$α = α_{-1}\\frac{1}{w_{-1}}$$\n\n# Training 🏋️‍♂️\nFirst the dataset is separated with `4:1` Ratio \n* **Training** - `80%`\n* **Validation** - `20%`\n\nTraining is done on `NVIDIA Pascals X GPU`, whcih took a little less than `3 Hours` (`BPO Model`)\n\nThe Training loop can be seen on [deepgo](https://github.com/bio-ontology-research-group/deepgo)\n\n# Comparison ⚖️\n* [CAFA 3 - FFPred3](http://bioinfadmin.cs.ucl.ac.uk/downloads/ffpred/cafa3/)\n* GoFDR\n\nThe test set for Comparison is from the `5 June 2017`, which contains `1367` `Proteins` `3619` `Annotations`\n\n<img src=\"https://i.ibb.co/XsDB7fB/D-Evalution-3.png\">\n\n<img src=\"https://i.ibb.co/G3T4c6n/D-Evalution-2.png\">\n\n# Evaluation 📄 \n\nThe Evaluation is made on the metrics of `F-Max Score`\n\n$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒP_i(t))}$$\n$$pr_i(t) = \\frac{\\sum_fI(fŒP_i(t)⋀fŒT_i)}{\\sum_fI(fŒt_i)}$$\n$$AvgPr(t) = \\frac{1}{m(t)}\\sum\\limits_{i = 1}^{m(t)}pr_i(t)$$\n$$AvgRc(t) = \\frac{1}{n}\\sum\\limits_{i = 1}^{n}rc_i(t)$$\n$$F_{max} = max(\\frac{2AvgPr(t)AvgRc(t)}{AvgPr(t) + AvgRc(t)})$$\n\nwhere \n* f - GO class\n* Pi(t) - predicted classes for\n* i - Protein\n* t - Threshold\n* Ti - annotated classes\n\nThe Second Metric is the AUC-ROC Curve of Sensitivity\n\nAdditionally Global AucRoc Curve is also calculated\n\n<img src=\"https://i.ibb.co/3Mbx1LZ/D-Evalution-1.png\">\n\n<img src=\"https://i.ibb.co/bH5T3B7/D-Evalution-5.png\">\n\n# Refrences 📚\n\n| Paper Name | Authors | Place | Year |\n| --- | --- | --- | --- |\n| Tensorflow: A system for large-scale machine learning | Abadi,M. et al. | Berkeley, CA, USA | 2016 |\n| Molecular Biology of the Cell, 4th edn | Alberts,B. et al. | New York, NY, USA | 2002 |\n| Predicting the sequence specificities of DNA- and RNA-binding proteins by deep learning | Alipanahi,B. et al. | - | 2015 |\n| Neuro-symbolic representation learning on biological knowledge graphs | Alshahrani,M. et al. | - | 2017 |\n| Gapped BLAST and PSI-BLAST: a new generation of protein database search programs | Altschul,S.F. et al. | - | 1997 |\n| Gene ontology: tool for the unification of biology | Ashburner,M. et al. | - | 2000 |\n| Systematic functional annotation and visualization of biological networks | Baryshnikova,A. | - | 2016 |\n| A neural probabilistic language model | Bengio,Y. et al. | - | 2003 |\n| UniProtKB/Swiss-Prot, the Manually Annotated Section of the UniProt KnowledgeBase: How to Use the Entry View | Boutet,E. et al. | New York, NY | - |\n| Information-theoretic evaluation of predicted ontological annotations | Clark,W.T. and Radivojac,P. | - | 2013 |\n| Natural language processing (almost) from scratch | Collobert,R. et al. | - | 2011 |\n| A global genetic interaction network maps a wiring diagram of cellular function | Costanzo,M. et al. | - | 2016 |\n| Ffpred 3: feature-based function prediction for all gene ontology domains | Cozzetto,D. et al. | - | 2016 |\n| Functional classification of cath superfamilies: a domain-based approach for protein function annotation | Das,S. et al. | - | 2015 |\n| Genome-scale phylogenetic function annotation of large and diverse protein families | Engelhardt,B.E. et al. | - | 2011 |\n| Interpro in 2017beyond protein family and domain annotations | Finn,R.D. et al. | - | 2017 |\n| Phylogenetic-based propagation of functional annotations within the gene ontology consortium | Gaudet,P. et al. | - | 2011 |\n| The anatomy of phenotype ontologies: principles, properties and applications | Gkoutos,G.V. et al. | - | 2017 |\n| Understanding the difficulty of training dee feedforward neural networks | Glorot,X. and Bengio,Y. | - | 2010 |\n| Gofdr: a sequence alignment based method for predicting protein functions | Gong,Q. et al. | - | 2016 |\n| Learning distributed representations of concepts | Hinton,G.E. | Amherst, MA | 1986 |\n| Protein function prediction from functional connectivity | Hou,J. | Salt Lake City, UT, USA | 2017 |\n| eggnog 4.5: a hierarchical orthology framework with improved functional annotations for eukaryotic, prokaryotic and viral sequences | Huerta-Cepas,J. et al. | - | 2016 |\n| Predicting protein function by multi-label correlated semi-supervised learning | Jiang,J.Q. and McQuay,L.J. | - | 2012 |\n| Protein Function Prediction Based on Patterns in Biological Networks | Kirac,M. and Ozsoyoglu,G. | - | 2008 |\n| Convolutional networks for images, speech, and time series | LeCun,Y. and Bengio,Y. | Cambridge, MA, USA | 1998 |\n| Critical assessment of methods of protein structure prediction (casp) round x | Moult,J. et al. | - | 2014 |\n| Protein annotation from protein interaction networks and gene ontology | Nguyen,C.D. et al. | - | 2011 |\n| Annotating the human genome with disease ontology | Osborne,J. et al. | - | 2009 |\n| A large-scale evaluation of computational protein function prediction | Radivojac,P. et al. | - | 2013 |\n| Semantic similarity in a taxonomy: an Information-Based measure and its application to problems of ambiguity in natural language | Resnik,P. | - | 1999 |\n| Network-based prediction of protein function | Sharan,R. et al. | - | 2007 |\n| Hierarchical classification of gene ontology terms using the gostruct method | Sokolov,A. and Ben-Hur,A. | - | 2010 |\n| String v10: proteinprotein interaction networks, integrated over the tree of life | Szklarczyk,D. et al. | - | 2015 |\n| Lecture 6.5—RmsProp: Divide the gradient by a running average of its recent magnitude | Tieleman,T. and Hinton,G. | - | 2012 |\n| Roles for Text Mining in Protein Function Prediction | Verspoor,K.M. | - | 2014 |\n| Accurate de novo prediction of protein contact map by ultra-deep learning model | Wang,S. et al. | - | 2017 |\n| Combfunc: predicting protein function using heterogeneous data sources | Wass,M.N. et al. | - | 2012 |\n| Predicting effects of noncoding vari | Zhou,J. and Troyanskaya,O.G. | - | 2015 |",
    "2416413": "Thank you for writing this summary.\nHere's the citation and link to the paper as the link mentioned is broken.\n\"DeepGO: predicting protein functions from sequence and interactions using a deep ontology-aware classifier\", Bioinformatics 2018\nLink: [[Abstract](https://academic.oup.com/bioinformatics/article/34/4/660/4265461?login=true)]",
    "2416414": "Thank you Kaushalya for the correct link :). I have updated the summary"
  },
  "source": "meta"
}