Sorry for not reading your question properly. I am personally not aware of
a way to export molfiles in this way in rdkit, but I might just be unaware.
I think the easiest solution would be probably changing the molblock string
post hoc by reading the M ISO line.
for example like this in python:
```
mol=Chem.MolFromSmiles("c1c2cccc1[3H].[2H]2")
def MolToMolfileDT(mol,path):
mb=Chem.MolToMolBlock(mol).split("\n")
iso=[x for x in mb[-3].split(" ") if len(x)>0]
if iso[1]=="ISO": #check if theres isotope info
for i in range(int(iso[2])):
isotope=int(iso[4+2*i])
idx=int(iso[3+2*i])+3
if isotope in [2,3]: #only D and T
mb[idx]=mb[idx].replace("H",{2:"D",3:"T"}[isotope])
#replace only H (to not have issues like [3Li])
with open(path, "w") as molfile:
molfile.write("\n".join(mb))
return
MolToMolfileDT(mol,"mol.mol")```
this returns:
RDKit 2D
8 8 0 0 0 0 0 0 0 0999 V2000
1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.7500 -1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.7500 -1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-1.5000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
-0.7500 1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.7500 1.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1.5000 2.5981 0.0000 T 0 0 0 0 0 0 0 0 0 0 0 0
1.5000 -2.5981 0.0000 D 0 0 0 0 0 0 0 0 0 0 0 0
1 2 2 0
2 3 1 0
3 4 2 0
4 5 1 0
5 6 2 0
6 7 1 0
6 1 1 0
8 2 1 0
M ISO 2 7 3 8 2
M END
best wishes
wim
On Tue, Apr 11, 2023 at 9:14 AM Santiago Fraga <[email protected]>
wrote:
> Many thanks for your examples, Wim.
> But I was checking the option to save the labels D and T in the molfile
> for the hydrogen isotopes,
> as other tools can do.
>
> Regards
> Santiago
>
> <http://www.mestrelab.com>
>
> SANTIAGO FRAGA
> *Software Developer*
> [email protected] <[email protected]>
>
> *MESTRELAB RESEARCH S.L.*
> PHONE *+34881976775*
> FAX *+34981941079*
> Feliciano Barrera, 9B-Bajo 15706
> Santiago de Compostela (SPAIN)
>
> Follow us:
> [image: Mestrelab Twitter] <https://twitter.com/mestrelab> [image:
> Mestrelab Linkedin] <https://www.linkedin.com/company/mestrelab-research>
> [image: Canal de YouTube Mestrelab]
> <https://www.youtube.com/channel/UCf3MVnd3XZflv0acvTv14ww> [image:
> MestreBlog] <http://mestrelab.com/blog/>
>
>
>
> ------------------------------
> *De:* Wim Dehaen <[email protected]>
> *Enviado:* lunes, 10 de abril de 2023 18:07
> *Para:* Santiago Fraga <[email protected]>
> *Cc:* [email protected] <
> [email protected]>
> *Asunto:* Re: [Rdkit-discuss] Deuterium/Tritium labels in Molfile
>
> rdkit outputs a molfile with correct isotope labels for me using just:
>
> mol=Chem.MolFromSmiles("[3H]c1ccccc1[2H]")
> Chem.MolToMolFile(mol,"test.mol")
>
> or labelling the atoms post hoc:
>
> mol=Chem.MolFromSmiles("c1ccccc1")
> mol=Chem.AddHs(mol)
> mol.GetAtomWithIdx(6).SetIsotope(3)
> mol.GetAtomWithIdx(7).SetIsotope(2)
> mol=Chem.RemoveHs(mol)
> Chem.MolToMolFile(mol,"test2.mol")
>
> I hope this helps
>
> best wishes
> wim
>
>
> On Mon, Apr 10, 2023 at 4:43 PM Santiago Fraga <[email protected]>
> wrote:
>
> Good afternoon!
>
> I am a relatively new user of RDKit, and mainly the C++ API.
>
> I am trying to save in a molfile the labels D and T for the hydrogen
> isotopes.
> Like in the following molfile:
>
> MJ230401
>
> 8 8 0 0 0 0 0 0 0 0999 V2000
> -0.3572 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
> -1.0716 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
> -1.0716 -0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
> -0.3572 -1.2375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
> 0.3572 -0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
> 0.3572 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
> -0.3572 1.2375 0.0000 T 0 0 0 0 0 0 0 0 0 0 0 0
> 1.0717 0.4125 0.0000 D 0 0 0 0 0 0 0 0 0 0 0 0
> 3 4 2 0 0 0 0
> 4 5 1 0 0 0 0
> 5 6 2 0 0 0 0
> 6 1 1 0 0 0 0
> 1 2 2 0 0 0 0
> 2 3 1 0 0 0 0
> 6 8 1 0 0 0 0
> 1 7 1 0 0 0 0
> M END
>
> I am trying to set directly the labels in the hydrogen atoms:
>
> atom->setProp<string>("atomLabel", "D");
> or
> atom->setProp<string>("_displayLabel", "D");
>
> But when the molfile is generated the labels are not transferred.
> It seems also that when reading a mofile including the labels, they
> are discarded.
>
>
> Many thanks in advance
> Santiago Fraga
>
>
> _______________________________________________
> Rdkit-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
>
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss