¿Cuál es la estructura de datos más simple y eficiente para representar la topología molecular?

Si se refiere a una estructura de datos programática interna, una matriz de matrices (un vector) con un encabezado molecular adjunto funcionaría bien, y eso es lo que usamos para serializar y deserializar (o marshall y unmarshall). Teníamos un programa más complicado para tomar ARNm e intentar crear modelos de proteínas 3D a partir de él calculando ángulos de enlace y comparando secuencias homólogas, que usaban algunas estructuras realmente extrañas para hacer esto, pero eso no suena como lo que estás haciendo. También puede usar una lista vinculada con ramas, donde los nodos representan átomos, pero lo intentamos en un punto y descubrimos que era más problemático de lo que valía la pena.

Cuando hice esto, utilizamos el índice de radios del átomo xyz y algunos otros campos en un archivo json convertido en un CLOB para el almacenamiento de datos. El uso de un clob significaba que los archivos se almacenaban individualmente en ese caso y los datos se podían recuperar a través del clúster con relativa facilidad. Sé que mucha gente también está usando el almacenamiento NoSql ahora porque fue construido literalmente para problemas como este. El formato de archivo que utilizamos, además de ser json, se creó para facilitar la traducción al pymol.

Dado que Python es una posible opción de idioma, esperaría que haya estructuras representativas en SciPy o en una de las otras bibliotecas. Dudo que tales bibliotecas existan en Go, pero podría estar equivocado, no me he metido con eso últimamente.

Espero que esto ayude.