Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Readme.md

ESPResSoMD

ESPResSo/expressomd es un software de simulación de dinámica molecular orientado a sistemas de materia blanda y coloides, muy usado en física, química y biofísica computacional para estudiar desde polímeros y suspensiones coloidales hasta modelos de membranas y biopolímeros.

Qué es ESPResSo / expressomd

  • ESPResSo (Extensible Simulation Package for Research on Soft Matter) es un motor de dinámica molecular altamente extensible, optimizado para simulaciones a gran escala en CPU y GPU. Permite tratar interacciones de corto y largo alcance, hidrodinámica explícita o implícita y campos externos complejos.
  • expressomd es la interfaz en Python que envuelve el núcleo de ESPResSo, de modo que se pueden definir sistemas, parámetros, fuerzas y protocolos de simulación mediante scripts de alto nivel, integrándolo fácilmente con NumPy, SciPy o herramientas de análisis.

Capacidades principales

  • Modelos coarse-grained para polímeros, membranas, surfactantes, coloides cargados y nanopartículas, típicos en materia blanda y biofísica.
  • Soporte de interacciones electrostáticas (por ejemplo, Ewald, P3M), potenciales de Lennard-Jones, enlaces, ángulos, restricciones y campos externos (cizalla, flujos, campos eléctricos).
  • Métodos hidrodinámicos como Lattice-Boltzmann o dinámica de Brown para incluir efectos de solvente efectivo, relevantes en dinámica de coloides y polímeros en solución.

Uso en biofísica

  • Permite estudiar autoensamblaje de membranas, agregación de proteínas modelo, micelas, vesículas y transporte de partículas en medios complejos, donde los detalles atómicos se reemplazan por representaciones coarse-grained para alcanzar escalas de tamaño y tiempo grandes.
  • Combinado con Python, es sencillo analizar trayectorias, exportar datos para herramientas como MDAnalysis o visualizar con otros programas, integrando simulación y análisis en un mismo flujo de trabajo.[5]

Ventajas prácticas

  • Alto rendimiento con paralelización (MPI, GPU) y diseño modular que facilita probar nuevos modelos o términos de fuerza personalizados.
  • La interfaz de scripting en Python reduce la complejidad de archivos de entrada rígidos y permite construir experimentos numéricos “tipo laboratorio” con bucles, barridos de parámetros y análisis en línea.[8]

Integración de ESPResSo/expressomd con Otros Paquetes

ESPResSo destaca por su interfaz Python completa (import espressomd) que lo hace altamente interoperable con el ecosistema científico de Python y otros software de simulación y análisis en biofísica.

Integración Nativa con Python Científico

Paquete Uso típico Ejemplo
NumPy Arrays de coordenadas, fuerzas positions = np.random.random((N,3))
Matplotlib Visualización en tiempo real plt.plot(energy_history)
SciPy Optimización parámetros scipy.optimize para fitting
Pandas Análisis estadístico offline df = pd.DataFrame(traj_data)
MDAnalysis Análisis avanzado trayectorias Conversión VMD → Universe

1. MDAnalysis (Conversión de Trayectorias)

import espressomd
import MDAnalysis as mda
import numpy as np

# ESPResSo simulación
system = espressomd.System(box_l=[50.0,50.0,50.0])
# ... simulación ...

# Exportar a VMD (formato MDAnalysis)
system.part.writevmd("trayectoria.vmd")
u = mda.Universe("trayectoria.vmd")  # Análisis RMSD, RDF, etc.

2. PyMOL / VMD (Visualización 3D)

ESPResSo exporta VMD y PDB nativamente:

system.part.writepdb("snap_001.pdb")  # PyMOL/VMD directo
system.part.writevmd("membrana.vmd")  # Trayectorias completas

3. GROMACS / LAMMPS (Híbridos)

Coarse-graining híbrido: ESPResSo simula membranas/polímeros → átomos mapeados a GROMACS:

# ESPResSo: membrana coarse-grained
system.actors.add(espressomd.polymers.Polymer()) 

# Exportar beads → GROMACS topology
beads_pos = system.part[:].pos  # → MARTINI mapping
np.savetxt("cg2aa_mapping.dat", beads_pos)

4. Biofísica Molecular Avanzada

Software Integración Aplicación
pDynamo Coordenadas XYZ Reacciones QC/MM en polímeros
OpenMM Campos de fuerza Validación cross-engine
HOOMD-blue GPU coloides Benchmarking rendimiento

5. Pipeline Completo Biofísica

ESPResSo (simulación CG) 
    ↓ VMD/PDB
MDAnalysis (RMSD, contactos) 
    ↓ Python
PyMOL (visualización)
    ↓ Análisis
Publicación (figuras)

6. Ejemplo Práctico: Membrana + MDAnalysis

import espressomd
import MDAnalysis as mda
import numpy as np

# 1. ESPResSo: Autoensamblaje membrana
system = espressomd.System(box_l=[32,32,100])
system.non_bonded_inter[0,0].lennard_jones.set_params(
    epsilon=1.0, sigma=1.0, cutoff=2.5, shift="auto")

# Lipidos coarse-grained
lipids = espressomd.polymers.LinearPolymer()
system.actors.add(lipids)

system.time_step = 0.01
system.thermostat.set_langevin(kT=1.0, gamma=1.0)
system.integrator.run(10000)

# 2. Exportar trayectoria
system.part.writevmd("membrana.vmd")

# 3. MDAnalysis: Orden de membrana
u = mda.Universe("membrana.vmd")
leaflets = u.select_atoms("type 1")  # heads
order_param = np.mean(np.cos(u.atoms.angle_icosahedron()))

print(f"Parámetro de orden: {order_param:.3f}")

7. Workflows Automatizados

Script maestro biofísica:

# Pipeline completo
for density in np.logspace(-3, -1, 5):
    sim = run_espresso_polymer(density)  # ESPResSo
    traj = mda.Universe(sim.export_vmd())  # MDAnalysis  
    rg = traj.atoms.radius_of_gyration()
    plt.plot(density, rg, 'o-')
plt.savefig("scaling.png")

Ventajas de la Integración

Aspecto Beneficio
Python nativo Sin formatos intermedios
Trayectorias VMD MDAnalysis/PyMOL directo
Modular Mezclar engines (ESPResSo membranas + GROMACS proteína)
Análisis online NumPy/Matplotlib durante simulación
Reproducible Scripts completos → paper

Herramientas Complementarias Recomendadas

ESPResSo + MDAnalysis + PyMOL + Jupyter
    ↓
Simulación → Análisis → Visualización → Paper

ESPResSo es el "pegamento perfecto" para workflows complejos en materia blanda y biofísica, conectando simulación física rigurosa con análisis estadístico avanzado y visualización profesional.

1 2 3 4 5 6 7 8 9 10