Re: [PyMOL] Selection algebra issue
Katherine, not sure if that is what you are looking for but you can select for non-polymer residues with: select lig, prot and organic That will select any non polymer (protein and R(D)NA) residues present in the pdb. You then would need to break the selection further into the individual constituents, by either chain Id and resid. Hope this helps a bit. Carsten From: Katherine Sippel [mailto:katherine.sip...@gmail.com] Sent: Friday, December 13, 2013 10:28 AM To: pymol-users@lists.sourceforge.net Subject: [PyMOL] Selection algebra issue Hi all, I'm trying to write a script to data mine the pdb. I'm want to look at the ligands in a pdb file and fish out those that meet a certain criteria. I've got a script that can look at the ligands all at once but I need to assess each ligand individually. Since I'm looking at 40,000+ pdbs I need a way to define them individually. I've tried variations on %s' % (resi) and bymolec but I can't seem to figure out how to get them parsed separately without specifying a number. I've also tried using index to create a tuples list and iterating from that but I keep hitting the same issue. I've attached a couple of the attempted scripts so you can laugh at my google derived python skills. I've been trying to figure this out for a week now and I'm completely stumped. If anyone could nudge me in the right direction, even if it's some Pymolwiki article I missed, I would appreciate it immensely. Thanks for your time, Katherine -- Nil illegitimo carborundum - Didactylos -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk___ 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] Selection algebra issue
Hi Carsten, Thanks for the help. I've tried variants of that selection and it works great if there is only one ligand. Unfortunately it breaks down when there are multiple ligands and they don't all fit the criteria. I'm surveying almost half the PDB so these are all different proteins with different binding sites and ligands. I was hoping for a way to get pymol to recognize each individual ligand automatically by grouping common resids within the non-solvent hetatm selection. Using the %s %(resi) seems to require an explicit input. I might be able to extract an explicit chain/resi designation for each file from the het portion of the pdb header, though I'm not sure how to automate this. I suppose it's back to the script repository for me. Cheers, Katherine On Fri, Dec 13, 2013 at 2:50 PM, Schubert, Carsten [JRDUS] cschu...@its.jnj.com wrote: Katherine, not sure if that is what you are looking for but you can select for non-polymer residues with: select lig, prot and organic That will select any non polymer (protein and R(D)NA) residues present in the pdb. You then would need to break the selection further into the individual constituents, by either chain Id and resid. Hope this helps a bit. Carsten *From:* Katherine Sippel [mailto:katherine.sip...@gmail.com] *Sent:* Friday, December 13, 2013 10:28 AM *To:* pymol-users@lists.sourceforge.net *Subject:* [PyMOL] Selection algebra issue Hi all, I'm trying to write a script to data mine the pdb. I'm want to look at the ligands in a pdb file and fish out those that meet a certain criteria. I've got a script that can look at the ligands all at once but I need to assess each ligand individually. Since I'm looking at 40,000+ pdbs I need a way to define them individually. I've tried variations on %s' % (resi) and bymolec but I can't seem to figure out how to get them parsed separately without specifying a number. I've also tried using index to create a tuples list and iterating from that but I keep hitting the same issue. I've attached a couple of the attempted scripts so you can laugh at my google derived python skills. I've been trying to figure this out for a week now and I'm completely stumped. If anyone could nudge me in the right direction, even if it's some Pymolwiki article I missed, I would appreciate it immensely. Thanks for your time, Katherine -- Nil illegitimo carborundum* - *Didactylos -- Nil illegitimo carborundum* - *Didactylos -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk___ 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] Selection algebra issue
Hi Katherine, PyMOL can do what you want. I've done this exact task before. Here's the idea. If you have a PDB with multiple ligands and you use, select allLigands, organic and myProtein you create the selection allLigands which contains all the ligand atoms in myProtein. What you need to do is extract each ligand, molecule by molecule, from the allLigands selection using selection algebra until myLigands is empty. It's done like this: # create a selection containing the atoms of all ligands select allLigands, organic and myProtein # create a selection to use later as we iterate across # all ligands, this will hold individual ligands we extract # from allLigands select current_ligand, none # enter a Python block so we can use Python while-loop # and other Python syntax python # loop until allLigands is not empty while cmd.count_atoms(myLigands) 0: # copy the first ligand selection, by molecule, into # the, current_ligand cmd.select(current_ligand, bm. first allLigands) # do something with current_ligand, like finding all ligands # without waters nearby if cmd.count_atoms(solvent within 5 of current_ligand) == 0: print This is an interesting ligand. # now remove current_ligand from allLigands # and loop again cmd.select(allLigands, allLigands and not current_ligand) python end Good luck! Cheers, -- Jason On Fri, Dec 13, 2013 at 4:58 PM, Katherine Sippel katherine.sip...@gmail.com wrote: Hi Carsten, Thanks for the help. I've tried variants of that selection and it works great if there is only one ligand. Unfortunately it breaks down when there are multiple ligands and they don't all fit the criteria. I'm surveying almost half the PDB so these are all different proteins with different binding sites and ligands. I was hoping for a way to get pymol to recognize each individual ligand automatically by grouping common resids within the non-solvent hetatm selection. Using the %s %(resi) seems to require an explicit input. I might be able to extract an explicit chain/resi designation for each file from the het portion of the pdb header, though I'm not sure how to automate this. I suppose it's back to the script repository for me. Cheers, Katherine On Fri, Dec 13, 2013 at 2:50 PM, Schubert, Carsten [JRDUS] cschu...@its.jnj.com wrote: Katherine, not sure if that is what you are looking for but you can select for non-polymer residues with: select lig, prot and organic That will select any non polymer (protein and R(D)NA) residues present in the pdb. You then would need to break the selection further into the individual constituents, by either chain Id and resid. Hope this helps a bit. Carsten From: Katherine Sippel [mailto:katherine.sip...@gmail.com] Sent: Friday, December 13, 2013 10:28 AM To: pymol-users@lists.sourceforge.net Subject: [PyMOL] Selection algebra issue Hi all, I'm trying to write a script to data mine the pdb. I'm want to look at the ligands in a pdb file and fish out those that meet a certain criteria. I've got a script that can look at the ligands all at once but I need to assess each ligand individually. Since I'm looking at 40,000+ pdbs I need a way to define them individually. I've tried variations on %s' % (resi) and bymolec but I can't seem to figure out how to get them parsed separately without specifying a number. I've also tried using index to create a tuples list and iterating from that but I keep hitting the same issue. I've attached a couple of the attempted scripts so you can laugh at my google derived python skills. I've been trying to figure this out for a week now and I'm completely stumped. If anyone could nudge me in the right direction, even if it's some Pymolwiki article I missed, I would appreciate it immensely. Thanks for your time, Katherine -- Nil illegitimo carborundum - Didactylos -- Nil illegitimo carborundum - Didactylos -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ 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 Director of Core Modeling Products Schrödinger, Inc. (e) jason.vertr...@schrodinger.com (o) +1 (603) 374-7120 -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear