Skip to content

error when using psi4/resp: Fatal Error: RHF: RHF reference is only for singlets. #22

@linminhtoo

Description

@linminhtoo

hello esther,

(I found a fix, please see my comment, but I don't know the root cause)
i've been trying out the espsim library on some molecules. the demo notebooks are very helpful and the analyses in the paper are also nicely done. great work!

i was trying to compare the ESP similarity of ATP against another known inhibitor of CDK2.
Specifically, I used the ATP co-crystal ligand from PDB ID 1B38,
(https://models.rcsb.org/v1/1b38/ligand?auth_seq_id=381&label_asym_id=C&encoding=sdf&filename=1b38_C_ATP.sdf)
and the Dinaciclib co-crystal ligand from PDB ID 5L2W
(https://models.rcsb.org/v1/5l2w/ligand?auth_seq_id=900&label_asym_id=C&encoding=sdf&filename=5l2w_C_1QK.sdf)

I am trying EmbedAlignScore() on these 2 mols, and the calculation works when I use gasteiger, mmff, ml, but not resp.
psi4 complains about this error:

RuntimeError: 
Fatal Error: RHF: RHF reference is only for singlets.
Error occurred in file: /build/source/psi4/src/psi4/libscf_solver/rhf.cc on line: 92
The most recent 5 function calls were:
psi::PsiException::PsiException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const*, int)

I've also attached the detailed run log for your reference: https://gist.github.com/linminhtoo/84182da4bf727361b23905f34a429a5d

Here was how I run the code (I did rename some variables for my convenience but I didn't change any code logic)

# load co-crystal ATP
mol_atp = Chem.SDMolSupplier(str(RELATIVE / "data/cdk2_knownhits/1b38_C_ATP.sdf"), removeHs=False)[0]
mol_atp = Chem.AddHs(mol_atp, addCoords=True)

# load co-crystal dinaciclib
mol_dina = Chem.SDMolSupplier(str(RELATIVE / "data/cdk2_knownhits/5l2w_C_1QK.sdf"), removeHs=False)[0]
mol_dina = Chem.AddHs(mol_dina, addCoords=True)

# run ESPSim
shape_sims, esp_sims = EmbedAlignScore(
    probe_mol=deepcopy(mol_dina),
    ref_mols=deepcopy(mol_atp),
    probe_num_confs=10,
    ref_num_confs=10,
    partial_charge_mode="resp",
    renormalize=True,  # to [0, 1]
    getBestESP=True,  # more accurate but slower
    randomseed=2342,
)

I tried swapping probe_mol to mol_atp and ref_mols to mol_dina and psi4 did calculate the charges for one molecule before crashing again with the same error, which means it is not happy with Dinaciclib for some reason, but is fine with ATP. (assuming it calculates probe_mol first.

Do you happen to have any idea what's the issue?

Best,
Min Htoo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions