Help on Chimera Creator/Homodomain script

Member Site Forums PyRosetta PyRosetta – General Help on Chimera Creator/Homodomain script

Viewing 1 reply thread
  • Author
    Posts
    • #568
      Anonymous

        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

      • #4493
        Anonymous

          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

      Viewing 1 reply thread
      • You must be logged in to reply to this topic.