metapredict 2.4.1__tar.gz → 2.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {metapredict-2.4.1 → metapredict-2.5}/PKG-INFO +102 -36
- {metapredict-2.4.1 → metapredict-2.5}/README.md +97 -35
- {metapredict-2.4.1 → metapredict-2.5}/docs/changes.rst +28 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/getting_started.rst +24 -11
- {metapredict-2.4.1 → metapredict-2.5}/docs/index.rst +1 -1
- metapredict-2.5/docs/usage/acknowledgements.rst +21 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/usage/command-line.rst +6 -6
- {metapredict-2.4.1 → metapredict-2.5}/docs/usage/using-in-python.rst +271 -250
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/.DS_Store +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/__init__.py +1 -1
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/_version.py +3 -3
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/.DS_Store +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/data_structures.py +5 -5
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/domain_definition.py +1 -1
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/meta_tools.py +116 -8
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/uniprot_predictions.py +7 -4
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/meta.py +91 -35
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/metapredict_exceptions.py +1 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/test_domain_functions.py +20 -7
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/test_graph_disorder.py +16 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/test_metapredict.py +106 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict.egg-info/PKG-INFO +102 -36
- {metapredict-2.4.1 → metapredict-2.5}/metapredict.egg-info/SOURCES.txt +2 -1
- metapredict-2.5/scripts/metapredict-multipredict +108 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-predict-idrs +17 -8
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-predict-pLDDT +1 -1
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-uniprot +2 -2
- {metapredict-2.4.1 → metapredict-2.5}/setup.py +2 -1
- metapredict-2.4.1/docs/usage/acknowledgements.rst +0 -13
- {metapredict-2.4.1 → metapredict-2.5}/.codecov.yml +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/.gitignore +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/.lgtm.yml +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/.travis.yml +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/CODE_OF_CONDUCT.md +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/LICENSE +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/MANIFEST.in +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/devtools/README.md +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/devtools/conda-envs/test_env.yaml +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/devtools/scripts/create_conda_env.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/devtools/travis-ci/before_install.sh +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/.DS_Store +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/Makefile +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/README.md +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/_static/README.md +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/_templates/README.md +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/conf.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/how_to_cite.rst +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/images/confidence_scores_disorder.png +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/images/meta_predict_disorder.png +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/images/python_meta_predict_MadeUpProtein.png +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/make.bat +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/requirements.txt +0 -0
- {metapredict-2.4.1/docs → metapredict-2.5/docs/usage}/api.rst +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/docs/usage/troubleshooting.rst +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/brnn_architecture.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/encode_sequence.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/meta_graph.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/meta_predict_disorder.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/metameta_hybrid_predict.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/networks/.DS_Store +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/networks/metaDisorder.pt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/networks/meta_predict_disorder_100e_v1.pt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/networks/metameta_2_7_22_nl2_hs20_b32_V3.pt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/networks/metapredict_network_v2_200epochs_nl1_hs20.pt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/networks/metapredict_network_v3_200epochs_nl2_hs20.pt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/backend/py_predictor_v2.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/data/README.md +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/data/test_data.fasta +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/parameters.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/.DS_Store +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/__init__.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/input_data/DisorderPredictionssp_P04637_P53_HUMANC.txt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/input_data/testing.fasta +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/input_data/three_seqs.fasta +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/local_data.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/output/test.csv +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/test_graph_fasta.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/test_uniprot_functionality.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict/tests/test_write_fasta.py +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict.egg-info/dependency_links.txt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict.egg-info/requires.txt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/metapredict.egg-info/top_level.txt +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/readthedocs.yml +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-graph-disorder +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-graph-pLDDT +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-name +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-predict-disorder +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-quick-graph +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/scripts/metapredict-quick-predict +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/setup.cfg +0 -0
- {metapredict-2.4.1 → metapredict-2.5}/versioneer.py +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: metapredict
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5
|
|
4
|
+
Summary: UNKNOWN
|
|
4
5
|
Home-page: https://github.com/idptools/metapredict.git
|
|
5
6
|
Author: Ryan Emenecker - Holehouse Lab - WUSM
|
|
6
7
|
Author-email: remenecker@wustl.edu
|
|
7
8
|
License: MIT
|
|
9
|
+
Platform: UNKNOWN
|
|
8
10
|
Requires-Python: >=3.5
|
|
9
11
|
Description-Content-Type: text/markdown
|
|
10
12
|
License-File: LICENSE
|
|
@@ -12,9 +14,16 @@ License-File: LICENSE
|
|
|
12
14
|
# metapredict: A machine learning-based tool for predicting protein disorder.
|
|
13
15
|
|
|
14
16
|
**Important update** - as of February 15, 2022 we have updated metapredict to V2.0. This comes with important changes that improve the accuracy of metapredict. Please see the section on the update *Major update to metapredict predictions to increase overall accuracy* below. In addition, this update changes the functionality of the *predict_disorder_domains()* function, so please read the documentation on that function if you were using it previously.
|
|
15
|
-
*A write up with more info on this update will be available soon.*
|
|
16
17
|
|
|
17
|
-
**metapredict** uses a bidirectional recurrent neural network trained on the consensus disorder values from 8 disorder predictors from 12 proteomes that were obtained from [MobiDB](https://mobidb.bio.unipd.it/). The creation of metapredict was made possible by [parrot](https://github.com/idptools/parrot).
|
|
18
|
+
**metapredict** uses a bidirectional recurrent neural network trained on the consensus disorder values from 8 disorder predictors from 12 proteomes that were obtained from [MobiDB](https://mobidb.bio.unipd.it/). In addition, as of version 2, metapredict incorporates an additional layer of predictions by counter-selecting based on structure predictions from AlphaFold2. The creation of metapredict was made possible by [parrot](https://github.com/idptools/parrot).
|
|
19
|
+
|
|
20
|
+
## How can I use metapredict?
|
|
21
|
+
Metapredict can be used in four different ways:
|
|
22
|
+
|
|
23
|
+
1. As a stand-alone command-line tool (installable via pip - the code in this repository).
|
|
24
|
+
2. As a Python library for integrating into your favorite bioinformatics pipeline (installable via pip - the code in this repository).
|
|
25
|
+
3. As a web-server for examining disorder predictions on individual sequences found at [https://metapredict.net/](https://metapredict.net/).
|
|
26
|
+
4. *NEW as of August 2022:* as a Google Colab notebook for batch-predicting disorder scores for larger numbers of sequences: [**LINK HERE**](https://colab.research.google.com/drive/1UOrOxun9i23XDE8lFo_4I89Tw8P3Z1D-?usp=sharing). Performance-wise, batch mode can predict the entire yeast proteome in ~6 min.
|
|
18
27
|
|
|
19
28
|
|
|
20
29
|
|
|
@@ -24,16 +33,16 @@ License-File: LICENSE
|
|
|
24
33
|
|
|
25
34
|
## Major update to metapredict predictions to increase overall accuracy
|
|
26
35
|
|
|
27
|
-
We are always working to make metapredict better, and we have recently managed just that. More details will be below, but the short story is that we have made significant improvements in the accuracy of disorder predictions using metapredict. By analyzing our new network using the Disprot-PDB dataset predictions, we found that the MCC (which is a measurement accounting for false positives, false negatives, true positives, and true negatives) for metapredict increased from 0.588 for the old (original) network to 0.7 for our new network. To put this in perspective, our original network was ranked 12th most accurate when analyzing the Disprot-PDB dataset, and it is now ranked as the 2nd most accurate available predictor. We should also note that we are still trying a few 'tweaks' to this new network and plan to updated it if we can improve accuracy any further We will be publishing the updated benchmarks for the 'new metapredict' in the near future (unless we already have but forgot to take this
|
|
36
|
+
We are always working to make metapredict better, and we have recently managed just that. More details will be below, but the short story is that we have made significant improvements in the accuracy of disorder predictions using metapredict. By analyzing our new network using the Disprot-PDB dataset predictions, we found that the MCC (which is a measurement accounting for false positives, false negatives, true positives, and true negatives) for metapredict increased from 0.588 for the old (original) network to 0.7 for our new network. To put this in perspective, our original network was ranked 12th most accurate when analyzing the Disprot-PDB dataset, and it is now ranked as the 2nd most accurate available predictor. We should also note that we are still trying a few 'tweaks' to this new network and plan to updated it if we can improve accuracy any further We will be publishing the updated benchmarks for the 'new metapredict' in the near future (unless we already have but forgot to take this sentence out of the documentation...).
|
|
28
37
|
|
|
29
38
|
### But wait! I need the old metapredict predictions!!!
|
|
30
39
|
|
|
31
|
-
No worries! We left users access to the old network. The *default network is now our new, more accurate network*. However, by calling **-l** or **--legacy** from the command line or by
|
|
40
|
+
No worries! We left users access to the old network. The *default network is now our new, more accurate network*. However, by calling **-l** or **--legacy** from the command line or by specifying **legacy=True** from Python, you will be able to use the original metapredict network. We wanted to keep making metapredict better, but we also wanted to minimize disruptions to anyone currently relying on the original metapredict predictions for whatever reason.
|
|
32
41
|
|
|
33
42
|
|
|
34
43
|
## So... how exactly was this more more accurate metapredict network made?
|
|
35
44
|
|
|
36
|
-
We didn't think it was possible, but metapredict has somehow become *even more meta*. Get ready, because things are about to get a little weird. When we implemented the AlphaFold2 pLDDT prediction feature (see section below), we noticed that there were
|
|
45
|
+
We didn't think it was possible, but metapredict has somehow become *even more meta*. Get ready, because things are about to get a little weird. When we implemented the AlphaFold2 pLDDT prediction feature (see section below), we noticed that there were occasional discrepancies between metapredict and the predicted pLDDT (ppLDDT) scores. When the ppLDDT scores get high enough, it is unlikely that a given region is actually disordered. So, we developed a version of metapredict that we originally called 'metapredict-hybrid' that essentially combined aspects of the ppLDDT scores and the original metapredict scores. We found that this 'hybrid predictor' was **much better** than the original metapredict disorder predictor at predicting disordered regions. **But we didn't stop there.** We think one of metapredicts best features is *it is really really fast*. This 'hybrid-predictor' was a little on the slow side, coming in at about 1/3 the speed of the original metapredict predictor. This is still VERY fast, but we thought we could do better. So, we took a little over 300,000 protein sequences and generated metapredict-hybrid scores for those sequences. We then fed those sequences and the corresponding metapredict-hybrid scores and generated a new bidirectional recurrent neural network (BRNN) using PARROT. We then tested this new network against the original metapredict-hybrid predictions and the original metapredict network. The new network that was trained on metapredict-hybrid scores *actually outperformed the metapredict-hybrid predictions when benchmarking against Disprot-PDB*. Importantly, this new (super accurate) network was only 30% slower than the original metapredict network, which is substantially better than the 70% hit that metapredict-hybrid took.
|
|
37
46
|
|
|
38
47
|
**TL;DR** We made the original metapredict predictor using a network trained on consensus scores from MobiDB. We then trained a network on AlphaFold2 pLDDT scores. Next, we made a predictor that combined prediction values from the original metapredict predictor and the AlphaFold2 pLDDT predictor to make very accurate disorder predictions. Finally, we took hundreds of thousands of proteins, generated disorder prediction scores using the aforementioned combination of the original metapredict predictions and the AlphaFold2 predictions, and then trained our final network on those scores. **That's pretty dang meta.**
|
|
39
48
|
|
|
@@ -60,6 +69,12 @@ https://metapredict.readthedocs.io/en/latest/getting_started.html
|
|
|
60
69
|
For disorder predictions using our server, please see:
|
|
61
70
|
https://metapredict.net
|
|
62
71
|
|
|
72
|
+
|
|
73
|
+
## What's new?
|
|
74
|
+
|
|
75
|
+
The most recent update to metapredict on March 15, 2023 introduced multiprocessing support to the command-line interface (you're welcome, Jeff). This is only implemented for the CLI at this time. **We were able to predict disorder in the entire human proteome in about 4 minutes with metapredict V2 and in about 2 minutes using legacy metapredict!** *We didn't even have to close the 40 chrome tabs we definitely had to have open for testing.* If there is additional interest in speeding up other functionality by using multiple cores, let us know!
|
|
76
|
+
|
|
77
|
+
|
|
63
78
|
## How to cite metapredict
|
|
64
79
|
|
|
65
80
|
If you use metapredict for your work, please cite the metapredict paper -
|
|
@@ -108,7 +123,7 @@ The ``metapredict-predict-disorder`` command from the command line takes a .fast
|
|
|
108
123
|
**Additional Usage**
|
|
109
124
|
|
|
110
125
|
**specifying where to save the output -**
|
|
111
|
-
If you would like to specify where to save the
|
|
126
|
+
If you would like to specify where to save the output, simply use the ``-o`` or ``--output-file`` flag and then specify the file path and file name. By default this command will save the output file as disorder_scores.csv to your current working directory. However, you can specify the file name in the output path.
|
|
112
127
|
|
|
113
128
|
**Example**
|
|
114
129
|
|
|
@@ -117,6 +132,28 @@ If you would like to specify where to save the ouptut, simply use the ``-o`` or
|
|
|
117
132
|
**Using the original metapredict predictor**
|
|
118
133
|
To use the original metapredict predictor as opposed to our new, updated predictor, use the ``-l`` or ``--legacy`` flag!
|
|
119
134
|
|
|
135
|
+
### Predicting Disorder from a fasta file using multiple cores
|
|
136
|
+
|
|
137
|
+
The ``metapredict-multipredict`` command from the command line takes a .fasta file as input and returns disorder scores for the sequences in the FASTA file. It works the same as metapredict-predict-disroder but splits the sequences across the number of cores you specify. USE THIS AT YOUR OWN RISK! If you specify too many cores, you're going to have a bad time.
|
|
138
|
+
|
|
139
|
+
$ metapredict-multipredict <Path to .fasta file> <number of cores>
|
|
140
|
+
|
|
141
|
+
**Example - using 5 cores**
|
|
142
|
+
|
|
143
|
+
$ metapredict-multipredict /Users/thisUser/Desktop/interestingProteins.fasta 5
|
|
144
|
+
|
|
145
|
+
**Additional Usage**
|
|
146
|
+
|
|
147
|
+
**specifying where to save the output -**
|
|
148
|
+
If you would like to specify where to save the output, simply use the ``-o`` or ``--output-file`` flag and then specify the file path and file name. By default this command will save the output file as disorder_scores.csv to your current working directory. However, you can specify the file name in the output path.
|
|
149
|
+
|
|
150
|
+
**Example**
|
|
151
|
+
|
|
152
|
+
$ metapredict-multipredict /Users/thisUser/Desktop/interestingProteins.fasta 5 -o /Users/thisUser/Desktop/disorder_predictions/my_disorder_predictions.csv
|
|
153
|
+
|
|
154
|
+
**Using the original metapredict predictor**
|
|
155
|
+
To use the original metapredict predictor as opposed to our new, updated predictor, use the ``-l`` or ``--legacy`` flag!
|
|
156
|
+
|
|
120
157
|
### Predicting Disorder from a sequence
|
|
121
158
|
|
|
122
159
|
``metapredict-quick-predict`` is a command that will let you input a sequence and get disorder values immediately printed to the terminal. The only argument that can be input is the sequence.
|
|
@@ -142,7 +179,7 @@ The ``metapredict-predict-pLDDT`` command from the command line takes a .fasta f
|
|
|
142
179
|
**Additional Usage**
|
|
143
180
|
|
|
144
181
|
**Specify where to save the output -**
|
|
145
|
-
If you would like to specify where to save the
|
|
182
|
+
If you would like to specify where to save the output, simply use the ``-o`` or ``--output-file`` flag and then specify the file path. By default this command will save the output file as pLDDT_scores.csv to your current working directory. However, you can specify the file name in the output path.
|
|
146
183
|
|
|
147
184
|
**Example**
|
|
148
185
|
|
|
@@ -214,7 +251,7 @@ To use the original metapredict predictor as opposed to our new, updated predict
|
|
|
214
251
|
|
|
215
252
|
### Graphing Disorder from a sequence
|
|
216
253
|
|
|
217
|
-
``metapredict-quick-graph`` is a command that will let you input a sequence and get a plot of the disorder back immediately. You cannot input fasta files for this command. The command only takes three arguments, 1. the sequence 2. *optional* DPI ``-D`` or ``--dpi`` of the
|
|
254
|
+
``metapredict-quick-graph`` is a command that will let you input a sequence and get a plot of the disorder back immediately. You cannot input fasta files for this command. The command only takes three arguments, 1. the sequence 2. *optional* DPI ``-D`` or ``--dpi`` of the output graph which defaults to 150 DPI, and 3. *optional* to include predicted AlphaFold2 condience scores, use the ``-p`` or ``--pLDDT`` flag.
|
|
218
255
|
|
|
219
256
|
|
|
220
257
|
**Example:**
|
|
@@ -231,7 +268,7 @@ To use the original metapredict predictor as opposed to our new, updated predict
|
|
|
231
268
|
|
|
232
269
|
### Graphing Disorder from a Uniprot ID
|
|
233
270
|
|
|
234
|
-
``metapredict-uniprot`` is a command that will let you input any Uniprot ID and get a plot of the disorder for the corresponding protein. The default behavior is to have a plot automatically appear. Apart from the Uniprot ID which is required for this command, the command has four possible additional *optional* arguments, 1. To include predicted AlphaFold2 2 pLDDT confidence scores, use the ``-p`` or ``--pLDDT`` flag. DPI can be changed with the ``-D`` or ``--dpi`` flags, default is 150 DPI, 3. Using ``-o`` or ``--
|
|
271
|
+
``metapredict-uniprot`` is a command that will let you input any Uniprot ID and get a plot of the disorder for the corresponding protein. The default behavior is to have a plot automatically appear. Apart from the Uniprot ID which is required for this command, the command has four possible additional *optional* arguments, 1. To include predicted AlphaFold2 2 pLDDT confidence scores, use the ``-p`` or ``--pLDDT`` flag. DPI can be changed with the ``-D`` or ``--dpi`` flags, default is 150 DPI, 3. Using ``-o`` or ``--output-file`` will save the plot to a specified directory (default is current directory) - filenames and file extensions (pdf, jpg, png, etc) can be specified here. If there is no file name specified, it will save as the Uniprot ID and as a .png, 4. ``-t`` or ``--title`` will let you specify the title of the plot. By default the title will be *Disorder for* followed by the Uniprot ID.
|
|
235
272
|
|
|
236
273
|
**Example:**
|
|
237
274
|
|
|
@@ -324,7 +361,7 @@ To have your terminal print the entire Uniprot ID as well as the full protein se
|
|
|
324
361
|
|
|
325
362
|
**Turning off all printing to the terminal**
|
|
326
363
|
|
|
327
|
-
By default, the *metapredict-name* command prints the uniprot ID as well as other information related to your protein to the terminal. The purpose of this is to make it
|
|
364
|
+
By default, the *metapredict-name* command prints the uniprot ID as well as other information related to your protein to the terminal. The purpose of this is to make it explicitly clear which protein was graphed because grabbing the top hit from Uniprot *does not gaurentee* that it is the protein you want or expected. However, this behavior can be turned off by using the ``-s`` or ``--silent`` flag.
|
|
328
365
|
|
|
329
366
|
**Example**
|
|
330
367
|
|
|
@@ -392,7 +429,7 @@ The ``metapredict-predict-idrs`` command from the command line takes a .fasta fi
|
|
|
392
429
|
**Additional Usage**
|
|
393
430
|
|
|
394
431
|
**specifying where to save the output -**
|
|
395
|
-
If you would like to specify where to save the
|
|
432
|
+
If you would like to specify where to save the output, simply use the ``-o`` or ``--output-file`` flag and then specify the file path and file name.
|
|
396
433
|
|
|
397
434
|
**Example**
|
|
398
435
|
|
|
@@ -460,13 +497,13 @@ would output -
|
|
|
460
497
|
|
|
461
498
|
### Predicting Disorder Domains
|
|
462
499
|
|
|
463
|
-
The ``predict_disorder_domains()`` function takes in an amino acid sequence and returns a DisorderObject. The DisorderObject has 6 dot variables that can be called to get
|
|
500
|
+
The ``predict_disorder_domains()`` function takes in an amino acid sequence and returns a DisorderObject. The DisorderObject has 6 dot variables that can be called to get information about your input sequence. They are as follows:
|
|
464
501
|
|
|
465
502
|
|
|
466
503
|
.sequence : str
|
|
467
504
|
Amino acid sequence
|
|
468
505
|
|
|
469
|
-
.disorder : list or np.
|
|
506
|
+
.disorder : list or np.ndarray
|
|
470
507
|
Hybrid disorder score
|
|
471
508
|
|
|
472
509
|
.disordered_domain_boundaries : list
|
|
@@ -556,7 +593,7 @@ Where each element in the list is a specific folded region identified in the seq
|
|
|
556
593
|
**Additional Usage**
|
|
557
594
|
|
|
558
595
|
**Altering the disorder theshhold -**
|
|
559
|
-
To alter the disorder
|
|
596
|
+
To alter the disorder threshold, simply set *disorder_threshold=my_value* where *my_value* is a float. The higher the threshold value, the more conservative metapredict will be for designating a region as disordered. Default = 0.42
|
|
560
597
|
|
|
561
598
|
**Example**
|
|
562
599
|
|
|
@@ -570,14 +607,14 @@ The minimum IDR size will define the smallest possible region that could be cons
|
|
|
570
607
|
meta.predict_disorder_domains("MKAPSNGFLPSSNEGEKKPINSQLWHACAGPLV", minimum_IDR_size = 10)
|
|
571
608
|
|
|
572
609
|
**Altering the minimum folded domain size -**
|
|
573
|
-
The minimum folded domain size defines where we expect the limit of small folded domains to be. *NOTE* this is not a hard limit and functions more to modulate the removal of large gaps. In other words, gaps less than this size are treated less strictly. *Note* that, in addition, gaps < 35 are evaluated with a threshold of 0.35 x disorder_threshold and gaps < 20 are evaluated with a threshold of 0.25 x disorder_threshold. These two
|
|
610
|
+
The minimum folded domain size defines where we expect the limit of small folded domains to be. *NOTE* this is not a hard limit and functions more to modulate the removal of large gaps. In other words, gaps less than this size are treated less strictly. *Note* that, in addition, gaps < 35 are evaluated with a threshold of 0.35 x disorder_threshold and gaps < 20 are evaluated with a threshold of 0.25 x disorder_threshold. These two lengths were decided based on the fact that coiled-coiled regions (which are IDRs in isolation) often show up with reduced apparent disorder within IDRs but can be as short as 20-30 residues. The folded_domain_threshold is used based on the idea that it allows a 'shortest reasonable' folded domain to be identified. Default=50.
|
|
574
611
|
|
|
575
612
|
**Example**
|
|
576
613
|
|
|
577
614
|
meta.predict_disorder_domains("MKAPSNGFLPSSNEGEKKPINSQLWHACAGPLV", minimum_folded_domain = 60)
|
|
578
615
|
|
|
579
616
|
**Altering gap_closure -**
|
|
580
|
-
The gap closure defines the largest gap that would be closed. Gaps here refer to a scenario in which you have two groups of disordered residues
|
|
617
|
+
The gap closure defines the largest gap that would be closed. Gaps here refer to a scenario in which you have two groups of disordered residues separated by a 'gap' of not disordered residues. In general large gap sizes will favor larger contiguous IDRs. It's worth noting that gap_closure becomes relevant only when minimum_region_size becomes very small (i.e. < 5) because really gaps emerge when the smoothed disorder fit is "noisy", but when smoothed gaps are increasingly rare. Default=10.
|
|
581
618
|
|
|
582
619
|
**Example**
|
|
583
620
|
|
|
@@ -623,7 +660,7 @@ would output -
|
|
|
623
660
|
**Additional Usage**
|
|
624
661
|
|
|
625
662
|
**Altering the disorder theshhold -**
|
|
626
|
-
To alter the disorder
|
|
663
|
+
To alter the disorder threshold, simply set *disorder_threshold=my_value* where *my_value* is a float. The higher the threshold value, the more conservative metapredict will be for designating a region as disordered. Default = 0.42
|
|
627
664
|
|
|
628
665
|
**Example**
|
|
629
666
|
|
|
@@ -637,14 +674,14 @@ The minimum IDR size will define the smallest possible region that could be cons
|
|
|
637
674
|
meta.predict_disorder_domains("MKAPSNGFLPSSNEGEKKPINSQLWHACAGPLV", minimum_IDR_size = 10)
|
|
638
675
|
|
|
639
676
|
**Altering the minimum folded domain size -**
|
|
640
|
-
The minimum folded domain size defines where we expect the limit of small folded domains to be. *NOTE* this is not a hard limit and functions more to modulate the removal of large gaps. In other words, gaps less than this size are treated less strictly. *Note* that, in addition, gaps < 35 are evaluated with a threshold of 0.35 x disorder_threshold and gaps < 20 are evaluated with a threshold of 0.25 x disorder_threshold. These two
|
|
677
|
+
The minimum folded domain size defines where we expect the limit of small folded domains to be. *NOTE* this is not a hard limit and functions more to modulate the removal of large gaps. In other words, gaps less than this size are treated less strictly. *Note* that, in addition, gaps < 35 are evaluated with a threshold of 0.35 x disorder_threshold and gaps < 20 are evaluated with a threshold of 0.25 x disorder_threshold. These two lengths were decided based on the fact that coiled-coiled regions (which are IDRs in isolation) often show up with reduced apparent disorder within IDRs but can be as short as 20-30 residues. The folded_domain_threshold is used based on the idea that it allows a 'shortest reasonable' folded domain to be identified. Default=50.
|
|
641
678
|
|
|
642
679
|
**Example**
|
|
643
680
|
|
|
644
681
|
meta.predict_disorder_domains("MKAPSNGFLPSSNEGEKKPINSQLWHACAGPLV", minimum_folded_domain = 60)
|
|
645
682
|
|
|
646
683
|
**Altering gap_closure -**
|
|
647
|
-
The gap closure defines the largest gap that would be closed. Gaps here refer to a scenario in which you have two groups of disordered residues
|
|
684
|
+
The gap closure defines the largest gap that would be closed. Gaps here refer to a scenario in which you have two groups of disordered residues separated by a 'gap' of not disordered residues. In general large gap sizes will favor larger contiguous IDRs. It's worth noting that gap_closure becomes relevant only when minimum_region_size becomes very small (i.e. < 5) because really gaps emerge when the smoothed disorder fit is "noisy", but when smoothed gaps are increasingly rare. Default=10.
|
|
648
685
|
|
|
649
686
|
**Example**
|
|
650
687
|
|
|
@@ -688,7 +725,7 @@ To add predicted AlphaFold2 pLDDT confidence scores, simply specify *pLDDT_score
|
|
|
688
725
|
|
|
689
726
|
|
|
690
727
|
**Changing the title of the generated graph -**
|
|
691
|
-
There are two parameters that the user can change for graph_disorder. The first is the name of the title for the generated graph. The name by default is blank and the title of the graph is simply *Predicted protein disorder*. However, the title can be specified by
|
|
728
|
+
There are two parameters that the user can change for graph_disorder. The first is the name of the title for the generated graph. The name by default is blank and the title of the graph is simply *Predicted protein disorder*. However, the title can be specified by specifying *title* = "my cool title" would result in a title of *my cool title*.
|
|
692
729
|
|
|
693
730
|
**Example**
|
|
694
731
|
|
|
@@ -852,7 +889,7 @@ This command will generate a graph for ***every*** sequence in the .fasta file.
|
|
|
852
889
|
|
|
853
890
|
meta.graph_disorder_fasta("file path to .fasta file/fileName.fasta", output_dir="file path of where to save output graphs")
|
|
854
891
|
|
|
855
|
-
An actual
|
|
892
|
+
An actual file path would look something like:
|
|
856
893
|
|
|
857
894
|
meta.graph_disorder_fasta("/Users/thisUser/Desktop/coolSequences.fasta", output_dir="/Users/thisUser/Desktop/folderForGraphs")
|
|
858
895
|
|
|
@@ -875,7 +912,7 @@ By default, the output files have a DPI of 150. However, the user can change the
|
|
|
875
912
|
meta.graph_disorder_fasta("/Users/thisUser/Desktop/coolSequences.fasta", DPI=300, output_dir="/Users/thisUser/Desktop/folderForGraphs")
|
|
876
913
|
|
|
877
914
|
**Changing the output File Type -**
|
|
878
|
-
By default
|
|
915
|
+
By default the output file is a .png. However, you can specify the output file type by using *output_filetype="file_type"* where file_type is some matplotlib compatible file type (such as .pdf).
|
|
879
916
|
|
|
880
917
|
**Example**
|
|
881
918
|
|
|
@@ -947,7 +984,7 @@ Just like with disorder predictions, you can also get AlphaFold2 pLDDT confidenc
|
|
|
947
984
|
|
|
948
985
|
### Predicting Disorder Domains from external scores:
|
|
949
986
|
|
|
950
|
-
The ``predict_disorder_domains_from_external_scores()`` function takes in an disorder scores, an amino acid sequence (
|
|
987
|
+
The ``predict_disorder_domains_from_external_scores()`` function takes in an array or list of disorder scores, an amino acid sequence (optionally), and returns a DisorderObject. This function lets you use other disorder predictor scores and still use the predict_disorder_domains() functionality. The DisorderObject has 6 dot variables that can be called to get information about your input sequence. They are as follows:
|
|
951
988
|
|
|
952
989
|
.sequence : str
|
|
953
990
|
Amino acid sequence
|
|
@@ -1013,7 +1050,7 @@ returns
|
|
|
1013
1050
|
**Additional Usage**
|
|
1014
1051
|
|
|
1015
1052
|
**Altering the disorder theshhold -**
|
|
1016
|
-
To alter the disorder
|
|
1053
|
+
To alter the disorder threshold, simply set *disorder_threshold=my_value* where *my_value* is a float. The higher the threshold value, the more conservative metapredict will be for designating a region as disordered. Default = 0.42
|
|
1017
1054
|
|
|
1018
1055
|
**Example**
|
|
1019
1056
|
|
|
@@ -1027,7 +1064,7 @@ The minimum IDR size will define the smallest possible region that could be cons
|
|
|
1027
1064
|
meta.predict_disorder_domains_from_external_scores("MKAPSNGFLPSSNEGEKKPINSQLWHACAGPLV", minimum_IDR_size = 10)
|
|
1028
1065
|
|
|
1029
1066
|
**Altering the minimum folded domain size -**
|
|
1030
|
-
The minimum folded domain size defines where we expect the limit of small folded domains to be. *NOTE* this is not a hard limit and functions more to modulate the removal of large gaps. In other words, gaps less than this size are treated less strictly. *Note* that, in addition, gaps < 35 are evaluated with a threshold of 0.35 x disorder_threshold and gaps < 20 are evaluated with a threshold of 0.25 x disorder_threshold. These two
|
|
1067
|
+
The minimum folded domain size defines where we expect the limit of small folded domains to be. *NOTE* this is not a hard limit and functions more to modulate the removal of large gaps. In other words, gaps less than this size are treated less strictly. *Note* that, in addition, gaps < 35 are evaluated with a threshold of 0.35 x disorder_threshold and gaps < 20 are evaluated with a threshold of 0.25 x disorder_threshold. These two lengths were decided based on the fact that coiled-coiled regions (which are IDRs in isolation) often show up with reduced apparent disorder within IDRs but can be as short as 20-30 residues. The folded_domain_threshold is used based on the idea that it allows a 'shortest reasonable' folded domain to be identified. Default=50.
|
|
1031
1068
|
|
|
1032
1069
|
**Example**
|
|
1033
1070
|
|
|
@@ -1043,7 +1080,11 @@ The gap closure defines the largest gap that would be closed. Gaps here refer to
|
|
|
1043
1080
|
|
|
1044
1081
|
### metapredict isn't working!
|
|
1045
1082
|
|
|
1046
|
-
I have
|
|
1083
|
+
I have received occasional feedback that metapredict is not working for a user. A common problem is that the user is using a different version of Python than metapredict was made on.
|
|
1084
|
+
|
|
1085
|
+
metapredict should work without issue on Python versions 3.x and 3.8.x. It was developed on Python 3.7 and has been tested extensively on Python 3.8. It should also work on Python 3.9 although this has been less well-tested
|
|
1086
|
+
|
|
1087
|
+
In general, we recommend using a conda environment for any Python computing you're doing. This lets you control the packages being used and the Python version. For more info on conda, please see https://docs.conda.io/projects/conda/en/latest/index.html
|
|
1047
1088
|
|
|
1048
1089
|
Once you have conda installed, simply use the command
|
|
1049
1090
|
|
|
@@ -1072,7 +1113,7 @@ PyTorch current ships with its own version of the OpenMP library (``libiomp.dyli
|
|
|
1072
1113
|
but that may cause crashes or silently produce incorrect results. For more information,
|
|
1073
1114
|
please see http://www.intel.com/software/products/support/.
|
|
1074
1115
|
|
|
1075
|
-
To avoid this error we make the executive decision to ignore this clash. This has largely not appeared to have any deleterious issues on performance or accuracy
|
|
1116
|
+
To avoid this error we make the executive decision to ignore this clash. This has largely not appeared to have any deleterious issues on performance or accuracy across the tests run. If you are uncomfortable with this then the code in ``metapredict/__init__.py`` can be edited with ``IGNORE_LIBOMP_ERROR`` set to ``False`` and **metapredict** re-installed from the source directory.
|
|
1076
1117
|
|
|
1077
1118
|
### Testing
|
|
1078
1119
|
|
|
@@ -1093,6 +1134,31 @@ Example data that can be used with metapredict can be found in the metapredict/d
|
|
|
1093
1134
|
This section is a log of recent changes with metapredict. My hope is that as I change things, this section can help you figure out why a change was made and if it will break any of your current work flows. The first major changes were made for the 0.56 release, so tracking will start there. Reasons are not provided for bug fixes for because the reason can assumed to be fixing the bug...
|
|
1094
1135
|
|
|
1095
1136
|
|
|
1137
|
+
#### V2.5
|
|
1138
|
+
Changes:
|
|
1139
|
+
|
|
1140
|
+
* Added the first multicore support to metapredict. Currently limited to metapredict-predict-disorder functionality.
|
|
1141
|
+
=======
|
|
1142
|
+
#### V2.4.3
|
|
1143
|
+
Changes:
|
|
1144
|
+
|
|
1145
|
+
* Updated the default names for `metapredict-predict-idrs` so that the FASTA output file is now called `idrs.fasta` instead of the inappropriate `shephard_idrs.tsv`.
|
|
1146
|
+
* Added link to the new batch-mode Google Colab notebook!
|
|
1147
|
+
|
|
1148
|
+
#### V2.4.2
|
|
1149
|
+
Changes:
|
|
1150
|
+
|
|
1151
|
+
* Merged pull request from @FriedLabJHU to make f-strings more Pythonic. Thanks!!
|
|
1152
|
+
* Changed `return_normalized` keyword to `normalized` in `meta.predict_pLDDT()` for consistency with other functions
|
|
1153
|
+
* Added sanity check in case a passed sequence is an empty string (h/t Broder Schmidt)
|
|
1154
|
+
* Added docs for the mode keyword in `meta.percent_disorder()`, so this is actually obvious to understand (h/t Broder Schmidt)
|
|
1155
|
+
* Added several additional tests and updated the docs
|
|
1156
|
+
|
|
1157
|
+
#### V2.4.1
|
|
1158
|
+
Changes:
|
|
1159
|
+
|
|
1160
|
+
* Some minor bug fixes and updates to code
|
|
1161
|
+
|
|
1096
1162
|
#### V2.3
|
|
1097
1163
|
Changes:
|
|
1098
1164
|
|
|
@@ -1114,7 +1180,7 @@ Added functionality to graph the disorder of a protein by specifying its common
|
|
|
1114
1180
|
#### V2.0
|
|
1115
1181
|
|
|
1116
1182
|
Changes:
|
|
1117
|
-
Massive update to the network behind metapredict to improve accuracy. Implementation of code to keep the original network accessible to users. Changes to predict_disorder_domain functions where a DisorderObject is no returned and access to values are used by calling properties from the generated object. Graphing functionality updated to
|
|
1183
|
+
Massive update to the network behind metapredict to improve accuracy. Implementation of code to keep the original network accessible to users. Changes to predict_disorder_domain functions where a DisorderObject is no returned and access to values are used by calling properties from the generated object. Graphing functionality updated to accommodate new cutoff value for the new network at 0.5. If the original metapredict network is used, then the cutoff value automatically resets to the original value of 0.3. Tests updated. Added metapredict-predict-idrs command to the command line. Added ability to predict disorder domains from python using external scores.
|
|
1118
1184
|
|
|
1119
1185
|
|
|
1120
1186
|
#### V1.51
|
|
@@ -1216,7 +1282,7 @@ Reason:
|
|
|
1216
1282
|
This will help users be able to use auto complete functionality from the command line using tab to pull up the graph or predict disorder commands while only having to remember metapredict.
|
|
1217
1283
|
|
|
1218
1284
|
Change:
|
|
1219
|
-
The output for
|
|
1285
|
+
The output for `.csv` files will now have a comma space between each value instead of just a comma.
|
|
1220
1286
|
|
|
1221
1287
|
Reason:
|
|
1222
1288
|
Improve readability.
|
|
@@ -1224,17 +1290,17 @@ Improve readability.
|
|
|
1224
1290
|
|
|
1225
1291
|
### Copyright
|
|
1226
1292
|
|
|
1227
|
-
Copyright (c) 2020-
|
|
1293
|
+
Copyright (c) 2020-2022, Holehouse Lab - Washington University School of Medicine
|
|
1228
1294
|
|
|
1229
1295
|
#### Acknowledgements
|
|
1230
1296
|
|
|
1231
|
-
|
|
1297
|
+
PARROT, created by Dan Griffith, was used to generate the network used for metapredict. See [https://pypi.org/project/idptools-parrot/](https://pypi.org/project/idptools-parrot/) for some very cool machine learning stuff.
|
|
1232
1298
|
|
|
1233
|
-
In addition to using Dan Griffith's tool for creating metapredict, the code for brnn_architecture.py and encode_sequence.py was written by Dan
|
|
1299
|
+
In addition to using Dan Griffith's tool for creating metapredict, the original code for `brnn_architecture.py` and `encode_sequence.py` was written by Dan.
|
|
1234
1300
|
|
|
1235
|
-
We would like to thank the **DeepMind** team for developing AlphaFold.
|
|
1301
|
+
We would like to thank the **DeepMind** team for developing AlphaFold and EBI/UniProt for making these data so readily available.
|
|
1236
1302
|
|
|
1237
1303
|
We would also like to thank the team at MobiDB for creating the database that was used to train this predictor. Check out their awesome stuff at [https://mobidb.bio.unipd.it](https://mobidb.bio.unipd.it)
|
|
1238
1304
|
|
|
1239
|
-
|
|
1240
|
-
|
|
1305
|
+
|
|
1306
|
+
|