diff --git a/demo/jobs.in b/demo/jobs.in new file mode 100644 index 0000000..74048de --- /dev/null +++ b/demo/jobs.in @@ -0,0 +1,20 @@ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/1/2_analysis/1_cluster/c0-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/1/2_analysis/1_cluster/c1-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/1/2_analysis/1_cluster/c2-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/1/2_analysis/1_cluster/c3-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/2/2_analysis/1_cluster/c0-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/2/2_analysis/1_cluster/c1-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/2/2_analysis/1_cluster/c2-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/2/2_analysis/1_cluster/c3-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/3/2_analysis/1_cluster/c0-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/3/2_analysis/1_cluster/c1-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/3/2_analysis/1_cluster/c2-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/3/2_analysis/1_cluster/c3-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/4/2_analysis/1_cluster/c0-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/4/2_analysis/1_cluster/c1-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/4/2_analysis/1_cluster/c2-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/4/2_analysis/1_cluster/c3-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/5/2_analysis/1_cluster/c0-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/5/2_analysis/1_cluster/c1-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/5/2_analysis/1_cluster/c2-opt/ +/home/kastner/projects/mimochromes/mc6/2_oxo/3_md/5/2_analysis/1_cluster/c3-opt/ \ No newline at end of file diff --git a/demo/jobscript.sh b/demo/jobscript.sh new file mode 100644 index 0000000..5d79d77 --- /dev/null +++ b/demo/jobscript.sh @@ -0,0 +1,24 @@ +#$ -S /bin/bash # Specifies interpreting shell for the job +#$ -N pyEF # Identifier for the job +#$ -l h_rt=48:00:00 # Specify maximum runtime +#$ -l h_rss=40G # Specify requested memory +#$ -q gpusnew # Specify which queue to submit the job to +#$ -l gpus=1 # Always set to 1 no matter how many gpus are used. +#$ -pe smp 2 # Number of parallel processes to run (defines how many GPUs) +# -fin job_paths.in +# -fin metal_indices.in + +export OMP_NUM_THREADS=2 # Number of threads to be spawned (needs to be the same as -smp) +source ~/.bashrc +conda activate molsimp + +# --geom Whether to perform a geometry check +# --esp Whether to perform ESP analysis +# --jobs_file Paths to all the QM jobs +# --metals_file The indices of the metals for each job + +RUN="/home/kastner/packages/pyEF/pyef/run.py" +JOBS="/home/kastner/packages/pyEF/demo/jobs.in" +METALS="/home/kastner/packages/pyEF/demo/metals.in" +python $RUN --geom --esp --jobs_file $JOBS --metals_file $METALS > pyEF.log + diff --git a/demo/metals.in b/demo/metals.in new file mode 100644 index 0000000..498f727 --- /dev/null +++ b/demo/metals.in @@ -0,0 +1,20 @@ +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 +486 \ No newline at end of file diff --git a/pyef/jobscript.sh b/pyef/jobscript.sh deleted file mode 100644 index ef03e6d..0000000 --- a/pyef/jobscript.sh +++ /dev/null @@ -1,18 +0,0 @@ -#$ -S /bin/bash # Specifies interpreting shell for the job -#$ -N pyEF # Identifier for the job -#$ -l h_rt=48:00:00 # Specify maximum runtime -#$ -l h_rss=40G # Specify requested memory -#$ -q (gpus|gpusbig) # Specify which queue to submit the job to -#$ -l gpus=1 # Always set to 1 no matter how many gpus are used. -#$ -pe smp 2 # Number of parallel processes to run (defines how many GPUs) -# -fin run.py # Copy input file in the running directory -# -fin geometry.py -# -fin analysis.py - -source ~/.bashrc -conda activate molsimp -export OMP_NUM_THREADS=2 # Number of threads to be spawned (needs to be the same as -smp) - -echo "running cage jobs!" -cd /home/manets12/DavidMimichrome -python run.py > Efield_multiwfn_ExampleTest.log diff --git a/pyef/run.py b/pyef/run.py index 6cf2994..24cbe80 100644 --- a/pyef/run.py +++ b/pyef/run.py @@ -1,4 +1,7 @@ import os +import sys +import pyef +import argparse from pyef.analysis import Electrostatics from pyef.geometry import ErrorAnalysis @@ -55,11 +58,23 @@ def main(jobs, geom_flag, esp_flag, metal_indices): # Method to Compute Efield Projections on bonds connected to the atom specified by index in metal_indices dataObject.getEFieldData(Efield_data_filename) +def read_file_lines(file_path): + """Reads in auxiliary files containing job information""" + with open(file_path, 'r') as file: + return [line.strip() for line in file.readlines()] + if __name__ == "__main__": - geom_flag = False # Perform a geometry check - esp_flag = False # Perform analysis of electrostatics - jobs = ['/home/kastner/DavidMimichrome/mc6_1_2best_c0opt', '/home/kastner/DavidMimichrome/mc6_2_6best_c0opt'] - metal_indices = [486, 486] - main(jobs, geom_flag, esp_flag, metal_indices) + # Example: python run.py --geom --esp --jobs_file path/to/jobs.in --metals_file path/to/metals.in > pyEF.log + parser = argparse.ArgumentParser(description="Script Description") + parser.add_argument("--geom", action="store_true", help="Perform a geometry check") + parser.add_argument("--esp", action="store_true", help="Perform analysis of electrostatics") + parser.add_argument("--jobs_file", required=True, help="Path to file containing job paths") + parser.add_argument("--metals_file", required=True, help="Path to file containing metal indices") + + args = parser.parse_args() + geom_flag = args.geom + esp_flag = args.esp + jobs = read_file_lines(args.jobs_file) + metal_indices = [int(idx) for idx in read_file_lines(args.metals_file)] - # /home/kastner/DavidMimichrome/mc6_1_2best_c0opt, /home/kastner/DavidMimichrome/mc6_2_6best_c0opt \ No newline at end of file + main(jobs, geom_flag, esp_flag, metal_indices)