import sys, os
from rdkit.Chem import AllChem as Chem
from rdkit.Chem import Descriptors as Descr
from rdkit.Chem import rdchem
import re
import time
from collections import Counter

mol = Chem.SDMolSupplier('input.sdf', removeHs=False)
mol = next(mol)

t_start = -180.
t_inc = 30.
t_steps = 13

at1, at2, at3, at4 = 0,3,6,9

cids = [0]


t_current = 0.0001
t_current = 0.0

cids.append(mol.AddConformer(mol.GetConformer(0), True))
Chem.SetDihedralDeg(mol.GetConformer(cids[-1]), at1, at2, at3, at4, t_current)
ff = Chemff = Chem.MMFFGetMoleculeForceField(mol, Chem.MMFFGetMoleculeProperties(mol), confId = cids[-1])
ff.MMFFAddTorsionConstraint(at1, at2, at3, at4, False, t_current, t_current, 1000000)
ff.Initialize()
ff.Minimize()

sdfoutname = 'bug.sdf'

sdfout = Chem.SDWriter(sdfoutname)
for id, conf in enumerate(mol.GetConformers()):
    cId = conf.GetId()
    sdfout.write(mol, cId)

sdfout.close()
