Current Work

After a solid 6+ weeks of working on the OpenBabelParser, I am happy to annouce that it is done!

During the implimentation of this class I hit quite a few roadblocks, namely that the CI was not working and having to convert support from OpenBabel 2.x to OpenBabel 3.x. I was able to rectify the CI with assistance from Hugo and Irfan and quite a lot of trial and error.

Conversion to OpenBabel 3.x support was more challenging unfortunately. I had to create a fresh Python environment on my workstation and installing OpenBabel 3.1.1 proved to be difficult as the typical commands such as mamba install -c conda-forge openbabel were not working. This was because I had version 4.10.3 of conda and the newest version is 24.5.0… Once that was sorted I was able to run my tests again with pytest, and to my dismay, many of the OpenBabel 2.x methods I was using to access attributes had been depreciated. Accessing chiralities in particular was not replaced with an equivalent method, so this attribute cannot be converted across currently. I am in discussion with OpenBabel devs to try to find a better method to access chirality so that this attribute can be maintained.

I did get in contact with the OB devs about the missing PDB attributes and only some of them are recorded, and are quite buried with no easy access method. I have been requested to submit a PR with OpenBabel to rectify this (thus enabling me to access these variables), but this will be going on the backburner for once I finish the majority of this project.

The parser has been implimented with a handful of unit tests, which I will be circling back to extend after the OpenBabelReader is completed.

What is done

  • Obtain all relevant attributes from atoms in OBMols
  • Develop unit testing for OpenBabelParser
  • Convert these attributes to their relevant MDAnalysis Atom attribute, taking care with units (OpenBabelParser)
  • CI is functional
  • Support for OpenBabel 3.x instead of OpenBabel 2.x

Working on

  • OpenBabelReader - convert positions/trajectory; this class will work alongside the OpenBabelParser to create a Universe from an OBMol
  • Tests for OpenBabelReader

Next Steps (in order)

  • Develop further tests with different file/molecule types for OpenBabelParser and OpenBabelReader.
  • Documentation (including examples) for OpenBabelParser and OpenBabelReader.
  • OpenBabel converter to work in the reverse direction - including tests and documentation.
  • Cut a release and deploy on conda-forge.

<
Previous Post
Deep in the Parser
>
Blog Archive
Archive of all previous blog posts