Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
22a3799
Added cyanobacteria and sucrose-dependent e. coli species
Jsakkos May 30, 2020
9de6f41
Add sucrose export rate variable suc_exp
Jsakkos May 31, 2020
a77885d
Fixed suc_exp error
Jsakkos Jun 1, 2020
217664c
Added Allclean.sh
Jsakkos Jun 9, 2020
ba11cb2
Sucrose export test
Jsakkos Jun 14, 2020
4c5837e
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Jun 15, 2020
c6f3a23
Added axenic examples
Jsakkos Jun 25, 2020
5073090
enable-vtk varient builds but crashes
PDoakORNL Jun 26, 2020
e2d0783
Updated monod kinetics to include CO2 dissolution and included parame…
Jsakkos Jul 2, 2020
57997bf
Updated .gitignore
Jsakkos Jul 2, 2020
ec04ea6
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Jul 2, 2020
38e412f
Merge branch 'add_phototroph' into phototroph_cades_build
PDoakORNL Jul 3, 2020
41c7f16
Included variable loop for sucrose and well sizes
Jsakkos Jul 6, 2020
7c836de
Added Python script for growth curve generation
Jsakkos Jul 6, 2020
f2e601b
readme about CADES build
PDoakORNL Jul 13, 2020
a67f16f
sample slurm script file for cades
PDoakORNL Jul 13, 2020
c3b04f2
Merge pull request #1 from PDoakORNL/phototroph_cades_build
Jsakkos Jul 16, 2020
5ff144d
Update CADES_README.md
Jsakkos Jul 16, 2020
f46ea79
Update CADES_README.md
Jsakkos Jul 16, 2020
f057839
Added slurm script for validation
Jsakkos Jul 17, 2020
983a406
Fixed script name
Jsakkos Jul 17, 2020
3146f87
Update CADES_README.md
PDoakORNL Jul 17, 2020
793dd27
Merge pull request #2 from PDoakORNL/patch-1
Jsakkos Jul 17, 2020
b38cb8e
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
2a63988
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
92aa985
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
82cc1e3
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
eb1e189
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
9ae0eac
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
33d3978
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
116b3a1
Update lammps_validation_job.slurm
Jsakkos Jul 17, 2020
950d842
Create mpi_test.slurm
Jsakkos Jul 21, 2020
34dd866
Added Python script to generate atom definition files
Jsakkos Jul 28, 2020
d629c6a
Merge branch 'add_phototroph' of https://github.com/Jsakkos/NUFEB int…
Jsakkos Jul 28, 2020
6aa8fb9
Added diffusion test
Jsakkos Jul 29, 2020
222607f
Updated atom generation script
Jsakkos Jul 31, 2020
ff9750a
Added python call to generate atom files
Jsakkos Jul 31, 2020
134c583
Corrected python call
Jsakkos Jul 31, 2020
2bd81d5
Reduced mem
Jsakkos Jul 31, 2020
a468621
Fixed script name
Jsakkos Jul 31, 2020
03219b5
Updated validation script
Jsakkos Aug 14, 2020
d606a59
Updated nufebatom
Jsakkos Aug 14, 2020
5f03cae
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Aug 15, 2020
7c03eb5
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Aug 18, 2020
6855458
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Sep 1, 2020
34fdeb1
Updated atom definition script bc syntax
Jsakkos Sep 4, 2020
95335aa
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Sep 10, 2020
8f85329
Updated diffusion calculation to mirror master
Jsakkos Sep 11, 2020
2d71eee
Updated K_s
Jsakkos Sep 15, 2020
5412cb2
Updated monod kinetics
Sep 15, 2020
0f611d8
Updated sucrose export rate
Jsakkos Sep 17, 2020
802326d
Updated Monod
Jsakkos Sep 18, 2020
04a65fa
Updated sucrose secretion to match experimental data
Jsakkos Sep 29, 2020
2ac5086
Updated co-culture atom definition file generation script
Sep 30, 2020
c414072
Updated NUFEBatom.py
Sep 30, 2020
5edf965
Fixed co-culture atom definition script
Jsakkos Oct 1, 2020
f9342a4
Updated NUFEBatom to generate slurm files for each set of runs
Oct 1, 2020
c419d91
Update CADES_README.md
Jsakkos Oct 1, 2020
7b71209
Fixed error in NUFEBatom
Oct 1, 2020
e104f16
Merge branch 'add_phototroph' of https://github.com/Jsakkos/NUFEB int…
Oct 1, 2020
e8d3509
Merge branch 'add_phototroph' of https://github.com/Jsakkos/NUFEB int…
Oct 1, 2020
c73292f
Updated SLURM template to email on failure only
Oct 2, 2020
97551b7
Fixed mismatch between atom and grid dump frequency
Oct 2, 2020
d986b2b
Added tarball generation to each loop
Oct 5, 2020
a5e3f0d
Fix O2 mass balance and added tarball generation after run
Oct 6, 2020
14c5faf
Updated tarball generation
Jsakkos Oct 7, 2020
eb978a8
Updated growth parameter coefficients
Jsakkos Oct 14, 2020
2e35992
Fixed diffusion grid specification
Jsakkos Oct 14, 2020
10e2e2d
Updated replicate generation and added HDF5 support
Oct 16, 2020
d26c503
Merge branch 'add_phototroph' of https://github.com/Jsakkos/NUFEB int…
Oct 16, 2020
cc74243
Fixed diffusion grid error
Jsakkos Oct 19, 2020
b293c7c
Update CADES_README.md
Jsakkos Oct 19, 2020
e85c98e
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Oct 29, 2020
801739e
Merge pull request #3 from nufeb/master
Jsakkos Nov 2, 2020
b626ff2
Merge remote-tracking branch 'origin/master' into add_phototroph
Nov 2, 2020
296adfa
Merge branch 'master' of https://github.com/Jsakkos/NUFEB
Jsakkos Nov 13, 2020
12ce7ec
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Nov 13, 2020
3012ba2
Added auto halt upen co2 limitation
Dec 4, 2020
5eba2a3
Merge branch 'master' of https://github.com/nufeb/NUFEB
Jsakkos Dec 7, 2020
93c8ec3
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Dec 7, 2020
30f9e7a
Merge branch 'add_phototroph' of https://github.com/Jsakkos/NUFEB int…
Jsakkos Dec 7, 2020
7037329
Create Build.yml
Jsakkos Dec 9, 2020
08be466
Update Build.yml
Jsakkos Dec 9, 2020
e2879c8
Update Build.yml
Jsakkos Dec 9, 2020
30fd856
Update Build.yml
Jsakkos Dec 9, 2020
8896e15
Update Build.yml
Jsakkos Dec 9, 2020
573d3c2
Update Build.yml
Jsakkos Dec 9, 2020
ec7ec2b
Delete Build.yml
Jsakkos Dec 11, 2020
a7fb477
Update README.md
Jsakkos Dec 11, 2020
506f306
Merge branch 'master' of https://github.com/nufeb/NUFEB
Jsakkos Jan 4, 2021
9a4d5df
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Jan 4, 2021
baa96e1
Updated inputscript
Jsakkos Jan 4, 2021
486611f
Updated axenic example and created readme
Jan 4, 2021
6b9c0ed
Merge branch 'master' of https://github.com/nufeb/NUFEB
Jsakkos Jan 6, 2021
9c0c0a6
Merge remote-tracking branch 'origin/master' into add_phototroph
Jsakkos Jan 6, 2021
bbdec4d
Updated diffusion calculation parameters
Jsakkos Jan 6, 2021
ffba0af
Add files via upload
Jsakkos Jan 6, 2021
c49aaee
Updated README
Jsakkos Jan 6, 2021
84a711a
Updated simulation template files
Jsakkos Jan 6, 2021
6cd00ec
Cleaned up carryover examples from nufeb/NUFEB
Jsakkos Mar 4, 2021
c9d0cb2
Added template and tools folders
Jsakkos Mar 4, 2021
9f6fd75
Update README.md
Jsakkos Mar 5, 2021
08cad48
Update README.md
Jsakkos Mar 9, 2021
df92447
Added Ansible playbook
Mar 10, 2021
91ddde5
Updated playbook
Mar 10, 2021
2a7548b
Updated playbook and install scripts
Mar 10, 2021
a79d8bd
Update README.md
Jsakkos Mar 10, 2021
5f8d820
Update README.md
Jsakkos Mar 10, 2021
f129fdd
Updated run generation
Jsakkos Mar 14, 2021
98068bf
Added growth curve notebook for analysis of H5 file
Jsakkos Mar 15, 2021
78153ec
Growth curve notebook
Jsakkos Mar 16, 2021
a547d53
Merge branch 'cyano' of https://github.com/Jsakkos/NUFEB into cyano
Jsakkos Mar 16, 2021
6aedeab
Added readme for creating runs
Jsakkos Mar 16, 2021
a2e9b48
Added analysis notebooked
Mar 23, 2021
2b99e30
Added Datafed connectivity
Jsakkos Apr 14, 2021
0da6ce9
Fixed error in run folder check
Jsakkos Apr 14, 2021
29bb2be
Fixed error
Jsakkos Apr 14, 2021
b34bc95
Fixed user id ref
Jsakkos Apr 14, 2021
faf4a3d
Update Slurm.txt
Jsakkos Apr 15, 2021
6748d68
Update Inputscript.txt
Jsakkos Apr 15, 2021
71339be
Update Allclean.sh
Jsakkos Apr 15, 2021
09c3388
Changed reference to home directory in Slurm.txt
Apr 15, 2021
8627539
Fixed error in slurm script
Jsakkos Apr 15, 2021
e7bac76
Fixed datafed id error
Jsakkos Apr 15, 2021
68f6674
Fixed copy-paste error
Jsakkos Apr 15, 2021
c306f8d
Fixed typo in Slurm.txt and added .log files to allclean
Jsakkos Apr 15, 2021
eae2c29
Update Allclean.sh
Jsakkos Apr 19, 2021
903b579
Update slurmRun.sh
Jsakkos Apr 19, 2021
91d1f64
Update Slurm.txt
Jsakkos Apr 19, 2021
1595c79
Update Inputscript.txt
Jsakkos Apr 19, 2021
b239713
Update Slurm.txt
Jsakkos Apr 19, 2021
cb85243
Fixed Datafed call issue related to Python
Jsakkos Apr 19, 2021
c299d7c
Update README.md
Jsakkos Apr 22, 2021
589f2e2
Update README.md
Jsakkos Apr 22, 2021
4ce971e
Update README.md
Jsakkos Apr 22, 2021
b03d5bd
Update README.md
Jsakkos May 6, 2021
de5856c
Create sync.yml
Jsakkos May 19, 2021
2d549a9
Merge remote-tracking branch 'upstream/master'
Jsakkos May 19, 2021
8076ef6
Merge remote-tracking branch 'origin/master' into cyano
Jsakkos May 19, 2021
24c16c2
Added local run shell script
Aug 3, 2021
c464f82
Optimization script
Oct 26, 2021
7fa4f69
Updated induction curve
Jsakkos Nov 15, 2021
93e3c0d
Reorganized
Jsakkos Feb 17, 2022
308e786
Update Dockerfile
Jsakkos Feb 17, 2022
64b5a77
Revert "Reorganized"
Jsakkos Feb 23, 2022
19fb835
Create Dockerfile
Feb 23, 2022
e5f3c4b
Updated dockerfile
Jsakkos Feb 28, 2022
a63f7fa
Removed message
Jsakkos Feb 28, 2022
c6ab12a
Create docker-image-ci.yml
Jsakkos Feb 28, 2022
ec4a08f
Added git repo clone step
Jsakkos Mar 8, 2022
9aa29a7
Finalized cyanobacteria optimization
Jsakkos Apr 12, 2022
53aff13
Merge branch 'cyano' of https://github.com/Jsakkos/NUFEB into cyano
Jsakkos Apr 12, 2022
86d0f52
Updated cyano fit
Jsakkos Apr 13, 2022
009bb30
Cleaned up old directories
Jsakkos Sep 6, 2022
bc3d3e4
Remove libvtk6-dev install
Jsakkos Sep 7, 2022
0572103
Update Dockerfile
Jsakkos Sep 7, 2022
b239c51
Add bash shell and nufeb-tools to path
Jsakkos Sep 7, 2022
915d006
Update Dockerfile
Jsakkos Sep 7, 2022
ef443d0
Added co-culture example script
Jsakkos Jan 8, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 33 additions & 0 deletions .github/workflows/docker-image-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Docker Image CI

on:
push:
branches: [ cyano ]

jobs:

build:

runs-on: ubuntu-latest

steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/nufeb:latest
43 changes: 43 additions & 0 deletions .github/workflows/sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Merge Upstream

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
schedule:
- cron: '*/30 * * * *' # every 30 minutes
push:
branches: [ master ]
pull_request:
branches: [ master ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
merge-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Merge upstream
run: |
git config --global user.name Jsakkos
git config --global user.email jonathansakkos@protonmail.com
# "git checkout master" is unnecessary, already here by default
git pull --unshallow # this option is very important, you would get
# complains about unrelated histories without it.
# (but actions/checkout@v2 can also be instructed
# to fetch all git depth right from the start)
git remote add upstream https://github.com/nufeb/NUFEB
git fetch upstream
git merge --no-edit upstream/master
git push origin master
merge-cyano:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Merge master
run: |
git checkout -b cyano
git fetch origin
git merge origin/master
git push origin cyano
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,9 @@
.project
.cproject
.settings/
# Simulation outputs
*.vtu
*.vti
*.vtr
\Sucrose*
*.csv
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
FROM ubuntu:20.04
RUN useradd --create-home --shell /bin/bash admin

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
build-essential \
g++ \
cmake \
git \
openmpi-bin \
openmpi-common \
libopenmpi-dev \
libpng-dev \
python3-pip \
bash \
nano

USER admin
WORKDIR /home/admin
RUN git clone https://github.com/Jsakkos/NUFEB nufeb --recursive

WORKDIR /home/admin/nufeb
RUN git checkout cyano

WORKDIR /home/admin/nufeb/thirdparty
RUN chmod +x ./install-hdf5.sh
RUN ./install-hdf5.sh

WORKDIR /home/admin/nufeb
RUN chmod +x ./install.sh
RUN ./install.sh --enable-hdf5
RUN pip install nufeb-tools -U --user
ENV PATH $HOME/.local/bin:$PATH

123 changes: 64 additions & 59 deletions README.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,65 +1,70 @@
Fork of [NUFEB](https://github.com/nufeb/NUFEB) to simulation sucrose-secreting cyanobacteria with heterotrophic partners.

NUFEB is an open source tool for modelling and simulating microbial communities.
The tool is based on the Individual-based Modelling (IbM) approach,
where microbes are represented as discrete units and their
behaviour changes over time due to a variety of processes.
# Instructions for compiling and testing NUFEB phototroph on CADES

NUFEB is built on top of the molecular dynamics simulator
LAMMPS (as a LAMMPS' user package), extended with IbM features.
A wide range of biological, physical and
chemical processes are implemented to explicitly model microbial systems.
## To login to CADES remotely
[See CADES Documentation](https://docs.cades.ornl.gov/#external-access-ucams/)
```shell
ssh userID@login1.ornl.gov
ssh userID@or-slurm-login.ornl.gov
```

NUFEB is a freely-available open-source code, distributed under the terms
of the GNU Public License.
## clone repo into your home directory
```shell
git clone https://github.com/Jsakkos/NUFEB --recursive
git checkout cyano
git pull
```
## To build

NUFEB development has been funded by the UK’s EPSRC EP/K039083/1
Newcastle University Frontiers in Engineering Biology (NUFEB) project.
### With Ansible
Install Ansible
#### On CADES
```
module load python/3.6.3
pip3 install ansible --user
```
#### On Ubuntu
```
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
```
Run the playbook
```
ansible-playbook playbook.yml
```
### Manually
```shell
module purge
module load PE-gnu/3.0
module load cmake
cd ~/NUFEB/thirdparty/
./install-hdf5.sh
./install-vtk.sh
cd ~/NUFEB/
./install.sh --enable-hdf5 --enable-vtk
```
## To test

Installation guide, tutorial, example videos, and more details can be found in [NUFEB Wiki page](https://github.com/nufeb/NUFEB/wiki) and
[User Manual](https://github.com/nufeb/NUFEB/tree/master/doc)

---------------------------------------------------------------------------

The NUFEB distribution includes the following files and directories:
<pre>
README this file
LICENSE the GNU General Public License (GPL)
install.sh script for building NUFEB
uninstall.sh script for uninstalling NUFEB
doc user manual and other documentation
examples test problems and cases used in publications
lib libraries NUFEB can be linked with
lammps LAMMPS source code
post-processing Povray visualisation routine
src source files
thirdparty thirdparty tools
</pre>

### Getting source
Get NUFEB source code and submodules for its thirdparty libraries:
<pre>
git clone https://github.com/nufeb/NUFEB --recursive
</pre>

### Building
NUFEB requires gcc/g++ and openmpi for a successful build.

Build NUFEB:
<pre>
./install.sh
</pre>

### Running
Run a case in /examples after building NUFEB, for example:
<pre>
cd examples/biofilm-het
mpirun -np 4 lmp_mpi -in Inputscript.lammps
</pre>

---------------------------------------------------------------------------
Developers:

Bowen Li: bowen.li2@newcastle.ac.uk

Denis Taniguchi: denis.taniguchi@newcastle.ac.uk
### interactively
```shell

module load env/cades-cnms
module load anaconda3
cd $SCRATCH
python3 ./tools/GenerateAtom.py --u your_user_name
module purge
module load PE-gnu/3.0
salloc -A cnms -p batch --nodes=1 --mem=80G --exclusive -t 00:30:00
cd runs
srun --ntasks-per-node 32 -n 32 ~/NUFEB/lammps/src/lmp_png -in ~/NUFEB/runs/Inputscript*.lammps
```
### batches
```shell
module load anaconda3
cd $SCRATCH
python3 ./tools/GenerateAtom.py --u your_user_name
./tools/slurmRun.sh
```
99 changes: 99 additions & 0 deletions examples/Cyanobacteria-E. coli/Inputscript.lammps
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# NUFEB simulation

atom_style bio
atom_modify map array sort 1000 5.0e-7
boundary ff ff ff
newton off
processors * * 1

comm_modify vel yes
read_data_bio D:\runs\Run_50_50_1.00e+00_1_2022-12-30_602200\atom.in
##############Define initial particle distribution##############

lattice sc 1e-6 origin 0 0 0
#region reg block 0 1000 0 1000 0 100

group CYANO type 1
group ECW type 2

neighbor 5e-7 bin
neigh_modify delay 0 one 5000

##############Define DEM Variables&Commands##############

pair_style gran/hooke/history 1.e-4 NULL 1.e-5 NULL 0.0 1
pair_coeff * *

timestep 10

fix 1 all nve/limit 1e-8
fix fv all viscous 1e-5

fix zw all wall/gran hooke/history 2000 NULL 500.0 NULL 1.5 0 zplane 0.0 1e-05

variable kanc equal 50

variable ke equal 5e+10


##############Define IBm Variables##############

#variables used in fix eps_extract
variable EPSdens equal 30
variable EPSratio equal 1.3

#variables used in fix division
variable divDia1 equal 1.96e-6
variable divDia2 equal 1.04e-6

#variables used in fix kinetics
variable diffT equal 1e-4
variable tol equal 1e-11
variable etaHET equal 0.6
variable layer equal -1

#variables used in fix death
#variable deadDia equal 9e-7


##############Define IBm Commands##############

fix k1 all kinetics 100 50 50 5 v_diffT v_layer niter 1000000
fix kgm all kinetics/growth/monod sucexp 1.0
fix g1 all kinetics/diffusion v_tol
fix d1 CYANO divide 100 v_EPSdens v_divDia1 859152
fix d2 ECW divide 100 v_EPSdens v_divDia2 976082
#fix d2 all death 1 v_deadDia demflag 0


##############Define IBm Computes##############

compute myNtypes all ntypes
compute myMass all biomass
compute myCon all avg_con

##############Simulation exit condition##############
variable co2 equal c_myCon[4]
fix 10 all halt 1000 v_co2 <= 1e-19

variable suc equal c_myCon[3]


variable light equal c_myCon[1]
fix hl all halt 1000 v_light <= 1e-19

variable mass equal c_myMass[1]+c_myMass[2]
fix my_halt all halt 1 v_mass >= 1.50e-11
##############Simulation Output##############



dump du3 all bio 100 ntypes biomass avg_con
dump traj all bio/hdf5 100 trajectory.h5 id type radius x y z con
thermo_style custom step cpu atoms c_myNtypes[*] c_myMass[*] c_myCon[*]
thermo 100
thermo_modify lost ignore


run 35000

Loading