Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
275 changes: 275 additions & 0 deletions symmetry/Symmetry Setup Mark II.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,275 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found rosetta database at: /home/stephanie/anaconda2/envs/DebugPyrosetta/lib/python2.7/site-packages/pyrosetta-4.0-py2.7.egg/database; using it....\n",
"PyRosetta-4 2016 [Rosetta 2016 unknown:9ea8e5e15e7c35838a32b8089ca8351ff540888c 2016-12-16 10:52:45 -0500] retrieved from: git@github.com:RosettaCommons/main.git\n",
"(C) Copyright Rosetta Commons Member Institutions.\n",
"Created in JHU by Sergey Lyskov and PyRosetta Team.\n",
"\n"
]
}
],
"source": [
"# This is needed for some builds\n",
"import rosetta\n",
"import pyrosetta\n",
"pyrosetta.init('-ignore_unrecognized_res T -ignore_waters T -preserve_header T -prevent_repacking T')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def tmalign( pose, ref_pose ):\n",
" \n",
" print 'Running tmalign on poses'\n",
" tm = rosetta.protocols.hybridization.TMalign()\n",
" tm.apply(pose, ref_pose)\n",
" longest = max(pose.total_residue()+1, ref_pose.total_residue()+1)\n",
" \n",
" print 'TMScore = %s ' %tm.TMscore(longest)\n",
" atommap = rosetta.core.id.AtomID_Map_core_id_AtomID_t()\n",
" rosetta.core.pose.initialize_atomid_map_AtomID( atommap, pose )\n",
" tm.alignment2AtomMap( pose, ref_pose, atommap )\n",
" aln_cutoff = rosetta.utility.vector1_double()\n",
" for i in [2.0,1.5,1.0,0.5]:\n",
" aln_cutoff.append(i)\n",
" min_coverage = .2\n",
" rosetta.protocols.hybridization.partial_align(pose,ref_pose, atommap, True, aln_cutoff, min_coverage)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [],
"source": [
"# Read in a pose and setup the pymol observer, you have to score it to get it into pymol\n",
"\n",
"p = pyrosetta.pose_from_file('2VBF_cleaned.pdb')\n",
"pm = pyrosetta.PyMolMover()\n",
"pm.keep_history(True)\n",
"pm.apply(p)\n",
"# sfxn = pyrosetta.get_fa_scorefxn()\n",
"# sfxn(p) "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"PDB file name: 2VBF_cleaned.pdb\n",
"Total residues:1082\n",
"Sequence: MYTVGDYLLDRLHELGIEEIFGVPGDYNLQFLDQIISREDMKWIGNANELNASYMADGYARTKKAAAFLTTFGVGELSAINGLAGSYAENLPVVEIVGSPTSKVQNDGKFVHHTLADGDFKHFMKMHEPVTAARTLLTAENATYEIDRVLSQLLKERKPVYINLPVDVAAAKAEKPALSLENTTEQVILSKIEESLKNAQKPVVIAGHEVISFGLEKTVTQFVSETKLPITTLNFGKSAVDESLPSFLGIYNGKLSEISLKNFVESADFILMLGVKLTDSSTGAFTHHLDENKMISLNIDEGIIFNKVVEDFDFRAVVSSLSELKGIEYEGQYIDKQYEEFIPSSAPLSQDRLWQAVESLTQSNETIVAEQGTSFFGASTIFLKSNSRFIGQPLWGSIGYTFPAALGSQIADKESRHLLFIGDGSLQLTVQELGLSIREKLNPICFIINNDGYTVEREIHGPTQSYNDIPMWNYSKLPETFGATEDRVVSKIVRTENEFVSVMKEAQADVNRMYWIELVLEKEDAPKLLKKMGKLFAEQNKMYTVGDYLLDRLHELGIEEIFGVPGDYNLQFLDQIISREDMKWIGNANELNASYMADGYARTKKAAAFLTTFGVGELSAINGLAGSYAENLPVVEIVGSPTSKVQNDGKFVHHTLADGDFKHFMKMHEPVTAARTLLTAENATYEIDRVLSQLLKERKPVYINLPVDVAAAKAEKPALSLENTTEQVILSKIEESLKNAQKPVVIAGHEVISFGLEKTVTQFVSETKLPITTLNFGKSAVDESLPSFLGIYNGKLSEISLKNFVESADFILMLGVKLTDSSTGAFTHHLDENKMISLNIDEGIIFNKVVEDFDFRAVVSSLSELKGIEYEGQYIDKQYEEFIPSSAPLSQDRLWQAVESLTQSNETIVAEQGTSFFGASTIFLKSNSRFIGQPLWGSIGYTFPAALGSQIADKESRHLLFIGDGSLQLTVQELGLSIREKLNPICFIINNDGYTVEREIHGPTQSYNDIPMWNYSKLPETFGATEDRVVSKIVRTENEFVSVMKEAQADVNRMYWIELVLEKEDAPKLLKKMGKLFAEQNK\n",
"Fold tree:\n",
"FOLD_TREE EDGE 1 181 -1 EDGE 1 182 1 EDGE 182 541 -1 EDGE 1 542 2 EDGE 542 722 -1 EDGE 1 723 3 EDGE 723 1082 -1 \n",
"vector1_unsigned_long[181, 541, 722]\n",
"MYTVGDYLLDRLHELGIEEIFGVPGDYNLQFLDQIISREDMKWIGNANELNASYMADGYARTKKAAAFLTTFGVGELSAINGLAGSYAENLPVVEIVGSPTSKVQNDGKFVHHTLADGDFKHFMKMHEPVTAARTLLTAENATYEIDRVLSQLLKERKPVYINLPVDVAAAKAEKPALSLENTTEQVILSKIEESLKNAQKPVVIAGHEVISFGLEKTVTQFVSETKLPITTLNFGKSAVDESLPSFLGIYNGKLSEISLKNFVESADFILMLGVKLTDSSTGAFTHHLDENKMISLNIDEGIIFNKVVEDFDFRAVVSSLSELKGIEYEGQYIDKQYEEFIPSSAPLSQDRLWQAVESLTQSNETIVAEQGTSFFGASTIFLKSNSRFIGQPLWGSIGYTFPAALGSQIADKESRHLLFIGDGSLQLTVQELGLSIREKLNPICFIINNDGYTVEREIHGPTQSYNDIPMWNYSKLPETFGATEDRVVSKIVRTENEFVSVMKEAQADVNRMYWIELVLEKEDAPKLLKKMGKLFAEQNK\n",
"vector1_unsigned_long[541]\n"
]
}
],
"source": [
"## Take a look at your protein and the wierd chain endings\n",
"print p\n",
"print p.conformation().chain_endings()\n",
"\n",
"# Fix the weird chain endings (so that later, we can create a nice foldtree)\n",
"p.update_pose_chains_from_pdb_chains()\n",
"print p.chain_sequence(1)\n",
"print p.conformation().chain_endings()\n",
"n_jumps = p.num_jump()\n",
"seq1 = p.chain_sequence(1)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"# Now, since the protein is in the right place, we just make a copy of the chain A\n",
"ChainAcopy = rosetta.core.pose.Pose(p,1,len(seq1))\n",
"ChainBcopy = rosetta.core.pose.Pose(p,len(seq1)+1,p.total_residue())"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ChainA = rosetta.core.pose.Pose(p,1,len(seq1))\n",
"## Make third copy of chainA\n",
"## align copyChainA onto chainB\n",
"## Then turn the chain ID to Chain B on the copy\n",
"## then append chainb to chain A\n",
"## then dump pdb - then run make symm def file"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Running tmalign on poses\n",
"TMScore = 0.995005610329 \n"
]
}
],
"source": [
"tmalign(ChainAcopy,ChainBcopy)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"pm.apply(ChainAcopy)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for i in range(1,len(seq1)+1):\n",
" ChainAcopy.pdb_info().chain(i,'B')\n",
"ChainAcopy.pdb_info().obsolete(False)\n",
"ChainAcopy.dump_pdb('isthischainB.pdb')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rosetta.core.pose.append_pose_to_pose(ChainA,ChainAcopy)\n",
"ChainA.pdb_info().obsolete(False)\n",
"ChainA.dump_pdb('thismightworksymm.pdb')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rosetta.core.pose.append_subpose_to_pose(ChainA, ChainAcopy, 1, len(seq1), True)\n",
"ChainA.dump_pdb('thismightworksymm.pdb')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Loading