SoftMold
Molecular dynamics codes developed by Laradji's group of an implicit-solvent model described in the article by Laradji et al. in the Journal of Chemical Physics. 2008 Jan 21; 128(3):035102. doi: 10.1063/1.2825300
Install / Use
/learn @LaradjiSoftMatter/SoftMoldREADME
Overview:
In the top (./), ./generate, ./analysis, ./analysis/asciiMod, ./analysis/xyzMod, and ./analysis/functions directories, you can make the executables in the directory with:
make
Install to ~/bin/ with:
make install
And clean the directory with:
make clean
Running, for example, a vesicle simulation can be performed by:
liposome testLipo $RANDOM 80000 3.45
MD testLipo
Running on a slurm cluster can be performed by creating a submission script, such as submit.sh in this project, and running:
cp submit.sh test/
cd test
sbatch submit.sh
Alternatively, if you make MD.cpp, or any other executable, on its own:
g++ -O3 -fopenmp MD.cpp -o MD
mkdir ~/bin/
cp MD ~/bin/
Compiling MDcuda.cu on University of Memphis cluster (this one only implements tension, bonding, bending, and non-bonded interactions):
module load cuda11.2/toolkit
make cuda
The MDcuda executable can be used in place of the MD executable (with no other modifications).
Recent addition:
deltaLT parameter. By adding the following to your mpd file:
deltaLT [deltaL X] [deltaL Y] [deltaL Z] [endL X] [endL Y] [endL Z] [relaxStep]
your system will perform linear steps of deltaL (float, rmin units) to the size endL (float, rmin units) along all dimensions with relaxStep (integer number of deltaT steps) intervals in between. Additionally, setting any deltaL dimension to 0 will disable resizing along that dimension.
The following will resize (positive or negative doesn't matter) the Z dimension by 0.01 rmin steps to 40 rmin length:
deltaLT 0 0 0.01 40 40 40 10
The resize time will depend on the initial dimensions of the system, and restarting the system will continue from the last size stored in the mpd file.
Top (./) directory:
./MD.cpp:
The simulation solver. Runs with openmp or single threaded. Makefile contains build options for the intel (icc) compiler version. Using this is easy if you generate an mpd file in a directory (like test):
make
make install
cd generate
make liposome
cp liposome ~/bin
cd ../test
liposome testLipo $(RANDOM) 5000 3.45
MD testLipo
./generate directory:
Generates a variety of configurations (.mpd files). Executables include:
- bendComposition: Creates a flat bilayer with variable lipid length and 2 lipid types.
- bilayer: Creates a flat bilayer.
- build: Creates a flat bilayer.
- continuumSphereAndBilayer: Creates a flat bilayer with a point like nanoparticle.
- continuumSphereAndLiposome: Creates a spherical bilayer with a point like nanoparticle.
- continuumSphereAndLiposomeWrapped: Creates a fully liposome wrapped point like nanoparticle.
- continuumSphereGrid: Creates a flat bilayer with a lattice of point like nanoparticles.
- continuumSphereSurfactant: Creates a flat bilayer with surfactant particles that adhear to a point like nanoparticle and bilayer.
- domain: Creates a flat bilayer with 2 lipid types in a domain.
- gas: Creates a gas of particles.
- lipoCyto: Creates a spherical bilayer with a cytoskeleton.
- liposome: Creates a spherical bilayer.
- nanoSphereAndBilayer: Creates a solid nanoparticle and a flat bilayer.
- nanoSphereGrid: Creates a grid of solid nanoparticles and a flat bilayer.
- nanoSphereModBilayer:
- rigidNano: Creates a solid nanoparticle.
- scl: simple cubic lattice. Mostly for example.
- setMDConstants: Set molecular dynamics constants. Mostly for example.
- setMDConstants_UminAH: Set molecular dynamics constants. Mostly for example.
- solventBilayer: Creates a flat bilayer with solvent.
- solvent: Creates a gas of solvent.
- tetrahedron: Creates a tetrahedron. Mostly for example.
- tube: Creates a tubular bilayer.
./analysis directory:
Do analysis and modifications of systems (with .mpd files). Executables include:
- addBond: Add a bond to a system.
- adjustConstants: Adjust constants of a system.
- adjustMolecule: Adjust a moleucle of a system.
- boundaryPotential: Add a boundary potential to a system.
- chainBend: Calculates bending angle of lipids.
- chainBendLeaflet: Calculates bending angle of lipids per leaflet.
- changeDeltaT: Adjust timestep accuracy.
- changeFrame: Modify current system's frame.
- changeSeed: Modify the system's seed.
- changeTemperature: Modify the system's temperature.
- changeTension: Modify the system's tension.
- changeTime: Modify the system's start and end times.
- cluster: Calculates cluster sizes.
- clusterDomains: Calculates number of cluster domains.
- curvature3D_v7: Calculates curvature energy of a bilayer system.
- cycleXYZ: Cycle through a system's xyz file. Mostly for example.
- cylinderFluctuation: Calculates cylinder fluctuations?
- diffusion: Calculates diffusion. Make sure system store step is short enough to prevent jumps.
- duplicateImage: Duplicates a system across a dimension.
- extractXYZ: Extract the current XYZ position's of a system.
- forceBeadBead: Generates a graph of point like nanoparticles to other point like nanoparticles.
- forceBead: Generates a graph of point like nanoparticles to normal particles.
- frameReadPerSecond: Cycle through XYZ file. Mostly for example. Includes a timer.
- framesBeadParticleCount: Counts how many beads of a particular type there are in a system.
- frames: Cycle frames? Mostly example.
- framesDensity: Calculates density of a frame.
- framesDistanceBetweenIndices: Distances between two particle indices by frame.
- framesFlipFlop: Calculates lipid flip flop through by frame.
- framesPotentialTypePairs: Calculates potential between two types of particles.
- framesPotentialTypePairsList: Calculates potential between two types of particles and dumps a list of those.
- heightMap: Generates a height map from a flat system along z direction.
- heightMapFrames: Generates a height map from a flat system along z direction for every frame.
- lsPotentials: Dumps the non-bonded potential matricies of a system.
- lsProjection: Dumps a graphical projection of a system along 3 primary axii.
- modBond: Modify the a particular bonding interaction.
- modContinuumSphere: Modify a particular point like nanoparticle interaction.
- modContinuumSphereLong: Modify a particular point like nanoparticle interaction along with range (r_c).
- modSize: Modify a system's size.
- momentOfInertia: Calculation the moment of inertia of a system by frame.
- momentOfInertiaXYZ: Generate the axii for the moment of inertia of a system by frame.
- MSD: Mean square displacement. Diffusion.
- nanoPotential: Nanoparticle potential of a solid nanoparticle.
- nanoVsCOM: Nanoparticle center of mass distances by frame.
- neckBleb: Calculates the size of a neck near a bleb.
- netVel: Calculates the net velocity of a system.
- NPAngleFrames: Calculates the angle between point like nanoparticles and center of mass of a liposomes.
- nShapes: Counts the number of blebs in a system. Could be used to count exclusions from some particle.
- particleDistances: Distances between two particles in a system.
- potentialBeadBead: Makes a graph of potential between two point like nanoparticles.
- potentialBead: Makes a graph of potential between a point like nanoparticle and another particle.
- potential: Makes a graph of potential between particles.
- profile: Slices a system along one of the three primary axii.
- projectedCurvature: Projected curvature per layer. Use curvature_v7 instead.
- radial: Radial profile of other particles near a given particle.
- recenterFrames: Recenter the frames around a type, index, or molecule.
- removeSolvent: Remove solvent from a system's XYZ file.
- rollProfile: Obtains the center of mass and rolling angle of a solid nanoparticle.
- rotateXYZ: Rotate an xyz file along an axis.
- rProfile: Radial profile density around a cluster of particles in a system.
- rProfileFrames: Radial profile density around a cluster of particles in a system's XYZ file.
- singlePotential: Non-bonded potential of a single particle.
- singlePotentialType: Non-bonded potential of a single particle type.
- singlePotentialTypeHist: Histogram of a non-bonded potential of a single particle type.
- singlePotentialTypePairs: Non-bonded potential between two particle types.
- spherocity: Calculates the root mean square of a liposome.
- structureFactor: Calculates the structure factor of a flat bilayer.
- structureFactorFrames: Calculates the structure factor of a flat bilayer by frame.
- surface: Counts the number of surfaces in a system of types seperated by some cutoff.
- threeBodyDistribution: Average angular distribution of molecules.
- trajectoryFrame: Dumps trajectories by frame. Uses frames_name.xyz.
- translate: Move a system by some offset.
- twoBodyDistribution: Average distance distribution of molecules.
- typeDistribution: Calculates radial histogram of certain types along surfaces.
- vesicleRadius: Calculates radius of vesicle by frame.
- zPotential: Non-bonded potential histogram along z direction.
- zPotentialFrames: Non-bonded potential histograms along z direction for frames.
- zProfile: Histogram of particle probabilities. Bilayer profile.
./analysis/asciiMod directory:
Do calculations on plain text files. Executables include:
- abscissas: Generates the abscissas of a set.
- autoCorrelation: Auto-correlation of a variable.
- averageSets: Average a group of sets with a prefix.
- collect: Collect a group of sets with a prefix.
- gaussianKernelClamped: Gaussian kernal smoothing of a graph with a clamp at the average.
- gaussianKernel: Gaussian kernal smoothing of a graph.
- gaussianKernelProj: Gaussian kernal smoothing of a graph with a clamp at the average and zeroed.
- runningAvg: Running average of sets.
- skipError: Set error to zero every Nth data point.
- splitSets2: Split sets into multiple graphs.
- splitSets: Split sets into multiple graphs.
- sumSeries: Sum a series of sets into a single graph.
- sumSets: Bin values by the x column into averages of the y column.
- wham2: Weigted Histogram Analysis Method for
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
