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 <santi...@mestrelab.com>
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*
> santi...@mestrelab.com <+santi...@mestrelab.com>
>
> *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 <wimdeh...@gmail.com>
> *Enviado:* lunes, 10 de abril de 2023 18:07
> *Para:* Santiago Fraga <santi...@mestrelab.com>
> *Cc:* rdkit-discuss@lists.sourceforge.net <
> rdkit-discuss@lists.sourceforge.net>
> *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 <santi...@mestrelab.com>
> 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
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to