select_with_filter allows you to make a selection as you would with the select command, so it supports all selection algebra including byres, chain, organic, etc. Here's a modified example from the wiki:
# Select all residues within 5 Ang. of any organic small molecules whose x-coordinate is at least 50 select_with_filter sele, br. all within 5 of (organic and flag 8), lambda s: cmd.get_extent(s)[0][0] >= 50 Best, Cole On Mon, Aug 5, 2019 at 1:06 PM Pedro Lacerda <pslace...@gmail.com> wrote: > Yes, one more question. > > How to use all other "functions", like byres, "chain A" or "organic"? > > Em seg, 5 de ago de 2019 12:36, Christian "Cole" French < > christian.fre...@schrodinger.com> escreveu: > >> I see now. I updated the code at the link in my previous email to provide >> behavior which should allow you to do what you want. Here are your examples >> written using the command: >> >> select_with_filter sele, flag 8, lambda s: len(cmd.get_chains(s)) < 2 >> select_with_filter sele, flag 8, lambda s: cmd.get_fastastr(s) < 2 >> select_with_filter sele, flag 8 and chain A, lambda s: peplength(s) < 15 >> >> If you want to write and use your own multi-line function, you can write >> a script and cmd.extend('your_function', your_function), then use >> your_function in select_with_filter. >> >> Please let me know if you have any further questions. >> >> Best, >> Cole >> >> On Mon, Aug 5, 2019 at 8:30 AM Pedro Lacerda <pslace...@gmail.com> wrote: >> >>> I expressed myself wrong, I'm looking something like: >>> >>> select peplength < 15 and chain A >>> >>> Where peplength is an user defined function like: >>> >>> def peplength(atom): >>> return compute_peplength(atom) >>> >>> I'm looking for the availability of user defined functions on selection >>> expressions. How to? >>> >>> Em sex, 2 de ago de 2019 às 15:44, Christian "Cole" French < >>> christian.fre...@schrodinger.com> escreveu: >>> >>>> Edit: remove the cmd. part when running select_with_filter. (Since >>>> it's a custom command, it doesn't belong to the cmd module.) >>>> >>>> On Fri, Aug 2, 2019 at 2:41 PM Christian "Cole" French < >>>> christian.fre...@schrodinger.com> wrote: >>>> >>>>> Hi Pedro Lacerda, >>>>> >>>>> Here is a link to a script I wrote which adds a command which does >>>>> what you ask: >>>>> https://gist.github.com/ColeFrench/6f68fa5f04a67bb6234f10c25debb865. >>>>> To use it, download the file to the directory where you run PyMOL from, >>>>> then open PyMOL and run run select_with_filter.py. >>>>> >>>>> For your examples, the commands would be >>>>> cmd.select_with_filter(predicate=lambda >>>>> s: len(cmd.get_chains(s)) < 2) and cmd.select_with_filter(predicate=lambda >>>>> s: cmd.get_fastastr(s) < 2). >>>>> >>>>> Commands which can be simply run are a convenience which allows you to >>>>> type less (e.g., select chain A instead of cmd.select('chain A')). >>>>> Some commands require different arguments and can only be run the longer >>>>> way, such as the one I wrote which takes a function as an argument. >>>>> >>>>> Hope this helps, >>>>> Cole >>>>> >>>>> On Fri, Aug 2, 2019 at 11:45 AM Pedro Lacerda <pslace...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi PyMOL users, >>>>>> >>>>>> It there any way to enhance the selecion algebra with functions? For >>>>>> instance: >>>>>> >>>>>> select len(get_chains(*)) < 2 >>>>>>> >>>>>> >>>>>> Or even: >>>>>> >>>>>> select cmd.get_fastastr(*) < 2 >>>>>>> >>>>>> >>>>>> >>>>>> By the way, why some commands we can simply run (like get_chains) and >>>>>> others are different (like cmd.get_fastastr())? >>>>>> >>>>>> -- >>>>>> Pedro Sousa Lacerda >>>>>> >>>>>> >>>>>> *Laboratório de Bioinformática e Modelagem Molecular* >>>>>> *Faculdade de Farmácia / UFBA* >>>>>> >>>>>> *@pslacerda* >>>>>> >>>>>> *+55 71 9 9981-1856* >>>>>> _______________________________________________ >>>>>> PyMOL-users mailing list >>>>>> Archives: >>>>>> http://www.mail-archive.com/pymol-users@lists.sourceforge.net >>>>>> Unsubscribe: >>>>>> https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe >>>>> >>>>> >>> >>> -- >>> Pedro Sousa Lacerda >>> >>> >>> *Laboratório de Bioinformática e Modelagem Molecular* >>> *Faculdade de Farmácia / UFBA* >>> >>> *@pslacerda* >>> >>> *+55 71 9 9981-1856* >>> >> _______________________________________________ > PyMOL-users mailing list > Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net > Unsubscribe: > https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe
_______________________________________________ PyMOL-users mailing list Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net Unsubscribe: https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe