Hi Charles,
thanks a lot for offering your help! Looks like I'll need it...
So I gave it a first try with the following script:
>>>
import psfGen, protocol, pdbTool
## see also xplor-2.23/eginput/PSF-generation/addAtoms.py
simWorld.setRandomSeed(5521)
import protocol
protocol.initTopology(('protein'))
protocol.initParams(('protein'))
seq = open('01_sequence.txt').read()
psfGen.seqToPSF(seq,seqType='prot',startResid=1)
pdbTool.PDBTool('01_domain1.pdb').read()
pdbTool.PDBTool('01_domain2.pdb').read()
notKnown=AtomSel("not known")
protocol.addUnknownAtoms()
protocol.fixupCovalentGeom(sel=notKnown)
xplor.command("write psf output=new.psf end")
pdbTool.PDBTool("system1.pdb").write()
<<<
The seq content looks like this:
"GLY VAL GLN VAL GLU THR ILE SER PRO GLY ASP..." and is exactly the sequence of
PDB 1 plus sequence of the linker plus sequence of PDB 2 (generated directly
from the PDB files).
The first PDB has residue numbering from 1 to N_res, consecutive atom numbering
from 1 to N_atoms, no H and no END or TER record. The second PDB has a residue
numbering that starts exactly with N_res + len(linker) + 1. I didn't yet adapt
the atom numbering but there seems to be a problem before that anyway.
The script hangs at protocol.addUnknownAtoms(). Even if I only load the first
PDB and then directly try
pdbTool.PDBTool("system1.pdb").write()
I get an error message for each atom::
WARNING: PDBTool::writePDBAtom: invalid coordinates for atom 1 GLY N
So it seems loading the PDB with pdbTool.PDBTool('01_domain1.pdb').read()
didn't
really assign the content to the PSF?
The first line of the PDB looks like this:
ATOM 1 N GLY A 1 5.925 28.639 50.179 1.00 22.39 fkpb N
But I don't think it's a problem of the PDB. The read() proceeds without errors
and echos all the lines of the PDB.
Any idea where things start going wrong? I tried to adapt the script from
eginput/PSF-generation/addAtoms.py but perhaps I am miss-interpreting it.
Thanks a lot in advance!
Greetings,
Raik
Charles at Schwieters.org wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
> Hello Raik--
>
>> So we use psfGen.seqToPSF(...) in order to create the psf for the
>> complete molecule. Is there now a way to read in the two PDBs that
>> each cover part of the total sequence and project their structure into
>> the system? Or will we need to create a single composite PDB with fake
>> coordinates for the linker?
>
> Presuming the input pdb residue nums are consistent with the overall
> sequence, you can use psfGen.seqToPSF (follow an example in
> eginput/PSF_generation/*.py) and then initialize coordinate values using
> protocol.initCoords.
>
>> The second step would be to create a covalent structure for the linker
>> and minimize the whole system
>> together. protocol.genExtendedStructure(...) should do the trick for
>> the linker but how do we then run a rigid body, flexible linker, rigid
>> body minimization? Lots of xplor.command(), or is there a more
>> pythonic way?
>
> You shouldn't use many if any xplor.command calls. You use the IVM to
> group (ivm.IVM.group()) your previously determined regions into rigid
> bodies. Then you might try the protocol in eginput/gb1_rdc/anneal.py.
>
>> The python interface looks quite a bit more intuitive than the classic xplor
>> language but documentation seems a bit patchy. Sorry if we overlooked some
>> obvious documentation!
>
> Unfortunately, the documentation is a bit sparse. I will try to assist
> you as necessary.
>
> best regards--
> Charles
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Processed by Mailcrypt 3.5.8+ <http://mailcrypt.sourceforge.net/>
>
> iEYEARECAAYFAkpUimMACgkQPK2zrJwS/lZN7ACbBdbG+kx/7AQA7p+CncRN+As5
> u0QAnAt0KDDOEpfMZe03Dwgs5EMSMVuO
> =M4KB
> -----END PGP SIGNATURE-----
>
--
________________________________
Dr. Raik Gruenberg
http://www.raiks.de/contact.html
________________________________