renamed setup_sim->innitialize_sim; introduced annealing python script; outsourced replace_params; run.sh now template
This commit is contained in:
40
polyamorphism_optimization/annealing.py
Normal file
40
polyamorphism_optimization/annealing.py
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import shutil
|
||||||
|
from pathlib import Path
|
||||||
|
from generate_annealing import generate_annealing
|
||||||
|
from replace_params import replace_params
|
||||||
|
|
||||||
|
|
||||||
|
def main(root_dir: Path):
|
||||||
|
simdir = root_dir / "01_an1"
|
||||||
|
|
||||||
|
if simdir.exists():
|
||||||
|
shutil.rmtree(simdir)
|
||||||
|
simdir.mkdir()
|
||||||
|
|
||||||
|
# Copy topology and replace parameters
|
||||||
|
shutil.copy(root_dir / "topology.top", simdir / "topology.top")
|
||||||
|
replace_params(root_dir / "params.ini", root_dir / "topology.top", simdir / "topology.top")
|
||||||
|
replace_params(root_dir / "params_an1.ini", root_dir / "mdp_parameters.mdp", simdir / "mdp_parameters.mdp")
|
||||||
|
replace_params(root_dir / "params.ini", simdir / "mdp_parameters.mdp", simdir / "mdp_parameters.mdp")
|
||||||
|
|
||||||
|
# Copy run.sh
|
||||||
|
shutil.copy(root_dir / "run.sh", simdir / "run.sh")
|
||||||
|
|
||||||
|
# Generate annealing section
|
||||||
|
annealing = generate_annealing(d=50, l=50, u=1000, s=50, e=2000)
|
||||||
|
# -d 20 -l 750 -u 2100 -s 50 -e 10000 -c
|
||||||
|
with (simdir / "mdp_parameters.mdp").open("a") as f:
|
||||||
|
f.write("\n")
|
||||||
|
f.write(annealing)
|
||||||
|
|
||||||
|
print(f"Annealing directory {simdir} created and filled.")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print(f"Usage: {sys.argv[0]} ROOT_DIRECTORY")
|
||||||
|
sys.exit(1)
|
||||||
|
main(Path(sys.argv[1]))
|
||||||
|
|
@@ -1,40 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
get_ini_value() {
|
|
||||||
local file=$1
|
|
||||||
local section=$2
|
|
||||||
local key=$3
|
|
||||||
|
|
||||||
awk -F '=' -v section="$section" -v key="$key" '
|
|
||||||
$0 ~ "\\[" section "\\]" { in_section = 1; next }
|
|
||||||
in_section && $1 ~ "^" key"[[:space:]]*$" {
|
|
||||||
gsub(/[[:space:]]+/, "", $2)
|
|
||||||
print $2
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
$0 ~ /^\[/ { in_section = 0 }
|
|
||||||
' "$file"
|
|
||||||
}
|
|
||||||
|
|
||||||
simdir="01_an1"
|
|
||||||
|
|
||||||
|
|
||||||
rm -r "$simdir" 2>/dev/null
|
|
||||||
mkdir "$simdir"
|
|
||||||
|
|
||||||
cp topology.top "$simdir/"
|
|
||||||
"$(dirname $0)/replace_params.sh" params.ini topology.top --output "$simdir/topology.top"
|
|
||||||
"$(dirname $0)/replace_params.sh" params_an1.ini mdp_parameters.mdp --output "$simdir/mdp_parameters.mdp"
|
|
||||||
"$(dirname $0)/replace_params.sh" params.ini "$simdir/mdp_parameters.mdp" --output "$simdir/mdp_parameters.mdp"
|
|
||||||
cp "$(dirname $0)/run.sh" "$simdir/"
|
|
||||||
cp "00_em/out/out.gro" "$simdir/gro_start.gro"
|
|
||||||
|
|
||||||
|
|
||||||
annealing=$($(dirname $0)/generate_annealing.py -d 50 -l 50 -u 1000 -s 50 -e 2000)
|
|
||||||
|
|
||||||
#annealing=$($(dirname $0)/generate_annealing.py -d 30 -l 400 -u 950 -s 50 -e 2000)
|
|
||||||
|
|
||||||
echo "" >> "$simdir/mdp_parameters.mdp"
|
|
||||||
echo "$annealing" >> "$simdir/mdp_parameters.mdp"
|
|
||||||
|
|
||||||
|
|
@@ -1,39 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
get_ini_value() {
|
|
||||||
local file=$1
|
|
||||||
local section=$2
|
|
||||||
local key=$3
|
|
||||||
|
|
||||||
awk -F '=' -v section="$section" -v key="$key" '
|
|
||||||
$0 ~ "\\[" section "\\]" { in_section = 1; next }
|
|
||||||
in_section && $1 ~ "^" key"[[:space:]]*$" {
|
|
||||||
gsub(/[[:space:]]+/, "", $2)
|
|
||||||
print $2
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
$0 ~ /^\[/ { in_section = 0 }
|
|
||||||
' "$file"
|
|
||||||
}
|
|
||||||
|
|
||||||
simdir="02_an_cooling"
|
|
||||||
|
|
||||||
|
|
||||||
rm -r "$simdir" 2>/dev/null
|
|
||||||
mkdir "$simdir"
|
|
||||||
|
|
||||||
cp topology.top "$simdir/"
|
|
||||||
"$(dirname $0)/replace_params.sh" params.ini topology.top --output "$simdir/topology.top"
|
|
||||||
"$(dirname $0)/replace_params.sh" params_an1.ini mdp_parameters.mdp --output "$simdir/mdp_parameters.mdp"
|
|
||||||
"$(dirname $0)/replace_params.sh" params.ini "$simdir/mdp_parameters.mdp" --output "$simdir/mdp_parameters.mdp"
|
|
||||||
cp "$(dirname $0)/run.sh" "$simdir/"
|
|
||||||
#cp "00_em/out/out.gro" "$simdir/gro_start.gro"
|
|
||||||
|
|
||||||
|
|
||||||
#annealing=$($(dirname $0)/generate_annealing.py -d 50 -l 180 -u 750 -e 2000 -c)
|
|
||||||
annealing=$($(dirname $0)/generate_annealing.py -d 20 -l 750 -u 2100 -s 50 -e 10000 -c)
|
|
||||||
|
|
||||||
echo "" >> "$simdir/mdp_parameters.mdp"
|
|
||||||
echo "$annealing" >> "$simdir/mdp_parameters.mdp"
|
|
||||||
|
|
||||||
|
|
0
polyamorphism_optimization/innitialize_sim.py
Normal file → Executable file
0
polyamorphism_optimization/innitialize_sim.py
Normal file → Executable file
41
polyamorphism_optimization/replace_params.py
Normal file
41
polyamorphism_optimization/replace_params.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import sys
|
||||||
|
import configparser
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
def replace_params(param_file: Path, template_file: Path, output_file: Path):
|
||||||
|
"""Replace placeholders in template_file with values from an INI file."""
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.optionxform = str # keep case sensitivity
|
||||||
|
config.read(param_file)
|
||||||
|
|
||||||
|
# Flatten into a simple dict {KEY: VALUE}
|
||||||
|
params = {}
|
||||||
|
for section in config.sections():
|
||||||
|
for key, value in config.items(section):
|
||||||
|
params[key] = value
|
||||||
|
|
||||||
|
content = template_file.read_text()
|
||||||
|
|
||||||
|
for key, value in params.items():
|
||||||
|
content = content.replace(key, value)
|
||||||
|
|
||||||
|
output_file.write_text(content)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if len(sys.argv) != 4:
|
||||||
|
print(f"Usage: {sys.argv[0]} PARAM_FILE TEMPLATE_FILE OUTPUT_FILE")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
param_file = Path(sys.argv[1])
|
||||||
|
template_file = Path(sys.argv[2])
|
||||||
|
output_file = Path(sys.argv[3])
|
||||||
|
|
||||||
|
replace_params(param_file, template_file, output_file)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
@@ -17,7 +17,7 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
po_setup_sim = "polyamorphism_optimization.setup_sim:main"
|
po_init_sim = "polyamorphism_optimization.innitialize_sim:main"
|
||||||
|
|
||||||
[tool.setuptools.package-data]
|
[tool.setuptools.package-data]
|
||||||
polyamorphism_optimization = ["templates/*"]
|
polyamorphism_optimization = ["templates/*"]
|
||||||
|
Reference in New Issue
Block a user