[chimera-dev] how can i delete solovent and ligand from pdb file?
Eric Pettersen
pett at cgl.ucsf.edu
Mon Mar 3 16:39:22 PST 2014
Hi,
The issue is that a bunch of the relevant code isn't in Python -- it's in C++. It might simply be easier to use the criteria outlined in the "Automatic Categories" table in the surface command help page (http://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/surface.html) to implement the ligand/solvent identification yourself.
Nonetheless, the Python part of the code that identifies ligands and solvent is in the 'categorize' method found in <your Chimera installation>/share/Categorizer/__init__.py. There are various calls into C++ but most of them are trivial and are obvious as to what they do and are only there to make the routine faster (since it is called for every model that is opened). The one that is not so obvious is "roots = model.roots(1)" which calculates the "roots" of each graph component of the molecule (i.e. each molecular fragment that is not connected by covalent bonds to any other fragment). The source code for computing roots is in Molecule::mg_traversalOrganize() in libs/_molecule/Molecule.cpp of the C++ source code. You can fetch the source code via git. Details about that are here:
Source Code for UCSF Chimera
--Eric
Eric Pettersen
UCSF Computer Graphics Lab
http://www.cgl.ucsf.edu
On Mar 2, 2014, at 5:24 PM, unwicky wrote:
> Thank for your attention!I have found the two commands,and I did so,but to do this,I must load all of chimera,that's too heavy,I hope I can get the pure code,thank you again!
>
>
>
>
> At 2014-02-27 05:37:25,"Eric Pettersen" <pett at cgl.ucsf.edu> wrote:
> On Feb 24, 2014, at 6:44 AM, unwicky <unwicky at 126.com> wrote:
>
>> hello,i want to delete solvent and ligand from a pdb file,but to use chimera command line,it has to load to many components,can you show me the pure source code to to this?thank you
>
> Hi,
> I'm guessing your question means: "I have a bunch of PDB files that I need to remove the solvent and ligand from and therefore need to automate the process. How do I do that?". If that's not right, let me know. Anyway, the Chimera commands to remove solvent and ligand are:
>
> del solvent
> del ligand
>
> and therefore in Python can be called by:
>
> from chimera import runCommand as rc
> rc("del solvent")
> rc("del ligand")
>
>
> In Chimera's Programmer's Guide (http://www.cgl.ucsf.edu/chimera/docs/ProgrammersGuide/index.html) there is a basic primer for looping through a bunch of data files and doing something on each one. You would just take the example in the basic primer and modify it to do the above (and write out the results). The direct link to the basic primer is here:
>
> http://www.cgl.ucsf.edu/chimera/docs/ProgrammersGuide/basicPrimer.html
>
> --Eric
>
> Eric Pettersen
> UCSF Computer Graphics Lab
> http://www.cgl.ucsf.edu
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-dev/attachments/20140303/ce288031/attachment.html>
More information about the Chimera-dev
mailing list