Re: [Rdkit-discuss] mol properties in SDWriter
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
|
From: Ling C. <lin...@gm...> - 2023-09-28 23:35:11
|
Thank you Wim. I shall post-process the SDF as you suggested.
Ling
Wim Dehaen <wim...@gm...> 於 2023年9月25日週一 下午5:11寫道:
> Why there is a counter between parentheses there, I don't know, but in
> case there's no option to remove it, you might just manually remove it
> using a regex to remove anything between parentheses on a line that starts
> with >
> for example:
>
> from rdkit import Chem
> import re
> from io import StringIO
> m = Chem.MolFromSmiles("CCC")
> m.SetProp("pKa","3.3")
> sio = StringIO()
> with Chem.SDWriter(sio) as o:
> o.write(m)
> sio.seek(0)
> with open("temp3.sdf", "w") as f:
> for line in sio.readlines():
> f.write(re.sub(r'^>(.*?)\((.*?)\)', r'>\1', line))
>
> best wishes
> wim
>
> On Tue, Sep 26, 2023 at 1:20 AM Ling Chan <lin...@gm...> wrote:
>
>> Dear Colleagues,
>>
>> I noticed that when writing out molecules using SDWriter() , the
>> properties fields are followed by something like "(1)" , "(2)". I mean, the
>> sdf looks like:
>>
>> propane
>> RDKit 3D
>>
>> 3 2 0 0 0 0 0 0 0 0999 V2000
>> 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
>> 1.4280 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
>> 1.9040 1.3000 -0.3480 C 0 0 0 0 0 0 0 0 0 0 0 0
>> 1 2 1 0
>> 2 3 1 0
>> M END
>> > <pKa> (1)
>> 4.0999999
>>
>> > <logP> (1)
>> 2
>>
>> $$$$
>>
>> Just wonder what was the rationale behind this extra "(1)" on the
>> property field lines (pKa and logP in the above example)?
>>
>> And is there a way to get rid of these? I am not sure if this extra "(1)"
>> is part of the standard sd format.
>>
>> Thank you!
>>
>> Regards,
>> Ling
>>
>>
>> ---------------------------------------------------------------------------------------------------
>>
>> To create an sdf, you can do something like:
>>
>> >>> from rdkit import Chem
>> >>> m = Chem.MolFromSmiles("CCC")
>> >>> m.SetProp("pKa","3.3")
>> >>> with Chem.SDWriter("temp3.sdf") as o:
>> ... o.write(m)
>>
>> Or use Chem.SDMolSupplier() to get mols from another sdf.
>>
>>
>>
>>
>> _______________________________________________
>> Rdkit-discuss mailing list
>> Rdk...@li...
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>
|