Member Site › Forums › PyRosetta › PyRosetta – General › Help on Chimera Creator/Homodomain script
- This topic has 1 reply, 2 voices, and was last updated 14 years, 5 months ago by Anonymous.
-
AuthorPosts
-
-
June 15, 2010 at 4:34 am #568Anonymous
Hi.
I wanted to make a program that allows the transfer of pdb files into an amino acid sequence for use in either Chimera Creation, or Homodomain transfer. The idea is that the angles of a pdb file or multiple pdb files be transferred onto an amino acid sequence, and then whichever parts the user wants to fold be allowed to fold, but not the homologous domain or the non-linker regions of the chimera. Problem is, that even in the test program, after debugging to make sure the angles are transferred to the new protein from the pdb file, the output PDB turns out wierd.
Any suggestions to the code?
Here is a test program that should be able to transfer the PDB angles onto a Sequence (Uses the pdb file 2ezm):
from rosetta import *
import random
import math
import os
rosetta.init()pose=Pose()
make_pose_from_sequence(pose, “LGKFSQTCYNSAIQGSVLTSTCERTNGGYNTSSIDLNSVIENVDGSLKWQPSNFIETCRNTQLAGSSELAAECKTRAQQFVSTKINLDDHIANIDGTLKYE”, “fa_standard”)#HomoDomain Info, Homostart-Homoend DO NOT fold
domains=1
homostart_1=1
homoend_1=101homostart_2=144
homoend_2=165fold_regions = 1
foldstart_1 = 102
foldend_1 = 143if domains > 0:
homodomain_1=Pose()
pose_from_pdb (homodomain_1, “2EZM.pdb”)homores_1=homodomain_1.total_residue()
if domains > 1:
homodomain_2=Pose()
pose_from_pdb (homodomain_2, “2X7R_MPER_2010_trunc.pdb”)homores_2=homodomain_2.total_residue()
#Linear Initialization
res_num=1
Ores=1norm=180
zero=0while res_num<(pose.total_residue()+1): pose.set_phi(res_num, norm)
pose.set_psi(res_num, norm)
res_num +=1while Ores<(pose.total_residue()):
pose.set_omega(Ores, norm)
Ores +=1dump_pdb(pose, “D8inserttest1.1.pdb”)
#HomoDomain Insert
i=1
if domains > 0:while i < homores_1 +1:
homodomain = homodomain_1
homophi=homodomain.phi(i)
pose.set_phi(homostart_1, homophi)print pose.psi(homostart_1)
homopsi=homodomain.psi(i)
print homodomain.psi(i)
pose.set_psi(homostart_1, homopsi)
print pose.psi(homostart_1)print pose.omega(homostart_1)
homoomega=homodomain.omega(i)
print homodomain.omega(i)
pose.set_omega(homostart_1, homoomega)
print pose.omega(homostart_1)a = homodomain.residue(i).name()
print a
aa=a[0:3]if aa == pose.residue(homostart_1).name():
print aa
if aa == ‘GLY’:
chi=0
if aa == ‘PRO’:
chi=2
if aa == ‘ALA’:
chi=0
if aa == ‘VAL’:
chi=1
if aa == ‘LEU’:
chi=2
if aa == ‘ILE’:
chi=2
if aa == ‘MET’:
chi=3
if aa == ‘CYS’:
chi=1
if aa == ‘PHE’:
chi=2
if aa == ‘TYR’:
chi=2
if aa == ‘TRP’:
chi=2
if aa == ‘HIS’:
chi=2
if aa == ‘LYS’:
chi=4
if aa == ‘ARG’:
chi=4
if aa == ‘GLN’:
chi=3
if aa == ‘ASN’:
chi=2
if aa == ‘GLU’:
chi=3
if aa == ‘ASP’:
chi=2
if aa == ‘SER’:
chi=1
if aa == ‘THR’:
chi=1
x=1
print chi
while x <= chi:
homochi = homodomain.chi(x, i)
print homochi
pose.set_chi(x, homostart_1, homochi)
print pose.chi(x, homostart_1)
x+=1i+=1
homostart_1 +=1i=1
dump_pdb(pose, “D8inserttest1.2.pdb”)
if domains > 1:while i < homores_2 +1:
homodomain = homodomain_2
homophi=homodomain.phi(i)
pose.set_phi(homostart_1, homophi)homopsi=homodomain.psi(i)
pose.set_psi(homostart_1, homopsi)homoomega=homodomain.omega(i)
pose.set_omega(homostart_1, homoomega)a = homodomain.residue(i).name()
aa=a[0:3]if aa == pose.residue(homostart_1).name():
print aa
if aa == ‘GLY’:
chi=0
if aa == ‘PRO’:
chi=2
if aa == ‘ALA’:
chi=0
if aa == ‘VAL’:
chi=1
if aa == ‘LEU’:
chi=2
if aa == ‘ILE’:
chi=2
if aa == ‘MET’:
chi=3
if aa == ‘CYS’:
chi=1
if aa == ‘PHE’:
chi=2
if aa == ‘TYR’:
chi=2
if aa == ‘TRP’:
chi=2
if aa == ‘HIS’:
chi=2
if aa == ‘LYS’:
chi=4
if aa == ‘ARG’:
chi=4
if aa == ‘GLN’:
chi=3
if aa == ‘ASN’:
chi=2
if aa == ‘GLU’:
chi=3
if aa == ‘ASP’:
chi=2
if aa == ‘SER’:
chi=1
if aa == ‘THR’:
chi=1
x=1while x <= chi:
homochi = homodomain.chi(x, i)
pose.set_chi(x, homostart_1, homochi)
x+=1i+=1
homostart_1+=1dump_pdb(D8inserttest1.3.pdb”)
Thanks for any help,
-Jared
-
July 19, 2010 at 5:33 pm #4493Anonymous
Jared,
I don’t know if this is your problem, but we’ve had big issues with the make_pose_from_sequence command. It seems to attach things in a very strange manner (e.g., I’ve found hydrogens shared between different residues). This has been such a big problem for us that we’ve discontinued using that method of making poses, preferring to make a pdb manually in PyMol or by sequence using DeepView.
I’d try to run your script again after making your aa sequence into a pdb, then loading it using pose_from_pdb.
I hope this helps,
Mark
-
-
AuthorPosts
- You must be logged in to reply to this topic.