viper
Viral Inhibition via Peptide Engineering and Receptor-Mimicry
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Repository
Viral Inhibition via Peptide Engineering and Receptor-Mimicry
Basic Info
- Host: GitHub
- Owner: A-Klingenberg
- License: mit
- Language: Python
- Default Branch: main
- Size: 2.97 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 2
Metadata Files
README.md
VIPER 
This is the official repository for the software tool VIPER: Viral Inhibition via Peptide Engineering and Receptor-Mimicry.
Other installations needed
You will need to install Python 3 (VIPER was developed and tested with Python 3.8), the requirements in the requirements.txt, and the Rosetta Commons software suite.
Manual
VIPER is extensively documented. You can have a look at the Quickstart, descriptions of the internal algorithms, or a glossary of all config options in the VIPER manual. It is highly recommended to review the manual first.
Quickstart
To reproduce the results from this thesis, follow these steps after installing all the requirements outlined above. It's recommended to install the Python packages in a virtual environment.
- Get the PDB under the accession code 6m0j and save it at the root level (same folder that
main.pyis in). - Open the
config.jsonfile and add the absolute file path to your RosettaCommons installation underrosetta_config→path. Also set the amount of cores for Rosetta to use underrosetta_config→use_num_cores. - Run the following command:
python3 -u main.py 6m0j.pdb --vsp_chain E --partner_chain A &. It is recommended to prefix this withnohupif you expect your terminal session to be terminated before VIPER is done and your operating system supportsnohup.
You can expect VIPER to be done in less than a day, or even quicker, depending on how many cores you allow it to use.
Running your own workflow
If you simply want to run VIPER with your own PDB file, the setup is very easy. First, make sure that all dependencies are
installed as outlined above and that the config.json is updated correspondingly. Next, identify which chains you want to let VIPER design an inhibitory peptide for.
For the sake of this explanation, let's assume that the viral surface protein has the chain id V and the human receptor
protein has the chain id R. Save them to vsp_chain and partner_chain, respectively, in the config.json.
Alternatively, you may specify them as command line flags with --vsp_chain and --partner_chain, respectively.
Next, make sure that all other settings in config.json are set to your liking, an explanation of every setting is at
the end of this document.
Finally, you may run VIPER with the command outlined in step 3 in the "Quickstart" section.
This will make VIPER run through the default stages with your PDB file. If you want to adjust this pipeline,
you can adapt it in VIPER.py. Currently, the default is as follows:
- Reduce the PDB to only the relevant chains and renumber the atoms and residues starting from 1.
- Relax the resultant PDB using Rosetta.
- Perform a residue energy breakdown of the best relaxed complex using Rosetta.
- Use this data to derive a candidate peptide (using a selection strategy:
modules→stages→PeptideGenerator.py→SelectionStrategy). - Determine the tertiary structure of this peptide using PEPstrMOD (
modules→wrappers→PEPstrMODWrapper.py). - Optimize this candidate using the Genetic Algorithm strategy (
modules→stages→optimize→GAStrategy.py).
If you only want to modify a minor part, VIPER provides some ready-to-use hooks already in the custom_funcs.py file.
There, you can specify a custom function that determines whether a residue should be included when growing subsections
of the partner protein for both the GreedyExpand and FragmentJoiner strategies. You can also implement your own selection
strategy. You may also specify a custom function that gets called when generating mutants during the GA, where you can
modify the populations as you see fit. Lastly, you can modify how the sSCII value gets combined with the Rosetta score.
If you want to use one of these custom functions, you need to enable the usage in the config.json!
If you want to modify / expand VIPER beyond that, you'll have to modify the code directly. VIPER.py contains the abstract,
high-level control flow, with most of the logic being implemented in so called 'modules'. There 'wrappers' contain code
to interface with external tools, whereas 'stages' implement internal VIPER logic, such as selecting a subset of residues
from the partner protein. Therefore, your steps should probably be first implementing a wrapper/stage and then tying it into VIPER.py.
Support
Are you having issues? Does VIPER crash or not produce the expected output?
If so, first make sure that all configuration settings are set properly, especially
the PDB chain ids. If that did not fix the issue, you can get more information by adding the --verbose command line flag
or setting "verbose": true in the config file. Viper should be able to give you more information at the end of the log file
(default: Logs/log.txt). If the error message does not help you diagnose the issue or your issue still persists, please
open a GitHub issue, briefly explain the problem you've encountered, and append the last 100 lines of your log file with the --verbose flag set.
Disclaimer
These programs are distributed in the hope that they will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for any purpose. The entire risk as to the quality and performance of the program is with the user.
Owner
- Name: AKlingenberg
- Login: A-Klingenberg
- Kind: user
- Repositories: 1
- Profile: https://github.com/A-Klingenberg
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: VIPER
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Anna Sophie
family-names: Klingenberg
email: aklingenberg@unomaha.edu
affiliation: >-
Department of Information Systems and Quantitative
Analysis, University of Nebraska at Omaha, Omaha,
Nebraska, USA
- given-names: Dario
family-names: Ghersi
affiliation: >-
School of Interdisciplinary Informatics, University of
Nebraska at Omaha, Omaha, Nebraska USA
email: dghersi@unomaha.edu
orcid: 'https://orcid.org/0000-0002-0630-0843'
identifiers:
- type: doi
value: 10.1089/cmb.2024.0866
- type: doi
value: 10.5281/zenodo.10897858
repository-code: 'https://github.com/A-Klingenberg/VIPER'
abstract: >-
VIPER is a framework for the automated design of
inhibitory decoy peptides based on structural binding data
of two proteins.
keywords:
- structural biology
- decoy peptide
- attachment inhibitor
license: MIT
CodeMeta (codemeta.json)
{
"@context": "https://w3id.org/codemeta/3.0",
"type": "SoftwareSourceCode",
"applicationCategory": "Structural Biology",
"author": [
{
"id": "_:author_1",
"type": "Person",
"affiliation": {
"type": "Organization",
"name": "Department of Information Systems and Quantitative Analysis, University of Nebraska at Omaha, Omaha, Nebraska, USA"
},
"email": "aklingenberg@unomaha.edu",
"familyName": "Klingenberg",
"givenName": "Anna Sophie"
},
{
"id": "https://orcid.org/0000-0002-0630-0843",
"type": "Person",
"affiliation": {
"type": "Organization",
"name": "School of Interdisciplinary Informatics, University of Nebraska at Omaha, Omaha, Nebraska USA"
},
"email": "dghersi@unomaha.edu",
"familyName": "Ghersi",
"givenName": "Dario"
}
],
"codeRepository": "https://github.com/A-Klingenberg/VIPER",
"dateModified": "2024-03-27",
"description": "VIPER is a framework for the automated design of inhibitory decoy peptides based on structural binding data of two proteins.",
"identifier": "10.1089/cmb.2024.0866",
"keywords": [
"structural biology",
"decoy peptide",
"attachment inhibitor"
],
"license": "https://spdx.org/licenses/MIT",
"name": "VIPER",
"operatingSystem": "Linux",
"programmingLanguage": "Python 3.8",
"version": "1.0.1",
"issueTracker": "https://github.com/A-Klingenberg/VIPER/issues",
"referencePublication": "https://doi.org/10.1089/cmb.2024.0866"
}
GitHub Events
Total
- Push event: 12
- Create event: 1
Last Year
- Push event: 12
- Create event: 1
Dependencies
- biopython *
- joblib *
- matplotlib *
- numpy *
- pandas *
- requests *
- requests-toolbelt *
- scikit-learn *
- scipy *
- seaborn *
- threadpoolctl *