Created
May 6, 2015 21:47
-
-
Save asford/0ab2f79b8ffcd6518aca to your computer and use it in GitHub Desktop.
Demo rosetta scripts wrapper component.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import logging\n", | |
"reload(logging)\n", | |
"logging.basicConfig(level=logging.INFO)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:rosetta:Found rosetta database at: /work/fordas/python_local/rosetta/database\n", | |
"INFO:rosetta:Version: 1afb81950d464d6243055cb6a566fd124985cd5f\n", | |
"INFO:rosetta:core.init: Rosetta version from\n", | |
"INFO:rosetta:core.init: command: pyrosetta -ex1 -ex2aro -database /work/fordas/python_local/rosetta/database\n", | |
"INFO:rosetta:core.init: 'RNG device' seed mode, using '/dev/urandom', seed=151738479 seed_offset=0 real_seed=151738479\n", | |
"INFO:rosetta:core.init.random: RandomGenerator:init: Normal mode, seed=151738479 RG_type=mt19937\n" | |
] | |
} | |
], | |
"source": [ | |
"import rosetta\n", | |
"rosetta.init()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"from rosetta.protocols.rosetta_scripts import RosettaScriptsParser\n", | |
"from rosetta.utility.tag import Tag\n", | |
"from rosetta.protocols.jd2 import JobDistributor, Job\n", | |
"\n", | |
"class RosettaScriptWrapper(object):\n", | |
" \"\"\"Wrapper object that handles parsing a string RosettaScripts protocol and applying the protocol to target poses.\"\"\"\n", | |
" \n", | |
" def __init__(self, protocol_xml, starting_pose = None):\n", | |
" \"\"\"Parse protocol xml, using optional starting_pose if needed by defined movers/filters.\"\"\"\n", | |
" tag = Tag.create(protocol_xml)\n", | |
"\n", | |
" if starting_pose is None:\n", | |
" self.protocol = RosettaScriptsParser().parse_protocol_tag(tag)\n", | |
" else:\n", | |
" self.protocol = RosettaScriptsParser().parse_protocol_tag(starting_pose, tag)\n", | |
" \n", | |
" JobDistributor.get_instance().restart()\n", | |
" self.blank_job = JobDistributor.get_instance().current_job()\n", | |
" \n", | |
" def apply(self, target_pose):\n", | |
" \"\"\"Apply protocol to pose.\n", | |
" \n", | |
" Returns:\n", | |
" (result_pose, filter_score)\n", | |
" \"\"\"\n", | |
" \n", | |
" self.protocol.apply(target_pose)\n", | |
" record_job = Job(self.blank_job)\n", | |
" self.protocol.add_values_to_job( target_pose, record_job )\n", | |
" \n", | |
" results = {}\n", | |
" results.update( record_job.get_string_real_pairs() )\n", | |
" results.update( record_job.get_string_string_pairs() )\n", | |
" \n", | |
" return target_pose, results" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:rosetta:core.scoring.ScoreFunctionFactory: SCOREFUNCTION: talaris2013\n" | |
] | |
} | |
], | |
"source": [ | |
"test_sf = rosetta.core.scoring.getScoreFunction()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 68, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"test_script = \"\"\"\n", | |
"<ROSETTASCRIPTS>\n", | |
" <SCOREFXNS>\n", | |
" </SCOREFXNS>\n", | |
" <TASKOPERATIONS>\n", | |
" </TASKOPERATIONS>\n", | |
" <FILTERS>\n", | |
" <ScoreType name=\"total_score\" score_type=\"total_score\" threshold=100/>\n", | |
" \n", | |
" </FILTERS>\n", | |
" <MOVERS>\n", | |
" <FastRelax name=\"fastrelax\" repeats=1 />\n", | |
" </MOVERS>\n", | |
" <PROTOCOLS>\n", | |
" <Add mover=\"fastrelax\" filter=\"total_score\"/>\n", | |
" </PROTOCOLS>\n", | |
"</ROSETTASCRIPTS>\n", | |
"\"\"\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 69, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:rosetta:core.scoring.ScoreFunctionFactory: SCOREFUNCTION: talaris2013\n", | |
"INFO:rosetta:protocols.simple_filters.ScoreTypeFilter: ScoreType filter for score_type total_score with threshold 100\n", | |
"INFO:rosetta:protocols.rosetta_scripts.RosettaScriptsParser: Defined filter named \"total_score\" of type ScoreType\n", | |
"INFO:rosetta:protocols.relax.FastRelax: ================== Using default script ==================\n", | |
"INFO:rosetta:protocols.relax.FastRelax: ================== Using default script ==================\n", | |
"INFO:rosetta:protocols.rosetta_scripts.RosettaScriptsParser: Defined mover named \"fastrelax\" of type FastRelax\n", | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol: ParsedProtocol mover with the following movers and filters\n", | |
"added mover \"fastrelax\" with filter \"total_score\"\n", | |
"INFO:rosetta:protocols::checkpoint: Deleting checkpoints of FastRelax\n", | |
"INFO:rosetta:protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ...\n", | |
"INFO:rosetta:protocols::checkpoint: Deleting checkpoints of FastRelax\n" | |
] | |
} | |
], | |
"source": [ | |
"wrapper = TestScriptWrapper( test_script )" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 70, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"test_pose = rosetta.pose_from_sequence(\"TESTTESTTEST\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 71, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol: =======================BEGIN MOVER FastRelax - fastrelax=======================\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: repeat 1981.38 0 0 0.44\n", | |
"INFO:rosetta:core.pack.task: Packer task: initialize from command line()\n", | |
"INFO:rosetta:core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph\n", | |
"INFO:rosetta:core.pack.pack_rotamers: built 297 rotamers at 12 positions.\n", | |
"INFO:rosetta:core.pack.pack_rotamers: IG: 58660 bytes\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: ramp_repack_min 7.06057 0.000112984 0.000112984 0.0088\n", | |
"INFO:rosetta:core.pack.task: Packer task: initialize from command line()\n", | |
"INFO:rosetta:core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph\n", | |
"INFO:rosetta:core.pack.pack_rotamers: built 283 rotamers at 12 positions.\n", | |
"INFO:rosetta:core.pack.pack_rotamers: IG: 53980 bytes\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: ramp_repack_min 8.24648 0.000228142 0.000228142 0.11\n", | |
"INFO:rosetta:core.pack.task: Packer task: initialize from command line()\n", | |
"INFO:rosetta:core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph\n", | |
"INFO:rosetta:core.pack.pack_rotamers: built 270 rotamers at 12 positions.\n", | |
"INFO:rosetta:core.pack.pack_rotamers: IG: 50152 bytes\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: ramp_repack_min 9.79296 0.000347425 0.000347425 0.242\n", | |
"INFO:rosetta:core.pack.task: Packer task: initialize from command line()\n", | |
"INFO:rosetta:core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph\n", | |
"INFO:rosetta:core.pack.pack_rotamers: built 253 rotamers at 12 positions.\n", | |
"INFO:rosetta:core.pack.pack_rotamers: IG: 44316 bytes\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: ramp_repack_min -1.90835 1.47654 1.47654 0.44\n", | |
"INFO:rosetta:protocols.relax.FastRelax: MRP: 0 -1.90835 -1.90835 1.47654 1.47654\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: accept_to_best -1.90835 1.47654 1.47654 0.44\n", | |
"INFO:rosetta:protocols.relax.FastRelax: CMD: endrepeat -1.90835 1.47654 1.47654 0.44\n", | |
"INFO:rosetta:protocols::checkpoint: Deleting checkpoints of FastRelax\n", | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol: =======================BEGIN FILTER total_score=======================\n", | |
"INFO:rosetta:protocols.simple_filters.ScoreTypeFilter: score total_score is -1.90835. passing.\n", | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol: =======================END FILTER total_score=======================\n", | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol: setting status to success\n", | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol.REPORT: ============Begin report for total_score==================\n", | |
"INFO:rosetta:protocols.rosetta_scripts.ParsedProtocol.REPORT: Weighted score of total_score -1.90835\n", | |
"============End report for total_score==================\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"(<rosetta.core.pose.__pose_all_at_once_.Pose at 0xd990730>,\n", | |
" {'total_score': -1.9083521765116358})" | |
] | |
}, | |
"execution_count": 71, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"wrapper.apply(test_pose)" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment