cgoliver/rnamigos2

multi-sequence structure issue

Closed this issue ยท 6 comments

Dear rnamigos2 developers, I wonder if this model supports multi-sequence input, since I have tried this structure from PDB (2pn3.cif) but raised an error:

Traceback (most recent call last):
File "experiments/inference.py", line 102, in main
do_inference(cif_path=cfg.cif_path,
File "experiments/inference.py", line 91, in do_inference
dgl_graph = get_dgl_graph(cif_path, residue_list)
File "experiments/../rnamigos_dock/tools/graph_utils.py", line 132, in get_dgl_graph
dgl_graph, _ = load_rna_graph(expanded_graph, undirected=undirected)
File "experiments/../rnamigos_dock/tools/graph_utils.py", line 88, in load_rna_graph
values={node: d['nt'] for node, d in pocket_graph.nodes(data=True)})
File "experiments/../rnamigos_dock/tools/graph_utils.py", line 88, in
values={node: d['nt'] for node, d in pocket_graph.nodes(data=True)})
KeyError: 'nt'

Hello! Thank you for your interest in rnamigos2. Just to be sure, could you send the exact command you ran for this? I presume it's mostly default.

Thanks for the quick reply, here is the command I input:
python experiments/inference.py cif_path=sample_files/rna_cifs/2pn3.cif pdbid=2pn3 residue_list=[A.55,A.56,A.57,A.58,A.59,A.60,A.61,A.62,A.63,B.102,B.103,B.104,B.105,B.106,B.107,B.108,B.109] ligands_path=sample_files/ligand_smiles/bindingDB/bindingDB_hcv_hits.txt out=sample_files/screen_out/apo_hcv_2pn3.txt

Hello!

I believe I found the issue. If you do a pull and try again it should work. There was some problem with the step that converts the mmCIF you provide to a graph with 2.5D annotations using a fork of fr3d-python. It was creating two residues in the graph (B.113, B.101) that don't have nucleotide information and this crashes rnamigos2. Perhaps they were chemically modified?

We haven't fully tested the fr3d-python integration and it was not used in training the models so this side of the codebase is still experimental.

I will dig deeper but now you will see a warning message and the rest of the code should work normally.

Sorry for the issue. Your feedback is very much appreciated!

Thanks so much! It works now for me!

Just want to be sure, the score came out of the experiments/inference.py, is higher for better, right? Namely, 1 suggests the best fit for this pocket, 0 represents the worst fit for the pocket?

Yes that is correct!