from torsionfit import sqlite_plus
from pymc import MCMC
from parmed.charmm import CharmmParameterSet
import glob
from pymc import MCMC

structure = 'pyrrol.psf'
scan = glob.glob('torsion-scan/*.log')

pyrrol_scan = ScanSet.parse_gauss(scan, structure)
pyrrol_opt = pyrrol_scan.extract_geom_opt()

# set up torsionfit model
param_to_optimize = [
    ('CG331', 'CG321', 'CG321', 'NG3C51'),
    ('CG321', 'CG321', 'NG3C51', 'CG2R51'),
    ('CG321', 'CG321', 'NG3C51', 'CG251O'),
    ('CG2D2', 'CG251O', 'NG3C51', 'CG321'),
]
param = CharmmParameterSet('../charmm_ff/top_all36_cgenff.rtf',
                           '../charmm_ff/par_all36_cgenff.prm', 'pyrrol.str')
model = Model.TorsionFitModelEliminatePhase(param,
                                            pyrrol_opt,
                                            decouple_n=True,
                                            sample_n5=True,
                                            param_to_opt=param_to_optimize)
db = sqlite_plus.load('pyrrol_4.db')
sampler = MCMC(model.pymc_parameters, db=db)
sampler.restore_sampler_state()
sampler.sample(100000)