Skip to content

learn.pretrained_unsupervised has problems with non-standard data

Hi, I am running a script in which I try to train a model in the same fashion as is done in the second example given in the rnaglib examples. The steps are as follows:

  1. Firstly, I transform each graph in a repository of .cif files into a new annotated graph in .json format and transfer the .json files into their own repository. The transformation is accomplished using the do_one() method in the rnaglib.prepare_data.main.py file.
  2. Then, I create a GraphDataset object from this repository of .json files and a Loader object from the GraphDataset.
  3. Finally, I create an embedder and classifier model from the model.py script and make it go through unsupervised and supervised training phases. However, I cannot make it through the unsupervised phase because the graph loader cannot do the node comparison operation because of the following error: Screen_Shot_2022-01-12_at_3.06.39_PM

Looking into the problem, inside the compare method in the rnaglib.kernels.node_sim.py file, I print out the rings passed as input to this function and find out they are always None, instead of being a list (as is the case for the preinstalled dataset). I don't know if it's an issue with the initial annotation, the transformation of the dataset into a data loader, or something else...

Any help is appreciated, notably an explanation about what the rings are and what they accomplish on a conceptual level.

Thank you, Séraphin