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.
- ¿Cómo funciona el algoritmo DeepMind?
- ¿Por qué mi solución C ++ al problema SPOJ.com - Problema DIVSUM2 muestra un error?
- ¿Por qué la búsqueda es más rápida para un árbol binario que una lista vinculada?
- ¿Debería centrarme en el aprendizaje de algoritmos y estructuras de datos en profundidad, o aprender una habilidad como desarrollo web o desarrollo móvil usando Nanodegree?
- Cómo determinar si un DAG tiene una ruta con una longitud mayor que k
Espero que esto ayude.