Hi Renuka,

Please keep all PyMOL-related correspondence on the mailing list. That way, other people can find the answers by reading the mailing list or searching the web.

Your task is now getting a little more complicated. I think you'll probably want to define some Python functions and use them. It's useful to know that using the distance command with mode=2 will show polar contacts. Also, distance objects with names starting with an underscore won't show up in the GUI.


I'd do something like this:

1. Define some functions in a Python file that you can use via "run" (or perhaps in your .pymolrc). [see http://www.pymolwiki.org/index.php/Python_Integration and http://www.pymolwiki.org/index.php/Script_Tutorial]. You'll need to pass the name of your protein to these functions.

import os
from pymol import cmd

def loadclust(filename,protname):
    cmd.load(filename)
    dir,fname = os.path.split(filename)
    # PyMOL automatically names the object by the filename
    fname,extension = os.path.splitext(fname)
    # cluster_4 --> 4
    custernum = fname.split('_')[1] 
    # hidden from GUI display because it starts with _
    polarname = '_polar_'+clusternum 
    cmd.dist(polarname,fname,protname,mode=2)
cmd.extend('loadclust',loadclust)
def delclust(filename):
    dir,fname = os.path.split(filename)
    # PyMOL automatically names the object by the filename
    fname,extension = os.path.splitext(fname)
    # cluster_4 --> 4
    custernum = fname.split('_')[1] 
    # hidden from GUI display because it starts with _
    polarname = '_polar_'+clusternum 
    cmd.delete(fname)
    cmd.delete(polarname)
cmd.extend('delclust',delclust)

2. Then you should be able to use a similar procedure to before. Remember that you now need to delete things and pass the name of your protein to the functions so that polar contacts can be displayed correctly:

for i in glob.glob("Model_1/cluster_*.sdf"): loadclust(i,myprotein)

<analyze things>

for i in glob.glob("Model_1/cluster_*.sdf"): delclust(i,myprotein)

for i in glob.glob("Model_2/cluster_*.sdf"): loadclust(i,myprotein)

Unfortunately, I don't have any SD files on hand, so I haven't tested these! Some modification may be necessary. You should also check out the script that Jason linked.

Cheers,

-Michael

On Wed, Sep 22, 2010 at 11:52 AM, Renuka Robert <renukarobert@ymail.com> wrote:

Dear Michael
Thanks for your detailed reply. This is what exactly i needed. Now i want to find the hydrogen bonding between each cluster files and the protein. So i do the following step

cd /home/user

import glob


then I load the Model_1 files with


for i in glob.glob("Model_1/cluster_*.sdf"): cmd.load(i)


Now hydrogen bond should be displayed between protein and Model_1/cluster_*.sdf. Polar contacts in different colors would be more appreciated.


Could you please attach your script in the above command, so that all the cluster_*.sdf is loaded and its polar contacts is displayed in one press.


Thanks in advance

Renuka.



--- On Wed, 22/9/10, Michael Lerner <mglerner+sourceforge@gmail.com> wrote:

From: Michael Lerner <mglerner+sourceforge@gmail.com>
Subject: Re: [PyMOL] Deleting and Loading multiple SDF files
To: "Renuka Robert" <renukarobert@ymail.com>
Cc: PyMOL-users@lists.sourceforge.net
Date: Wednesday, 22 September, 2010, 1:46 PM


Hi Renuka,

If I understand correctly, this is what you want to do:

1. Load up all of the cluster*.sdf files in Model_1.
2. Analyze them
3. Delete them
4. Load up all of the cluster*.sdf files in Model_2.
5. Analyze them
6. Delete them
etc.

If that's right, I think the easiest thing is just to change to the directory that contains your Model_N subdirectories. In your example, that would be:

cd /home/user
import glob

then load the Model_1 files with

for i in glob.glob("Model_1/cluster_*.sdf"): cmd.load(i)

then analyze them. It sounds like you're analyzing them by hand; if you're analyzing them by running some scripts, we can probably help to automate that process as well. 

After analyzing them, (and saving your results!), you'll want to delete the current batch of cluster files and load the new ones:

delete cluster_*
for i in glob.glob("Model_2/cluster_*.sdf"): cmd.load(i)

Note that you only have to type "import glob" once.

Hope that helps,

-Michael

On Wed, Sep 22, 2010 at 9:12 AM, Renuka Robert <renukarobert@ymail.com> wrote:

Dear Pymol users


I have to do TWO jobs simultaneously in PYMOL.


JOB 1: Load multiple *sdf files


I have set of ligand files in *.sdf format as follows:


/home/user/Model_1/cluster_1.sdf

/home/user/Model_1/cluster_2.sdf

/home/user/Model_1/cluster_3.sdf


/home/user/Model_2/cluster_1.sdf

/home/user/Model_2/cluster_2.sdf

/home/user/Model_2/cluster_3.sdf


/home/user/Model_3/cluster_1.sdf

/home/user/Model_3/cluster_2.sdf

/home/user/Model_3/cluster_3.sdf


I've got an answer from one of the PYMOL user as:


PyMOL>import glob

PyMOL>for i in glob.glob("cluster_*.sdf"): cmd.load(i)


But this command works only in the present working directory. For the next try I have to change my directory every time. Like:


cd /home/user/Model_1/

PyMOL>import glob

PyMOL>for i in glob.glob("cluster_*.sdf"): cmd.load(i)


cd /home/user/Model_2/

PyMOL>import glob

PyMOL>for i in glob.glob("cluster_*.sdf"): cmd.load(i)


cd /home/user/Model_3/

PyMOL>import glob

PyMOL>for i in glob.glob("cluster_*.sdf"): cmd.load(i)


Could you please tell me how to load these multiple *.sdf files in one command without changing the directory?


JOB2: Delete multiple *.sdf files


I have to analyze cluster_*.sdf files of several 100 directories.


So when I load cluster_*.sdf files from directory Model_2, the already loaded cluster:*.sdf files from Model_1 should be deleted.

Like wise when I load cluster_*.sdf files from directory Model_3, the already loaded cluster:*.sdf files from Model_2 should be deleted.


I am not good in programming. Could anybody help me in scripting to sort out this problem?


Thanks in advance.

Regards

Renuka



------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
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



--
Michael Lerner, Ph.D.
IRTA Postdoctoral Fellow
Laboratory of Computational Biology NIH/NHLBI
5635 Fishers Lane, Room T909, MSC 9314
Rockville, MD 20852 (UPS/FedEx/Reality)
Bethesda MD 20892-9314 (USPS)




--
Michael Lerner, Ph.D.
IRTA Postdoctoral Fellow
Laboratory of Computational Biology NIH/NHLBI
5635 Fishers Lane, Room T909, MSC 9314
Rockville, MD 20852 (UPS/FedEx/Reality)
Bethesda MD 20892-9314 (USPS)