How about just GetLargestFragment()?

On Fri, 29 Jun 2018 at 16:45, Stiefl, Nikolaus <nikolaus.sti...@novartis.com>
wrote:

> Quick question – mostly to the core developers I guess:
>
>
>
> I just checked and have that kind of thing in my code in at least 5
> different places - wouldn’t it make sense to have that kind of
> functionality as a convenience function as part of the GetMolFrags method?
>
>
>
> Something along the lines of
>
>
>
> rdmolops.GetMolFrags(mol, asMols = True, largestFragmentOnly = True)
>
>
>
> ? Just a thought …
>
> Cheers
>
> Nik
>
>
>
>
>
> *From: *Alfredo Quevedo <maquevedo....@gmail.com>
> *Date: *Friday 29 June 2018 at 12:06
> *To: *Andrew Dalke <da...@dalkescientific.com>
> *Cc: *Stephen Roughley via Rdkit-discuss <
> rdkit-discuss@lists.sourceforge.net>
> *Subject: *Re: [Rdkit-discuss] elimination of small fragments
>
>
>
> thank you much much Andrew for this detailed explanation
>
> regards
>
> Alfredo
>
> Enviado desde BlueMail
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.bluemail.me_r-3Fb-3D13187&d=DwMFaQ&c=ZbgFmJjg4pdtrnL2HUJUDw&r=ye79geYsJOYow8nmAS-YeajnH05xvpvKYegxy7w7vuo&m=75LbuhLBfnqpbB3VArtJWjFpQrdROqJLMAweVe6ID9Q&s=i8SBAYy6pifuFUux0kfKjgrXeSo64fbM7qq1vf10v_w&e=>
>
> En 29 de junio de 2018, en 07:02, Andrew Dalke <da...@dalkescientific.com>
> escribió:
>
> On Jun 28, 2018, at 22:08, Paolo Tosco <paolo.tosco.m...@gmail.com> wrote:
>
>  if you wish to keep only the largest disconnected fragment you may try the 
> following:
>
>  mols = list(rdmolops.GetMolFrags(mol, asMols = True))
>  if (mols):
>      mols.sort(reverse = True, key = lambda m: m.GetNumAtoms())
>      mol = mols[0]
>
> A somewhat simpler .. or at least shorter ... version is:
>
> mols = rdmolops.GetMolFrags(mol, asMols = True)
> mol = max(mols, default=mol, key=lambda m: m.GetNumAtoms())
>
> The max() function goes through the molecules that GetMolFrag returns.
>
> If the list is empty, it returns the 'default' value, which is the original 
> molecule. (This is what Paolo's code does. Another option is to use None as 
> the default value.)
>
> Otherwise, since 'key' is specified, its value is used as a function to 
> determine a value for each molecule. That is, for each term 'm' in the list 
> of 'mols', it computes m.GetNumAtoms(), and uses that return value to select 
> an object with the maximum value.
>
> In this case, it selects a molfrag output molecule with the most atoms.
>
> I think I've just added a topic to cover for the upcoming Python/RDKit 
> training session in September! :)
>
> For those interested, remember to sign up soon.
>
> Cheers,
>
>     Andrew
>     da...@dalkescientific.com
>
> ------------------------------
>
>
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__Slashdot.org&d=DwMFaQ&c=ZbgFmJjg4pdtrnL2HUJUDw&r=ye79geYsJOYow8nmAS-YeajnH05xvpvKYegxy7w7vuo&m=75LbuhLBfnqpbB3VArtJWjFpQrdROqJLMAweVe6ID9Q&s=h4ZtqIyv1SgsHQdUOLsu4O6hQ8h8t6pkdfVyvnZ08t4&e=>!
>  http://sdm.link/slashdot 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__sdm.link_slashdot&d=DwMFaQ&c=ZbgFmJjg4pdtrnL2HUJUDw&r=ye79geYsJOYow8nmAS-YeajnH05xvpvKYegxy7w7vuo&m=75LbuhLBfnqpbB3VArtJWjFpQrdROqJLMAweVe6ID9Q&s=dWUkmyQ6plFLpxwGe7NZWqz46s0w27g19OXXzmG0UtU&e=>
>
> ------------------------------
>
>
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss 
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.sourceforge.net_lists_listinfo_rdkit-2Ddiscuss&d=DwMFaQ&c=ZbgFmJjg4pdtrnL2HUJUDw&r=ye79geYsJOYow8nmAS-YeajnH05xvpvKYegxy7w7vuo&m=75LbuhLBfnqpbB3VArtJWjFpQrdROqJLMAweVe6ID9Q&s=RIM0cdqho8moISItb75211bxVlxWPUCZCf6dWh4KNtI&e=>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to