Skip to content

Commit 0925c37

Browse files
Add dependency instruction and badges to README
1 parent 75af35f commit 0925c37

File tree

1 file changed

+108
-26
lines changed

1 file changed

+108
-26
lines changed

README.md

Lines changed: 108 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,37 @@
33

44
# SLIMED
55

6+
<p align="center">
7+
<!-- Build / CI -->
8+
<!--a href="https://github.com/JohnsonBiophysicsLab/SLIMED/actions">
9+
<img alt="CI" src="https://img.shields.io/github/actions/workflow/status/JohnsonBiophysicsLab/SLIMED/ci.yml?branch=main&label=CI">
10+
</a>
11+
<!-- Codecov (or Coveralls) -->
12+
<!--a href="https://codecov.io/gh/JohnsonBiophysicsLab/SLIMED">
13+
<img alt="Coverage" src="https://img.shields.io/codecov/c/github/JohnsonBiophysicsLab/SLIMED?logo=codecov">
14+
</a>
15+
<!-- Release -->
16+
<a href="https://github.com/JohnsonBiophysicsLab/SLIMED/releases">
17+
<img alt="Release" src="https://img.shields.io/github/v/release/JohnsonBiophysicsLab/SLIMED">
18+
</a>
19+
<!-- License -->
20+
<a href="https://github.com/JohnsonBiophysicsLab/SLIMED/blob/main/LICENSE">
21+
<img alt="License" src="https://img.shields.io/github/license/JohnsonBiophysicsLab/SLIMED">
22+
</a>
23+
<!-- C++ standard -->
24+
<img alt="C++" src="https://img.shields.io/badge/C%2B%2B-%E2%89%A514-blue">
25+
<!-- CMake minimum -->
26+
<img alt="CMake" src="https://img.shields.io/badge/CMake-%E2%89%A53.20-informational">
27+
<!-- Package managers (optional) -->
28+
<!-- img alt="Conan" src="https://img.shields.io/badge/Conan-ready-0ea5e9">
29+
<!-- img alt="vcpkg" src="https://img.shields.io/badge/vcpkg-port-22c55e">
30+
<!-- Platforms -->
31+
<img alt="Platforms" src="https://img.shields.io/badge/Linux%20|%20macOS%20-supported-success">
32+
<!-- Code style -->
33+
<!-- img alt="clang-format" src="https://img.shields.io/badge/clang--format-enforced-brightgreen"-->
34+
</p>
35+
36+
637
SLIMED (Subdivision-limit membrane dynamics) model is established with triangular mesh and optimized using an energy function. The installation instructions and dependencies are provided in README.rst. The first step requires setting up the triangular mesh model to approximate the membrane's geometry applying Loop's subdivision method. The lowest energy search model minimizes the membrane energy evaluated by the energy function. The Brownian Dynamics model simulates the moving membrane's surface with a displacement equation, performed on the limit surface with the help of a conversion matrix. Three types of boundary conditions are available: Fixed, Periodic, and Free, all defined for "ghost vertices" on the boundary of the triangular mesh.
738

839
## Installation
@@ -14,13 +45,57 @@ To install the model, follow these steps:
1445
git clone https://github.com/mjohn218/continuum_membrane.git
1546
```
1647

17-
2. Install the required libraries: GSL (GNU scientific library) and OpenMP (if parallelization is needed)
48+
2. Install dependencies (GSL and OpenMP)
49+
50+
This project depends on:
51+
52+
* **GSL** (GNU Scientific Library)
53+
* **OpenMP** (only for the `omp`/parallel build)
54+
55+
### Ubuntu (apt)
56+
57+
```bash
58+
# Update package lists
59+
sudo apt-get update
60+
61+
# GSL (headers + library)
62+
sudo apt-get install -y libgsl-dev
63+
64+
# Compilers
65+
sudo apt-get install -y build-essential clang
66+
67+
# OpenMP
68+
# - If you build with GCC: OpenMP is included (use -fopenmp, links against libgomp).
69+
# - If you build with Clang: install the LLVM OpenMP runtime:
70+
sudo apt-get install -y libomp-dev
71+
```
72+
73+
### macOS (Homebrew)
74+
75+
```bash
76+
# Install Homebrew if needed: https://brew.sh
77+
78+
# GSL
79+
brew install gsl
80+
81+
# Option A (recommended): use Homebrew LLVM (Clang) for OpenMP
82+
brew install llvm libomp
83+
# Option B: Apple Clang + libomp can work, but setup is trickier.
84+
```
85+
86+
**Using Homebrew LLVM for OpenMP (recommended):**
87+
88+
```bash
89+
# Determine prefixes (Apple Silicon uses /opt/homebrew, Intel uses /usr/local)
90+
brew --prefix llvm
91+
brew --prefix libomp
92+
```
1893

1994
## Compile and Run
2095

2196
To compile and run continuum membrane lowest energy conformation search with OpenMP parallelization. See section 5 for model details.
2297

23-
OpenMP parallel:
98+
OpenMP parallelization:
2499

25100
```console
26101
make omp
@@ -57,44 +132,50 @@ Input parameter file is located in the root directory: ``continuum_membrane/inpu
57132
The goal for the lowest energy search model is to minimize the membrane energy evaluated by the energy function, which is the sum of membrane bending energy, area constraint energy (or elastic area change energy), and volume constraint energy:
58133

59134

60-
`E = E_B + E_S + E_V = \int_S \frac{1}{2}\kappa (2H-C_0)^2 dS + \frac{1}{2} \mu_S \frac{(S-S_0)^2}{S_0} + \frac{1}{2} \mu_V \frac{(V-V_0)^2}{V_0}`
135+
$$
136+
E = E_B + E_S + E_V = \int_S \frac{1}{2}\kappa (2H-C_0)^2 dS + \frac{1}{2} \mu_S \frac{(S-S_0)^2}{S_0} + \frac{1}{2} \mu_V \frac{(V-V_0)^2}{V_0}
137+
$$
61138

62139
where:
63140

64-
- `\kappa` : membrane bending constant ``kcMembraneBending``
65-
- `H` : mean membrane culvature
66-
- `C_0` : spontaneous curvature of the membrane ``c0Membrane``
67-
- `\mu_S` : membrane streching modulus ``usMembraneStretching``
68-
- `S` : global membrane area
69-
- `S_0` : target membrane area
70-
- `\mu_V` : volume constraint coefficient ``uvVolumeConstraint``
71-
- `V` : global volume
72-
- `V_0` : target volume
141+
- $\kappa$ : membrane bending constant ``kcMembraneBending``
142+
- $H$ : mean membrane culvature
143+
- $C_0$ : spontaneous curvature of the membrane ``c0Membrane``
144+
- $\mu_S$ : membrane streching modulus ``usMembraneStretching``
145+
- $S$ : global membrane area
146+
- $S_0$ : target membrane area
147+
- $\mu_V$ : volume constraint coefficient ``uvVolumeConstraint``
148+
- $V$ : global volume
149+
- $V_0$ : target volume
73150

74151
## Membrane Brownian Dynamics
75152

76153
Membrane Brownian Dynamics model runs a step-wise simulation of the moving membrane surface with the following equation:
77154

78155

79156

80-
`\Delta X = -\frac{D\Delta t}{k_b T} \nabla E + \sqrt{2D\Delta t} (N(0,1))`
157+
$$
158+
\Delta X = -\frac{D\Delta t}{k_b T} \nabla E + \sqrt{2D\Delta t} (N(0,1))
159+
$$
81160

82161
where:
83162

84-
- `\Delta X`: displacement of point on limit surface
85-
- `D`: diffusion constant of the membrane
86-
- `\Delta t`: time step
87-
- `N(0,1)`: standard normal distribution
163+
- $\Delta X$: displacement of point on limit surface
164+
- $D$: diffusion constant of the membrane
165+
- $\Delta t$: time step
166+
- $N(0,1)$: standard normal distribution
88167

89168
Note that the displacement of membrane according to the equation above is performed on the limit surface, not the control mesh.
90169
In this case, a conversion matrix helps to convert between triangular mesh and limit surface, as currently the points on the limit surface
91170
represented by the mesh point are chosen to represent the surface.
92171

172+
$$
173+
M_{s} = C M_{m}
174+
$$
93175

94-
`M_{s} = C M_{m}`
95-
96-
97-
`M_{m} = C^{-1} M_{s}`
176+
$$
177+
M_{m} = C^{-1} M_{s}
178+
$$
98179

99180
## Boundary Conditions
100181

@@ -114,14 +195,15 @@ A detailed doxygen style documentation is available in ``continuum_membrane/html
114195
If you use or modify continuum membrane model, in addition to citing
115196
NERDSS, please be kind and cite us:
116197

117-
1. Continuum Membrane Implementation Fu, Y., Yogurtcu, O.N., Kothari,
198+
1. For continuum Membrane Implementation: Fu, Y., Yogurtcu, O.N., Kothari,
118199
R., Thorkelsdottir, G., Sodt, A.J. & Johnson, M.E. (2019) An implicit
119-
lipid model for efficient reaction-diffusion simulations of protein binding to surfaces of arbitrary topology. *J Chem Phys.* 151 (12), 124115. <doi:%6010.1063/1.5120516%60_>
200+
lipid model for efficient reaction-diffusion simulations of protein binding to surfaces of arbitrary topology. *J Chem Phys.* 151 (12), 124115.
201+
doi:[10.1063/5.0045867](https://doi.org/10.1063/5.0045867)
120202

121-
2. Membrane energies and insertion Fu, Y., Zeno, W., Stachowiak, J. &
203+
3. For membrane energies and insertion: Fu, Y., Zeno, W., Stachowiak, J. &
122204
Johnson, M.E. A continuum membrane model predicts curvature sensing by
123-
helix insertion. Submitted (2021) Available on
124-
[bioRxiv](https://www.biorxiv.org/content/10.1101/2021.04.22.440963v1.full)
205+
helix insertion. Soft Matter. 2021 Dec 8;17(47):10649–10663
206+
doi:[10.1039/d1sm01333e](https://doi.org/10.1039/d1sm01333e)
125207

126208
## License
127209
This project is licensed under the GPL License - see the LICENSE file for details.

0 commit comments

Comments
 (0)