You are here

Help on Chimera Creator/Homodomain script

2 posts / 0 new
Last post
Help on Chimera Creator/Homodomain script
#1

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=101

homostart_2=144
homoend_2=165

fold_regions = 1
foldstart_1 = 102
foldend_1 = 143

if 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=1

norm=180
zero=0

while res_num<(pose.total_residue()+1):

pose.set_phi(res_num, norm)
pose.set_psi(res_num, norm)
res_num +=1

while Ores<(pose.total_residue()):
pose.set_omega(Ores, norm)
Ores +=1

dump_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+=1

i+=1
homostart_1 +=1

i=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=1

while x <= chi:
homochi = homodomain.chi(x, i)
pose.set_chi(x, homostart_1, homochi)
x+=1

i+=1
homostart_1+=1

dump_pdb(D8inserttest1.3.pdb")

Thanks for any help,

-Jared

Mon, 2010-06-14 21:34
jadolfbr

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

Mon, 2010-07-19 10:33
mark.wilson