Re: [PyMOL] Deleting and Loading multiple SDF files
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) 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 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 > > >* wrote: > > > From: Michael Lerner > > > > Subject: Re: [PyMOL] Deleting and Loading multiple SDF files > To: "Renuka Robert" > 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 > http://mc/compose?to=renukarob...@ymail.com> > > wrote: > > Dear Pymol users > > > I have to do TWO jobs simultaneously in PYMOL. &g
Re: [PyMOL] Deleting and Loading multiple SDF files
Hi Renuka, Check out the loadDir PyMOL script ( http://www.pymolwiki.org/index.php/LoadDir). You can do stuff like, # load all PDBs in the directory ../ loadDir ../, *.pdb # load all SDFs in ../../mySDFs loadDir ../../mySDFs/state*.sdf Cheers, -- Jason On Wed, Sep 22, 2010 at 9:12 AM, Renuka Robert 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 > -- Jason Vertrees, PhD PyMOL Product Manager Schrodinger, LLC (e) jason.vertr...@schrodinger.com (o) +1 (603) 374-7120 -- 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
Re: [PyMOL] Deleting and Loading multiple SDF files
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 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) -- 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