Hi James,

I have a light version for fitting gromacs' gro files. No time to adapt
that now for PDB, but it's not too hard.

./qfit.py source.gro target.gro > output.gro

Hope it helps,

Tsjerk


On Fri, Sep 5, 2014 at 12:31 PM, James Starlight <jmsstarli...@gmail.com>
wrote:

> should to add
>
> than I've used both TMalign and mammoth utilities but didn't understand
> how to obtain superimposed output as the full-atomic pdb's. I will be
> thankful if someone could share with me its experience :)
>
> James
>
>
> 2014-09-05 12:00 GMT+02:00 James Starlight <jmsstarli...@gmail.com>:
>
>> Thanks Matthew,
>>
>>
>> I'll try to use this opportunity! BTW does anybody knows some simple
>> Linux utility to perform structural superimposition of 2 pdbs and obtain
>> the superimposed (target.pdb) in separate pdb file? This time I'm writing
>> big docking script where I need to superimpose each receptor against some
>> reference.pdb and use superimposed pdb for docking. Because I'll work with
>> huge pdb datasets I relly don’t want to call python each time.
>>
>> James
>>
>>
>> 2014-09-04 17:12 GMT+02:00 Matthew Baumgartner <mp...@pitt.edu>:
>>
>>>
>>>
>>> You could make a python script that import pymol and does what you want
>>> from there.
>>>
>>> Some thing like this (untested);
>>>
>>> import __main__
>>> __main__.pymol_argv = ['pymol','-cqk'] # Pymol: quiet and no GUI
>>> import pymol
>>> pymol.finish_launching()
>>> from pymol import cmd
>>>
>>> reffile = sys.argv[1]
>>> tarfile = sys.argv[2]
>>> outfile = sys.argv[3]
>>>
>>> cmd.load(reffile, 'ref')
>>> cmd.load(tarfile, 'tar')
>>> cmd.align('ref', 'tar')
>>> cmd.save(outfile, 'ref')
>>>
>>>
>>> Then on the command line call it like: python my_align.py reffile.pdb
>>> target.pdb output.pdb
>>>
>>> On 09/04/2014 11:06 AM, James Starlight wrote:
>>>
>>>   thank you very much!
>>>
>>> so now only my question regarding the usage of the pymol commands in
>>> command line is still open
>>>
>>>  BTW could someone suggest me the shell utility to make quick
>>> superimposition of the tar.pdb to  ref.pdb and save superimposed tar.pdb as
>>> the separate pdb  (the TMalign is not good because it produce pdb with both
>>> merged layers (and its backbone trace only) as the result if -o flagg is
>>> provided)
>>>
>>>  Kind regards,
>>>
>>>  Gleb
>>>
>>>
>>> 2014-09-04 16:57 GMT+02:00 Matthew Baumgartner <mp...@pitt.edu>:
>>>
>>>>  You can use sed
>>>> grep -h  '^\(ATOM\|HETATM\|END\)' tarr_se.pdb lipids.pdb | sed -e
>>>> 's/^END/TER/g'  > merged.pdb
>>>>
>>>>
>>>> On 09/04/2014 10:54 AM, James Starlight wrote:
>>>>
>>>>  thanks!
>>>>
>>>> and do I need to pipe the below command to smth
>>>> grep -h  '^\(ATOM\|HETATM\|END\)' tarr_se.pdb lipids.pdb   > merged.pdb
>>>>
>>>>  if I need to change 'END' to 'TER' in the merged.pdb ?
>>>>
>>>>
>>>> 2014-09-04 16:41 GMT+02:00 Matthew Baumgartner <mp...@pitt.edu>:
>>>>
>>>>>  Use the -h flag with grep to suppress the filename.
>>>>> Also, you don't need to pipe to cat, you can write directly to the
>>>>> file.
>>>>>
>>>>> grep -h  '^\(ATOM\|HETATM\|END\)' tarr_se.pdb lipids.pdb   >
>>>>> merged.pdb
>>>>>
>>>>>
>>>>>
>>>>> On 09/04/2014 10:38 AM, James Starlight wrote:
>>>>>
>>>>>    ..and one question about grep (really didn't find it in the
>>>>> tutorial)
>>>>>
>>>>> using
>>>>> grep '^\(ATOM\|HETATM\|END\)' tarr_se.pdb lipids.pdb |cat   >
>>>>> merged.pdb
>>>>>
>>>>>  I've obtained good pdb BUT each line prior to the ATOM the name of
>>>>> the pdb of the previous files have been added eg:
>>>>>
>>>>> tarr_se.pdb:ATOM      1  N   ASP X   1      35.722   8.306  92.256
>>>>> 0.00  0.00           N
>>>>> tarr_se.pdb:ATOM      2  CA  ASP X   1      35.252   8.836  93.529
>>>>> 0.00  0.00           C
>>>>> tarr_se.pdb:ATOM      3  C   ASP X   1      35.797  10.339  93.708
>>>>> 0.00  0.00           C
>>>>> tarr_se.pdb:ATOM      4  O   ASP X   1      34.979  11.297  93.674
>>>>> 0.00  0.00           O
>>>>> tarr_se.pdb:ATOM      5  CB  ASP X   1      35.593   7.984  94.698
>>>>> 0.00  0.00           C
>>>>> tarr_se.pdb:ATOM      6  CG  ASP X   1      34.692   8.171  95.960
>>>>> 0.00  0.00           C
>>>>> tarr_se.pdb:ATOM      7  OD1 ASP X   1      33.481   8.453  95.823
>>>>> 0.00  0.00           O
>>>>> tarr_se.pdb:ATOM      8  OD2 ASP X   1      35.257   8.362  97.046
>>>>> 0.00  0.00           O1-
>>>>> tarr_se.pdb:ATOM      9  HA  ASP X   1      34.180   9.033  93.580
>>>>> 0.00  0.00           H
>>>>> tarr_se.pdb:ATOM     10  HB2 ASP X   1      35.496   6.916  94.504
>>>>> 0.00  0.00           H
>>>>> tarr_se.pdb:ATOM     11  HB3 ASP X   1      36.648   7.969  94.970
>>>>> 0.00  0.00           H
>>>>>
>>>>>  such pattern are always produced by grep
>>>>>  so I'd like that tarr_se.pdb: have not been included (of course I can
>>>>> it remove easily after merging but this step is not good for me :) )
>>>>>
>>>>>  Also i'll be very thankful for any useful grep awk sed tutorial in
>>>>> case of the bioinformatics application
>>>>>
>>>>>  James
>>>>>
>>>>>
>>>>> 2014-09-04 16:03 GMT+02:00 James Starlight <jmsstarli...@gmail.com>:
>>>>>
>>>>>>    one question :)
>>>>>>
>>>>>>  could someone explain me the ussage the pymol commands from the
>>>>>> shell on the example
>>>>>> e.g i need to load 2 pdbs in pymol make its superimposition and than
>>>>>> save one of the superimposed pdb
>>>>>>  like
>>>>>> load ref.pdb tar.pdb
>>>>>> super tar, ref
>>>>>> save tar > tar_superimposed.pdb
>>>>>>
>>>>>>  I've tried to do part of this using
>>>>>> pymol ref.pdb tarr.pdb -cd "super tarr ref"
>>>>>>
>>>>>>  but eventually obtained error
>>>>>>
>>>>>>  James
>>>>>>
>>>>>>
>>>>>> 2014-09-04 15:47 GMT+02:00 James Starlight <jmsstarli...@gmail.com>:
>>>>>>
>>>>>>   Thanks Guys!
>>>>>>>  I'll check the tutorials.
>>>>>>>
>>>>>>>  All the best,
>>>>>>>
>>>>>>>  James
>>>>>>>
>>>>>>>
>>>>>>> 2014-09-04 13:15 GMT+02:00 David Hall <li...@cowsandmilk.net>:
>>>>>>>
>>>>>>>  (sed '1d' protein.pdb; sed '1d' lipid.pdb) > merged.pdb
>>>>>>>>
>>>>>>>> --or--
>>>>>>>>
>>>>>>>>  tail -q -n '+2' protein.pdb lipid.pdb > merged.pdb
>>>>>>>>
>>>>>>>> -David
>>>>>>>>
>>>>>>>>
>>>
>>
>
>
> ------------------------------------------------------------------------------
> Slashdot TV.
> Video for Nerds.  Stuff that matters.
> http://tv.slashdot.org/
> _______________________________________________
> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>



-- 
Tsjerk A. Wassenaar, Ph.D.
#!/usr/bin/env python

import sys, numpy

A = open(sys.argv[1]).readlines()
p = len(A[2].split(".")[-2])+1
a,b,c = 20+p,20+2*p,20+3*p
X = numpy.array([(float(i[20:a]),float(i[a:b]),float(i[b:c])) for i in A[2:2+int(A[1])]])

B = open(sys.argv[2]).readlines()
p = len(B[2].split(".")[-2])+1
a,b,c = 20+p,20+2*p,20+3*p
Y = numpy.array([(float(i[20:a]),float(i[a:b]),float(i[b:c])) for i in B[2:2+int(B[1])]])

Y = Y[:X.shape[0],:]

m  = Y.mean(axis=0)
X -= X.mean(axis=0)

U,L,V = numpy.linalg.svd(numpy.dot(X.T,Y-m))

R = numpy.dot(U,V)
R[:,2] = numpy.cross(R[:,0],R[:,1])

print A[0],A[1],
for i,(x,y,z) in zip(A[2:],(numpy.dot(X,R)+m).tolist()):
    print i[:20]+("%8.3f%8.3f%8.3f"%(x,y,z))
print A[2+int(A[1])],
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net

Reply via email to