Thanks so much for your help with this. After adding the top and par files
to toppar folder, I modified the script to include
*seqToPSF("TM+3",**startResid=90)
*so that part of the script looks like this:







*if fastaSEQ:    basename = os.path.splitext(fastaSEQ)[0]    if not
os.path.exists(f"{basename}_extended.pdb"):        # generate PSF data from
sequence and initialize the correct parameters        from psfGen import
seqToPSF        seqToPSF(fastaSEQ)        seqToPSF("TM+3",startResid=90)*

However, instead of the error I got with the TM atom, I am now getting this:
SystemError: xplor-nih error: error reading restraint: selection string  resid
2 and name H  selects no atoms
I have double-checked my PDB and there should not be an issue with finding
resid 2 and name H. Here is part of the PDB which shows that there is a H
atom for resid 2:
ATOM      1  N   MET A   1      27.340  24.430   2.614  1.00  9.67
  N
ATOM      2  CA  MET A   1      26.266  25.413   2.842  1.00 10.38
  C
ATOM      3  C   MET A   1      26.913  26.639   3.531  1.00  9.62
  C
ATOM      4  O   MET A   1      27.886  26.463   4.263  1.00  9.62
  O
ATOM      5  CB  MET A   1      25.112  24.880   3.649  1.00 13.77
  C
ATOM      6  CG  MET A   1      25.353  24.860   5.134  1.00 16.29
  C
ATOM      7  SD  MET A   1      23.930  23.959   5.904  1.00 17.17
  S
ATOM      8  CE  MET A   1      24.447  23.984   7.620  1.00 16.11
  C
ATOM      9  H   MET A   1      27.572  24.406   1.631  1.00  9.67
  H
ATOM     10  N   GLN A   2      26.335  27.770   3.258  1.00  9.27
  N
ATOM     11  CA  GLN A   2      26.850  29.021   3.898  1.00  9.07
  C
ATOM     12  C   GLN A   2      26.100  29.253   5.202  1.00  8.72
  C
ATOM     13  O   GLN A   2      24.865  29.024   5.330  1.00  8.22
  O
ATOM     14  CB  GLN A   2      26.733  30.148   2.905  1.00 14.46
  C
ATOM     15  CG  GLN A   2      26.882  31.546   3.409  1.00 17.01
  C
ATOM     16  CD  GLN A   2      26.786  32.562   2.270  1.00 20.10
  C
ATOM     17  NE2 GLN A   2      25.562  32.733   1.806  1.00 19.49
  N
ATOM     18  OE1 GLN A   2      27.783  33.160   1.870  1.00 21.89
  O

*ATOM     19  H   GLN A   2      25.550  27.805   2.623  1.00  9.27
  H*

*Also, the restraint file generated looks like this: *






*assign ( resid 500 and name 00 )       ( resid 500 and name Z )       (
resid 500 and name X )       ( resid 500 and name Y )       ( resid 90 and
name TM+3 )       ( resid 2 and name H )   -0.06900  0.00000*

*This restraint file was generated from the following part of the script:*



















*def PCSvaluesToXplorRestraints(filename, metal_id, metal_name):
"""Convert PCS values to XPLOR-NIH restraints."""    data =
np.loadtxt(filename,            dtype={'names': ('res', 'atom', 'PCS',
'dPCS'),                   'formats': ('f4', 'U1', 'f4', 'f4')})
basename = os.path.splitext(filename)[0]    with open(f"{basename}.xplor",
"w") as outfile:        for pcs in data:            res, atom, PCS, dPCS =
pcs            outstring = ('assign ( resid 500 and name 00 )\n'
             '       ( resid 500 and name Z )\n'                         '
      ( resid 500 and name X )\n'                         '       ( resid
500 and name Y )\n'                         f'       ( resid {metal_id} and
name {metal_name} )\n'                         f'       ( resid {int(res)}
and name {atom} )   {PCS:.5f}  {dPCS:.5f}\n')
outfile.write(outstring)*
(Please let me know if you identify any issues with sections of the script
or if it would be ok to send my entire script please let me know?)

Thank you.
Adedolapo



On Thu, Nov 30, 2023 at 11:34 AM Charles Schwieters <[email protected]>
wrote:

>
> Hello Adedolapo--
>
>
> > So the top/par files need to be created first for Thulium before I
> > run this line, correct?:
> > seqToPSF("TM3",startResid=90). Where can I get the topology info for
> > TM?
>
> I've placed updated versions of ion.top and ion.par containing TM+3
> parameters here:
>
>   https://bit.niddk.nih.gov/out/toAdedolapo-20231130/
>
> They should be placed in the toppar subdirectory of the Xplor-NIH
> distribution. These should enable the use of TM3+, and will be present
> in future versions of Xplor-NIH.
>
>
> >
> > PS: the tag is a DOTA-M7Py tag with Tm metal in the center attached
> > to a Cysteine. In case the above option doesn't work, If I am going
> > to patch the full lanthanide tag, it's not very clear to me how to
> > do this.
>
> I believe the correct tagged cysteine is contained in the CUNL residue
> defined in cunl.top/par in the above URL location. If you use it,
> please check that it is the moeity you are using. In CUNL, the metal
> center is called LU26 (not thulium) in this tag.
>
> >  I saw the lines below in one of the threads on the XPLOR
> > forum. How can I modify this to create the full Tm-DOTA-M7Py tag?
>
> More like:
>
> import protocol
> protocol.initTopology('protein'); protocol.initTopology('cunl.top')
> protocol.initParams('protein'); protocol.initParams('cunl.par')
> import pfsGen; psfGen.addResidue('CUNL')
>
> seq="GLY CUNL GLY" #replace with your sequence
>
> psfGen.seqToPSF(seq)
>
> import protocol
> protocol.genExtendedStructure()
>
> xplor.command("write PSF output=new.psf end")
> protocol.writePDB("new.pdb")
>
>
> With this, you will have a PSF file you can use going forward. In a
> structure calculation script use
>
> protocol.initStruct("new.psf")
> protocol.initCoords("existing.pdb") # an untagged PDB
>
> protocol.addUnknownAtoms()
>
> ...
>
> I hope this helps--
> Charles
>

########################################################################

To unsubscribe from the XPLOR-NIH list, click the following link:
http://list.nih.gov/cgi-bin/wa.exe?SUBED1=XPLOR-NIH&A=1

Reply via email to