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

Reply via email to