Introducing myself & project "Enhancing Avogadro for Biomolecular Modeling"

I’m glad to have been accepted into this year’s GSoC for Open Chemistry. As stated in the title, I’ll introduce myself first.

My name is Aritz Erkiaga Fernández. I live in Spain (yes, two surnames), specifically in the Basque Country; in fact, my first and second name are Basque words for “oak” and “linden trees”. I’ve been called “Oak” by at least one English speaker before, so feel free to follow trend :slight_smile:

Notably, I don’t have any kind of formal CS background: I’m a medical student and a long-time Avogadro user. To me, Avogadro (and now Avogadro 2) means a way to better understand biochemistry, pharmacodynamics, and organic chemistry. While my University doesn’t use it as a tool per se, I feel it makes those fields accessible and, more importantly, interactive.

At the personal level, I can highlight the fact I’m usually full of energy. I like working on my (coding, academic, other…) projects non-stop, sometimes late at night. I easily tend to become confident about eventual success and make ambitious plans, which in the last years I’ve gained the ability to mostly actually complete.

My project this year will be continuing to advance Avogadro’s ability to do what I like using it for! I’ve outlined some concrete tasks to fulfill:

  • Enabling surface generation with at least one surface type (already done some research).
  • Enabling intermolecular force visualization and at least one kind of it.
  • Adding first-class support for formal charges and coordination (done the first part).
  • Fixing any usability issues with macromolecule workflows. In particular, optimizing anything that feels too slow (done a lot of optimization).

Of course, that doesn’t rule out doing more work afterwards :wink:

My inspiration will be the RCSB PDB ligand viewer. Molecular surfaces will be generated using the algorithm by Hermosilla et al., with some refactoring I’ve already done serving as a base.

I hope everything will turn out smoothly. Regards to fellow contributors!

1 Like

I think some areas that could use feedback:

  • For surfaces, Artiz will work on van der Waals and and solvent-excluded / solvent-accessible surfaces.

    • What properties would you like to map on the surfaces?
    • Partial charges / electrostatic potential
    • Electron density
    • Orbitals (e.g., ionization potential from HOMO, electron affinity from LUMO)
    • Your idea here?
  • For non-bonded interactions, we have the following list:

    • Hydrogen bonds
    • Close contacts (i.e., any two atoms)
    • Sulfur bonds / chalcogen

What other kinds of non-bonded interactions would you want? Other feature requests?

1 Like

Hi Aritz, Geoff and everyone,

First, thanks for Avogadro (both 1.2 and 1.9x=2)! We use both versions - at least until constraints are in place in Avogadro2 :smiley: (we are thrilled to see that this is in active development, per the May 2022 Development Progress).

Second, thanks, Aritz - for your plans and contributions!

To answer Geoff’s follow-up questions:
Surface properties: Excellent suggestions! In terms of electrostatic potential a coupling to e.g. APBS or similar would be very useful, if implementable. This would cater for e.g. biomolecules for which QM-derived properties are not available.

As for the non-bonded interactions, here are a few thoughts and suggestions for additional “types” of such interactions:

  • hydrogen bonds - an implementation could evaluate not only distance, but also angle (apologies if the latter is self-evident)
  • charge-charge interactions, e.g. +/-, also called salt bridges, but also “bad” contacts (+/+, -/-)
  • pi-stacking interactions
  • halogen bonds

In the further feature requests section, I might suggest:

Thanks again and best regards,

1 Like

Welcome, and thanks for the feedback!

Yes, Avo2 already has an interface to APBS and will read OpenDX files. Look for Input => APBS for more.

The electrostatics options will also make it easy to add Python script plugins to read atomic partial charges (e.g., from Open Babel, ML models, etc.) or otherwise evaluate electrostatics. I’ll post more here when the code is ready.

I think @aerkiaga has most of your non-bonded interactions except for π-stacking interactions. We’ve already talked about angle dependence… including having separate rendering types for other close-contacts vs. “angle dependent contacts” (names welcome).

NCIplot is a good suggestion. I’ll add it to the issue tracker.

As for xTB … that falls more into the optimization framework, but yes, it’ll be one of the first plugins.


Hadn’t thought of same-sign charge interactions… Probably easy to add. Unlike pi-stacking, which would require some very large changes (although I’d like to see it as well).

These days I’ve been dealing with some tough exams, but at least I’ve made a sketch of how these interaction could play out, including possible naming and color codes, as well as some rough code design.

1 Like

Hello there,

Thanks for your positive responses and apologies for not having seen the APBS interface yet - I obviously haven’t worked enough in Avo2!

In terms of π-stacking and interactions with aromatic and non-aromatic ( ring systems, there are quite a few geometries to cover (see e.g. Fig. 1a in, which are not limited to ring-ring interactions. Among other such interactions, cation-pi interactions are one of the types that have received attention (and parameterization) e.g. in the domain of MM force fields.

As for implementation of criteria to trigger representations of such interactions with rings, one could possibly define a placeholder or dummy atom at the center of each ring, as well as an axis through this center, perpendicular to the ring plane, to have a reference point/axis for distance/angle evaluations. It is perhaps the inclusion of such new entities that would require large changes, as you say @aerkiaga ?

Hope the exams went well!