Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Installation requirements for PRosettaC:
1. Load python 3 by using:
module load python/3.6.4
2. Install RDKit, NumPy and pymol python packages. If you're using conda, use:
conda install -c rdkit rdkit
conda install -c anaconda numpy
conda install -c schrodinger pymol
3. Download and Install OpenBabel (http://openbabel.org/wiki/Main_Page), PatchDock (https://bioinfo3d.cs.tau.ac.il/PatchDock/) and Rosetta (https://www.rosettacommons.org/). The Rosetta versino that was used in this study is: 2019.27.post.dev+132.master.966c9eb 966c9eb6b3ab993de7aa3af5988125b7c2e464af git@github.com:RosettaCommons/main.git 2019-07-18T11:43:25.
4. For job scheduling our scripts rely on PBS (https://en.wikipedia.org/wiki/Portable_Batch_System) or Sun Grid Engine/Open Grid Engine (https://en.wikipedia.org/wiki/Oracle_Grid_Engine), Slurm Workload Manager (https://slurm.schedmd.com).
5. Set the following environment parameters: export PATCHDOCK=”/Path_to_PatchDock/”, export OB=”/Path_to_OpenBabel/”, export SCRIPTS_FOL=”/Path_to_the_git_folder/”, export ROSETTA_FOL=”/Path_to_Rosetta/”. Additionally, set either PBS_HOME=”/Path_to_PBS_bin_folder/”, or SGE_HOME=”/Path_to_SGE_bin_folder/”, depending on the scheduler you are using.
6. When working with PBS, the environment parameter PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results has to be set whereever a job is executed. You can achieve this by appending
export PBS_O_WORKDIR=/Path_to_the_git_folder/Patchdok_Results
to /etc/pbs.conf (on all cluster nodes). Another option is to write this line to a file, e.g. env.txt, and then set the enrionment parameter SCHEDULER_PARAMS=/Path_to_env.txt before starting PRosettaC (see below "Additional parameters").
When using SGE, do the same except with /etc/sge.conf. Also, use /etc/slurm.conf when using SLURM
Usage: python main.py/auto.py Protac_params.txt
In order to send the main job also to the job scheduler, use:
python extended.py/short.py Protac_params.txt
Protac_param.txt will include the input files and should look like this:
/////////////////////////////
For main.py / extended.py:
Structures: StructA.pdb StructB.pdb
Chains: A B
Heads: HeadA.sdf HeadB.sdf
Anchor atoms: 11 23
Protac: protac.smi
Full: True
////////////////////////////
Details of files for the extended version:
StructA.pdb is the structure of the E3 ligase (e.g. CRBN)
StructB.pdb is the structure of the target protein (e.g. BRD4)
A and B are the chain IDs for the E3 ligase and target. If your structures have more than one chain, write them like this: Chains: AC B. There should not be identical chain IDs for the E3 ligase and the target.
HeadA.sdf is the E3 ligase binder (e.g. thalidomide)
HeadB.sdf is the target binder (e.g. JQ1)
Both HeadA and HeadB should be positioned in their appropriate binding modes within StructA and StructB.
Anchor atoms is the number of the anchor atoms within HeadA and HeadB. An easy way to find the number of a desired atom is to open HeadA.sdf in pymol, press the L button in the toolbar, then choose "atom identifiers", and "ID". Just make sure that the anchor should be >= 1, so in case the numbering in pymol starts from 0, add one to the number of the chosen atom. The anchor atoms must be uniquely defined in the smiles representation of the molecule.
/////////////////////////////
For auto.py / short.py:
PDB: PDB_ID1 PDB_ID2
LIG: LIG_ID1 LIG_ID2
PROTAC: protac.smi
Full: True
/////////////////////////////
For a more flexible run with .pdb or .sdf file instead of the PDB or LIG IDs, for either one or both proteins, use auto.py / short.py:
/////////////////////////////
PDB: [PDB_ID1 ; pdb1.pdb] [PDB_ID2 ; pdb2.pdb]
LIG: [LIG_ID1 ; lig1.sdf] [LIG_ID2 ; lig2.sdf]
PROTAC: [SMILES_STRING ; protac.smi]
Full: True
/////////////////////////////
NOTES: [X ; Y] means that either one could be chosen. The only requirement is that .sdf file cannot be chosen along with PDB_ID.
protac.smi is a file with a single line which is the smiles representation of the full PROTAC.
Due to a reserved name, the params file must not be called params.txt.
Use "Full: True" for a full and long run, and "Full: False" for a shorter run of lower quality, with less global and local docking runs
Use "ClusterName: [PBS|SGE|SLURM]" to set the scheduler (if you use PBS you don't need to specify it at all, because that's the default)
Additional parameters:
In the config file you can also specify the optional parameters RosettaDockMemory and ProtacModelMemory. These set the
amount of memory assigned per job at step 3 and 4 described in the paper and default to 8000mb and 4000mb, respectively.
You can also set the environment variable SCHEDULER_PARAMS to a file, whose content is prepended to each job file sent to the scheduler. This is useful for scheduler-specific job-level configuration (e.g. number of dedicated cpus) or for setup like activating a conda environement to run the job in etc.
How to implement a scheduler
To add support for a specific scheduler simply implement the abstract class Cluster in cluster/Cluster.py like cluster.PBS.PBS and cluster.SGE.SGE do. Then add the scheduler as entry in cluster/__init__.py.
Authors:
Daniel Zaidman, Nir London

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages