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]
|
||||
po_setup_sim = "polyamorphism_optimization.setup_sim:main"
|
||||
po_init_sim = "polyamorphism_optimization.innitialize_sim:main"
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
polyamorphism_optimization = ["templates/*"]
|
||||
|
Reference in New Issue
Block a user