From c0d23e61db8bf75ce3514a9aa5405ceee405a6ee Mon Sep 17 00:00:00 2001 From: cassandra Date: Fri, 8 May 2026 13:05:01 +0200 Subject: [PATCH 01/14] added launch mods plus scripts --- Launch_scripts/cscs_launch.sh | 91 +++ Launch_scripts/systems.csv | 992 +++++++++++++++++++++++++++ Launch_scripts/workstation_launch.sh | 76 ++ src/agents/md_agent.py | 11 +- src/agents/prep_agent.py | 11 +- 5 files changed, 1172 insertions(+), 9 deletions(-) create mode 100644 Launch_scripts/cscs_launch.sh create mode 100644 Launch_scripts/systems.csv create mode 100755 Launch_scripts/workstation_launch.sh diff --git a/Launch_scripts/cscs_launch.sh b/Launch_scripts/cscs_launch.sh new file mode 100644 index 0000000..5edd63f --- /dev/null +++ b/Launch_scripts/cscs_launch.sh @@ -0,0 +1,91 @@ +#!/bin/bash +#SBATCH --account=a131 +#SBATCH --partition=debug +#SBATCH --job-name=dynamate +#SBATCH --output=$SCRATCH/logs/dynamate/dynamate_%j_%N.out +#SBATCH --error=$SCRATCH/logs/dynamate/dynamate_%j_%N.err +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=4 +#SBATCH --gpus-per-task=1 +#SBATCH --time=01:00:00 +#SBATCH --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" + +set -e +mkdir -p agent_logs + +PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python +cd /capstor/store/cscs/swissai/a131/$USER/projects/DynaMate + +CSV_FILE="Launch/systems.csv" +FAILED_SYSTEMS="Launch/failed_systems.txt" + +if [[ ! -f "$CSV_FILE" ]]; then + echo "[ERROR] CSV file not found: $CSV_FILE" + exit 1 +fi + +NODE_ID=$SLURM_NODEID +GPU_ID=$SLURM_LOCALID +GPUS_PER_NODE=4 + +TOTAL_ROWS=$(tail -n +2 "$CSV_FILE" | wc -l) +DATA_PER_NODE=$(( TOTAL_ROWS / SLURM_NNODES )) +DATA_PER_GPU=$(( DATA_PER_NODE / GPUS_PER_NODE )) + +START_ROW=$(( NODE_ID * DATA_PER_NODE + GPU_ID * DATA_PER_GPU )) +END_ROW=$(( START_ROW + DATA_PER_GPU - 1 )) + +LINE_NUM=$((START_ROW - 1)) +tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ +| while IFS=',' read -r PROTEIN LIGAND MODEL; do + ((LINE_NUM++)) + + echo "[INFO] Processing CSV line $LINE_NUM" + + # Trim leading/trailing spaces + PROTEIN=$(echo "$PROTEIN" | xargs) + LIGAND=$(echo "$LIGAND" | xargs) + MODEL=$(echo "$MODEL" | xargs) + + # Take only the last part of the model name after the last '/' + MODEL_SHORT=${MODEL##*/} + echo "Model='$MODEL'" + + # Handle missing ligand + if [[ "$LIGAND" == "" || "$LIGAND" == "None" || "$LIGAND" == "none" ]]; then + LIG_ARG="None" + else + LIG_ARG="$LIGAND" + fi + + for RUN in 1 2 3; do + + LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" + + echo "------------------------------------------------------" + echo "[INFO] Running: Protein=$PROTEIN | Ligand=$LIG_ARG | Model=$MODEL (Repeat $RUN/3)" + echo "[INFO] Output → $LOGFILE" + echo "------------------------------------------------------" + + # Run the Python script + if ! $PYTHON -u main.py \ + --pdb_id "$PROTEIN" \ + --ligand "$LIG_ARG" \ + --model "$MODEL" \ + --temp 300 \ + --duration 0.01 \ + > "$LOGFILE" 2>&1 + then + echo "[WARN] DynaMate failed for $PROTEIN $LIG_ARG, run $RUN." | tee -a "$FAILED_SYSTEMS" + fi + + echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL)." + + done + + # Save progress + echo $((LINE_NUM + 1)) > "$CHECKPOINT" + +done + +echo "[INFO] All runs completed!" diff --git a/Launch_scripts/systems.csv b/Launch_scripts/systems.csv new file mode 100644 index 0000000..ab9ac79 --- /dev/null +++ b/Launch_scripts/systems.csv @@ -0,0 +1,992 @@ +entry_pdb_id,ligand_unique_ccd_code,model +7grs,NT9,openrouter/openai/gpt-5-mini +1dy4,SNP,openrouter/openai/gpt-5-mini +7a4q,QY2,openrouter/openai/gpt-5-mini +4a4q,UX9,openrouter/openai/gpt-5-mini +2p5c,SAH,openrouter/openai/gpt-5-mini +2p5y,NAD,openrouter/openai/gpt-5-mini +1bxh,MAM,openrouter/openai/gpt-5-mini +2e5y,ATP,openrouter/openai/gpt-5-mini +5f1a,SAL,openrouter/openai/gpt-5-mini +6gog,GNP,openrouter/openai/gpt-5-mini +4ilx,1EZ,openrouter/openai/gpt-5-mini +2ilz,GTP,openrouter/openai/gpt-5-mini +2ek7,SAH,openrouter/openai/gpt-5-mini +2ek2,SAH,openrouter/openai/gpt-5-mini +2ek4,SAH,openrouter/openai/gpt-5-mini +5aen,DP8,openrouter/openai/gpt-5-mini +4oub,NAD,openrouter/openai/gpt-5-mini +2ou0,MR3,openrouter/openai/gpt-5-mini +2ou5,FMN,openrouter/openai/gpt-5-mini +4eok,4SP,openrouter/openai/gpt-5-mini +5xa8,ADP,openrouter/openai/gpt-5-mini +4yho,4CC,openrouter/openai/gpt-5-mini +4xmt,DPP,openrouter/openai/gpt-5-mini +4xmz,DAB,openrouter/openai/gpt-5-mini +4xmx,BES,openrouter/openai/gpt-5-mini +4zow,CLM,openrouter/openai/gpt-5-mini +7ci9,FYL,openrouter/openai/gpt-5-mini +3cid,318,openrouter/openai/gpt-5-mini +3cib,314,openrouter/openai/gpt-5-mini +4mmp,SLB,openrouter/openai/gpt-5-mini +2ves,GVR,openrouter/openai/gpt-5-mini +7ve7,NAP,openrouter/openai/gpt-5-mini +7c3v,NAP,openrouter/openai/gpt-5-mini +4z1q,558,openrouter/openai/gpt-5-mini +4z1j,4KC,openrouter/openai/gpt-5-mini +4z1s,559,openrouter/openai/gpt-5-mini +4z1k,4KB,openrouter/openai/gpt-5-mini +3rs5,GNP,openrouter/openai/gpt-5-mini +3rs3,GNP,openrouter/openai/gpt-5-mini +3rs2,GNP,openrouter/openai/gpt-5-mini +3iai,AZM,openrouter/openai/gpt-5-mini +7qzz,HHT,openrouter/openai/gpt-5-mini +2nuo,BGC,openrouter/openai/gpt-5-mini +6inw,SAM,openrouter/openai/gpt-5-mini +3qam,ATP,openrouter/openai/gpt-5-mini +6gpa,GAL,openrouter/openai/gpt-5-mini +2ofi,ADK,openrouter/openai/gpt-5-mini +1jg6,UDP,openrouter/openai/gpt-5-mini +1jg7,UDP,openrouter/openai/gpt-5-mini +5jgs,EVF,openrouter/openai/gpt-5-mini +5jg5,EVF,openrouter/openai/gpt-5-mini +2jki,ADP,openrouter/openai/gpt-5-mini +5it8,GUN,openrouter/openai/gpt-5-mini +4itm,ATP,openrouter/openai/gpt-5-mini +2hd1,IBM,openrouter/openai/gpt-5-mini +6h9b,GDP,openrouter/openai/gpt-5-mini +5h9i,XAN,openrouter/openai/gpt-5-mini +7aii,RFE,openrouter/openai/gpt-5-mini +7aif,RE5,openrouter/openai/gpt-5-mini +5hcl,5Y9,openrouter/openai/gpt-5-mini +3k8y,GNP,openrouter/openai/gpt-5-mini +1u1b,PAX,openrouter/openai/gpt-5-mini +4msf,HSR,openrouter/openai/gpt-5-mini +4nqg,CZH,openrouter/openai/gpt-5-mini +3bgc,LJH,openrouter/openai/gpt-5-mini +1ec0,BED,openrouter/openai/gpt-5-mini +7dmc,H9F,openrouter/openai/gpt-5-mini +7u31,L7I,openrouter/openai/gpt-5-mini +5u3d,MRY,openrouter/openai/gpt-5-mini +5u35,MXE,openrouter/openai/gpt-5-mini +5qbl,D9D,openrouter/openai/gpt-5-mini +6qbh,S43,openrouter/openai/gpt-5-mini +5mha,NDP,openrouter/openai/gpt-5-mini +3mhp,FAD,openrouter/openai/gpt-5-mini +3qp8,HL0,openrouter/openai/gpt-5-mini +2g0g,SP0,openrouter/openai/gpt-5-mini +4jji,NAD,openrouter/openai/gpt-5-mini +4g41,MTA,openrouter/openai/gpt-5-mini +4is9,LTF,openrouter/openai/gpt-5-mini +4isi,1GG,openrouter/openai/gpt-5-mini +5isj,6LE,openrouter/openai/gpt-5-mini +4ish,1GE,openrouter/openai/gpt-5-mini +5is4,6LY,openrouter/openai/gpt-5-mini +3l75,FNM,openrouter/openai/gpt-5-mini +3l72,IKR,openrouter/openai/gpt-5-mini +3l70,JZV,openrouter/openai/gpt-5-mini +3l73,JZZ,openrouter/openai/gpt-5-mini +5l7v,GNL,openrouter/openai/gpt-5-mini +3l74,FMX,openrouter/openai/gpt-5-mini +3l71,AZO,openrouter/openai/gpt-5-mini +4v5l,GCP,openrouter/openai/gpt-5-mini +6jyq,EAU,openrouter/openai/gpt-5-mini +3o9c,K20,openrouter/openai/gpt-5-mini +3o9h,K2E,openrouter/openai/gpt-5-mini +3o99,K13,openrouter/openai/gpt-5-mini +2vg0,GPP,openrouter/openai/gpt-5-mini +1obo,FMN,openrouter/openai/gpt-5-mini +7lgk,XZ7,openrouter/openai/gpt-5-mini +2pqd,GG9,openrouter/openai/gpt-5-mini +2pqc,RC1,openrouter/openai/gpt-5-mini +2pq9,GG9,openrouter/openai/gpt-5-mini +5a27,MYA,openrouter/openai/gpt-5-mini +4tyn,ADP,openrouter/openai/gpt-5-mini +5b4o,6DQ,openrouter/openai/gpt-5-mini +5i7x,67B,openrouter/openai/gpt-5-mini +5i7y,69G,openrouter/openai/gpt-5-mini +1i7z,COC,openrouter/openai/gpt-5-mini +7q6w,93L,openrouter/openai/gpt-5-mini +6q60,HJH,openrouter/openai/gpt-5-mini +7q6v,95O,openrouter/openai/gpt-5-mini +4l9i,8PR,openrouter/openai/gpt-5-mini +5l96,6RZ,openrouter/openai/gpt-5-mini +5l97,6RW,openrouter/openai/gpt-5-mini +1r58,AO5,openrouter/openai/gpt-5-mini +4r5b,3J4,openrouter/openai/gpt-5-mini +2emr,SAH,openrouter/openai/gpt-5-mini +8h81,HYP,openrouter/openai/gpt-5-mini +5lzi,7DB,openrouter/openai/gpt-5-mini +2wjh,GDP,openrouter/openai/gpt-5-mini +1m6w,12H,openrouter/openai/gpt-5-mini +7e66,HY6,openrouter/openai/gpt-5-mini +5a0c,JJV,openrouter/openai/gpt-5-mini +5j7l,TAC,openrouter/openai/gpt-5-mini +4xo4,MET,openrouter/openai/gpt-5-mini +4xou,ACP,openrouter/openai/gpt-5-mini +4xob,KGM,openrouter/openai/gpt-5-mini +3k2d,MET,openrouter/openai/gpt-5-mini +7e00,PRO,openrouter/openai/gpt-5-mini +2egb,SAH,openrouter/openai/gpt-5-mini +2egs,SAH,openrouter/openai/gpt-5-mini +5jvz,FLP,openrouter/openai/gpt-5-mini +5jvl,6NQ,openrouter/openai/gpt-5-mini +7oli,8HG,openrouter/openai/gpt-5-mini +5b3s,CHD,openrouter/openai/gpt-5-mini +6b3f,CKV,openrouter/openai/gpt-5-mini +6b3c,CKS,openrouter/openai/gpt-5-mini +8fwa,CYC,openrouter/openai/gpt-5-mini +2q1j,FXI,openrouter/openai/gpt-5-mini +4q1w,017,openrouter/openai/gpt-5-mini +4gid,0GH,openrouter/openai/gpt-5-mini +3gi4,K60,openrouter/openai/gpt-5-mini +7td8,AGG,openrouter/openai/gpt-5-mini +5lud,76X,openrouter/openai/gpt-5-mini +7zfv,IJR,openrouter/openai/gpt-5-mini +5zfk,HBI,openrouter/openai/gpt-5-mini +5e2k,BX4,openrouter/openai/gpt-5-mini +5e28,BC5,openrouter/openai/gpt-5-mini +1nzf,UPG,openrouter/openai/gpt-5-mini +1nzd,UPG,openrouter/openai/gpt-5-mini +1kta,PMP,openrouter/openai/gpt-5-mini +3qls,GLY,openrouter/openai/gpt-5-mini +3qlh,MNK,openrouter/openai/gpt-5-mini +6oy2,NJJ,openrouter/openai/gpt-5-mini +6oy1,NJ1,openrouter/openai/gpt-5-mini +1oyq,T87,openrouter/openai/gpt-5-mini +3oy4,017,openrouter/openai/gpt-5-mini +3scx,DUP,openrouter/openai/gpt-5-mini +6sck,DAR,openrouter/openai/gpt-5-mini +7vm7,7RF,openrouter/openai/gpt-5-mini +7vm6,7R8,openrouter/openai/gpt-5-mini +2vml,CYC,openrouter/openai/gpt-5-mini +5icf,SAH,openrouter/openai/gpt-5-mini +2w5t,GP9,openrouter/openai/gpt-5-mini +2w5r,GP9,openrouter/openai/gpt-5-mini +1fm6,BRL,openrouter/openai/gpt-5-mini +1fm9,570,openrouter/openai/gpt-5-mini +6fa3,GNP,openrouter/openai/gpt-5-mini +6fa1,GNP,openrouter/openai/gpt-5-mini +5ku8,6XK,openrouter/openai/gpt-5-mini +3kuc,GDP,openrouter/openai/gpt-5-mini +1ebz,BEC,openrouter/openai/gpt-5-mini +1eby,BEB,openrouter/openai/gpt-5-mini +1ebw,BEI,openrouter/openai/gpt-5-mini +4hoe,GLY,openrouter/openai/gpt-5-mini +4hof,GLY,openrouter/openai/gpt-5-mini +7wb6,F5R,openrouter/openai/gpt-5-mini +7wbs,8LT,openrouter/openai/gpt-5-mini +1wbk,568,openrouter/openai/gpt-5-mini +4wb7,ATP,openrouter/openai/gpt-5-mini +1wbm,BLL,openrouter/openai/gpt-5-mini +4j2d,TTP,openrouter/openai/gpt-5-mini +4j2a,TTP,openrouter/openai/gpt-5-mini +5j20,6FJ,openrouter/openai/gpt-5-mini +2wc1,FMN,openrouter/openai/gpt-5-mini +2hr1,SAH,openrouter/openai/gpt-5-mini +6a5x,9R3,openrouter/openai/gpt-5-mini +5a5q,6XC,openrouter/openai/gpt-5-mini +6a5y,9R0,openrouter/openai/gpt-5-mini +5zdb,AR6,openrouter/openai/gpt-5-mini +1gc5,ADP,openrouter/openai/gpt-5-mini +3tgu,WF3,openrouter/openai/gpt-5-mini +6ag7,H55,openrouter/openai/gpt-5-mini +1j1g,CPG,openrouter/openai/gpt-5-mini +1j1f,CPG,openrouter/openai/gpt-5-mini +2e4r,SAH,openrouter/openai/gpt-5-mini +5e41,AUL,openrouter/openai/gpt-5-mini +2p6d,SAH,openrouter/openai/gpt-5-mini +2p6k,SAH,openrouter/openai/gpt-5-mini +2p6i,SAH,openrouter/openai/gpt-5-mini +4p6w,MOF,openrouter/openai/gpt-5-mini +5gt4,2KB,openrouter/openai/gpt-5-mini +1xv5,UDP,openrouter/openai/gpt-5-mini +2bza,ABN,openrouter/openai/gpt-5-mini +1jof,PIN,openrouter/openai/gpt-5-mini +3g7x,HSM,openrouter/openai/gpt-5-mini +5yp5,4CZ,openrouter/openai/gpt-5-mini +5zvp,GDP,openrouter/openai/gpt-5-mini +3x1z,GNP,openrouter/openai/gpt-5-mini +2x1t,RES,openrouter/openai/gpt-5-mini +5x19,CHD,openrouter/openai/gpt-5-mini +4y43,46T,openrouter/openai/gpt-5-mini +4y4u,46V,openrouter/openai/gpt-5-mini +4y41,46O,openrouter/openai/gpt-5-mini +4y4e,46R,openrouter/openai/gpt-5-mini +4i3z,ADP,openrouter/openai/gpt-5-mini +2o4c,NAD,openrouter/openai/gpt-5-mini +5rop,47E,openrouter/openai/gpt-5-mini +3moz,5IP,openrouter/openai/gpt-5-mini +8qve,FAD,openrouter/openai/gpt-5-mini +6tx7,V1L,openrouter/openai/gpt-5-mini +1tx8,AM4,openrouter/openai/gpt-5-mini +6tx6,NCA,openrouter/openai/gpt-5-mini +6tx5,4MZ,openrouter/openai/gpt-5-mini +6tx4,HRZ,openrouter/openai/gpt-5-mini +4tx0,384,openrouter/openai/gpt-5-mini +6hia,G7N,openrouter/openai/gpt-5-mini +3mkd,ADP,openrouter/openai/gpt-5-mini +6cvl,AGS,openrouter/openai/gpt-5-mini +2cvz,NDP,openrouter/openai/gpt-5-mini +5e9i,F60,openrouter/openai/gpt-5-mini +5e9k,5KX,openrouter/openai/gpt-5-mini +5e95,GDP,openrouter/openai/gpt-5-mini +1c9w,NAP,openrouter/openai/gpt-5-mini +4kap,1QV,openrouter/openai/gpt-5-mini +6kae,2FU,openrouter/openai/gpt-5-mini +6b83,6NA,openrouter/openai/gpt-5-mini +3b8h,NAD,openrouter/openai/gpt-5-mini +3b82,NAD,openrouter/openai/gpt-5-mini +1u6q,745,openrouter/openai/gpt-5-mini +2rb1,261,openrouter/openai/gpt-5-mini +2rbq,263,openrouter/openai/gpt-5-mini +1kvl,THN,openrouter/openai/gpt-5-mini +6c7d,EOJ,openrouter/openai/gpt-5-mini +6c7e,EOG,openrouter/openai/gpt-5-mini +4c7f,GC2,openrouter/openai/gpt-5-mini +6c7i,EP7,openrouter/openai/gpt-5-mini +6zb0,QCW,openrouter/openai/gpt-5-mini +3sq4,TTP,openrouter/openai/gpt-5-mini +3sq2,TTP,openrouter/openai/gpt-5-mini +3sq6,EPJ,openrouter/openai/gpt-5-mini +3sq0,DUP,openrouter/openai/gpt-5-mini +3sq1,DUP,openrouter/openai/gpt-5-mini +4y2w,ALA,openrouter/openai/gpt-5-mini +6y2o,O72,openrouter/openai/gpt-5-mini +4ldj,GDP,openrouter/openai/gpt-5-mini +7ldy,DJR,openrouter/openai/gpt-5-mini +5tcc,J56,openrouter/openai/gpt-5-mini +6ay3,C3J,openrouter/openai/gpt-5-mini +4k13,ETS,openrouter/openai/gpt-5-mini +4k11,0J9,openrouter/openai/gpt-5-mini +4k18,1OB,openrouter/openai/gpt-5-mini +2ev9,SKM,openrouter/openai/gpt-5-mini +2r43,G3G,openrouter/openai/gpt-5-mini +5r4z,GWA,openrouter/openai/gpt-5-mini +5r4x,K3D,openrouter/openai/gpt-5-mini +2x8z,X8Z,openrouter/openai/gpt-5-mini +1x8t,RC1,openrouter/openai/gpt-5-mini +2h42,VIA,openrouter/openai/gpt-5-mini +1h46,RNP,openrouter/openai/gpt-5-mini +2h44,7CA,openrouter/openai/gpt-5-mini +6epx,BQW,openrouter/openai/gpt-5-mini +4epy,GDP,openrouter/openai/gpt-5-mini +6epu,BQH,openrouter/openai/gpt-5-mini +3rxg,SZ3,openrouter/openai/gpt-5-mini +3rxa,SZ1,openrouter/openai/gpt-5-mini +3rxh,HSM,openrouter/openai/gpt-5-mini +3rxc,2AP,openrouter/openai/gpt-5-mini +3rxf,4AP,openrouter/openai/gpt-5-mini +3rxr,SZ1,openrouter/openai/gpt-5-mini +3rxb,ALG,openrouter/openai/gpt-5-mini +3rxl,SZ9,openrouter/openai/gpt-5-mini +2qfs,S3P,openrouter/openai/gpt-5-mini +6qfg,J08,openrouter/openai/gpt-5-mini +2qfq,S3P,openrouter/openai/gpt-5-mini +3rk8,PYR,openrouter/openai/gpt-5-mini +3s9h,DUP,openrouter/openai/gpt-5-mini +7tle,GDP,openrouter/openai/gpt-5-mini +3ar6,12D,openrouter/openai/gpt-5-mini +3ar2,ACP,openrouter/openai/gpt-5-mini +3ar5,TM1,openrouter/openai/gpt-5-mini +3ar4,ATP,openrouter/openai/gpt-5-mini +3ar7,128,openrouter/openai/gpt-5-mini +3ar9,TM1,openrouter/openai/gpt-5-mini +3ar3,ADP,openrouter/openai/gpt-5-mini +4tmv,GSP,openrouter/openai/gpt-5-mini +1d4i,BEG,openrouter/openai/gpt-5-mini +1d4h,BEH,openrouter/openai/gpt-5-mini +1d4j,MSC,openrouter/openai/gpt-5-mini +2x45,HSM,openrouter/openai/gpt-5-mini +4ogj,2TA,openrouter/openai/gpt-5-mini +4ogi,R78,openrouter/openai/gpt-5-mini +4fud,6UP,openrouter/openai/gpt-5-mini +4fu8,2UP,openrouter/openai/gpt-5-mini +6qs5,JGB,openrouter/openai/gpt-5-mini +4qsv,THM,openrouter/openai/gpt-5-mini +4qsx,38S,openrouter/openai/gpt-5-mini +3qsy,GNP,openrouter/openai/gpt-5-mini +3snn,DCP,openrouter/openai/gpt-5-mini +8snz,FMN,openrouter/openai/gpt-5-mini +8fg4,GNP,openrouter/openai/gpt-5-mini +8fg3,GNP,openrouter/openai/gpt-5-mini +3fg2,FAD,openrouter/openai/gpt-5-mini +3fgd,BYA,openrouter/openai/gpt-5-mini +4av5,FYZ,openrouter/openai/gpt-5-mini +5k6j,6QQ,openrouter/openai/gpt-5-mini +5l66,BO2,openrouter/openai/gpt-5-mini +7nlm,UHE,openrouter/openai/gpt-5-mini +5c4s,4Y5,openrouter/openai/gpt-5-mini +5c4o,4F1,openrouter/openai/gpt-5-mini +3ids,NAD,openrouter/openai/gpt-5-mini +1fl3,SPB,openrouter/openai/gpt-5-mini +1xl5,190,openrouter/openai/gpt-5-mini +8hus,7YY,openrouter/openai/gpt-5-mini +8hux,7YY,openrouter/openai/gpt-5-mini +2huv,SAH,openrouter/openai/gpt-5-mini +3a8a,4FZ,openrouter/openai/gpt-5-mini +3a8c,O09,openrouter/openai/gpt-5-mini +3a8d,O09,openrouter/openai/gpt-5-mini +3a86,O09,openrouter/openai/gpt-5-mini +3gw5,72X,openrouter/openai/gpt-5-mini +6rmx,5DU,openrouter/openai/gpt-5-mini +3uk4,XXD,openrouter/openai/gpt-5-mini +8c6o,CZH,openrouter/openai/gpt-5-mini +5tex,7AU,openrouter/openai/gpt-5-mini +1mi4,S3P,openrouter/openai/gpt-5-mini +5tqz,AGC,openrouter/openai/gpt-5-mini +4drm,0MC,openrouter/openai/gpt-5-mini +8u2e,UP9,openrouter/openai/gpt-5-mini +4u27,VIF,openrouter/openai/gpt-5-mini +4u21,FWD,openrouter/openai/gpt-5-mini +7u2z,L7C,openrouter/openai/gpt-5-mini +5g20,MYA,openrouter/openai/gpt-5-mini +1g2k,NM1,openrouter/openai/gpt-5-mini +6g2r,EJK,openrouter/openai/gpt-5-mini +7l4c,SAH,openrouter/openai/gpt-5-mini +7l4h,SAH,openrouter/openai/gpt-5-mini +7a1x,QWB,openrouter/openai/gpt-5-mini +8t1u,SAH,openrouter/openai/gpt-5-mini +3swa,UD1,openrouter/openai/gpt-5-mini +3swq,EPU,openrouter/openai/gpt-5-mini +1r0a,AGC,openrouter/openai/gpt-5-mini +5hzn,66A,openrouter/openai/gpt-5-mini +5hw8,FK5,openrouter/openai/gpt-5-mini +8hwp,BUA,openrouter/openai/gpt-5-mini +4hw3,19G,openrouter/openai/gpt-5-mini +4hx2,1AX,openrouter/openai/gpt-5-mini +4b6l,9ZP,openrouter/openai/gpt-5-mini +4dje,C2F,openrouter/openai/gpt-5-mini +3esz,FMN,openrouter/openai/gpt-5-mini +2im0,CTP,openrouter/openai/gpt-5-mini +2im1,CTP,openrouter/openai/gpt-5-mini +2im2,UTP,openrouter/openai/gpt-5-mini +5j4t,MBG,openrouter/openai/gpt-5-mini +5cqa,2LY,openrouter/openai/gpt-5-mini +4tti,FMC,openrouter/openai/gpt-5-mini +4tta,FMC,openrouter/openai/gpt-5-mini +3ixb,BZB,openrouter/openai/gpt-5-mini +6mbv,NIO,openrouter/openai/gpt-5-mini +6mby,FER,openrouter/openai/gpt-5-mini +6qu0,FMN,openrouter/openai/gpt-5-mini +4qu1,AKG,openrouter/openai/gpt-5-mini +5ll4,6YH,openrouter/openai/gpt-5-mini +3llm,ADP,openrouter/openai/gpt-5-mini +6bqa,67C,openrouter/openai/gpt-5-mini +2bqv,A1A,openrouter/openai/gpt-5-mini +5bqs,4VN,openrouter/openai/gpt-5-mini +7bqv,F4U,openrouter/openai/gpt-5-mini +6l04,32I,openrouter/openai/gpt-5-mini +4w8e,3JB,openrouter/openai/gpt-5-mini +4w86,BGC,openrouter/openai/gpt-5-mini +4w8d,3JA,openrouter/openai/gpt-5-mini +6d5w,GNP,openrouter/openai/gpt-5-mini +7d5x,CHD,openrouter/openai/gpt-5-mini +1d5c,GDP,openrouter/openai/gpt-5-mini +6tak,ORO,openrouter/openai/gpt-5-mini +1c5s,ESX,openrouter/openai/gpt-5-mini +3si6,DUP,openrouter/openai/gpt-5-mini +4hj3,FMN,openrouter/openai/gpt-5-mini +1hjo,ADP,openrouter/openai/gpt-5-mini +5hjo,DGO,openrouter/openai/gpt-5-mini +4hj6,FMN,openrouter/openai/gpt-5-mini +5jn7,6LU,openrouter/openai/gpt-5-mini +6xhf,V2S,openrouter/openai/gpt-5-mini +1tke,SEG,openrouter/openai/gpt-5-mini +3d6p,U2S,openrouter/openai/gpt-5-mini +2x96,RX3,openrouter/openai/gpt-5-mini +2gy5,NDG,openrouter/openai/gpt-5-mini +3gy4,PBZ,openrouter/openai/gpt-5-mini +4ozt,P1A,openrouter/openai/gpt-5-mini +3ozw,FAD,openrouter/openai/gpt-5-mini +2oz7,CA4,openrouter/openai/gpt-5-mini +1eqc,CTS,openrouter/openai/gpt-5-mini +3n8y,DIF,openrouter/openai/gpt-5-mini +3n8g,ACP,openrouter/openai/gpt-5-mini +3n8w,FLP,openrouter/openai/gpt-5-mini +2a3i,C0R,openrouter/openai/gpt-5-mini +5nit,FAD,openrouter/openai/gpt-5-mini +4zsg,4QX,openrouter/openai/gpt-5-mini +2zsu,AG3,openrouter/openai/gpt-5-mini +4q02,GDP,openrouter/openai/gpt-5-mini +1q36,SKP,openrouter/openai/gpt-5-mini +6q3x,HFK,openrouter/openai/gpt-5-mini +6q3u,ARG,openrouter/openai/gpt-5-mini +3ma0,HSZ,openrouter/openai/gpt-5-mini +7maa,A61,openrouter/openai/gpt-5-mini +7ma2,XUY,openrouter/openai/gpt-5-mini +7ma8,F53,openrouter/openai/gpt-5-mini +7ma7,K2D,openrouter/openai/gpt-5-mini +7ma4,K2A,openrouter/openai/gpt-5-mini +7ma1,065,openrouter/openai/gpt-5-mini +7ma9,K2E,openrouter/openai/gpt-5-mini +7ma0,NJM,openrouter/openai/gpt-5-mini +7ma3,K14,openrouter/openai/gpt-5-mini +7ma5,K20,openrouter/openai/gpt-5-mini +1o0n,U3P,openrouter/openai/gpt-5-mini +7o0e,GLY,openrouter/openai/gpt-5-mini +1o0h,ADP,openrouter/openai/gpt-5-mini +1o03,G16,openrouter/openai/gpt-5-mini +6z4w,ADP,openrouter/openai/gpt-5-mini +2z4j,DHT,openrouter/openai/gpt-5-mini +4glo,NAD,openrouter/openai/gpt-5-mini +1sgu,MK1,openrouter/openai/gpt-5-mini +3ggx,GGX,openrouter/openai/gpt-5-mini +2ggs,NDP,openrouter/openai/gpt-5-mini +2qyk,NPV,openrouter/openai/gpt-5-mini +1p2v,GNP,openrouter/openai/gpt-5-mini +1p2s,GNP,openrouter/openai/gpt-5-mini +4jui,EGR,openrouter/openai/gpt-5-mini +2pfz,PCA,openrouter/openai/gpt-5-mini +4pfx,UDP,openrouter/openai/gpt-5-mini +3pfl,OXM,openrouter/openai/gpt-5-mini +3fk0,S3P,openrouter/openai/gpt-5-mini +6fkb,DLH,openrouter/openai/gpt-5-mini +6fk6,DOK,openrouter/openai/gpt-5-mini +2apc,UDM,openrouter/openai/gpt-5-mini +1t8e,DCT,openrouter/openai/gpt-5-mini +7lmq,9ZW,openrouter/openai/gpt-5-mini +7lmo,NYO,openrouter/openai/gpt-5-mini +6dbc,G3J,openrouter/openai/gpt-5-mini +7uah,NZ5,openrouter/openai/gpt-5-mini +1ua0,AF,openrouter/openai/gpt-5-mini +4do6,AGC,openrouter/openai/gpt-5-mini +4do4,DJN,openrouter/openai/gpt-5-mini +4do5,DGJ,openrouter/openai/gpt-5-mini +5f36,5UE,openrouter/openai/gpt-5-mini +3rut,59G,openrouter/openai/gpt-5-mini +2pch,SAH,openrouter/openai/gpt-5-mini +2pci,SAH,openrouter/openai/gpt-5-mini +2pcg,SAH,openrouter/openai/gpt-5-mini +3pcw,FBF,openrouter/openai/gpt-5-mini +2pca,SAH,openrouter/openai/gpt-5-mini +4pct,H76,openrouter/openai/gpt-5-mini +1zgy,BRL,openrouter/openai/gpt-5-mini +4az2,9MU,openrouter/openai/gpt-5-mini +7azn,YK8,openrouter/openai/gpt-5-mini +7cms,9E0,openrouter/openai/gpt-5-mini +8hfn,XGC,openrouter/openai/gpt-5-mini +5kqy,017,openrouter/openai/gpt-5-mini +3kqb,LGJ,openrouter/openai/gpt-5-mini +6kqq,DW9,openrouter/openai/gpt-5-mini +3kqc,LGK,openrouter/openai/gpt-5-mini +3kqe,LGM,openrouter/openai/gpt-5-mini +3kqj,UD1,openrouter/openai/gpt-5-mini +5dq1,5HL,openrouter/openai/gpt-5-mini +2xrs,GAL,openrouter/openai/gpt-5-mini +2i0u,TRT,openrouter/openai/gpt-5-mini +7efw,CYC,openrouter/openai/gpt-5-mini +6dws,HFY,openrouter/openai/gpt-5-mini +1ht5,FL2,openrouter/openai/gpt-5-mini +5ues,87S,openrouter/openai/gpt-5-mini +5uep,88P,openrouter/openai/gpt-5-mini +5uer,87P,openrouter/openai/gpt-5-mini +5uez,89G,openrouter/openai/gpt-5-mini +5uet,87V,openrouter/openai/gpt-5-mini +8cx5,GDP,openrouter/openai/gpt-5-mini +2g6p,HM2,openrouter/openai/gpt-5-mini +8g69,YXN,openrouter/openai/gpt-5-mini +1g6t,S3P,openrouter/openai/gpt-5-mini +1ra7,GTP,openrouter/openai/gpt-5-mini +2ray,258,openrouter/openai/gpt-5-mini +4ra3,TFX,openrouter/openai/gpt-5-mini +3rab,GNP,openrouter/openai/gpt-5-mini +4kx6,FAD,openrouter/openai/gpt-5-mini +7kxp,X9V,openrouter/openai/gpt-5-mini +5l8t,6RR,openrouter/openai/gpt-5-mini +3l8y,GNP,openrouter/openai/gpt-5-mini +1l8b,MGP,openrouter/openai/gpt-5-mini +1oko,GAL,openrouter/openai/gpt-5-mini +5ok3,M77,openrouter/openai/gpt-5-mini +5ok1,B16,openrouter/openai/gpt-5-mini +2q96,A18,openrouter/openai/gpt-5-mini +2q94,A04,openrouter/openai/gpt-5-mini +2q93,B21,openrouter/openai/gpt-5-mini +2q95,A05,openrouter/openai/gpt-5-mini +2q92,B23,openrouter/openai/gpt-5-mini +5ljq,ANV,openrouter/openai/gpt-5-mini +8fsi,SAM,openrouter/openai/gpt-5-mini +3tuh,TUH,openrouter/openai/gpt-5-mini +6tuk,BU3,openrouter/openai/gpt-5-mini +4tu4,37N,openrouter/openai/gpt-5-mini +4ct9,AMP,openrouter/openai/gpt-5-mini +7xf7,NDG,openrouter/openai/gpt-5-mini +4xf7,CBU,openrouter/openai/gpt-5-mini +7xf8,NDG,openrouter/openai/gpt-5-mini +2onj,ANP,openrouter/openai/gpt-5-mini +2onf,COA,openrouter/openai/gpt-5-mini +7w1i,C8X,openrouter/openai/gpt-5-mini +1w1x,NAN,openrouter/openai/gpt-5-mini +5z86,CHD,openrouter/openai/gpt-5-mini +5z84,CHD,openrouter/openai/gpt-5-mini +7vdo,NAP,openrouter/openai/gpt-5-mini +4e3s,QTP,openrouter/openai/gpt-5-mini +5je7,EVF,openrouter/openai/gpt-5-mini +6jea,HSR,openrouter/openai/gpt-5-mini +8jea,MAN,openrouter/openai/gpt-5-mini +4gh6,LUO,openrouter/openai/gpt-5-mini +7ghq,OYX,openrouter/openai/gpt-5-mini +4rif,3R2,openrouter/openai/gpt-5-mini +8baq,NAD,openrouter/openai/gpt-5-mini +3byo,AM9,openrouter/openai/gpt-5-mini +1pno,NAP,openrouter/openai/gpt-5-mini +1pnq,NDP,openrouter/openai/gpt-5-mini +7z63,IE3,openrouter/openai/gpt-5-mini +1z6e,IK8,openrouter/openai/gpt-5-mini +7m0m,YK1,openrouter/openai/gpt-5-mini +3so9,017,openrouter/openai/gpt-5-mini +5cg9,AKG,openrouter/openai/gpt-5-mini +5kr1,017,openrouter/openai/gpt-5-mini +7krg,NAP,openrouter/openai/gpt-5-mini +4hn1,TDR,openrouter/openai/gpt-5-mini +5hnu,NAP,openrouter/openai/gpt-5-mini +4rqu,NAD,openrouter/openai/gpt-5-mini +1wuw,SEG,openrouter/openai/gpt-5-mini +5clu,S8A,openrouter/openai/gpt-5-mini +6opy,017,openrouter/openai/gpt-5-mini +6opw,017,openrouter/openai/gpt-5-mini +6opt,017,openrouter/openai/gpt-5-mini +6opz,017,openrouter/openai/gpt-5-mini +6opv,017,openrouter/openai/gpt-5-mini +6ops,017,openrouter/openai/gpt-5-mini +7m8r,W6X,openrouter/openai/gpt-5-mini +6lx5,C5F,openrouter/openai/gpt-5-mini +4lxq,TYD,openrouter/openai/gpt-5-mini +6bun,HPG,openrouter/openai/gpt-5-mini +6bur,BR8,openrouter/openai/gpt-5-mini +6f57,SAH,openrouter/openai/gpt-5-mini +7wa2,RKX,openrouter/openai/gpt-5-mini +4pzz,GDP,openrouter/openai/gpt-5-mini +2eni,SAH,openrouter/openai/gpt-5-mini +7enz,LDR,openrouter/openai/gpt-5-mini +2p3u,663,openrouter/openai/gpt-5-mini +3p3g,3P3,openrouter/openai/gpt-5-mini +1vb3,KPA,openrouter/openai/gpt-5-mini +4xn4,MET,openrouter/openai/gpt-5-mini +4xn7,DPP,openrouter/openai/gpt-5-mini +8eip,7ID,openrouter/openai/gpt-5-mini +4a6c,QG9,openrouter/openai/gpt-5-mini +4a6s,GS9,openrouter/openai/gpt-5-mini +5ccn,4ZZ,openrouter/openai/gpt-5-mini +5ccq,502,openrouter/openai/gpt-5-mini +8c0q,SWU,openrouter/openai/gpt-5-mini +8c0r,SXL,openrouter/openai/gpt-5-mini +7dhn,H7R,openrouter/openai/gpt-5-mini +6dh5,A60,openrouter/openai/gpt-5-mini +6dh4,K13,openrouter/openai/gpt-5-mini +6dh0,017,openrouter/openai/gpt-5-mini +6dh1,K13,openrouter/openai/gpt-5-mini +6dh8,A60,openrouter/openai/gpt-5-mini +6dh3,017,openrouter/openai/gpt-5-mini +6dh2,A60,openrouter/openai/gpt-5-mini +6dh6,017,openrouter/openai/gpt-5-mini +7dh9,H7F,openrouter/openai/gpt-5-mini +7dh3,H7C,openrouter/openai/gpt-5-mini +6dh7,K13,openrouter/openai/gpt-5-mini +2xel,AD9,openrouter/openai/gpt-5-mini +2xe5,ASZ,openrouter/openai/gpt-5-mini +5m2b,7DX,openrouter/openai/gpt-5-mini +5lwp,79U,openrouter/openai/gpt-5-mini +5c1m,VF1,openrouter/openai/gpt-5-mini +5ytd,DGT,openrouter/openai/gpt-5-mini +2boj,ARW,openrouter/openai/gpt-5-mini +2fxd,DR7,openrouter/openai/gpt-5-mini +6q27,BM3,openrouter/openai/gpt-5-mini +2h3h,BGC,openrouter/openai/gpt-5-mini +4n1n,UNU,openrouter/openai/gpt-5-mini +4n1q,WM2,openrouter/openai/gpt-5-mini +4bcw,TU0,openrouter/openai/gpt-5-mini +2uz4,SAH,openrouter/openai/gpt-5-mini +1zw6,GNP,openrouter/openai/gpt-5-mini +3a7x,O09,openrouter/openai/gpt-5-mini +3a7t,4FZ,openrouter/openai/gpt-5-mini +3iog,SDF,openrouter/openai/gpt-5-mini +2w26,RIV,openrouter/openai/gpt-5-mini +1t65,DHT,openrouter/openai/gpt-5-mini +4ca8,3ES,openrouter/openai/gpt-5-mini +5yjk,8VX,openrouter/openai/gpt-5-mini +3pmu,F7L,openrouter/openai/gpt-5-mini +3pm4,F5N,openrouter/openai/gpt-5-mini +3pmy,41L,openrouter/openai/gpt-5-mini +4pmj,NAP,openrouter/openai/gpt-5-mini +6r79,GLY,openrouter/openai/gpt-5-mini +8fol,SAM,openrouter/openai/gpt-5-mini +8p0o,GDU,openrouter/openai/gpt-5-mini +5lcu,IQP,openrouter/openai/gpt-5-mini +5eyk,5U5,openrouter/openai/gpt-5-mini +6eyf,BY2,openrouter/openai/gpt-5-mini +4z0q,4K9,openrouter/openai/gpt-5-mini +2dv3,SAH,openrouter/openai/gpt-5-mini +2dvn,IMP,openrouter/openai/gpt-5-mini +2dv7,SAH,openrouter/openai/gpt-5-mini +4v3c,C25,openrouter/openai/gpt-5-mini +3s0n,0BB,openrouter/openai/gpt-5-mini +3s0b,FNA,openrouter/openai/gpt-5-mini +3s0e,EOL,openrouter/openai/gpt-5-mini +2xyf,G40,openrouter/openai/gpt-5-mini +3mwl,8OX,openrouter/openai/gpt-5-mini +2phb,230,openrouter/openai/gpt-5-mini +4phs,UDP,openrouter/openai/gpt-5-mini +4phr,UDP,openrouter/openai/gpt-5-mini +1geg,NAD,openrouter/openai/gpt-5-mini +7rek,R6S,openrouter/openai/gpt-5-mini +4kz5,1U3,openrouter/openai/gpt-5-mini +4kza,NZ9,openrouter/openai/gpt-5-mini +7kze,N0Y,openrouter/openai/gpt-5-mini +4kz7,1U5,openrouter/openai/gpt-5-mini +4kz6,ZB6,openrouter/openai/gpt-5-mini +6oot,017,openrouter/openai/gpt-5-mini +6bv4,MET,openrouter/openai/gpt-5-mini +6lkj,BGP,openrouter/openai/gpt-5-mini +6lkk,G6P,openrouter/openai/gpt-5-mini +6lkh,G6P,openrouter/openai/gpt-5-mini +1tjy,PAV,openrouter/openai/gpt-5-mini +6gqx,F8K,openrouter/openai/gpt-5-mini +6yyv,Q1Z,openrouter/openai/gpt-5-mini +8hy1,5ZU,openrouter/openai/gpt-5-mini +7rwf,7TW,openrouter/openai/gpt-5-mini +7w41,8B8,openrouter/openai/gpt-5-mini +1w4o,UA3,openrouter/openai/gpt-5-mini +5w44,GY6,openrouter/openai/gpt-5-mini +1w4p,UM3,openrouter/openai/gpt-5-mini +5z3n,DGT,openrouter/openai/gpt-5-mini +2w3i,L1C,openrouter/openai/gpt-5-mini +2w3k,L1D,openrouter/openai/gpt-5-mini +6i46,H2N,openrouter/openai/gpt-5-mini +6gxy,FFN,openrouter/openai/gpt-5-mini +4gxs,0YS,openrouter/openai/gpt-5-mini +1o2n,762,openrouter/openai/gpt-5-mini +1o2e,ANN,openrouter/openai/gpt-5-mini +1o2i,655,openrouter/openai/gpt-5-mini +5kir,RCX,openrouter/openai/gpt-5-mini +3rtv,DCP,openrouter/openai/gpt-5-mini +3rtf,CWD,openrouter/openai/gpt-5-mini +5xg5,A2G,openrouter/openai/gpt-5-mini +1xgi,NST,openrouter/openai/gpt-5-mini +1xgj,HTC,openrouter/openai/gpt-5-mini +6oxs,NJ4,openrouter/openai/gpt-5-mini +6oxv,NF4,openrouter/openai/gpt-5-mini +5oxg,B4B,openrouter/openai/gpt-5-mini +6oxo,NJM,openrouter/openai/gpt-5-mini +2uyc,SAH,openrouter/openai/gpt-5-mini +1xjb,NAP,openrouter/openai/gpt-5-mini +5xj2,SAH,openrouter/openai/gpt-5-mini +5j88,GUN,openrouter/openai/gpt-5-mini +5j8a,GUN,openrouter/openai/gpt-5-mini +6ahs,9YO,openrouter/openai/gpt-5-mini +2y5h,Y5H,openrouter/openai/gpt-5-mini +4y56,47J,openrouter/openai/gpt-5-mini +4y5n,487,openrouter/openai/gpt-5-mini +5hvs,65V,openrouter/openai/gpt-5-mini +2hvi,DCT,openrouter/openai/gpt-5-mini +2hvc,LGD,openrouter/openai/gpt-5-mini +7rp2,GDP,openrouter/openai/gpt-5-mini +4uuw,AMP,openrouter/openai/gpt-5-mini +7osa,GTP,openrouter/openai/gpt-5-mini +4dto,DCP,openrouter/openai/gpt-5-mini +4dtp,DGT,openrouter/openai/gpt-5-mini +4dtj,TTP,openrouter/openai/gpt-5-mini +4dtm,DCP,openrouter/openai/gpt-5-mini +4dtn,DTP,openrouter/openai/gpt-5-mini +3gbb,MS8,openrouter/openai/gpt-5-mini +4gb2,0LQ,openrouter/openai/gpt-5-mini +5m71,7K7,openrouter/openai/gpt-5-mini +3m7r,VDX,openrouter/openai/gpt-5-mini +1vzq,SHY,openrouter/openai/gpt-5-mini +5nxo,9HK,openrouter/openai/gpt-5-mini +2nxe,SAM,openrouter/openai/gpt-5-mini +6t4u,4F1,openrouter/openai/gpt-5-mini +3po1,MKY,openrouter/openai/gpt-5-mini +2p94,ME4,openrouter/openai/gpt-5-mini +2p99,YE6,openrouter/openai/gpt-5-mini +2p95,ME5,openrouter/openai/gpt-5-mini +6t5b,GDP,openrouter/openai/gpt-5-mini +1t5s,ACP,openrouter/openai/gpt-5-mini +1t5t,ADP,openrouter/openai/gpt-5-mini +6b59,CQS,openrouter/openai/gpt-5-mini +3b50,SLB,openrouter/openai/gpt-5-mini +5b5f,6F3,openrouter/openai/gpt-5-mini +2fzw,NAD,openrouter/openai/gpt-5-mini +6fzg,EDK,openrouter/openai/gpt-5-mini +5j5g,6GF,openrouter/openai/gpt-5-mini +4j52,1J3,openrouter/openai/gpt-5-mini +4twp,AXI,openrouter/openai/gpt-5-mini +1mgo,NAD,openrouter/openai/gpt-5-mini +5mgf,7MW,openrouter/openai/gpt-5-mini +6na4,VES,openrouter/openai/gpt-5-mini +1s3v,TQD,openrouter/openai/gpt-5-mini +3s3i,CQ0,openrouter/openai/gpt-5-mini +1s3u,TQD,openrouter/openai/gpt-5-mini +6h29,FK8,openrouter/openai/gpt-5-mini +6h2t,GGL,openrouter/openai/gpt-5-mini +6h20,ASN,openrouter/openai/gpt-5-mini +4y3q,F02,openrouter/openai/gpt-5-mini +4y3g,463,openrouter/openai/gpt-5-mini +4y36,45L,openrouter/openai/gpt-5-mini +4y3d,45N,openrouter/openai/gpt-5-mini +4y3x,46P,openrouter/openai/gpt-5-mini +3ffg,FFG,openrouter/openai/gpt-5-mini +6mqg,GDP,openrouter/openai/gpt-5-mini +7qdt,T3,openrouter/openai/gpt-5-mini +8tbj,GNP,openrouter/openai/gpt-5-mini +8tbg,GNP,openrouter/openai/gpt-5-mini +8tbf,GNP,openrouter/openai/gpt-5-mini +8tbh,GNP,openrouter/openai/gpt-5-mini +5lr1,72Y,openrouter/openai/gpt-5-mini +5lrl,73S,openrouter/openai/gpt-5-mini +6eaa,J1V,openrouter/openai/gpt-5-mini +5eaj,FOL,openrouter/openai/gpt-5-mini +3h1k,IKR,openrouter/openai/gpt-5-mini +6h1u,ASP,openrouter/openai/gpt-5-mini +3h1j,SMA,openrouter/openai/gpt-5-mini +3h1l,3H1,openrouter/openai/gpt-5-mini +7duy,HLL,openrouter/openai/gpt-5-mini +7dux,HLF,openrouter/openai/gpt-5-mini +2f4j,VX6,openrouter/openai/gpt-5-mini +5wzt,7W6,openrouter/openai/gpt-5-mini +5wzu,7W3,openrouter/openai/gpt-5-mini +8wzq,XIU,openrouter/openai/gpt-5-mini +5wzv,7W0,openrouter/openai/gpt-5-mini +1wp4,NDP,openrouter/openai/gpt-5-mini +4xt9,43V,openrouter/openai/gpt-5-mini +6dgx,017,openrouter/openai/gpt-5-mini +4dgn,LU2,openrouter/openai/gpt-5-mini +6dgy,K13,openrouter/openai/gpt-5-mini +4dgm,AGI,openrouter/openai/gpt-5-mini +7dg4,H5R,openrouter/openai/gpt-5-mini +6dgz,A60,openrouter/openai/gpt-5-mini +8fr2,N8A,openrouter/openai/gpt-5-mini +8fr1,N84,openrouter/openai/gpt-5-mini +6xq9,V6S,openrouter/openai/gpt-5-mini +7vsl,7XI,openrouter/openai/gpt-5-mini +2zxw,CHD,openrouter/openai/gpt-5-mini +4zx0,5L2,openrouter/openai/gpt-5-mini +3au2,DGT,openrouter/openai/gpt-5-mini +5xzb,A9Y,openrouter/openai/gpt-5-mini +5f61,5W0,openrouter/openai/gpt-5-mini +4fcw,ADP,openrouter/openai/gpt-5-mini +4jfi,1KT,openrouter/openai/gpt-5-mini +3pi0,F91,openrouter/openai/gpt-5-mini +1h50,FMN,openrouter/openai/gpt-5-mini +7mz2,0KX,openrouter/openai/gpt-5-mini +4yoi,4F4,openrouter/openai/gpt-5-mini +6yot,P4W,openrouter/openai/gpt-5-mini +3chs,4BU,openrouter/openai/gpt-5-mini +3cho,4BG,openrouter/openai/gpt-5-mini +8chi,UMR,openrouter/openai/gpt-5-mini +8chk,UUI,openrouter/openai/gpt-5-mini +8chj,UQI,openrouter/openai/gpt-5-mini +6g3r,ADP,openrouter/openai/gpt-5-mini +1g35,AHF,openrouter/openai/gpt-5-mini +5g3l,NAN,openrouter/openai/gpt-5-mini +1g36,R11,openrouter/openai/gpt-5-mini +6g3c,EKT,openrouter/openai/gpt-5-mini +8g3s,YLT,openrouter/openai/gpt-5-mini +8g3t,YLK,openrouter/openai/gpt-5-mini +2q89,6CS,openrouter/openai/gpt-5-mini +2q88,4CS,openrouter/openai/gpt-5-mini +7b7b,T1B,openrouter/openai/gpt-5-mini +4fn4,NAD,openrouter/openai/gpt-5-mini +2qrz,GCP,openrouter/openai/gpt-5-mini +1pd9,CO4,openrouter/openai/gpt-5-mini +2qk5,CS5,openrouter/openai/gpt-5-mini +6ssy,P7I,openrouter/openai/gpt-5-mini +2ceq,GIM,openrouter/openai/gpt-5-mini +1h63,FMN,openrouter/openai/gpt-5-mini +5zcq,CHD,openrouter/openai/gpt-5-mini +5zcp,CHD,openrouter/openai/gpt-5-mini +4e7e,UPG,openrouter/openai/gpt-5-mini +4e7b,UPG,openrouter/openai/gpt-5-mini +4e7f,UDP,openrouter/openai/gpt-5-mini +2wyk,NGE,openrouter/openai/gpt-5-mini +6y9r,OH8,openrouter/openai/gpt-5-mini +5y9a,AR3,openrouter/openai/gpt-5-mini +4y95,746,openrouter/openai/gpt-5-mini +4mdn,Y30,openrouter/openai/gpt-5-mini +2aa9,SKM,openrouter/openai/gpt-5-mini +6ddj,G7V,openrouter/openai/gpt-5-mini +6zyh,ADP,openrouter/openai/gpt-5-mini +3suo,TTP,openrouter/openai/gpt-5-mini +3su9,EPZ,openrouter/openai/gpt-5-mini +1uhj,CZB,openrouter/openai/gpt-5-mini +3abk,CHD,openrouter/openai/gpt-5-mini +7abo,FMN,openrouter/openai/gpt-5-mini +6rr3,FAD,openrouter/openai/gpt-5-mini +3rry,GNP,openrouter/openai/gpt-5-mini +2qeh,SRO,openrouter/openai/gpt-5-mini +2qeb,HSM,openrouter/openai/gpt-5-mini +3qet,TTP,openrouter/openai/gpt-5-mini +3qei,DCP,openrouter/openai/gpt-5-mini +2qen,ADP,openrouter/openai/gpt-5-mini +6svf,ARG,openrouter/openai/gpt-5-mini +3aso,CHD,openrouter/openai/gpt-5-mini +3asn,CHD,openrouter/openai/gpt-5-mini +3s77,EVI,openrouter/openai/gpt-5-mini +3s75,EVG,openrouter/openai/gpt-5-mini +2oci,TYC,openrouter/openai/gpt-5-mini +5edi,5M9,openrouter/openai/gpt-5-mini +5edt,5MK,openrouter/openai/gpt-5-mini +6edg,P34,openrouter/openai/gpt-5-mini +2ow3,BIM,openrouter/openai/gpt-5-mini +2owg,SAH,openrouter/openai/gpt-5-mini +7owf,2IU,openrouter/openai/gpt-5-mini +3owb,BSM,openrouter/openai/gpt-5-mini +3ow6,MEX,openrouter/openai/gpt-5-mini +3c8c,ALA,openrouter/openai/gpt-5-mini +5uvw,8NG,openrouter/openai/gpt-5-mini +5uvz,8NP,openrouter/openai/gpt-5-mini +5uvs,8O1,openrouter/openai/gpt-5-mini +4kd1,1QK,openrouter/openai/gpt-5-mini +4kdo,NAN,openrouter/openai/gpt-5-mini +6pjg,ORV,openrouter/openai/gpt-5-mini +6pjl,OQA,openrouter/openai/gpt-5-mini +6pji,OO4,openrouter/openai/gpt-5-mini +3cz7,ACO,openrouter/openai/gpt-5-mini +6cz1,3FD,openrouter/openai/gpt-5-mini +3dxg,U25,openrouter/openai/gpt-5-mini +4b1c,1B1,openrouter/openai/gpt-5-mini +6b1c,C9J,openrouter/openai/gpt-5-mini +6b1d,BGC,openrouter/openai/gpt-5-mini +5b1b,CHD,openrouter/openai/gpt-5-mini +7le5,K2E,openrouter/openai/gpt-5-mini +7le3,K19,openrouter/openai/gpt-5-mini +7le0,XUY,openrouter/openai/gpt-5-mini +7le4,K2D,openrouter/openai/gpt-5-mini +7le6,A61,openrouter/openai/gpt-5-mini +7le2,K20,openrouter/openai/gpt-5-mini +7ze7,UUJ,openrouter/openai/gpt-5-mini +5zec,NAP,openrouter/openai/gpt-5-mini +3l3x,DHT,openrouter/openai/gpt-5-mini +2qhu,OYA,openrouter/openai/gpt-5-mini +2qhv,OC9,openrouter/openai/gpt-5-mini +4qhq,MET,openrouter/openai/gpt-5-mini +7w6f,8I6,openrouter/openai/gpt-5-mini +6uqv,BUA,openrouter/openai/gpt-5-mini +7bky,U1E,openrouter/openai/gpt-5-mini +7bku,PHN,openrouter/openai/gpt-5-mini +6awt,28E,openrouter/openai/gpt-5-mini +8awr,OIZ,openrouter/openai/gpt-5-mini +3aty,FMN,openrouter/openai/gpt-5-mini +3atk,SZ1,openrouter/openai/gpt-5-mini +4wq2,3SU,openrouter/openai/gpt-5-mini +5wqk,7NC,openrouter/openai/gpt-5-mini +3r17,5UM,openrouter/openai/gpt-5-mini +3r16,5UN,openrouter/openai/gpt-5-mini +1nvt,NAP,openrouter/openai/gpt-5-mini +1nvk,UDP,openrouter/openai/gpt-5-mini +3nvz,MTE,openrouter/openai/gpt-5-mini +5yxd,93R,openrouter/openai/gpt-5-mini +4x2u,TOD,openrouter/openai/gpt-5-mini +4yry,FAD,openrouter/openai/gpt-5-mini +3b0x,DGT,openrouter/openai/gpt-5-mini +3b0y,DGT,openrouter/openai/gpt-5-mini +4pgl,SOE,openrouter/openai/gpt-5-mini +4pgx,1FZ,openrouter/openai/gpt-5-mini +3ajn,GM1,openrouter/openai/gpt-5-mini +1s5e,GAL,openrouter/openai/gpt-5-mini +4nyi,GNP,openrouter/openai/gpt-5-mini +4nyj,GNP,openrouter/openai/gpt-5-mini +5ny3,9E8,openrouter/openai/gpt-5-mini +5nya,FB2,openrouter/openai/gpt-5-mini +2g9x,NU5,openrouter/openai/gpt-5-mini +1ws4,GYP,openrouter/openai/gpt-5-mini +4yd6,4AS,openrouter/openai/gpt-5-mini +2ydg,ASC,openrouter/openai/gpt-5-mini +4yd5,4AV,openrouter/openai/gpt-5-mini +3p1f,3PF,openrouter/openai/gpt-5-mini +6jqf,HSR,openrouter/openai/gpt-5-mini +3m35,M35,openrouter/openai/gpt-5-mini +3m37,M37,openrouter/openai/gpt-5-mini +3m36,M35,openrouter/openai/gpt-5-mini +1ihx,SND,openrouter/openai/gpt-5-mini +1u8y,GNP,openrouter/openai/gpt-5-mini +4u8z,3FE,openrouter/openai/gpt-5-mini +6ee6,J4P,openrouter/openai/gpt-5-mini +6ee3,J4V,openrouter/openai/gpt-5-mini +6eeo,J6V,openrouter/openai/gpt-5-mini +3rlj,RLJ,openrouter/openai/gpt-5-mini +1jir,AML,openrouter/openai/gpt-5-mini +8gvm,CHD,openrouter/openai/gpt-5-mini +1gv8,GLY,openrouter/openai/gpt-5-mini +5not,938,openrouter/openai/gpt-5-mini +5now,L89,openrouter/openai/gpt-5-mini +4hg9,G3P,openrouter/openai/gpt-5-mini +4u54,3C5,openrouter/openai/gpt-5-mini +4u5o,3D5,openrouter/openai/gpt-5-mini +7m9x,YUA,openrouter/openai/gpt-5-mini +7m9r,YUP,openrouter/openai/gpt-5-mini +7m9g,NF7,openrouter/openai/gpt-5-mini +7m9w,YUD,openrouter/openai/gpt-5-mini +7m9h,NJG,openrouter/openai/gpt-5-mini +7m9i,NJ1,openrouter/openai/gpt-5-mini +7m9v,YUJ,openrouter/openai/gpt-5-mini +7m9z,DJR,openrouter/openai/gpt-5-mini +7m9s,YUJ,openrouter/openai/gpt-5-mini +7m9t,YUD,openrouter/openai/gpt-5-mini +5wlt,86B,openrouter/openai/gpt-5-mini +5wlr,86B,openrouter/openai/gpt-5-mini +1unl,RRC,openrouter/openai/gpt-5-mini +6sds,L8N,openrouter/openai/gpt-5-mini +2ync,YNC,openrouter/openai/gpt-5-mini +4a95,NHW,openrouter/openai/gpt-5-mini +6cw9,7LM,openrouter/openai/gpt-5-mini +3ps1,ZH2,openrouter/openai/gpt-5-mini +3ps3,L53,openrouter/openai/gpt-5-mini +5jw1,CEL,openrouter/openai/gpt-5-mini +1l2s,STC,openrouter/openai/gpt-5-mini +3fjx,S3P,openrouter/openai/gpt-5-mini +6fj2,TMO,openrouter/openai/gpt-5-mini +5ej4,TD6,openrouter/openai/gpt-5-mini +2ejj,SAH,openrouter/openai/gpt-5-mini +2ejk,SAH,openrouter/openai/gpt-5-mini +7ejv,YK2,openrouter/openai/gpt-5-mini +4k0y,1OA,openrouter/openai/gpt-5-mini +4k0z,MZM,openrouter/openai/gpt-5-mini +5k0f,6P1,openrouter/openai/gpt-5-mini +4k0s,AZM,openrouter/openai/gpt-5-mini +4k0t,D9Z,openrouter/openai/gpt-5-mini +3n3z,IBM,openrouter/openai/gpt-5-mini +6kwt,NDP,openrouter/openai/gpt-5-mini +3b92,440,openrouter/openai/gpt-5-mini +3lft,LTR,openrouter/openai/gpt-5-mini +5odh,COM,openrouter/openai/gpt-5-mini +5dpz,51V,openrouter/openai/gpt-5-mini +6dpy,H7A,openrouter/openai/gpt-5-mini +2brc,CT5,openrouter/openai/gpt-5-mini +3brw,GDP,openrouter/openai/gpt-5-mini +4ymv,ATP,openrouter/openai/gpt-5-mini +2rgd,GNP,openrouter/openai/gpt-5-mini +2rga,GNP,openrouter/openai/gpt-5-mini +2rgb,GNP,openrouter/openai/gpt-5-mini +2rgc,GNP,openrouter/openai/gpt-5-mini +6otp,N8A,openrouter/openai/gpt-5-mini +7otn,1IH,openrouter/openai/gpt-5-mini +1otw,PQQ,openrouter/openai/gpt-5-mini +2otv,NCA,openrouter/openai/gpt-5-mini +2otz,1MR,openrouter/openai/gpt-5-mini +7ota,1I1,openrouter/openai/gpt-5-mini +3upk,UD1,openrouter/openai/gpt-5-mini +8har,SAH,openrouter/openai/gpt-5-mini +3qnn,DGT,openrouter/openai/gpt-5-mini +6kjd,LVA,openrouter/openai/gpt-5-mini +2pr3,237,openrouter/openai/gpt-5-mini +3f28,S7B,openrouter/openai/gpt-5-mini +6q54,HJ8,openrouter/openai/gpt-5-mini +7bni,SAL,openrouter/openai/gpt-5-mini +5wr6,NX6,openrouter/openai/gpt-5-mini +1wra,POC,openrouter/openai/gpt-5-mini +1vce,SAH,openrouter/openai/gpt-5-mini +5ivr,6EG,openrouter/openai/gpt-5-mini +5ivq,6EH,openrouter/openai/gpt-5-mini +2eh4,SAH,openrouter/openai/gpt-5-mini +6ugr,Q71,openrouter/openai/gpt-5-mini +6ugn,Q77,openrouter/openai/gpt-5-mini +1ugw,GAL,openrouter/openai/gpt-5-mini +2el0,SAH,openrouter/openai/gpt-5-mini +2el3,SAH,openrouter/openai/gpt-5-mini +2el1,SAH,openrouter/openai/gpt-5-mini +2ztv,NAD,openrouter/openai/gpt-5-mini +4y8v,ADP,openrouter/openai/gpt-5-mini +4y88,HPG,openrouter/openai/gpt-5-mini +7lpk,Y9P,openrouter/openai/gpt-5-mini +5lpm,71Y,openrouter/openai/gpt-5-mini diff --git a/Launch_scripts/workstation_launch.sh b/Launch_scripts/workstation_launch.sh new file mode 100755 index 0000000..8911ea0 --- /dev/null +++ b/Launch_scripts/workstation_launch.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +echo "[INFO] Loading environment..." +source setup.sh + +CSV_FILE="Launch/systems.csv" +CHECKPOINT=".csv_checkpoint" +FAILED_SYSTEMS="Launch/failed_systems.txt" + +if [[ ! -f "$CSV_FILE" ]]; then + echo "[ERROR] CSV file not found: $CSV_FILE" + exit 1 +fi + +echo "[INFO] Starting sequential execution..." +echo "[INFO] Each system will be run 3 times." +echo + +# Load starting line (default=2) +START_LINE=2 +[[ -s "$CHECKPOINT" ]] && START_LINE=$(<"$CHECKPOINT") + +# Iterate through CSV (skip header) +LINE_NUM=$((START_LINE - 1)) +tail -n +$START_LINE "$CSV_FILE" | while IFS=',' read -r PROTEIN LIGAND MODEL; do + ((LINE_NUM++)) + + echo "[INFO] Processing CSV line $LINE_NUM" + + # Trim leading/trailing spaces + PROTEIN=$(echo "$PROTEIN" | xargs) + LIGAND=$(echo "$LIGAND" | xargs) + MODEL=$(echo "$MODEL" | xargs) + + # Take only the last part of the model name after the last '/' + MODEL_SHORT=${MODEL##*/} + echo "Model='$MODEL'" + + # Handle missing ligand + if [[ "$LIGAND" == "" || "$LIGAND" == "None" || "$LIGAND" == "none" ]]; then + LIG_ARG="None" + else + LIG_ARG="$LIGAND" + fi + + for RUN in 1 2 3; do + + LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" + + echo "------------------------------------------------------" + echo "[INFO] Running: Protein=$PROTEIN | Ligand=$LIG_ARG | Model=$MODEL (Repeat $RUN/3)" + echo "[INFO] Output → $LOGFILE" + echo "------------------------------------------------------" + + # Run the Python script + if ! python main.py \ + --pdb_id "$PROTEIN" \ + --ligand "$LIG_ARG" \ + --model "$MODEL" \ + --temp 300 \ + --duration 0.01 \ + > "$LOGFILE" 2>&1 + then + echo "[WARN] DynaMate failed for $PROTEIN $LIG_ARG, run $RUN." | tee -a "$FAILED_SYSTEMS" + fi + + echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL)." + + done + + # Save progress + echo $((LINE_NUM + 1)) > "$CHECKPOINT" + +done + +echo "[INFO] All runs completed!" diff --git a/src/agents/md_agent.py b/src/agents/md_agent.py index f388590..8a35b22 100644 --- a/src/agents/md_agent.py +++ b/src/agents/md_agent.py @@ -212,7 +212,7 @@ def _run_agent(self, remaining_steps: list[str]): "Execute the molecular dynamics pipeline. The required steps are:\n" f"{remaining_steps_string}\n\n" "Work through each step in order using the available tools. " - "Ask the user if you need clarification on any step." + "Do not ask the user anything." ), }) @@ -223,7 +223,8 @@ def _run_agent(self, remaining_steps: list[str]): if iteration == MAX_ITERATIONS: print(f"\n[Warning] Pipeline has reached {MAX_ITERATIONS} iterations without completing.") - answer = input("Would you like to quit and get a summary of what went wrong? (yes/no): ").strip().lower() + # answer = input("Would you like to quit and get a summary of what went wrong? (yes/no): ").strip().lower() + answer = "yes" if answer in ("yes", "y"): self.logger.info(f"User chose to quit after {iteration} iterations.") return @@ -244,7 +245,8 @@ def _run_agent(self, remaining_steps: list[str]): print(f"\nAgent: {response.content}") else: print("\nAgent: I need your input to continue.") - user_input = input("You: ").strip() + # user_input = input("You: ").strip() + user_input = "No input provided, please make your own decision to help the pipeline continue." self.messages.append({"role": "user", "content": user_input}) except Exception as e: @@ -276,7 +278,8 @@ def _run_agent(self, remaining_steps: list[str]): self.messages.append({"role": "assistant", "content": response.content}) if response.content: print(f"\nAgent: {response.content}") - user_input = input("You (press Enter to exit): ").strip() + # user_input = input("You (press Enter to exit): ").strip() + user_input = None if not user_input: self.logger.info("User exited post-pipeline conversation.") break diff --git a/src/agents/prep_agent.py b/src/agents/prep_agent.py index 3df7aa0..af82bc2 100644 --- a/src/agents/prep_agent.py +++ b/src/agents/prep_agent.py @@ -141,7 +141,8 @@ def _get_pdb_file_path(self, prompt): self.messages.append({"role": "assistant", "content": response.content}) if response.content: print(f"\nAgent: {response.content}") - user_input = input("You: ").strip() + user_input = "No input provided, please make your own decision to help the pipeline continue." + # user_input = input("You: ").strip() if user_input: self.messages.append({"role": "user", "content": user_input}) @@ -162,10 +163,10 @@ def _find_ligand(self): lig_name = re.search(r"^[A-Z0-9]{3}$", user_input) if not lig_name: self.logger.error( - f"'{user_input}' is not a valid 3-character ligand code." + f"'{user_input}' is not a valid 3-character ligand code. Continuing without a ligand." ) - self.ligand_name = input("Please enter the three character identifier for the ligand (or press Enter to skip): ").strip().upper() or None - continue + self.ligand_name = None + return self.ligand_name = lig_name.group() self.logger.info(f"User requested ligand: {self.ligand_name}") @@ -183,7 +184,7 @@ def _find_ligand(self): self.logger.error( f"Ligand '{self.ligand_name}' not found in {self.pdb_file_path}." ) - self.ligand_name = input("Please enter the correct three character identifier for the ligand (or press Enter to skip): ").strip().upper() or None + self.ligand_name = None def _find_simulation_temperature(self): temperature = self.md_temp From 2579ed86a379ea19de3a0dc6f7452516423b0d12 Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Fri, 8 May 2026 13:26:39 +0200 Subject: [PATCH 02/14] remove checkpoint tracking --- Launch_scripts/cscs_launch.sh | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/Launch_scripts/cscs_launch.sh b/Launch_scripts/cscs_launch.sh index 5edd63f..d86fff5 100644 --- a/Launch_scripts/cscs_launch.sh +++ b/Launch_scripts/cscs_launch.sh @@ -2,8 +2,8 @@ #SBATCH --account=a131 #SBATCH --partition=debug #SBATCH --job-name=dynamate -#SBATCH --output=$SCRATCH/logs/dynamate/dynamate_%j_%N.out -#SBATCH --error=$SCRATCH/logs/dynamate/dynamate_%j_%N.err +#SBATCH --output=slurm_logs/launch_%j_%N.out +#SBATCH --error=slurm_logs/launch_%j_%N.err #SBATCH --nodes=1 #SBATCH --ntasks-per-node=4 #SBATCH --gpus-per-task=1 @@ -11,10 +11,10 @@ #SBATCH --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" set -e -mkdir -p agent_logs +mkdir -p agent_logs slurm_logs PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python -cd /capstor/store/cscs/swissai/a131/$USER/projects/DynaMate +cd /capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate CSV_FILE="Launch/systems.csv" FAILED_SYSTEMS="Launch/failed_systems.txt" @@ -66,7 +66,6 @@ tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ echo "[INFO] Running: Protein=$PROTEIN | Ligand=$LIG_ARG | Model=$MODEL (Repeat $RUN/3)" echo "[INFO] Output → $LOGFILE" echo "------------------------------------------------------" - # Run the Python script if ! $PYTHON -u main.py \ --pdb_id "$PROTEIN" \ @@ -78,14 +77,8 @@ tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ then echo "[WARN] DynaMate failed for $PROTEIN $LIG_ARG, run $RUN." | tee -a "$FAILED_SYSTEMS" fi - echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL)." - done - - # Save progress - echo $((LINE_NUM + 1)) > "$CHECKPOINT" - done echo "[INFO] All runs completed!" From 7b3cacc559191b9c36d3214eaf4f55dc7fbbb0b3 Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Fri, 8 May 2026 13:35:42 +0200 Subject: [PATCH 03/14] fixed log files --- Launch_scripts/cscs_launch.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Launch_scripts/cscs_launch.sh b/Launch_scripts/cscs_launch.sh index d86fff5..9c83d5a 100644 --- a/Launch_scripts/cscs_launch.sh +++ b/Launch_scripts/cscs_launch.sh @@ -11,13 +11,14 @@ #SBATCH --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" set -e -mkdir -p agent_logs slurm_logs PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python cd /capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate -CSV_FILE="Launch/systems.csv" -FAILED_SYSTEMS="Launch/failed_systems.txt" +mkdir -p agent_logs slurm_logs + +CSV_FILE="Launch_scripts/systems.csv" +FAILED_SYSTEMS="Launch_scripts/failed_systems.txt" if [[ ! -f "$CSV_FILE" ]]; then echo "[ERROR] CSV file not found: $CSV_FILE" From 9c8584de3568ccaf8c0d711736c426811200ed1a Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Mon, 11 May 2026 13:30:14 +0200 Subject: [PATCH 04/14] update launch scripts --- Launch_scripts/cscs_launch.sh | 12 ++++++- Launch_scripts/new_launch.sh | 32 ++++++++++++++++++ Launch_scripts/systems.csv | 1 - Launch_scripts/worker.sh | 64 +++++++++++++++++++++++++++++++++++ 4 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 Launch_scripts/new_launch.sh create mode 100644 Launch_scripts/worker.sh diff --git a/Launch_scripts/cscs_launch.sh b/Launch_scripts/cscs_launch.sh index 9c83d5a..275a588 100644 --- a/Launch_scripts/cscs_launch.sh +++ b/Launch_scripts/cscs_launch.sh @@ -7,9 +7,14 @@ #SBATCH --nodes=1 #SBATCH --ntasks-per-node=4 #SBATCH --gpus-per-task=1 -#SBATCH --time=01:00:00 +#SBATCH --time=00:10:00 #SBATCH --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" +# srun ./testing.sh + + +# slurm_procid + set -e PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python @@ -20,6 +25,8 @@ mkdir -p agent_logs slurm_logs CSV_FILE="Launch_scripts/systems.csv" FAILED_SYSTEMS="Launch_scripts/failed_systems.txt" +echo "sees GPUs: $CUDA_VISIBLE_DEVICES" + if [[ ! -f "$CSV_FILE" ]]; then echo "[ERROR] CSV file not found: $CSV_FILE" exit 1 @@ -42,6 +49,7 @@ tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ ((LINE_NUM++)) echo "[INFO] Processing CSV line $LINE_NUM" + echo "Made it into the first GPU" # Trim leading/trailing spaces PROTEIN=$(echo "$PROTEIN" | xargs) @@ -60,6 +68,7 @@ tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ fi for RUN in 1 2 3; do + echo "[INFO] Starting run $RUN for $PROTEIN ($MODEL)." LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" @@ -67,6 +76,7 @@ tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ echo "[INFO] Running: Protein=$PROTEIN | Ligand=$LIG_ARG | Model=$MODEL (Repeat $RUN/3)" echo "[INFO] Output → $LOGFILE" echo "------------------------------------------------------" + echo "about to enter the main.py script!" # Run the Python script if ! $PYTHON -u main.py \ --pdb_id "$PROTEIN" \ diff --git a/Launch_scripts/new_launch.sh b/Launch_scripts/new_launch.sh new file mode 100644 index 0000000..d07b17f --- /dev/null +++ b/Launch_scripts/new_launch.sh @@ -0,0 +1,32 @@ +#!/bin/bash +#SBATCH --account=a131 +#SBATCH --partition=debug +#SBATCH --job-name=dynamate_launch +#SBATCH --output=slurm_logs/launch_%j_%N.out +#SBATCH --error=slurm_logs/launch_%j_%N.err +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=4 +#SBATCH --gpus-per-task=1 +#SBATCH --time=00:10:00 + +set -e + +mkdir -p agent_logs slurm_logs + +# --- Exported config inherited by all worker tasks --- +export PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python +export WORK_DIR=/capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate +export CSV_FILE="Launch_scripts/systems.csv" +export FAILED_SYSTEMS="Launch_scripts/failed_systems.txt" +export GPUS_PER_NODE=4 + +cd $WORK_DIR + +if [[ ! -f "$CSV_FILE" ]]; then + echo "[ERROR] CSV file not found: $CSV_FILE" + exit 1 +fi + +srun --ntasks=4 --ntasks-per-node=4 --gpus-per-task=1 \ + --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" \ + bash /capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate/Launch_scripts/worker.sh diff --git a/Launch_scripts/systems.csv b/Launch_scripts/systems.csv index ab9ac79..f93456b 100644 --- a/Launch_scripts/systems.csv +++ b/Launch_scripts/systems.csv @@ -1,5 +1,4 @@ entry_pdb_id,ligand_unique_ccd_code,model -7grs,NT9,openrouter/openai/gpt-5-mini 1dy4,SNP,openrouter/openai/gpt-5-mini 7a4q,QY2,openrouter/openai/gpt-5-mini 4a4q,UX9,openrouter/openai/gpt-5-mini diff --git a/Launch_scripts/worker.sh b/Launch_scripts/worker.sh new file mode 100644 index 0000000..d9113bd --- /dev/null +++ b/Launch_scripts/worker.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# worker.sh — executed once per srun task +# +# SLURM variables set per-task: +# $SLURM_NODEID — node index (0..NODES-1) +# $SLURM_LOCALID — local GPU rank on this node (0..GPUS_PER_NODE-1) +# $SLURM_NNODES — total number of nodes +# +# Inherited from submit.sh: +# $PYTHON, $WORK_DIR, $CSV_FILE, $FAILED_SYSTEMS, $GPUS_PER_NODE + +cd $WORK_DIR + +NODE_ID=$SLURM_NODEID +GPU_ID=$SLURM_LOCALID # 0-indexed within the node + +echo "[INFO] Node $NODE_ID | GPU $GPU_ID | sees CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES" + +# --- Chunk the CSV across nodes and GPUs --- +TOTAL_ROWS=$(tail -n +2 "$CSV_FILE" | wc -l) +DATA_PER_NODE=$(( TOTAL_ROWS / SLURM_NNODES )) +DATA_PER_GPU=$(( DATA_PER_NODE / GPUS_PER_NODE )) + +START_ROW=$(( NODE_ID * DATA_PER_NODE + GPU_ID * DATA_PER_GPU + 1 )) # +1: tail is 1-indexed + +echo "[INFO] Handling rows $START_ROW to $(( START_ROW + DATA_PER_GPU - 1 )) of $TOTAL_ROWS" + +tail -n +2 "$CSV_FILE" | tail -n +"$START_ROW" | head -n "$DATA_PER_GPU" \ +| while IFS=',' read -r PROTEIN LIGAND MODEL; do + + PROTEIN=$(echo "$PROTEIN" | xargs) + LIGAND=$(echo "$LIGAND" | xargs) + MODEL=$(echo "$MODEL" | xargs) + MODEL_SHORT=${MODEL##*/} + + LIG_ARG="None" + if [[ -n "$LIGAND" && "$LIGAND" != "None" && "$LIGAND" != "none" ]]; then + LIG_ARG="$LIGAND" + fi + + for RUN in 1 2 3; do + LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" + + echo "------------------------------------------------------" + echo "[INFO] Node=$NODE_ID GPU=$GPU_ID | $PROTEIN | $LIG_ARG | $MODEL_SHORT | Run $RUN/3" + echo "[INFO] Output → $LOGFILE" + echo "------------------------------------------------------" + + if ! $PYTHON -u main.py \ + --pdb_id "$PROTEIN" \ + --ligand "$LIG_ARG" \ + --model "$MODEL" \ + --temp 300 \ + --duration 0.01 \ + > "$LOGFILE" 2>&1 + then + echo "[WARN] Failed: $PROTEIN $LIG_ARG run $RUN" | tee -a "$FAILED_SYSTEMS" + fi + + echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL_SHORT)." + done +done + +echo "[INFO] Node $NODE_ID | GPU $GPU_ID | All rows complete." \ No newline at end of file From 9a274d71a3e37f5b19ca175110ac9a5ac88b61e5 Mon Sep 17 00:00:00 2001 From: cassandra Date: Mon, 11 May 2026 14:54:28 +0200 Subject: [PATCH 05/14] filter systems for launch + bug fix --- Launch_scripts/plinder_job_filter.ipynb | 52 +++ Launch_scripts/plinder_launch_complete.csv | 335 ++++++++++++++++++ Launch_scripts/plinder_launch_incomplete.csv | 346 +++++++++++++++++++ src/agents/agent.py | 11 +- src/tools/pdb_tools.py | 5 +- 5 files changed, 745 insertions(+), 4 deletions(-) create mode 100644 Launch_scripts/plinder_job_filter.ipynb create mode 100644 Launch_scripts/plinder_launch_complete.csv create mode 100644 Launch_scripts/plinder_launch_incomplete.csv diff --git a/Launch_scripts/plinder_job_filter.ipynb b/Launch_scripts/plinder_job_filter.ipynb new file mode 100644 index 0000000..c53d99a --- /dev/null +++ b/Launch_scripts/plinder_job_filter.ipynb @@ -0,0 +1,52 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "df_incomplete = pd.read_csv('plinder_launch_incomplete.csv')\n", + "\n", + "# 165 randomly selected protein-ligand systems\n", + "protein_ligand = df_incomplete.sample(n=165, random_state=42).reset_index(drop=True)\n", + "\n", + "# 100 randomly selected protein-only systems (ligand code blank)\n", + "protein_only = df_incomplete.sample(n=100, random_state=7).reset_index(drop=True)\n", + "protein_only['ligand_unique_ccd_code'] = ''\n", + "\n", + "combined = pd.concat([protein_ligand, protein_only], ignore_index=True)\n", + "\n", + "print(f'Total systems: {len(combined)}')\n", + "print(f'Protein-ligand: {len(protein_ligand)}')\n", + "print(f'Protein-only: {len(protein_only)}')\n", + "combined.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "combined.to_csv('plinder_job_filter_output.csv', index=False)\n", + "print('Saved to plinder_job_filter_output.csv')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "dynamate_data", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Launch_scripts/plinder_launch_complete.csv b/Launch_scripts/plinder_launch_complete.csv new file mode 100644 index 0000000..70608f0 --- /dev/null +++ b/Launch_scripts/plinder_launch_complete.csv @@ -0,0 +1,335 @@ +entry_pdb_id,ligand_unique_ccd_code,model +4hj3,FMN,openrouter/openai/gpt-5-mini +7m8r,W6X,openrouter/openai/gpt-5-mini +5jg5,EVF,openrouter/openai/gpt-5-mini +6dh1,K13,openrouter/openai/gpt-5-mini +4j2a,TTP,openrouter/openai/gpt-5-mini +1fm6,BRL,openrouter/openai/gpt-5-mini +4ufx,NHW,openrouter/openai/gpt-5-mini +6tx7,V1L,openrouter/openai/gpt-5-mini +4tta,FMC,openrouter/openai/gpt-5-mini +1wuw,SEG,openrouter/openai/gpt-5-mini +6dws,HFY,openrouter/openai/gpt-5-mini +7qzz,HHT,openrouter/openai/gpt-5-mini +6f57,SAH,openrouter/openai/gpt-5-mini +3qls,GLY,openrouter/openai/gpt-5-mini +3s9h,DUP,openrouter/openai/gpt-5-mini +3l72,IKR,openrouter/openai/gpt-5-mini +5e9i,F60,openrouter/openai/gpt-5-mini +4xn4,MET,openrouter/openai/gpt-5-mini +5c4s,4Y5,openrouter/openai/gpt-5-mini +6opv,017,openrouter/openai/gpt-5-mini +5x1f,CHD,openrouter/openai/gpt-5-mini +5ytd,DGT,openrouter/openai/gpt-5-mini +2w26,RIV,openrouter/openai/gpt-5-mini +3qlh,MNK,openrouter/openai/gpt-5-mini +4tti,FMC,openrouter/openai/gpt-5-mini +1bxh,MMA,openrouter/openai/gpt-5-mini +6dh0,017,openrouter/openai/gpt-5-mini +4xo4,MET,openrouter/openai/gpt-5-mini +1jof,PIN,openrouter/openai/gpt-5-mini +8c6o,CZH,openrouter/openai/gpt-5-mini +3oy4,017,openrouter/openai/gpt-5-mini +7a4q,QY2,openrouter/openai/gpt-5-mini +7ma1,065,openrouter/openai/gpt-5-mini +8jea,MAN,openrouter/openai/gpt-5-mini +4zsg,4QX,openrouter/openai/gpt-5-mini +4xmz,DAB,openrouter/openai/gpt-5-mini +4l1e,BLA,openrouter/openai/gpt-5-mini +7ma4,K2A,openrouter/openai/gpt-5-mini +7ma3,K14,openrouter/openai/gpt-5-mini +1tke,SEG,openrouter/openai/gpt-5-mini +3iai,AZM,openrouter/openai/gpt-5-mini +3sq4,TTP,openrouter/openai/gpt-5-mini +6g2r,EJK,openrouter/openai/gpt-5-mini +7vm6,7R8,openrouter/openai/gpt-5-mini +3nu9,478,openrouter/openai/gpt-5-mini +3qsy,GNP,openrouter/openai/gpt-5-mini +5jgs,EVF,openrouter/openai/gpt-5-mini +3ma0,HSZ,openrouter/openai/gpt-5-mini +3ar2,ACP,openrouter/openai/gpt-5-mini +2onj,ANP,openrouter/openai/gpt-5-mini +7u31,L7I,openrouter/openai/gpt-5-mini +6c7d,EOJ,openrouter/openai/gpt-5-mini +6q60,HJH,openrouter/openai/gpt-5-mini +5hnu,NAP,openrouter/openai/gpt-5-mini +3cic,316,openrouter/openai/gpt-5-mini +2x96,RX3,openrouter/openai/gpt-5-mini +7ve7,NAP,openrouter/openai/gpt-5-mini +1bxh,MAM,openrouter/openai/gpt-5-mini +3llm,ADP,openrouter/openai/gpt-5-mini +3gi4,K60,openrouter/openai/gpt-5-mini +1fl3,SPB,openrouter/openai/gpt-5-mini +4xob,KGM,openrouter/openai/gpt-5-mini +4e5p,NAD,openrouter/openai/gpt-5-mini +3qp8,HL0,openrouter/openai/gpt-5-mini +8qve,FAD,openrouter/openai/gpt-5-mini +7u2z,L7C,openrouter/openai/gpt-5-mini +2ves,GVR,openrouter/openai/gpt-5-mini +5ljq,ANV,openrouter/openai/gpt-5-mini +4k11,0J9,openrouter/openai/gpt-5-mini +2hd1,IBM,openrouter/openai/gpt-5-mini +2x45,HSM,openrouter/openai/gpt-5-mini +6c7e,EOG,openrouter/openai/gpt-5-mini +5mha,NDP,openrouter/openai/gpt-5-mini +1j1f,CPG,openrouter/openai/gpt-5-mini +4bcw,TU0,openrouter/openai/gpt-5-mini +4u21,FWD,openrouter/openai/gpt-5-mini +6d5w,GNP,openrouter/openai/gpt-5-mini +3p3g,3P3,openrouter/openai/gpt-5-mini +4wb7,ATP,openrouter/openai/gpt-5-mini +8fsi,SAM,openrouter/openai/gpt-5-mini +7d5x,CHD,openrouter/openai/gpt-5-mini +6tak,ORO,openrouter/openai/gpt-5-mini +6ay3,C3J,openrouter/openai/gpt-5-mini +5i7x,67B,openrouter/openai/gpt-5-mini +5tqz,AGC,openrouter/openai/gpt-5-mini +5is4,6LY,openrouter/openai/gpt-5-mini +3l71,AZO,openrouter/openai/gpt-5-mini +3ar7,128,openrouter/openai/gpt-5-mini +4j2d,TTP,openrouter/openai/gpt-5-mini +4rqu,NAD,openrouter/openai/gpt-5-mini +2p3u,663,openrouter/openai/gpt-5-mini +7ldy,DJR,openrouter/openai/gpt-5-mini +4ogi,R78,openrouter/openai/gpt-5-mini +1l8b,MGP,openrouter/openai/gpt-5-mini +4l9i,8PR,openrouter/openai/gpt-5-mini +7aif,RE5,openrouter/openai/gpt-5-mini +2vg0,GPP,openrouter/openai/gpt-5-mini +7zaa,IJX,openrouter/openai/gpt-5-mini +4ca8,3ES,openrouter/openai/gpt-5-mini +4ldj,GDP,openrouter/openai/gpt-5-mini +6q3u,ARG,openrouter/openai/gpt-5-mini +4tx0,384,openrouter/openai/gpt-5-mini +6cvl,AGS,openrouter/openai/gpt-5-mini +1d4j,MSC,openrouter/openai/gpt-5-mini +5j4t,MBG,openrouter/openai/gpt-5-mini +4oub,NAD,openrouter/openai/gpt-5-mini +6qu0,FMN,openrouter/openai/gpt-5-mini +4is9,LTF,openrouter/openai/gpt-5-mini +5e41,AUL,openrouter/openai/gpt-5-mini +2xe5,ASZ,openrouter/openai/gpt-5-mini +1ht5,FL2,openrouter/openai/gpt-5-mini +7c3v,NAP,openrouter/openai/gpt-5-mini +3l74,FMX,openrouter/openai/gpt-5-mini +5b3s,CHD,openrouter/openai/gpt-5-mini +1pno,NAP,openrouter/openai/gpt-5-mini +5b4o,6DQ,openrouter/openai/gpt-5-mini +1x8t,RC1,openrouter/openai/gpt-5-mini +5a0c,JJV,openrouter/openai/gpt-5-mini +6dh8,A60,openrouter/openai/gpt-5-mini +7z63,IE3,openrouter/openai/gpt-5-mini +1pnq,NDP,openrouter/openai/gpt-5-mini +3ozw,FAD,openrouter/openai/gpt-5-mini +1r0a,AGC,openrouter/openai/gpt-5-mini +6dh4,K13,openrouter/openai/gpt-5-mini +5c1m,VF1,openrouter/openai/gpt-5-mini +6xhf,V2S,openrouter/openai/gpt-5-mini +5jvl,6NQ,openrouter/openai/gpt-5-mini +8t1u,SAH,openrouter/openai/gpt-5-mini +3sq0,DUP,openrouter/openai/gpt-5-mini +7krg,NAP,openrouter/openai/gpt-5-mini +5uep,88P,openrouter/openai/gpt-5-mini +4hx2,1AX,openrouter/openai/gpt-5-mini +3wg7,CHD,openrouter/openai/gpt-5-mini +6kae,2FU,openrouter/openai/gpt-5-mini +2ou5,FMN,openrouter/openai/gpt-5-mini +7aii,RFE,openrouter/openai/gpt-5-mini +2ek7,SAH,openrouter/openai/gpt-5-mini +7efw,CYC,openrouter/openai/gpt-5-mini +4y2w,ALA,openrouter/openai/gpt-5-mini +4pzz,GDP,openrouter/openai/gpt-5-mini +2gy5,NDG,openrouter/openai/gpt-5-mini +3ar9,TM1,openrouter/openai/gpt-5-mini +3sq6,EPJ,openrouter/openai/gpt-5-mini +6zb0,QCW,openrouter/openai/gpt-5-mini +7l4h,SAH,openrouter/openai/gpt-5-mini +2ofi,ADK,openrouter/openai/gpt-5-mini +4msf,HSR,openrouter/openai/gpt-5-mini +5it8,GUN,openrouter/openai/gpt-5-mini +4y41,46O,openrouter/openai/gpt-5-mini +5uez,89G,openrouter/openai/gpt-5-mini +1ua0,AF,openrouter/openai/gpt-5-mini +8cx5,GDP,openrouter/openai/gpt-5-mini +4gid,0GH,openrouter/openai/gpt-5-mini +2uz4,SAH,openrouter/openai/gpt-5-mini +5lzi,7DB,openrouter/openai/gpt-5-mini +2vml,CYC,openrouter/openai/gpt-5-mini +3k2d,MET,openrouter/openai/gpt-5-mini +7ma9,K2E,openrouter/openai/gpt-5-mini +4nqg,CZH,openrouter/openai/gpt-5-mini +5ciy,SAH,openrouter/openai/gpt-5-mini +4lxq,TYD,openrouter/openai/gpt-5-mini +3a8c,O09,openrouter/openai/gpt-5-mini +4z1s,559,openrouter/openai/gpt-5-mini +5dq1,5HL,openrouter/openai/gpt-5-mini +6dh2,A60,openrouter/openai/gpt-5-mini +1c9w,NAP,openrouter/openai/gpt-5-mini +7dmc,H9F,openrouter/openai/gpt-5-mini +6opw,017,openrouter/openai/gpt-5-mini +7td8,AGG,openrouter/openai/gpt-5-mini +4b6l,9ZP,openrouter/openai/gpt-5-mini +6sck,DAR,openrouter/openai/gpt-5-mini +6fa3,GNP,openrouter/openai/gpt-5-mini +3cid,318,openrouter/openai/gpt-5-mini +6kk0,M36,openrouter/openai/gpt-5-mini +3si6,DUP,openrouter/openai/gpt-5-mini +5j7l,TAC,openrouter/openai/gpt-5-mini +4pct,H76,openrouter/openai/gpt-5-mini +5zfk,HBI,openrouter/openai/gpt-5-mini +5l7v,GNL,openrouter/openai/gpt-5-mini +5f1a,SAL,openrouter/openai/gpt-5-mini +5cg9,AKG,openrouter/openai/gpt-5-mini +5m2b,7DX,openrouter/openai/gpt-5-mini +2cvz,NDP,openrouter/openai/gpt-5-mini +8snz,FMN,openrouter/openai/gpt-5-mini +4z1q,558,openrouter/openai/gpt-5-mini +8hux,7YY,openrouter/openai/gpt-5-mini +2xel,AD9,openrouter/openai/gpt-5-mini +6bur,BR8,openrouter/openai/gpt-5-mini +3ar6,12D,openrouter/openai/gpt-5-mini +5ok3,M77,openrouter/openai/gpt-5-mini +7ghq,OYX,openrouter/openai/gpt-5-mini +2ggs,NDP,openrouter/openai/gpt-5-mini +6inw,SAM,openrouter/openai/gpt-5-mini +5lzg,7BN,openrouter/openai/gpt-5-mini +4glo,NAD,openrouter/openai/gpt-5-mini +6dh3,017,openrouter/openai/gpt-5-mini +8hus,7YY,openrouter/openai/gpt-5-mini +2x1t,RES,openrouter/openai/gpt-5-mini +6tx4,HRZ,openrouter/openai/gpt-5-mini +5z84,CHD,openrouter/openai/gpt-5-mini +6z4w,ADP,openrouter/openai/gpt-5-mini +6a5y,9R0,openrouter/openai/gpt-5-mini +6dh5,A60,openrouter/openai/gpt-5-mini +1j1g,CPG,openrouter/openai/gpt-5-mini +5isj,6LE,openrouter/openai/gpt-5-mini +3l75,FNM,openrouter/openai/gpt-5-mini +4a6s,GS9,openrouter/openai/gpt-5-mini +3gw5,72X,openrouter/openai/gpt-5-mini +1obo,FMN,openrouter/openai/gpt-5-mini +8fwa,CYC,openrouter/openai/gpt-5-mini +3n8y,DIF,openrouter/openai/gpt-5-mini +6tuk,BU3,openrouter/openai/gpt-5-mini +4xf7,CBU,openrouter/openai/gpt-5-mini +6c7i,EP7,openrouter/openai/gpt-5-mini +4eok,4SP,openrouter/openai/gpt-5-mini +1wbk,568,openrouter/openai/gpt-5-mini +1c5s,ESX,openrouter/openai/gpt-5-mini +6opz,017,openrouter/openai/gpt-5-mini +8h81,HYP,openrouter/openai/gpt-5-mini +1vb3,KPA,openrouter/openai/gpt-5-mini +5u35,MXE,openrouter/openai/gpt-5-mini +8hwp,BUA,openrouter/openai/gpt-5-mini +1u6q,745,openrouter/openai/gpt-5-mini +4jui,EGR,openrouter/openai/gpt-5-mini +3ixb,BZB,openrouter/openai/gpt-5-mini +2jki,ADP,openrouter/openai/gpt-5-mini +1m6w,12H,openrouter/openai/gpt-5-mini +4rif,3R2,openrouter/openai/gpt-5-mini +5h9i,XAN,openrouter/openai/gpt-5-mini +5hw8,FK5,openrouter/openai/gpt-5-mini +4jji,NAD,openrouter/openai/gpt-5-mini +4ct9,AMP,openrouter/openai/gpt-5-mini +4hj6,FMN,openrouter/openai/gpt-5-mini +4tmv,GSP,openrouter/openai/gpt-5-mini +3cib,314,openrouter/openai/gpt-5-mini +2pfz,PCA,openrouter/openai/gpt-5-mini +7ma7,K2D,openrouter/openai/gpt-5-mini +2q1j,FXI,openrouter/openai/gpt-5-mini +3sq2,TTP,openrouter/openai/gpt-5-mini +7l4c,SAH,openrouter/openai/gpt-5-mini +7e00,PRO,openrouter/openai/gpt-5-mini +6lx5,C5F,openrouter/openai/gpt-5-mini +7e66,HY6,openrouter/openai/gpt-5-mini +2h42,VIA,openrouter/openai/gpt-5-mini +7lgk,XZ7,openrouter/openai/gpt-5-mini +3rk8,PYR,openrouter/openai/gpt-5-mini +4dje,C2F,openrouter/openai/gpt-5-mini +3ids,NAD,openrouter/openai/gpt-5-mini +4av5,FYZ,openrouter/openai/gpt-5-mini +6h9b,GDP,openrouter/openai/gpt-5-mini +4w8d,3JA,openrouter/openai/gpt-5-mini +6z19,ADP,openrouter/openai/gpt-5-mini +8eip,7ID,openrouter/openai/gpt-5-mini +6ops,017,openrouter/openai/gpt-5-mini +3b8h,NAD,openrouter/openai/gpt-5-mini +4e3s,QTP,openrouter/openai/gpt-5-mini +7ma2,XUY,openrouter/openai/gpt-5-mini +7ma8,F53,openrouter/openai/gpt-5-mini +2g6p,HM2,openrouter/openai/gpt-5-mini +4hw3,19G,openrouter/openai/gpt-5-mini +4hoe,GLY,openrouter/openai/gpt-5-mini +1t8e,DCT,openrouter/openai/gpt-5-mini +5l66,BO2,openrouter/openai/gpt-5-mini +7o0e,GLY,openrouter/openai/gpt-5-mini +5yp5,4CZ,openrouter/openai/gpt-5-mini +4xou,ACP,openrouter/openai/gpt-5-mini +3tgu,WF3,openrouter/openai/gpt-5-mini +3esz,FMN,openrouter/openai/gpt-5-mini +7vdo,NAP,openrouter/openai/gpt-5-mini +6bun,HPG,openrouter/openai/gpt-5-mini +6tx6,NCA,openrouter/openai/gpt-5-mini +2rbq,263,openrouter/openai/gpt-5-mini +5hzn,66A,openrouter/openai/gpt-5-mini +6opy,017,openrouter/openai/gpt-5-mini +5lzh,7BN,openrouter/openai/gpt-5-mini +3snn,DCP,openrouter/openai/gpt-5-mini +8u2e,UP9,openrouter/openai/gpt-5-mini +4tyn,ADP,openrouter/openai/gpt-5-mini +3x1z,GNP,openrouter/openai/gpt-5-mini +4do6,AGC,openrouter/openai/gpt-5-mini +4p6w,MOF,openrouter/openai/gpt-5-mini +5k6j,6QQ,openrouter/openai/gpt-5-mini +7ma0,NJM,openrouter/openai/gpt-5-mini +5ll4,6YH,openrouter/openai/gpt-5-mini +6dh7,K13,openrouter/openai/gpt-5-mini +5tcc,J56,openrouter/openai/gpt-5-mini +3l70,JZV,openrouter/openai/gpt-5-mini +6bxi,ANP,openrouter/openai/gpt-5-mini +5a5q,6XC,openrouter/openai/gpt-5-mini +4u27,VIF,openrouter/openai/gpt-5-mini +6gpa,GAL,openrouter/openai/gpt-5-mini +4r5b,3J4,openrouter/openai/gpt-5-mini +6qfg,J08,openrouter/openai/gpt-5-mini +2nuo,BGC,openrouter/openai/gpt-5-mini +4hof,GLY,openrouter/openai/gpt-5-mini +2xrs,GAL,openrouter/openai/gpt-5-mini +2ev9,SKM,openrouter/openai/gpt-5-mini +6q27,BM3,openrouter/openai/gpt-5-mini +3scx,DUP,openrouter/openai/gpt-5-mini +1w1x,NAN,openrouter/openai/gpt-5-mini +6oy1,NJ1,openrouter/openai/gpt-5-mini +4gh6,LUO,openrouter/openai/gpt-5-mini +6dh6,017,openrouter/openai/gpt-5-mini +2ray,258,openrouter/openai/gpt-5-mini +3sq1,DUP,openrouter/openai/gpt-5-mini +3iog,SDF,openrouter/openai/gpt-5-mini +2hr1,SAH,openrouter/openai/gpt-5-mini +4v5l,GCP,openrouter/openai/gpt-5-mini +6opt,017,openrouter/openai/gpt-5-mini +6jea,HSR,openrouter/openai/gpt-5-mini +5ujx,FOL,openrouter/openai/gpt-5-mini +7oli,8HG,openrouter/openai/gpt-5-mini +2e89,ATP,openrouter/openai/gpt-5-mini +4hn1,TDR,openrouter/openai/gpt-5-mini +3b82,NAD,openrouter/openai/gpt-5-mini +5bqs,4VN,openrouter/openai/gpt-5-mini +5uer,87P,openrouter/openai/gpt-5-mini +5hjo,DGO,openrouter/openai/gpt-5-mini +2x97,RX4,openrouter/openai/gpt-5-mini +3l73,JZZ,openrouter/openai/gpt-5-mini +3n8w,FLP,openrouter/openai/gpt-5-mini +3oaf,OAG,openrouter/openai/gpt-5-mini +4e5m,NAP,openrouter/openai/gpt-5-mini +1fm9,570,openrouter/openai/gpt-5-mini +7uah,NZ5,openrouter/openai/gpt-5-mini +1oko,GAL,openrouter/openai/gpt-5-mini +2boj,ARW,openrouter/openai/gpt-5-mini +3n8g,ACP,openrouter/openai/gpt-5-mini +7maa,A61,openrouter/openai/gpt-5-mini +3ggx,GGX,openrouter/openai/gpt-5-mini +4ra3,TFX,openrouter/openai/gpt-5-mini +2i0u,TRT,openrouter/openai/gpt-5-mini +6oy2,NJJ,openrouter/openai/gpt-5-mini +7ma5,K20,openrouter/openai/gpt-5-mini diff --git a/Launch_scripts/plinder_launch_incomplete.csv b/Launch_scripts/plinder_launch_incomplete.csv new file mode 100644 index 0000000..06a9859 --- /dev/null +++ b/Launch_scripts/plinder_launch_incomplete.csv @@ -0,0 +1,346 @@ +entry_pdb_id,ligand_unique_ccd_code,model +4hj3,FMN,openrouter/openai/gpt-5-mini +7m8r,W6X,openrouter/openai/gpt-5-mini +5jg5,EVF,openrouter/openai/gpt-5-mini +6dh1,K13,openrouter/openai/gpt-5-mini +4j2a,TTP,openrouter/openai/gpt-5-mini +1fm6,BRL,openrouter/openai/gpt-5-mini +4ufx,NHW,openrouter/openai/gpt-5-mini +6tx7,V1L,openrouter/openai/gpt-5-mini +4tta,FMC,openrouter/openai/gpt-5-mini +1wuw,SEG,openrouter/openai/gpt-5-mini +6dws,HFY,openrouter/openai/gpt-5-mini +7qzz,HHT,openrouter/openai/gpt-5-mini +6f57,SAH,openrouter/openai/gpt-5-mini +3qls,GLY,openrouter/openai/gpt-5-mini +3s9h,DUP,openrouter/openai/gpt-5-mini +3l72,IKR,openrouter/openai/gpt-5-mini +5e9i,F60,openrouter/openai/gpt-5-mini +4xn4,MET,openrouter/openai/gpt-5-mini +5c4s,4Y5,openrouter/openai/gpt-5-mini +6opv,017,openrouter/openai/gpt-5-mini +5x1f,CHD,openrouter/openai/gpt-5-mini +5ytd,DGT,openrouter/openai/gpt-5-mini +2w26,RIV,openrouter/openai/gpt-5-mini +3qlh,MNK,openrouter/openai/gpt-5-mini +4tti,FMC,openrouter/openai/gpt-5-mini +1bxh,MMA,openrouter/openai/gpt-5-mini +6dh0,017,openrouter/openai/gpt-5-mini +4xo4,MET,openrouter/openai/gpt-5-mini +1jof,PIN,openrouter/openai/gpt-5-mini +8c6o,CZH,openrouter/openai/gpt-5-mini +3oy4,017,openrouter/openai/gpt-5-mini +7a4q,QY2,openrouter/openai/gpt-5-mini +7ma1,065,openrouter/openai/gpt-5-mini +8jea,MAN,openrouter/openai/gpt-5-mini +4zsg,4QX,openrouter/openai/gpt-5-mini +4xmz,DAB,openrouter/openai/gpt-5-mini +4l1e,BLA,openrouter/openai/gpt-5-mini +7ma4,K2A,openrouter/openai/gpt-5-mini +7ma3,K14,openrouter/openai/gpt-5-mini +1tke,SEG,openrouter/openai/gpt-5-mini +3iai,AZM,openrouter/openai/gpt-5-mini +3sq4,TTP,openrouter/openai/gpt-5-mini +6g2r,EJK,openrouter/openai/gpt-5-mini +7vm6,7R8,openrouter/openai/gpt-5-mini +3nu9,478,openrouter/openai/gpt-5-mini +3qsy,GNP,openrouter/openai/gpt-5-mini +5jgs,EVF,openrouter/openai/gpt-5-mini +3ma0,HSZ,openrouter/openai/gpt-5-mini +3ar2,ACP,openrouter/openai/gpt-5-mini +2onj,ANP,openrouter/openai/gpt-5-mini +7u31,L7I,openrouter/openai/gpt-5-mini +6c7d,EOJ,openrouter/openai/gpt-5-mini +6q60,HJH,openrouter/openai/gpt-5-mini +5hnu,NAP,openrouter/openai/gpt-5-mini +3cic,316,openrouter/openai/gpt-5-mini +2x96,RX3,openrouter/openai/gpt-5-mini +7ve7,NAP,openrouter/openai/gpt-5-mini +1bxh,MAM,openrouter/openai/gpt-5-mini +3llm,ADP,openrouter/openai/gpt-5-mini +3gi4,K60,openrouter/openai/gpt-5-mini +1fl3,SPB,openrouter/openai/gpt-5-mini +4xob,KGM,openrouter/openai/gpt-5-mini +4e5p,NAD,openrouter/openai/gpt-5-mini +3qp8,HL0,openrouter/openai/gpt-5-mini +8qve,FAD,openrouter/openai/gpt-5-mini +7u2z,L7C,openrouter/openai/gpt-5-mini +2ves,GVR,openrouter/openai/gpt-5-mini +5ljq,ANV,openrouter/openai/gpt-5-mini +4k11,0J9,openrouter/openai/gpt-5-mini +2hd1,IBM,openrouter/openai/gpt-5-mini +2x45,HSM,openrouter/openai/gpt-5-mini +6c7e,EOG,openrouter/openai/gpt-5-mini +5mha,NDP,openrouter/openai/gpt-5-mini +1j1f,CPG,openrouter/openai/gpt-5-mini +4bcw,TU0,openrouter/openai/gpt-5-mini +4u21,FWD,openrouter/openai/gpt-5-mini +6d5w,GNP,openrouter/openai/gpt-5-mini +3p3g,3P3,openrouter/openai/gpt-5-mini +4wb7,ATP,openrouter/openai/gpt-5-mini +8fsi,SAM,openrouter/openai/gpt-5-mini +7d5x,CHD,openrouter/openai/gpt-5-mini +6tak,ORO,openrouter/openai/gpt-5-mini +6ay3,C3J,openrouter/openai/gpt-5-mini +5i7x,67B,openrouter/openai/gpt-5-mini +5tqz,AGC,openrouter/openai/gpt-5-mini +5is4,6LY,openrouter/openai/gpt-5-mini +3l71,AZO,openrouter/openai/gpt-5-mini +3ar7,128,openrouter/openai/gpt-5-mini +4j2d,TTP,openrouter/openai/gpt-5-mini +4rqu,NAD,openrouter/openai/gpt-5-mini +2p3u,663,openrouter/openai/gpt-5-mini +7ldy,DJR,openrouter/openai/gpt-5-mini +4ogi,R78,openrouter/openai/gpt-5-mini +1l8b,MGP,openrouter/openai/gpt-5-mini +4l9i,8PR,openrouter/openai/gpt-5-mini +7aif,RE5,openrouter/openai/gpt-5-mini +2vg0,GPP,openrouter/openai/gpt-5-mini +7zaa,IJX,openrouter/openai/gpt-5-mini +4ca8,3ES,openrouter/openai/gpt-5-mini +4ldj,GDP,openrouter/openai/gpt-5-mini +6q3u,ARG,openrouter/openai/gpt-5-mini +4tx0,384,openrouter/openai/gpt-5-mini +6cvl,AGS,openrouter/openai/gpt-5-mini +1d4j,MSC,openrouter/openai/gpt-5-mini +5j4t,MBG,openrouter/openai/gpt-5-mini +4oub,NAD,openrouter/openai/gpt-5-mini +6qu0,FMN,openrouter/openai/gpt-5-mini +4is9,LTF,openrouter/openai/gpt-5-mini +5e41,AUL,openrouter/openai/gpt-5-mini +2xe5,ASZ,openrouter/openai/gpt-5-mini +1ht5,FL2,openrouter/openai/gpt-5-mini +7c3v,NAP,openrouter/openai/gpt-5-mini +3l74,FMX,openrouter/openai/gpt-5-mini +5b3s,CHD,openrouter/openai/gpt-5-mini +1pno,NAP,openrouter/openai/gpt-5-mini +5b4o,6DQ,openrouter/openai/gpt-5-mini +1x8t,RC1,openrouter/openai/gpt-5-mini +5a0c,JJV,openrouter/openai/gpt-5-mini +6dh8,A60,openrouter/openai/gpt-5-mini +7z63,IE3,openrouter/openai/gpt-5-mini +1pnq,NDP,openrouter/openai/gpt-5-mini +3ozw,FAD,openrouter/openai/gpt-5-mini +1r0a,AGC,openrouter/openai/gpt-5-mini +6dh4,K13,openrouter/openai/gpt-5-mini +5c1m,VF1,openrouter/openai/gpt-5-mini +6xhf,V2S,openrouter/openai/gpt-5-mini +5jvl,6NQ,openrouter/openai/gpt-5-mini +8t1u,SAH,openrouter/openai/gpt-5-mini +3sq0,DUP,openrouter/openai/gpt-5-mini +7krg,NAP,openrouter/openai/gpt-5-mini +5uep,88P,openrouter/openai/gpt-5-mini +4hx2,1AX,openrouter/openai/gpt-5-mini +3wg7,CHD,openrouter/openai/gpt-5-mini +6kae,2FU,openrouter/openai/gpt-5-mini +2ou5,FMN,openrouter/openai/gpt-5-mini +7aii,RFE,openrouter/openai/gpt-5-mini +2ek7,SAH,openrouter/openai/gpt-5-mini +7efw,CYC,openrouter/openai/gpt-5-mini +4y2w,ALA,openrouter/openai/gpt-5-mini +4pzz,GDP,openrouter/openai/gpt-5-mini +2gy5,NDG,openrouter/openai/gpt-5-mini +3ar9,TM1,openrouter/openai/gpt-5-mini +3sq6,EPJ,openrouter/openai/gpt-5-mini +6zb0,QCW,openrouter/openai/gpt-5-mini +7l4h,SAH,openrouter/openai/gpt-5-mini +2ofi,ADK,openrouter/openai/gpt-5-mini +4msf,HSR,openrouter/openai/gpt-5-mini +5it8,GUN,openrouter/openai/gpt-5-mini +4y41,46O,openrouter/openai/gpt-5-mini +5uez,89G,openrouter/openai/gpt-5-mini +1ua0,AF,openrouter/openai/gpt-5-mini +8cx5,GDP,openrouter/openai/gpt-5-mini +4gid,0GH,openrouter/openai/gpt-5-mini +2uz4,SAH,openrouter/openai/gpt-5-mini +5lzi,7DB,openrouter/openai/gpt-5-mini +2vml,CYC,openrouter/openai/gpt-5-mini +3k2d,MET,openrouter/openai/gpt-5-mini +7ma9,K2E,openrouter/openai/gpt-5-mini +4nqg,CZH,openrouter/openai/gpt-5-mini +5ciy,SAH,openrouter/openai/gpt-5-mini +4lxq,TYD,openrouter/openai/gpt-5-mini +3a8c,O09,openrouter/openai/gpt-5-mini +4z1s,559,openrouter/openai/gpt-5-mini +5dq1,5HL,openrouter/openai/gpt-5-mini +6dh2,A60,openrouter/openai/gpt-5-mini +1c9w,NAP,openrouter/openai/gpt-5-mini +7dmc,H9F,openrouter/openai/gpt-5-mini +6opw,017,openrouter/openai/gpt-5-mini +7td8,AGG,openrouter/openai/gpt-5-mini +4b6l,9ZP,openrouter/openai/gpt-5-mini +6sck,DAR,openrouter/openai/gpt-5-mini +6fa3,GNP,openrouter/openai/gpt-5-mini +3cid,318,openrouter/openai/gpt-5-mini +6kk0,M36,openrouter/openai/gpt-5-mini +3si6,DUP,openrouter/openai/gpt-5-mini +5j7l,TAC,openrouter/openai/gpt-5-mini +4pct,H76,openrouter/openai/gpt-5-mini +5zfk,HBI,openrouter/openai/gpt-5-mini +5l7v,GNL,openrouter/openai/gpt-5-mini +5f1a,SAL,openrouter/openai/gpt-5-mini +5cg9,AKG,openrouter/openai/gpt-5-mini +5m2b,7DX,openrouter/openai/gpt-5-mini +2cvz,NDP,openrouter/openai/gpt-5-mini +8snz,FMN,openrouter/openai/gpt-5-mini +4z1q,558,openrouter/openai/gpt-5-mini +8hux,7YY,openrouter/openai/gpt-5-mini +2xel,AD9,openrouter/openai/gpt-5-mini +6bur,BR8,openrouter/openai/gpt-5-mini +3ar6,12D,openrouter/openai/gpt-5-mini +5ok3,M77,openrouter/openai/gpt-5-mini +7ghq,OYX,openrouter/openai/gpt-5-mini +2ggs,NDP,openrouter/openai/gpt-5-mini +6inw,SAM,openrouter/openai/gpt-5-mini +5lzg,7BN,openrouter/openai/gpt-5-mini +4glo,NAD,openrouter/openai/gpt-5-mini +6dh3,017,openrouter/openai/gpt-5-mini +8hus,7YY,openrouter/openai/gpt-5-mini +2x1t,RES,openrouter/openai/gpt-5-mini +6tx4,HRZ,openrouter/openai/gpt-5-mini +5z84,CHD,openrouter/openai/gpt-5-mini +6z4w,ADP,openrouter/openai/gpt-5-mini +6a5y,9R0,openrouter/openai/gpt-5-mini +6dh5,A60,openrouter/openai/gpt-5-mini +1j1g,CPG,openrouter/openai/gpt-5-mini +5isj,6LE,openrouter/openai/gpt-5-mini +3l75,FNM,openrouter/openai/gpt-5-mini +4a6s,GS9,openrouter/openai/gpt-5-mini +3gw5,72X,openrouter/openai/gpt-5-mini +1obo,FMN,openrouter/openai/gpt-5-mini +8fwa,CYC,openrouter/openai/gpt-5-mini +3n8y,DIF,openrouter/openai/gpt-5-mini +6tuk,BU3,openrouter/openai/gpt-5-mini +4xf7,CBU,openrouter/openai/gpt-5-mini +6c7i,EP7,openrouter/openai/gpt-5-mini +4eok,4SP,openrouter/openai/gpt-5-mini +1wbk,568,openrouter/openai/gpt-5-mini +1c5s,ESX,openrouter/openai/gpt-5-mini +6opz,017,openrouter/openai/gpt-5-mini +8h81,HYP,openrouter/openai/gpt-5-mini +1vb3,KPA,openrouter/openai/gpt-5-mini +5u35,MXE,openrouter/openai/gpt-5-mini +8hwp,BUA,openrouter/openai/gpt-5-mini +1u6q,745,openrouter/openai/gpt-5-mini +4jui,EGR,openrouter/openai/gpt-5-mini +3ixb,BZB,openrouter/openai/gpt-5-mini +2jki,ADP,openrouter/openai/gpt-5-mini +1m6w,12H,openrouter/openai/gpt-5-mini +4rif,3R2,openrouter/openai/gpt-5-mini +5h9i,XAN,openrouter/openai/gpt-5-mini +5hw8,FK5,openrouter/openai/gpt-5-mini +4jji,NAD,openrouter/openai/gpt-5-mini +4ct9,AMP,openrouter/openai/gpt-5-mini +4hj6,FMN,openrouter/openai/gpt-5-mini +4tmv,GSP,openrouter/openai/gpt-5-mini +3cib,314,openrouter/openai/gpt-5-mini +2pfz,PCA,openrouter/openai/gpt-5-mini +7ma7,K2D,openrouter/openai/gpt-5-mini +2q1j,FXI,openrouter/openai/gpt-5-mini +3sq2,TTP,openrouter/openai/gpt-5-mini +7l4c,SAH,openrouter/openai/gpt-5-mini +7e00,PRO,openrouter/openai/gpt-5-mini +6lx5,C5F,openrouter/openai/gpt-5-mini +7e66,HY6,openrouter/openai/gpt-5-mini +2h42,VIA,openrouter/openai/gpt-5-mini +7lgk,XZ7,openrouter/openai/gpt-5-mini +3rk8,PYR,openrouter/openai/gpt-5-mini +4dje,C2F,openrouter/openai/gpt-5-mini +3ids,NAD,openrouter/openai/gpt-5-mini +4av5,FYZ,openrouter/openai/gpt-5-mini +6h9b,GDP,openrouter/openai/gpt-5-mini +4w8d,3JA,openrouter/openai/gpt-5-mini +6z19,ADP,openrouter/openai/gpt-5-mini +8eip,7ID,openrouter/openai/gpt-5-mini +6ops,017,openrouter/openai/gpt-5-mini +3b8h,NAD,openrouter/openai/gpt-5-mini +4e3s,QTP,openrouter/openai/gpt-5-mini +7ma2,XUY,openrouter/openai/gpt-5-mini +7ma8,F53,openrouter/openai/gpt-5-mini +2g6p,HM2,openrouter/openai/gpt-5-mini +4hw3,19G,openrouter/openai/gpt-5-mini +4hoe,GLY,openrouter/openai/gpt-5-mini +1t8e,DCT,openrouter/openai/gpt-5-mini +5l66,BO2,openrouter/openai/gpt-5-mini +7o0e,GLY,openrouter/openai/gpt-5-mini +5yp5,4CZ,openrouter/openai/gpt-5-mini +4xou,ACP,openrouter/openai/gpt-5-mini +3tgu,WF3,openrouter/openai/gpt-5-mini +3esz,FMN,openrouter/openai/gpt-5-mini +7vdo,NAP,openrouter/openai/gpt-5-mini +6bun,HPG,openrouter/openai/gpt-5-mini +6tx6,NCA,openrouter/openai/gpt-5-mini +2rbq,263,openrouter/openai/gpt-5-mini +5hzn,66A,openrouter/openai/gpt-5-mini +6opy,017,openrouter/openai/gpt-5-mini +5lzh,7BN,openrouter/openai/gpt-5-mini +3snn,DCP,openrouter/openai/gpt-5-mini +8u2e,UP9,openrouter/openai/gpt-5-mini +4tyn,ADP,openrouter/openai/gpt-5-mini +3x1z,GNP,openrouter/openai/gpt-5-mini +4do6,AGC,openrouter/openai/gpt-5-mini +4p6w,MOF,openrouter/openai/gpt-5-mini +5k6j,6QQ,openrouter/openai/gpt-5-mini +7ma0,NJM,openrouter/openai/gpt-5-mini +5ll4,6YH,openrouter/openai/gpt-5-mini +6dh7,K13,openrouter/openai/gpt-5-mini +5tcc,J56,openrouter/openai/gpt-5-mini +3l70,JZV,openrouter/openai/gpt-5-mini +6bxi,ANP,openrouter/openai/gpt-5-mini +5a5q,6XC,openrouter/openai/gpt-5-mini +4u27,VIF,openrouter/openai/gpt-5-mini +6gpa,GAL,openrouter/openai/gpt-5-mini +4r5b,3J4,openrouter/openai/gpt-5-mini +6qfg,J08,openrouter/openai/gpt-5-mini +2nuo,BGC,openrouter/openai/gpt-5-mini +4hof,GLY,openrouter/openai/gpt-5-mini +2xrs,GAL,openrouter/openai/gpt-5-mini +2ev9,SKM,openrouter/openai/gpt-5-mini +6q27,BM3,openrouter/openai/gpt-5-mini +3scx,DUP,openrouter/openai/gpt-5-mini +1w1x,NAN,openrouter/openai/gpt-5-mini +6oy1,NJ1,openrouter/openai/gpt-5-mini +4gh6,LUO,openrouter/openai/gpt-5-mini +6dh6,017,openrouter/openai/gpt-5-mini +2ray,258,openrouter/openai/gpt-5-mini +3sq1,DUP,openrouter/openai/gpt-5-mini +3iog,SDF,openrouter/openai/gpt-5-mini +2hr1,SAH,openrouter/openai/gpt-5-mini +4v5l,GCP,openrouter/openai/gpt-5-mini +6opt,017,openrouter/openai/gpt-5-mini +6jea,HSR,openrouter/openai/gpt-5-mini +5ujx,FOL,openrouter/openai/gpt-5-mini +7oli,8HG,openrouter/openai/gpt-5-mini +2e89,ATP,openrouter/openai/gpt-5-mini +4hn1,TDR,openrouter/openai/gpt-5-mini +3b82,NAD,openrouter/openai/gpt-5-mini +5bqs,4VN,openrouter/openai/gpt-5-mini +5uer,87P,openrouter/openai/gpt-5-mini +5hjo,DGO,openrouter/openai/gpt-5-mini +2x97,RX4,openrouter/openai/gpt-5-mini +3l73,JZZ,openrouter/openai/gpt-5-mini +3n8w,FLP,openrouter/openai/gpt-5-mini +3oaf,OAG,openrouter/openai/gpt-5-mini +4e5m,NAP,openrouter/openai/gpt-5-mini +1fm9,570,openrouter/openai/gpt-5-mini +7uah,NZ5,openrouter/openai/gpt-5-mini +1oko,GAL,openrouter/openai/gpt-5-mini +2boj,ARW,openrouter/openai/gpt-5-mini +3n8g,ACP,openrouter/openai/gpt-5-mini +7maa,A61,openrouter/openai/gpt-5-mini +3ggx,GGX,openrouter/openai/gpt-5-mini +4ra3,TFX,openrouter/openai/gpt-5-mini +2i0u,TRT,openrouter/openai/gpt-5-mini +6oy2,NJJ,openrouter/openai/gpt-5-mini +7ma5,K20,openrouter/openai/gpt-5-mini +3HTB,JZ4,openrouter/openai/gpt-5-mini +3PTB,BEN,openrouter/openai/gpt-5-mini +4GIH,0X5,openrouter/openai/gpt-5-mini +AW52,BNZ,openrouter/openai/gpt-5-mini +5UEZ,89G,openrouter/openai/gpt-5-mini +5KB6,ADN,openrouter/openai/gpt-5-mini +1U6Q,745,openrouter/openai/gpt-5-mini +1C5S,ESX,openrouter/openai/gpt-5-mini +2RBQ,263,openrouter/openai/gpt-5-mini +2SQ6,EPJ,openrouter/openai/gpt-5-mini +5DQ1,5HL,openrouter/openai/gpt-5-mini diff --git a/src/agents/agent.py b/src/agents/agent.py index 45ec8e5..56bb5de 100644 --- a/src/agents/agent.py +++ b/src/agents/agent.py @@ -1,4 +1,5 @@ import os +import time from pathlib import Path from typing import Dict, Any, List import json @@ -177,15 +178,19 @@ def _safe_execute_tool(self, tool_name: str, tool_input: Dict[str, Any]) -> dict self.logger.error(error_msg) return {"ok": False, "output": error_msg} - tool_output = None - self._validate_tool_path(tool_input) func = TOOL_MAP.get(tool_name) if not func: raise ValueError(f"Unknown tool: {tool_name}") - tool_output = func(self, tool_input) + try: + tool_output = func(self, tool_input) + except Exception as e: + error_msg = f"Tool '{tool_name}' raised an exception: {type(e).__name__}: {e}\n{traceback.format_exc()}" + self.logger.error(error_msg) + return {"ok": False, "output": error_msg} + passed = self._additional_check_for_errors_tool_output(tool_name, tool_output) return {"ok": passed, "output": tool_output} diff --git a/src/tools/pdb_tools.py b/src/tools/pdb_tools.py index 38c4ba0..c433c7d 100644 --- a/src/tools/pdb_tools.py +++ b/src/tools/pdb_tools.py @@ -208,7 +208,10 @@ def prepare_pdb_file_ligand(sandbox_dir: str, pdb_id: str, ligand_name: str = No list_protonated_files.append(f"{ligand_name}_{index}_h.pdb") cmd = shlex.split(f"obabel {ligand_pdb_file} -O {protonated_file} -p7") - subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if result.returncode != 0 or not os.path.exists(protonated_file): + error_detail = result.stderr.decode(errors="replace").strip() or result.stdout.decode(errors="replace").strip() + return f"obabel failed to protonate {ligand_pdb_file} (return code {result.returncode}): {error_detail}" with open(protonated_file, "r") as infile: lines = infile.readlines() filtered_lines = [line for line in lines if not (line.startswith("CONECT") or line.startswith("MASTER"))] From 6f2f6a5e45f2d70e53f5a242e47fd8443ae8242f Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Mon, 11 May 2026 16:23:10 +0200 Subject: [PATCH 06/14] stop tracking launch scripts, add to gitignore --- .gitignore | 1 + Launch_scripts/cscs_launch.sh | 95 -- Launch_scripts/new_launch.sh | 32 - Launch_scripts/plinder_job_filter.ipynb | 52 - Launch_scripts/plinder_launch_complete.csv | 335 ------- Launch_scripts/plinder_launch_incomplete.csv | 346 ------- Launch_scripts/systems.csv | 991 ------------------- Launch_scripts/worker.sh | 64 -- Launch_scripts/workstation_launch.sh | 76 -- 9 files changed, 1 insertion(+), 1991 deletions(-) delete mode 100644 Launch_scripts/cscs_launch.sh delete mode 100644 Launch_scripts/new_launch.sh delete mode 100644 Launch_scripts/plinder_job_filter.ipynb delete mode 100644 Launch_scripts/plinder_launch_complete.csv delete mode 100644 Launch_scripts/plinder_launch_incomplete.csv delete mode 100644 Launch_scripts/systems.csv delete mode 100644 Launch_scripts/worker.sh delete mode 100755 Launch_scripts/workstation_launch.sh diff --git a/.gitignore b/.gitignore index 8f50ecd..71ee47a 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ software/ Launch/ Plotting/ extra_logs/ +Launch_scripts/ diff --git a/Launch_scripts/cscs_launch.sh b/Launch_scripts/cscs_launch.sh deleted file mode 100644 index 275a588..0000000 --- a/Launch_scripts/cscs_launch.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -#SBATCH --account=a131 -#SBATCH --partition=debug -#SBATCH --job-name=dynamate -#SBATCH --output=slurm_logs/launch_%j_%N.out -#SBATCH --error=slurm_logs/launch_%j_%N.err -#SBATCH --nodes=1 -#SBATCH --ntasks-per-node=4 -#SBATCH --gpus-per-task=1 -#SBATCH --time=00:10:00 -#SBATCH --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" - -# srun ./testing.sh - - -# slurm_procid - -set -e - -PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python -cd /capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate - -mkdir -p agent_logs slurm_logs - -CSV_FILE="Launch_scripts/systems.csv" -FAILED_SYSTEMS="Launch_scripts/failed_systems.txt" - -echo "sees GPUs: $CUDA_VISIBLE_DEVICES" - -if [[ ! -f "$CSV_FILE" ]]; then - echo "[ERROR] CSV file not found: $CSV_FILE" - exit 1 -fi - -NODE_ID=$SLURM_NODEID -GPU_ID=$SLURM_LOCALID -GPUS_PER_NODE=4 - -TOTAL_ROWS=$(tail -n +2 "$CSV_FILE" | wc -l) -DATA_PER_NODE=$(( TOTAL_ROWS / SLURM_NNODES )) -DATA_PER_GPU=$(( DATA_PER_NODE / GPUS_PER_NODE )) - -START_ROW=$(( NODE_ID * DATA_PER_NODE + GPU_ID * DATA_PER_GPU )) -END_ROW=$(( START_ROW + DATA_PER_GPU - 1 )) - -LINE_NUM=$((START_ROW - 1)) -tail -n +2 "$CSV_FILE" | tail -n +$START_ROW | head -n $DATA_PER_GPU \ -| while IFS=',' read -r PROTEIN LIGAND MODEL; do - ((LINE_NUM++)) - - echo "[INFO] Processing CSV line $LINE_NUM" - echo "Made it into the first GPU" - - # Trim leading/trailing spaces - PROTEIN=$(echo "$PROTEIN" | xargs) - LIGAND=$(echo "$LIGAND" | xargs) - MODEL=$(echo "$MODEL" | xargs) - - # Take only the last part of the model name after the last '/' - MODEL_SHORT=${MODEL##*/} - echo "Model='$MODEL'" - - # Handle missing ligand - if [[ "$LIGAND" == "" || "$LIGAND" == "None" || "$LIGAND" == "none" ]]; then - LIG_ARG="None" - else - LIG_ARG="$LIGAND" - fi - - for RUN in 1 2 3; do - echo "[INFO] Starting run $RUN for $PROTEIN ($MODEL)." - - LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" - - echo "------------------------------------------------------" - echo "[INFO] Running: Protein=$PROTEIN | Ligand=$LIG_ARG | Model=$MODEL (Repeat $RUN/3)" - echo "[INFO] Output → $LOGFILE" - echo "------------------------------------------------------" - echo "about to enter the main.py script!" - # Run the Python script - if ! $PYTHON -u main.py \ - --pdb_id "$PROTEIN" \ - --ligand "$LIG_ARG" \ - --model "$MODEL" \ - --temp 300 \ - --duration 0.01 \ - > "$LOGFILE" 2>&1 - then - echo "[WARN] DynaMate failed for $PROTEIN $LIG_ARG, run $RUN." | tee -a "$FAILED_SYSTEMS" - fi - echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL)." - done -done - -echo "[INFO] All runs completed!" diff --git a/Launch_scripts/new_launch.sh b/Launch_scripts/new_launch.sh deleted file mode 100644 index d07b17f..0000000 --- a/Launch_scripts/new_launch.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -#SBATCH --account=a131 -#SBATCH --partition=debug -#SBATCH --job-name=dynamate_launch -#SBATCH --output=slurm_logs/launch_%j_%N.out -#SBATCH --error=slurm_logs/launch_%j_%N.err -#SBATCH --nodes=1 -#SBATCH --ntasks-per-node=4 -#SBATCH --gpus-per-task=1 -#SBATCH --time=00:10:00 - -set -e - -mkdir -p agent_logs slurm_logs - -# --- Exported config inherited by all worker tasks --- -export PYTHON=/capstor/store/cscs/swissai/a131/bnaida/conda-envs/dynamate/bin/python -export WORK_DIR=/capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate -export CSV_FILE="Launch_scripts/systems.csv" -export FAILED_SYSTEMS="Launch_scripts/failed_systems.txt" -export GPUS_PER_NODE=4 - -cd $WORK_DIR - -if [[ ! -f "$CSV_FILE" ]]; then - echo "[ERROR] CSV file not found: $CSV_FILE" - exit 1 -fi - -srun --ntasks=4 --ntasks-per-node=4 --gpus-per-task=1 \ - --environment="/capstor/store/cscs/swissai/a131/bnaida/ce-images/dynamate/md_tools_v0.1.0.toml" \ - bash /capstor/store/cscs/swissai/a131/cassandra/projects/DynaMate/Launch_scripts/worker.sh diff --git a/Launch_scripts/plinder_job_filter.ipynb b/Launch_scripts/plinder_job_filter.ipynb deleted file mode 100644 index c53d99a..0000000 --- a/Launch_scripts/plinder_job_filter.ipynb +++ /dev/null @@ -1,52 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "\n", - "df_incomplete = pd.read_csv('plinder_launch_incomplete.csv')\n", - "\n", - "# 165 randomly selected protein-ligand systems\n", - "protein_ligand = df_incomplete.sample(n=165, random_state=42).reset_index(drop=True)\n", - "\n", - "# 100 randomly selected protein-only systems (ligand code blank)\n", - "protein_only = df_incomplete.sample(n=100, random_state=7).reset_index(drop=True)\n", - "protein_only['ligand_unique_ccd_code'] = ''\n", - "\n", - "combined = pd.concat([protein_ligand, protein_only], ignore_index=True)\n", - "\n", - "print(f'Total systems: {len(combined)}')\n", - "print(f'Protein-ligand: {len(protein_ligand)}')\n", - "print(f'Protein-only: {len(protein_only)}')\n", - "combined.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "combined.to_csv('plinder_job_filter_output.csv', index=False)\n", - "print('Saved to plinder_job_filter_output.csv')" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "dynamate_data", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/Launch_scripts/plinder_launch_complete.csv b/Launch_scripts/plinder_launch_complete.csv deleted file mode 100644 index 70608f0..0000000 --- a/Launch_scripts/plinder_launch_complete.csv +++ /dev/null @@ -1,335 +0,0 @@ -entry_pdb_id,ligand_unique_ccd_code,model -4hj3,FMN,openrouter/openai/gpt-5-mini -7m8r,W6X,openrouter/openai/gpt-5-mini -5jg5,EVF,openrouter/openai/gpt-5-mini -6dh1,K13,openrouter/openai/gpt-5-mini -4j2a,TTP,openrouter/openai/gpt-5-mini -1fm6,BRL,openrouter/openai/gpt-5-mini -4ufx,NHW,openrouter/openai/gpt-5-mini -6tx7,V1L,openrouter/openai/gpt-5-mini -4tta,FMC,openrouter/openai/gpt-5-mini -1wuw,SEG,openrouter/openai/gpt-5-mini -6dws,HFY,openrouter/openai/gpt-5-mini -7qzz,HHT,openrouter/openai/gpt-5-mini -6f57,SAH,openrouter/openai/gpt-5-mini -3qls,GLY,openrouter/openai/gpt-5-mini -3s9h,DUP,openrouter/openai/gpt-5-mini -3l72,IKR,openrouter/openai/gpt-5-mini -5e9i,F60,openrouter/openai/gpt-5-mini -4xn4,MET,openrouter/openai/gpt-5-mini -5c4s,4Y5,openrouter/openai/gpt-5-mini -6opv,017,openrouter/openai/gpt-5-mini -5x1f,CHD,openrouter/openai/gpt-5-mini -5ytd,DGT,openrouter/openai/gpt-5-mini -2w26,RIV,openrouter/openai/gpt-5-mini -3qlh,MNK,openrouter/openai/gpt-5-mini -4tti,FMC,openrouter/openai/gpt-5-mini -1bxh,MMA,openrouter/openai/gpt-5-mini -6dh0,017,openrouter/openai/gpt-5-mini -4xo4,MET,openrouter/openai/gpt-5-mini -1jof,PIN,openrouter/openai/gpt-5-mini -8c6o,CZH,openrouter/openai/gpt-5-mini -3oy4,017,openrouter/openai/gpt-5-mini -7a4q,QY2,openrouter/openai/gpt-5-mini -7ma1,065,openrouter/openai/gpt-5-mini -8jea,MAN,openrouter/openai/gpt-5-mini -4zsg,4QX,openrouter/openai/gpt-5-mini -4xmz,DAB,openrouter/openai/gpt-5-mini -4l1e,BLA,openrouter/openai/gpt-5-mini -7ma4,K2A,openrouter/openai/gpt-5-mini -7ma3,K14,openrouter/openai/gpt-5-mini -1tke,SEG,openrouter/openai/gpt-5-mini -3iai,AZM,openrouter/openai/gpt-5-mini -3sq4,TTP,openrouter/openai/gpt-5-mini -6g2r,EJK,openrouter/openai/gpt-5-mini -7vm6,7R8,openrouter/openai/gpt-5-mini -3nu9,478,openrouter/openai/gpt-5-mini -3qsy,GNP,openrouter/openai/gpt-5-mini -5jgs,EVF,openrouter/openai/gpt-5-mini -3ma0,HSZ,openrouter/openai/gpt-5-mini -3ar2,ACP,openrouter/openai/gpt-5-mini -2onj,ANP,openrouter/openai/gpt-5-mini -7u31,L7I,openrouter/openai/gpt-5-mini -6c7d,EOJ,openrouter/openai/gpt-5-mini -6q60,HJH,openrouter/openai/gpt-5-mini -5hnu,NAP,openrouter/openai/gpt-5-mini -3cic,316,openrouter/openai/gpt-5-mini -2x96,RX3,openrouter/openai/gpt-5-mini -7ve7,NAP,openrouter/openai/gpt-5-mini -1bxh,MAM,openrouter/openai/gpt-5-mini -3llm,ADP,openrouter/openai/gpt-5-mini -3gi4,K60,openrouter/openai/gpt-5-mini -1fl3,SPB,openrouter/openai/gpt-5-mini -4xob,KGM,openrouter/openai/gpt-5-mini -4e5p,NAD,openrouter/openai/gpt-5-mini -3qp8,HL0,openrouter/openai/gpt-5-mini -8qve,FAD,openrouter/openai/gpt-5-mini -7u2z,L7C,openrouter/openai/gpt-5-mini -2ves,GVR,openrouter/openai/gpt-5-mini -5ljq,ANV,openrouter/openai/gpt-5-mini -4k11,0J9,openrouter/openai/gpt-5-mini -2hd1,IBM,openrouter/openai/gpt-5-mini -2x45,HSM,openrouter/openai/gpt-5-mini -6c7e,EOG,openrouter/openai/gpt-5-mini -5mha,NDP,openrouter/openai/gpt-5-mini -1j1f,CPG,openrouter/openai/gpt-5-mini -4bcw,TU0,openrouter/openai/gpt-5-mini -4u21,FWD,openrouter/openai/gpt-5-mini -6d5w,GNP,openrouter/openai/gpt-5-mini -3p3g,3P3,openrouter/openai/gpt-5-mini -4wb7,ATP,openrouter/openai/gpt-5-mini -8fsi,SAM,openrouter/openai/gpt-5-mini -7d5x,CHD,openrouter/openai/gpt-5-mini -6tak,ORO,openrouter/openai/gpt-5-mini -6ay3,C3J,openrouter/openai/gpt-5-mini -5i7x,67B,openrouter/openai/gpt-5-mini -5tqz,AGC,openrouter/openai/gpt-5-mini -5is4,6LY,openrouter/openai/gpt-5-mini -3l71,AZO,openrouter/openai/gpt-5-mini -3ar7,128,openrouter/openai/gpt-5-mini -4j2d,TTP,openrouter/openai/gpt-5-mini -4rqu,NAD,openrouter/openai/gpt-5-mini -2p3u,663,openrouter/openai/gpt-5-mini -7ldy,DJR,openrouter/openai/gpt-5-mini -4ogi,R78,openrouter/openai/gpt-5-mini -1l8b,MGP,openrouter/openai/gpt-5-mini -4l9i,8PR,openrouter/openai/gpt-5-mini -7aif,RE5,openrouter/openai/gpt-5-mini -2vg0,GPP,openrouter/openai/gpt-5-mini -7zaa,IJX,openrouter/openai/gpt-5-mini -4ca8,3ES,openrouter/openai/gpt-5-mini -4ldj,GDP,openrouter/openai/gpt-5-mini -6q3u,ARG,openrouter/openai/gpt-5-mini -4tx0,384,openrouter/openai/gpt-5-mini -6cvl,AGS,openrouter/openai/gpt-5-mini -1d4j,MSC,openrouter/openai/gpt-5-mini -5j4t,MBG,openrouter/openai/gpt-5-mini -4oub,NAD,openrouter/openai/gpt-5-mini -6qu0,FMN,openrouter/openai/gpt-5-mini -4is9,LTF,openrouter/openai/gpt-5-mini -5e41,AUL,openrouter/openai/gpt-5-mini -2xe5,ASZ,openrouter/openai/gpt-5-mini -1ht5,FL2,openrouter/openai/gpt-5-mini -7c3v,NAP,openrouter/openai/gpt-5-mini -3l74,FMX,openrouter/openai/gpt-5-mini -5b3s,CHD,openrouter/openai/gpt-5-mini -1pno,NAP,openrouter/openai/gpt-5-mini -5b4o,6DQ,openrouter/openai/gpt-5-mini -1x8t,RC1,openrouter/openai/gpt-5-mini -5a0c,JJV,openrouter/openai/gpt-5-mini -6dh8,A60,openrouter/openai/gpt-5-mini -7z63,IE3,openrouter/openai/gpt-5-mini -1pnq,NDP,openrouter/openai/gpt-5-mini -3ozw,FAD,openrouter/openai/gpt-5-mini -1r0a,AGC,openrouter/openai/gpt-5-mini -6dh4,K13,openrouter/openai/gpt-5-mini -5c1m,VF1,openrouter/openai/gpt-5-mini -6xhf,V2S,openrouter/openai/gpt-5-mini -5jvl,6NQ,openrouter/openai/gpt-5-mini -8t1u,SAH,openrouter/openai/gpt-5-mini -3sq0,DUP,openrouter/openai/gpt-5-mini -7krg,NAP,openrouter/openai/gpt-5-mini -5uep,88P,openrouter/openai/gpt-5-mini -4hx2,1AX,openrouter/openai/gpt-5-mini -3wg7,CHD,openrouter/openai/gpt-5-mini -6kae,2FU,openrouter/openai/gpt-5-mini -2ou5,FMN,openrouter/openai/gpt-5-mini -7aii,RFE,openrouter/openai/gpt-5-mini -2ek7,SAH,openrouter/openai/gpt-5-mini -7efw,CYC,openrouter/openai/gpt-5-mini -4y2w,ALA,openrouter/openai/gpt-5-mini -4pzz,GDP,openrouter/openai/gpt-5-mini -2gy5,NDG,openrouter/openai/gpt-5-mini -3ar9,TM1,openrouter/openai/gpt-5-mini -3sq6,EPJ,openrouter/openai/gpt-5-mini -6zb0,QCW,openrouter/openai/gpt-5-mini -7l4h,SAH,openrouter/openai/gpt-5-mini -2ofi,ADK,openrouter/openai/gpt-5-mini -4msf,HSR,openrouter/openai/gpt-5-mini -5it8,GUN,openrouter/openai/gpt-5-mini -4y41,46O,openrouter/openai/gpt-5-mini -5uez,89G,openrouter/openai/gpt-5-mini -1ua0,AF,openrouter/openai/gpt-5-mini -8cx5,GDP,openrouter/openai/gpt-5-mini -4gid,0GH,openrouter/openai/gpt-5-mini -2uz4,SAH,openrouter/openai/gpt-5-mini -5lzi,7DB,openrouter/openai/gpt-5-mini -2vml,CYC,openrouter/openai/gpt-5-mini -3k2d,MET,openrouter/openai/gpt-5-mini -7ma9,K2E,openrouter/openai/gpt-5-mini -4nqg,CZH,openrouter/openai/gpt-5-mini -5ciy,SAH,openrouter/openai/gpt-5-mini -4lxq,TYD,openrouter/openai/gpt-5-mini -3a8c,O09,openrouter/openai/gpt-5-mini -4z1s,559,openrouter/openai/gpt-5-mini -5dq1,5HL,openrouter/openai/gpt-5-mini -6dh2,A60,openrouter/openai/gpt-5-mini -1c9w,NAP,openrouter/openai/gpt-5-mini -7dmc,H9F,openrouter/openai/gpt-5-mini -6opw,017,openrouter/openai/gpt-5-mini -7td8,AGG,openrouter/openai/gpt-5-mini -4b6l,9ZP,openrouter/openai/gpt-5-mini -6sck,DAR,openrouter/openai/gpt-5-mini -6fa3,GNP,openrouter/openai/gpt-5-mini -3cid,318,openrouter/openai/gpt-5-mini -6kk0,M36,openrouter/openai/gpt-5-mini -3si6,DUP,openrouter/openai/gpt-5-mini -5j7l,TAC,openrouter/openai/gpt-5-mini -4pct,H76,openrouter/openai/gpt-5-mini -5zfk,HBI,openrouter/openai/gpt-5-mini -5l7v,GNL,openrouter/openai/gpt-5-mini -5f1a,SAL,openrouter/openai/gpt-5-mini -5cg9,AKG,openrouter/openai/gpt-5-mini -5m2b,7DX,openrouter/openai/gpt-5-mini -2cvz,NDP,openrouter/openai/gpt-5-mini -8snz,FMN,openrouter/openai/gpt-5-mini -4z1q,558,openrouter/openai/gpt-5-mini -8hux,7YY,openrouter/openai/gpt-5-mini -2xel,AD9,openrouter/openai/gpt-5-mini -6bur,BR8,openrouter/openai/gpt-5-mini -3ar6,12D,openrouter/openai/gpt-5-mini -5ok3,M77,openrouter/openai/gpt-5-mini -7ghq,OYX,openrouter/openai/gpt-5-mini -2ggs,NDP,openrouter/openai/gpt-5-mini -6inw,SAM,openrouter/openai/gpt-5-mini -5lzg,7BN,openrouter/openai/gpt-5-mini -4glo,NAD,openrouter/openai/gpt-5-mini -6dh3,017,openrouter/openai/gpt-5-mini -8hus,7YY,openrouter/openai/gpt-5-mini -2x1t,RES,openrouter/openai/gpt-5-mini -6tx4,HRZ,openrouter/openai/gpt-5-mini -5z84,CHD,openrouter/openai/gpt-5-mini -6z4w,ADP,openrouter/openai/gpt-5-mini -6a5y,9R0,openrouter/openai/gpt-5-mini -6dh5,A60,openrouter/openai/gpt-5-mini -1j1g,CPG,openrouter/openai/gpt-5-mini -5isj,6LE,openrouter/openai/gpt-5-mini -3l75,FNM,openrouter/openai/gpt-5-mini -4a6s,GS9,openrouter/openai/gpt-5-mini -3gw5,72X,openrouter/openai/gpt-5-mini -1obo,FMN,openrouter/openai/gpt-5-mini -8fwa,CYC,openrouter/openai/gpt-5-mini -3n8y,DIF,openrouter/openai/gpt-5-mini -6tuk,BU3,openrouter/openai/gpt-5-mini -4xf7,CBU,openrouter/openai/gpt-5-mini -6c7i,EP7,openrouter/openai/gpt-5-mini -4eok,4SP,openrouter/openai/gpt-5-mini -1wbk,568,openrouter/openai/gpt-5-mini -1c5s,ESX,openrouter/openai/gpt-5-mini -6opz,017,openrouter/openai/gpt-5-mini -8h81,HYP,openrouter/openai/gpt-5-mini -1vb3,KPA,openrouter/openai/gpt-5-mini -5u35,MXE,openrouter/openai/gpt-5-mini -8hwp,BUA,openrouter/openai/gpt-5-mini -1u6q,745,openrouter/openai/gpt-5-mini -4jui,EGR,openrouter/openai/gpt-5-mini -3ixb,BZB,openrouter/openai/gpt-5-mini -2jki,ADP,openrouter/openai/gpt-5-mini -1m6w,12H,openrouter/openai/gpt-5-mini -4rif,3R2,openrouter/openai/gpt-5-mini -5h9i,XAN,openrouter/openai/gpt-5-mini -5hw8,FK5,openrouter/openai/gpt-5-mini -4jji,NAD,openrouter/openai/gpt-5-mini -4ct9,AMP,openrouter/openai/gpt-5-mini -4hj6,FMN,openrouter/openai/gpt-5-mini -4tmv,GSP,openrouter/openai/gpt-5-mini -3cib,314,openrouter/openai/gpt-5-mini -2pfz,PCA,openrouter/openai/gpt-5-mini -7ma7,K2D,openrouter/openai/gpt-5-mini -2q1j,FXI,openrouter/openai/gpt-5-mini -3sq2,TTP,openrouter/openai/gpt-5-mini -7l4c,SAH,openrouter/openai/gpt-5-mini -7e00,PRO,openrouter/openai/gpt-5-mini -6lx5,C5F,openrouter/openai/gpt-5-mini -7e66,HY6,openrouter/openai/gpt-5-mini -2h42,VIA,openrouter/openai/gpt-5-mini -7lgk,XZ7,openrouter/openai/gpt-5-mini -3rk8,PYR,openrouter/openai/gpt-5-mini -4dje,C2F,openrouter/openai/gpt-5-mini -3ids,NAD,openrouter/openai/gpt-5-mini -4av5,FYZ,openrouter/openai/gpt-5-mini -6h9b,GDP,openrouter/openai/gpt-5-mini -4w8d,3JA,openrouter/openai/gpt-5-mini -6z19,ADP,openrouter/openai/gpt-5-mini -8eip,7ID,openrouter/openai/gpt-5-mini -6ops,017,openrouter/openai/gpt-5-mini -3b8h,NAD,openrouter/openai/gpt-5-mini -4e3s,QTP,openrouter/openai/gpt-5-mini -7ma2,XUY,openrouter/openai/gpt-5-mini -7ma8,F53,openrouter/openai/gpt-5-mini -2g6p,HM2,openrouter/openai/gpt-5-mini -4hw3,19G,openrouter/openai/gpt-5-mini -4hoe,GLY,openrouter/openai/gpt-5-mini -1t8e,DCT,openrouter/openai/gpt-5-mini -5l66,BO2,openrouter/openai/gpt-5-mini -7o0e,GLY,openrouter/openai/gpt-5-mini -5yp5,4CZ,openrouter/openai/gpt-5-mini -4xou,ACP,openrouter/openai/gpt-5-mini -3tgu,WF3,openrouter/openai/gpt-5-mini -3esz,FMN,openrouter/openai/gpt-5-mini -7vdo,NAP,openrouter/openai/gpt-5-mini -6bun,HPG,openrouter/openai/gpt-5-mini -6tx6,NCA,openrouter/openai/gpt-5-mini -2rbq,263,openrouter/openai/gpt-5-mini -5hzn,66A,openrouter/openai/gpt-5-mini -6opy,017,openrouter/openai/gpt-5-mini -5lzh,7BN,openrouter/openai/gpt-5-mini -3snn,DCP,openrouter/openai/gpt-5-mini -8u2e,UP9,openrouter/openai/gpt-5-mini -4tyn,ADP,openrouter/openai/gpt-5-mini -3x1z,GNP,openrouter/openai/gpt-5-mini -4do6,AGC,openrouter/openai/gpt-5-mini -4p6w,MOF,openrouter/openai/gpt-5-mini -5k6j,6QQ,openrouter/openai/gpt-5-mini -7ma0,NJM,openrouter/openai/gpt-5-mini -5ll4,6YH,openrouter/openai/gpt-5-mini -6dh7,K13,openrouter/openai/gpt-5-mini -5tcc,J56,openrouter/openai/gpt-5-mini -3l70,JZV,openrouter/openai/gpt-5-mini -6bxi,ANP,openrouter/openai/gpt-5-mini -5a5q,6XC,openrouter/openai/gpt-5-mini -4u27,VIF,openrouter/openai/gpt-5-mini -6gpa,GAL,openrouter/openai/gpt-5-mini -4r5b,3J4,openrouter/openai/gpt-5-mini -6qfg,J08,openrouter/openai/gpt-5-mini -2nuo,BGC,openrouter/openai/gpt-5-mini -4hof,GLY,openrouter/openai/gpt-5-mini -2xrs,GAL,openrouter/openai/gpt-5-mini -2ev9,SKM,openrouter/openai/gpt-5-mini -6q27,BM3,openrouter/openai/gpt-5-mini -3scx,DUP,openrouter/openai/gpt-5-mini -1w1x,NAN,openrouter/openai/gpt-5-mini -6oy1,NJ1,openrouter/openai/gpt-5-mini -4gh6,LUO,openrouter/openai/gpt-5-mini -6dh6,017,openrouter/openai/gpt-5-mini -2ray,258,openrouter/openai/gpt-5-mini -3sq1,DUP,openrouter/openai/gpt-5-mini -3iog,SDF,openrouter/openai/gpt-5-mini -2hr1,SAH,openrouter/openai/gpt-5-mini -4v5l,GCP,openrouter/openai/gpt-5-mini -6opt,017,openrouter/openai/gpt-5-mini -6jea,HSR,openrouter/openai/gpt-5-mini -5ujx,FOL,openrouter/openai/gpt-5-mini -7oli,8HG,openrouter/openai/gpt-5-mini -2e89,ATP,openrouter/openai/gpt-5-mini -4hn1,TDR,openrouter/openai/gpt-5-mini -3b82,NAD,openrouter/openai/gpt-5-mini -5bqs,4VN,openrouter/openai/gpt-5-mini -5uer,87P,openrouter/openai/gpt-5-mini -5hjo,DGO,openrouter/openai/gpt-5-mini -2x97,RX4,openrouter/openai/gpt-5-mini -3l73,JZZ,openrouter/openai/gpt-5-mini -3n8w,FLP,openrouter/openai/gpt-5-mini -3oaf,OAG,openrouter/openai/gpt-5-mini -4e5m,NAP,openrouter/openai/gpt-5-mini -1fm9,570,openrouter/openai/gpt-5-mini -7uah,NZ5,openrouter/openai/gpt-5-mini -1oko,GAL,openrouter/openai/gpt-5-mini -2boj,ARW,openrouter/openai/gpt-5-mini -3n8g,ACP,openrouter/openai/gpt-5-mini -7maa,A61,openrouter/openai/gpt-5-mini -3ggx,GGX,openrouter/openai/gpt-5-mini -4ra3,TFX,openrouter/openai/gpt-5-mini -2i0u,TRT,openrouter/openai/gpt-5-mini -6oy2,NJJ,openrouter/openai/gpt-5-mini -7ma5,K20,openrouter/openai/gpt-5-mini diff --git a/Launch_scripts/plinder_launch_incomplete.csv b/Launch_scripts/plinder_launch_incomplete.csv deleted file mode 100644 index 06a9859..0000000 --- a/Launch_scripts/plinder_launch_incomplete.csv +++ /dev/null @@ -1,346 +0,0 @@ -entry_pdb_id,ligand_unique_ccd_code,model -4hj3,FMN,openrouter/openai/gpt-5-mini -7m8r,W6X,openrouter/openai/gpt-5-mini -5jg5,EVF,openrouter/openai/gpt-5-mini -6dh1,K13,openrouter/openai/gpt-5-mini -4j2a,TTP,openrouter/openai/gpt-5-mini -1fm6,BRL,openrouter/openai/gpt-5-mini -4ufx,NHW,openrouter/openai/gpt-5-mini -6tx7,V1L,openrouter/openai/gpt-5-mini -4tta,FMC,openrouter/openai/gpt-5-mini -1wuw,SEG,openrouter/openai/gpt-5-mini -6dws,HFY,openrouter/openai/gpt-5-mini -7qzz,HHT,openrouter/openai/gpt-5-mini -6f57,SAH,openrouter/openai/gpt-5-mini -3qls,GLY,openrouter/openai/gpt-5-mini -3s9h,DUP,openrouter/openai/gpt-5-mini -3l72,IKR,openrouter/openai/gpt-5-mini -5e9i,F60,openrouter/openai/gpt-5-mini -4xn4,MET,openrouter/openai/gpt-5-mini -5c4s,4Y5,openrouter/openai/gpt-5-mini -6opv,017,openrouter/openai/gpt-5-mini -5x1f,CHD,openrouter/openai/gpt-5-mini -5ytd,DGT,openrouter/openai/gpt-5-mini -2w26,RIV,openrouter/openai/gpt-5-mini -3qlh,MNK,openrouter/openai/gpt-5-mini -4tti,FMC,openrouter/openai/gpt-5-mini -1bxh,MMA,openrouter/openai/gpt-5-mini -6dh0,017,openrouter/openai/gpt-5-mini -4xo4,MET,openrouter/openai/gpt-5-mini -1jof,PIN,openrouter/openai/gpt-5-mini -8c6o,CZH,openrouter/openai/gpt-5-mini -3oy4,017,openrouter/openai/gpt-5-mini -7a4q,QY2,openrouter/openai/gpt-5-mini -7ma1,065,openrouter/openai/gpt-5-mini -8jea,MAN,openrouter/openai/gpt-5-mini -4zsg,4QX,openrouter/openai/gpt-5-mini -4xmz,DAB,openrouter/openai/gpt-5-mini -4l1e,BLA,openrouter/openai/gpt-5-mini -7ma4,K2A,openrouter/openai/gpt-5-mini -7ma3,K14,openrouter/openai/gpt-5-mini -1tke,SEG,openrouter/openai/gpt-5-mini -3iai,AZM,openrouter/openai/gpt-5-mini -3sq4,TTP,openrouter/openai/gpt-5-mini -6g2r,EJK,openrouter/openai/gpt-5-mini -7vm6,7R8,openrouter/openai/gpt-5-mini -3nu9,478,openrouter/openai/gpt-5-mini -3qsy,GNP,openrouter/openai/gpt-5-mini -5jgs,EVF,openrouter/openai/gpt-5-mini -3ma0,HSZ,openrouter/openai/gpt-5-mini -3ar2,ACP,openrouter/openai/gpt-5-mini -2onj,ANP,openrouter/openai/gpt-5-mini -7u31,L7I,openrouter/openai/gpt-5-mini -6c7d,EOJ,openrouter/openai/gpt-5-mini -6q60,HJH,openrouter/openai/gpt-5-mini -5hnu,NAP,openrouter/openai/gpt-5-mini -3cic,316,openrouter/openai/gpt-5-mini -2x96,RX3,openrouter/openai/gpt-5-mini -7ve7,NAP,openrouter/openai/gpt-5-mini -1bxh,MAM,openrouter/openai/gpt-5-mini -3llm,ADP,openrouter/openai/gpt-5-mini -3gi4,K60,openrouter/openai/gpt-5-mini -1fl3,SPB,openrouter/openai/gpt-5-mini -4xob,KGM,openrouter/openai/gpt-5-mini -4e5p,NAD,openrouter/openai/gpt-5-mini -3qp8,HL0,openrouter/openai/gpt-5-mini -8qve,FAD,openrouter/openai/gpt-5-mini -7u2z,L7C,openrouter/openai/gpt-5-mini -2ves,GVR,openrouter/openai/gpt-5-mini -5ljq,ANV,openrouter/openai/gpt-5-mini -4k11,0J9,openrouter/openai/gpt-5-mini -2hd1,IBM,openrouter/openai/gpt-5-mini -2x45,HSM,openrouter/openai/gpt-5-mini -6c7e,EOG,openrouter/openai/gpt-5-mini -5mha,NDP,openrouter/openai/gpt-5-mini -1j1f,CPG,openrouter/openai/gpt-5-mini -4bcw,TU0,openrouter/openai/gpt-5-mini -4u21,FWD,openrouter/openai/gpt-5-mini -6d5w,GNP,openrouter/openai/gpt-5-mini -3p3g,3P3,openrouter/openai/gpt-5-mini -4wb7,ATP,openrouter/openai/gpt-5-mini -8fsi,SAM,openrouter/openai/gpt-5-mini -7d5x,CHD,openrouter/openai/gpt-5-mini -6tak,ORO,openrouter/openai/gpt-5-mini -6ay3,C3J,openrouter/openai/gpt-5-mini -5i7x,67B,openrouter/openai/gpt-5-mini -5tqz,AGC,openrouter/openai/gpt-5-mini -5is4,6LY,openrouter/openai/gpt-5-mini -3l71,AZO,openrouter/openai/gpt-5-mini -3ar7,128,openrouter/openai/gpt-5-mini -4j2d,TTP,openrouter/openai/gpt-5-mini -4rqu,NAD,openrouter/openai/gpt-5-mini -2p3u,663,openrouter/openai/gpt-5-mini -7ldy,DJR,openrouter/openai/gpt-5-mini -4ogi,R78,openrouter/openai/gpt-5-mini -1l8b,MGP,openrouter/openai/gpt-5-mini -4l9i,8PR,openrouter/openai/gpt-5-mini -7aif,RE5,openrouter/openai/gpt-5-mini -2vg0,GPP,openrouter/openai/gpt-5-mini -7zaa,IJX,openrouter/openai/gpt-5-mini -4ca8,3ES,openrouter/openai/gpt-5-mini -4ldj,GDP,openrouter/openai/gpt-5-mini -6q3u,ARG,openrouter/openai/gpt-5-mini -4tx0,384,openrouter/openai/gpt-5-mini -6cvl,AGS,openrouter/openai/gpt-5-mini -1d4j,MSC,openrouter/openai/gpt-5-mini -5j4t,MBG,openrouter/openai/gpt-5-mini -4oub,NAD,openrouter/openai/gpt-5-mini -6qu0,FMN,openrouter/openai/gpt-5-mini -4is9,LTF,openrouter/openai/gpt-5-mini -5e41,AUL,openrouter/openai/gpt-5-mini -2xe5,ASZ,openrouter/openai/gpt-5-mini -1ht5,FL2,openrouter/openai/gpt-5-mini -7c3v,NAP,openrouter/openai/gpt-5-mini -3l74,FMX,openrouter/openai/gpt-5-mini -5b3s,CHD,openrouter/openai/gpt-5-mini -1pno,NAP,openrouter/openai/gpt-5-mini -5b4o,6DQ,openrouter/openai/gpt-5-mini -1x8t,RC1,openrouter/openai/gpt-5-mini -5a0c,JJV,openrouter/openai/gpt-5-mini -6dh8,A60,openrouter/openai/gpt-5-mini -7z63,IE3,openrouter/openai/gpt-5-mini -1pnq,NDP,openrouter/openai/gpt-5-mini -3ozw,FAD,openrouter/openai/gpt-5-mini -1r0a,AGC,openrouter/openai/gpt-5-mini -6dh4,K13,openrouter/openai/gpt-5-mini -5c1m,VF1,openrouter/openai/gpt-5-mini -6xhf,V2S,openrouter/openai/gpt-5-mini -5jvl,6NQ,openrouter/openai/gpt-5-mini -8t1u,SAH,openrouter/openai/gpt-5-mini -3sq0,DUP,openrouter/openai/gpt-5-mini -7krg,NAP,openrouter/openai/gpt-5-mini -5uep,88P,openrouter/openai/gpt-5-mini -4hx2,1AX,openrouter/openai/gpt-5-mini -3wg7,CHD,openrouter/openai/gpt-5-mini -6kae,2FU,openrouter/openai/gpt-5-mini -2ou5,FMN,openrouter/openai/gpt-5-mini -7aii,RFE,openrouter/openai/gpt-5-mini -2ek7,SAH,openrouter/openai/gpt-5-mini -7efw,CYC,openrouter/openai/gpt-5-mini -4y2w,ALA,openrouter/openai/gpt-5-mini -4pzz,GDP,openrouter/openai/gpt-5-mini -2gy5,NDG,openrouter/openai/gpt-5-mini -3ar9,TM1,openrouter/openai/gpt-5-mini -3sq6,EPJ,openrouter/openai/gpt-5-mini -6zb0,QCW,openrouter/openai/gpt-5-mini -7l4h,SAH,openrouter/openai/gpt-5-mini -2ofi,ADK,openrouter/openai/gpt-5-mini -4msf,HSR,openrouter/openai/gpt-5-mini -5it8,GUN,openrouter/openai/gpt-5-mini -4y41,46O,openrouter/openai/gpt-5-mini -5uez,89G,openrouter/openai/gpt-5-mini -1ua0,AF,openrouter/openai/gpt-5-mini -8cx5,GDP,openrouter/openai/gpt-5-mini -4gid,0GH,openrouter/openai/gpt-5-mini -2uz4,SAH,openrouter/openai/gpt-5-mini -5lzi,7DB,openrouter/openai/gpt-5-mini -2vml,CYC,openrouter/openai/gpt-5-mini -3k2d,MET,openrouter/openai/gpt-5-mini -7ma9,K2E,openrouter/openai/gpt-5-mini -4nqg,CZH,openrouter/openai/gpt-5-mini -5ciy,SAH,openrouter/openai/gpt-5-mini -4lxq,TYD,openrouter/openai/gpt-5-mini -3a8c,O09,openrouter/openai/gpt-5-mini -4z1s,559,openrouter/openai/gpt-5-mini -5dq1,5HL,openrouter/openai/gpt-5-mini -6dh2,A60,openrouter/openai/gpt-5-mini -1c9w,NAP,openrouter/openai/gpt-5-mini -7dmc,H9F,openrouter/openai/gpt-5-mini -6opw,017,openrouter/openai/gpt-5-mini -7td8,AGG,openrouter/openai/gpt-5-mini -4b6l,9ZP,openrouter/openai/gpt-5-mini -6sck,DAR,openrouter/openai/gpt-5-mini -6fa3,GNP,openrouter/openai/gpt-5-mini -3cid,318,openrouter/openai/gpt-5-mini -6kk0,M36,openrouter/openai/gpt-5-mini -3si6,DUP,openrouter/openai/gpt-5-mini -5j7l,TAC,openrouter/openai/gpt-5-mini -4pct,H76,openrouter/openai/gpt-5-mini -5zfk,HBI,openrouter/openai/gpt-5-mini -5l7v,GNL,openrouter/openai/gpt-5-mini -5f1a,SAL,openrouter/openai/gpt-5-mini -5cg9,AKG,openrouter/openai/gpt-5-mini -5m2b,7DX,openrouter/openai/gpt-5-mini -2cvz,NDP,openrouter/openai/gpt-5-mini -8snz,FMN,openrouter/openai/gpt-5-mini -4z1q,558,openrouter/openai/gpt-5-mini -8hux,7YY,openrouter/openai/gpt-5-mini -2xel,AD9,openrouter/openai/gpt-5-mini -6bur,BR8,openrouter/openai/gpt-5-mini -3ar6,12D,openrouter/openai/gpt-5-mini -5ok3,M77,openrouter/openai/gpt-5-mini -7ghq,OYX,openrouter/openai/gpt-5-mini -2ggs,NDP,openrouter/openai/gpt-5-mini -6inw,SAM,openrouter/openai/gpt-5-mini -5lzg,7BN,openrouter/openai/gpt-5-mini -4glo,NAD,openrouter/openai/gpt-5-mini -6dh3,017,openrouter/openai/gpt-5-mini -8hus,7YY,openrouter/openai/gpt-5-mini -2x1t,RES,openrouter/openai/gpt-5-mini -6tx4,HRZ,openrouter/openai/gpt-5-mini -5z84,CHD,openrouter/openai/gpt-5-mini -6z4w,ADP,openrouter/openai/gpt-5-mini -6a5y,9R0,openrouter/openai/gpt-5-mini -6dh5,A60,openrouter/openai/gpt-5-mini -1j1g,CPG,openrouter/openai/gpt-5-mini -5isj,6LE,openrouter/openai/gpt-5-mini -3l75,FNM,openrouter/openai/gpt-5-mini -4a6s,GS9,openrouter/openai/gpt-5-mini -3gw5,72X,openrouter/openai/gpt-5-mini -1obo,FMN,openrouter/openai/gpt-5-mini -8fwa,CYC,openrouter/openai/gpt-5-mini -3n8y,DIF,openrouter/openai/gpt-5-mini -6tuk,BU3,openrouter/openai/gpt-5-mini -4xf7,CBU,openrouter/openai/gpt-5-mini -6c7i,EP7,openrouter/openai/gpt-5-mini -4eok,4SP,openrouter/openai/gpt-5-mini -1wbk,568,openrouter/openai/gpt-5-mini -1c5s,ESX,openrouter/openai/gpt-5-mini -6opz,017,openrouter/openai/gpt-5-mini -8h81,HYP,openrouter/openai/gpt-5-mini -1vb3,KPA,openrouter/openai/gpt-5-mini -5u35,MXE,openrouter/openai/gpt-5-mini -8hwp,BUA,openrouter/openai/gpt-5-mini -1u6q,745,openrouter/openai/gpt-5-mini -4jui,EGR,openrouter/openai/gpt-5-mini -3ixb,BZB,openrouter/openai/gpt-5-mini -2jki,ADP,openrouter/openai/gpt-5-mini -1m6w,12H,openrouter/openai/gpt-5-mini -4rif,3R2,openrouter/openai/gpt-5-mini -5h9i,XAN,openrouter/openai/gpt-5-mini -5hw8,FK5,openrouter/openai/gpt-5-mini -4jji,NAD,openrouter/openai/gpt-5-mini -4ct9,AMP,openrouter/openai/gpt-5-mini -4hj6,FMN,openrouter/openai/gpt-5-mini -4tmv,GSP,openrouter/openai/gpt-5-mini -3cib,314,openrouter/openai/gpt-5-mini -2pfz,PCA,openrouter/openai/gpt-5-mini -7ma7,K2D,openrouter/openai/gpt-5-mini -2q1j,FXI,openrouter/openai/gpt-5-mini -3sq2,TTP,openrouter/openai/gpt-5-mini -7l4c,SAH,openrouter/openai/gpt-5-mini -7e00,PRO,openrouter/openai/gpt-5-mini -6lx5,C5F,openrouter/openai/gpt-5-mini -7e66,HY6,openrouter/openai/gpt-5-mini -2h42,VIA,openrouter/openai/gpt-5-mini -7lgk,XZ7,openrouter/openai/gpt-5-mini -3rk8,PYR,openrouter/openai/gpt-5-mini -4dje,C2F,openrouter/openai/gpt-5-mini -3ids,NAD,openrouter/openai/gpt-5-mini -4av5,FYZ,openrouter/openai/gpt-5-mini -6h9b,GDP,openrouter/openai/gpt-5-mini -4w8d,3JA,openrouter/openai/gpt-5-mini -6z19,ADP,openrouter/openai/gpt-5-mini -8eip,7ID,openrouter/openai/gpt-5-mini -6ops,017,openrouter/openai/gpt-5-mini -3b8h,NAD,openrouter/openai/gpt-5-mini -4e3s,QTP,openrouter/openai/gpt-5-mini -7ma2,XUY,openrouter/openai/gpt-5-mini -7ma8,F53,openrouter/openai/gpt-5-mini -2g6p,HM2,openrouter/openai/gpt-5-mini -4hw3,19G,openrouter/openai/gpt-5-mini -4hoe,GLY,openrouter/openai/gpt-5-mini -1t8e,DCT,openrouter/openai/gpt-5-mini -5l66,BO2,openrouter/openai/gpt-5-mini -7o0e,GLY,openrouter/openai/gpt-5-mini -5yp5,4CZ,openrouter/openai/gpt-5-mini -4xou,ACP,openrouter/openai/gpt-5-mini -3tgu,WF3,openrouter/openai/gpt-5-mini -3esz,FMN,openrouter/openai/gpt-5-mini -7vdo,NAP,openrouter/openai/gpt-5-mini -6bun,HPG,openrouter/openai/gpt-5-mini -6tx6,NCA,openrouter/openai/gpt-5-mini -2rbq,263,openrouter/openai/gpt-5-mini -5hzn,66A,openrouter/openai/gpt-5-mini -6opy,017,openrouter/openai/gpt-5-mini -5lzh,7BN,openrouter/openai/gpt-5-mini -3snn,DCP,openrouter/openai/gpt-5-mini -8u2e,UP9,openrouter/openai/gpt-5-mini -4tyn,ADP,openrouter/openai/gpt-5-mini -3x1z,GNP,openrouter/openai/gpt-5-mini -4do6,AGC,openrouter/openai/gpt-5-mini -4p6w,MOF,openrouter/openai/gpt-5-mini -5k6j,6QQ,openrouter/openai/gpt-5-mini -7ma0,NJM,openrouter/openai/gpt-5-mini -5ll4,6YH,openrouter/openai/gpt-5-mini -6dh7,K13,openrouter/openai/gpt-5-mini -5tcc,J56,openrouter/openai/gpt-5-mini -3l70,JZV,openrouter/openai/gpt-5-mini -6bxi,ANP,openrouter/openai/gpt-5-mini -5a5q,6XC,openrouter/openai/gpt-5-mini -4u27,VIF,openrouter/openai/gpt-5-mini -6gpa,GAL,openrouter/openai/gpt-5-mini -4r5b,3J4,openrouter/openai/gpt-5-mini -6qfg,J08,openrouter/openai/gpt-5-mini -2nuo,BGC,openrouter/openai/gpt-5-mini -4hof,GLY,openrouter/openai/gpt-5-mini -2xrs,GAL,openrouter/openai/gpt-5-mini -2ev9,SKM,openrouter/openai/gpt-5-mini -6q27,BM3,openrouter/openai/gpt-5-mini -3scx,DUP,openrouter/openai/gpt-5-mini -1w1x,NAN,openrouter/openai/gpt-5-mini -6oy1,NJ1,openrouter/openai/gpt-5-mini -4gh6,LUO,openrouter/openai/gpt-5-mini -6dh6,017,openrouter/openai/gpt-5-mini -2ray,258,openrouter/openai/gpt-5-mini -3sq1,DUP,openrouter/openai/gpt-5-mini -3iog,SDF,openrouter/openai/gpt-5-mini -2hr1,SAH,openrouter/openai/gpt-5-mini -4v5l,GCP,openrouter/openai/gpt-5-mini -6opt,017,openrouter/openai/gpt-5-mini -6jea,HSR,openrouter/openai/gpt-5-mini -5ujx,FOL,openrouter/openai/gpt-5-mini -7oli,8HG,openrouter/openai/gpt-5-mini -2e89,ATP,openrouter/openai/gpt-5-mini -4hn1,TDR,openrouter/openai/gpt-5-mini -3b82,NAD,openrouter/openai/gpt-5-mini -5bqs,4VN,openrouter/openai/gpt-5-mini -5uer,87P,openrouter/openai/gpt-5-mini -5hjo,DGO,openrouter/openai/gpt-5-mini -2x97,RX4,openrouter/openai/gpt-5-mini -3l73,JZZ,openrouter/openai/gpt-5-mini -3n8w,FLP,openrouter/openai/gpt-5-mini -3oaf,OAG,openrouter/openai/gpt-5-mini -4e5m,NAP,openrouter/openai/gpt-5-mini -1fm9,570,openrouter/openai/gpt-5-mini -7uah,NZ5,openrouter/openai/gpt-5-mini -1oko,GAL,openrouter/openai/gpt-5-mini -2boj,ARW,openrouter/openai/gpt-5-mini -3n8g,ACP,openrouter/openai/gpt-5-mini -7maa,A61,openrouter/openai/gpt-5-mini -3ggx,GGX,openrouter/openai/gpt-5-mini -4ra3,TFX,openrouter/openai/gpt-5-mini -2i0u,TRT,openrouter/openai/gpt-5-mini -6oy2,NJJ,openrouter/openai/gpt-5-mini -7ma5,K20,openrouter/openai/gpt-5-mini -3HTB,JZ4,openrouter/openai/gpt-5-mini -3PTB,BEN,openrouter/openai/gpt-5-mini -4GIH,0X5,openrouter/openai/gpt-5-mini -AW52,BNZ,openrouter/openai/gpt-5-mini -5UEZ,89G,openrouter/openai/gpt-5-mini -5KB6,ADN,openrouter/openai/gpt-5-mini -1U6Q,745,openrouter/openai/gpt-5-mini -1C5S,ESX,openrouter/openai/gpt-5-mini -2RBQ,263,openrouter/openai/gpt-5-mini -2SQ6,EPJ,openrouter/openai/gpt-5-mini -5DQ1,5HL,openrouter/openai/gpt-5-mini diff --git a/Launch_scripts/systems.csv b/Launch_scripts/systems.csv deleted file mode 100644 index f93456b..0000000 --- a/Launch_scripts/systems.csv +++ /dev/null @@ -1,991 +0,0 @@ -entry_pdb_id,ligand_unique_ccd_code,model -1dy4,SNP,openrouter/openai/gpt-5-mini -7a4q,QY2,openrouter/openai/gpt-5-mini -4a4q,UX9,openrouter/openai/gpt-5-mini -2p5c,SAH,openrouter/openai/gpt-5-mini -2p5y,NAD,openrouter/openai/gpt-5-mini -1bxh,MAM,openrouter/openai/gpt-5-mini -2e5y,ATP,openrouter/openai/gpt-5-mini -5f1a,SAL,openrouter/openai/gpt-5-mini -6gog,GNP,openrouter/openai/gpt-5-mini -4ilx,1EZ,openrouter/openai/gpt-5-mini -2ilz,GTP,openrouter/openai/gpt-5-mini -2ek7,SAH,openrouter/openai/gpt-5-mini -2ek2,SAH,openrouter/openai/gpt-5-mini -2ek4,SAH,openrouter/openai/gpt-5-mini -5aen,DP8,openrouter/openai/gpt-5-mini -4oub,NAD,openrouter/openai/gpt-5-mini -2ou0,MR3,openrouter/openai/gpt-5-mini -2ou5,FMN,openrouter/openai/gpt-5-mini -4eok,4SP,openrouter/openai/gpt-5-mini -5xa8,ADP,openrouter/openai/gpt-5-mini -4yho,4CC,openrouter/openai/gpt-5-mini -4xmt,DPP,openrouter/openai/gpt-5-mini -4xmz,DAB,openrouter/openai/gpt-5-mini -4xmx,BES,openrouter/openai/gpt-5-mini -4zow,CLM,openrouter/openai/gpt-5-mini -7ci9,FYL,openrouter/openai/gpt-5-mini -3cid,318,openrouter/openai/gpt-5-mini -3cib,314,openrouter/openai/gpt-5-mini -4mmp,SLB,openrouter/openai/gpt-5-mini -2ves,GVR,openrouter/openai/gpt-5-mini -7ve7,NAP,openrouter/openai/gpt-5-mini -7c3v,NAP,openrouter/openai/gpt-5-mini -4z1q,558,openrouter/openai/gpt-5-mini -4z1j,4KC,openrouter/openai/gpt-5-mini -4z1s,559,openrouter/openai/gpt-5-mini -4z1k,4KB,openrouter/openai/gpt-5-mini -3rs5,GNP,openrouter/openai/gpt-5-mini -3rs3,GNP,openrouter/openai/gpt-5-mini -3rs2,GNP,openrouter/openai/gpt-5-mini -3iai,AZM,openrouter/openai/gpt-5-mini -7qzz,HHT,openrouter/openai/gpt-5-mini -2nuo,BGC,openrouter/openai/gpt-5-mini -6inw,SAM,openrouter/openai/gpt-5-mini -3qam,ATP,openrouter/openai/gpt-5-mini -6gpa,GAL,openrouter/openai/gpt-5-mini -2ofi,ADK,openrouter/openai/gpt-5-mini -1jg6,UDP,openrouter/openai/gpt-5-mini -1jg7,UDP,openrouter/openai/gpt-5-mini -5jgs,EVF,openrouter/openai/gpt-5-mini -5jg5,EVF,openrouter/openai/gpt-5-mini -2jki,ADP,openrouter/openai/gpt-5-mini -5it8,GUN,openrouter/openai/gpt-5-mini -4itm,ATP,openrouter/openai/gpt-5-mini -2hd1,IBM,openrouter/openai/gpt-5-mini -6h9b,GDP,openrouter/openai/gpt-5-mini -5h9i,XAN,openrouter/openai/gpt-5-mini -7aii,RFE,openrouter/openai/gpt-5-mini -7aif,RE5,openrouter/openai/gpt-5-mini -5hcl,5Y9,openrouter/openai/gpt-5-mini -3k8y,GNP,openrouter/openai/gpt-5-mini -1u1b,PAX,openrouter/openai/gpt-5-mini -4msf,HSR,openrouter/openai/gpt-5-mini -4nqg,CZH,openrouter/openai/gpt-5-mini -3bgc,LJH,openrouter/openai/gpt-5-mini -1ec0,BED,openrouter/openai/gpt-5-mini -7dmc,H9F,openrouter/openai/gpt-5-mini -7u31,L7I,openrouter/openai/gpt-5-mini -5u3d,MRY,openrouter/openai/gpt-5-mini -5u35,MXE,openrouter/openai/gpt-5-mini -5qbl,D9D,openrouter/openai/gpt-5-mini -6qbh,S43,openrouter/openai/gpt-5-mini -5mha,NDP,openrouter/openai/gpt-5-mini -3mhp,FAD,openrouter/openai/gpt-5-mini -3qp8,HL0,openrouter/openai/gpt-5-mini -2g0g,SP0,openrouter/openai/gpt-5-mini -4jji,NAD,openrouter/openai/gpt-5-mini -4g41,MTA,openrouter/openai/gpt-5-mini -4is9,LTF,openrouter/openai/gpt-5-mini -4isi,1GG,openrouter/openai/gpt-5-mini -5isj,6LE,openrouter/openai/gpt-5-mini -4ish,1GE,openrouter/openai/gpt-5-mini -5is4,6LY,openrouter/openai/gpt-5-mini -3l75,FNM,openrouter/openai/gpt-5-mini -3l72,IKR,openrouter/openai/gpt-5-mini -3l70,JZV,openrouter/openai/gpt-5-mini -3l73,JZZ,openrouter/openai/gpt-5-mini -5l7v,GNL,openrouter/openai/gpt-5-mini -3l74,FMX,openrouter/openai/gpt-5-mini -3l71,AZO,openrouter/openai/gpt-5-mini -4v5l,GCP,openrouter/openai/gpt-5-mini -6jyq,EAU,openrouter/openai/gpt-5-mini -3o9c,K20,openrouter/openai/gpt-5-mini -3o9h,K2E,openrouter/openai/gpt-5-mini -3o99,K13,openrouter/openai/gpt-5-mini -2vg0,GPP,openrouter/openai/gpt-5-mini -1obo,FMN,openrouter/openai/gpt-5-mini -7lgk,XZ7,openrouter/openai/gpt-5-mini -2pqd,GG9,openrouter/openai/gpt-5-mini -2pqc,RC1,openrouter/openai/gpt-5-mini -2pq9,GG9,openrouter/openai/gpt-5-mini -5a27,MYA,openrouter/openai/gpt-5-mini -4tyn,ADP,openrouter/openai/gpt-5-mini -5b4o,6DQ,openrouter/openai/gpt-5-mini -5i7x,67B,openrouter/openai/gpt-5-mini -5i7y,69G,openrouter/openai/gpt-5-mini -1i7z,COC,openrouter/openai/gpt-5-mini -7q6w,93L,openrouter/openai/gpt-5-mini -6q60,HJH,openrouter/openai/gpt-5-mini -7q6v,95O,openrouter/openai/gpt-5-mini -4l9i,8PR,openrouter/openai/gpt-5-mini -5l96,6RZ,openrouter/openai/gpt-5-mini -5l97,6RW,openrouter/openai/gpt-5-mini -1r58,AO5,openrouter/openai/gpt-5-mini -4r5b,3J4,openrouter/openai/gpt-5-mini -2emr,SAH,openrouter/openai/gpt-5-mini -8h81,HYP,openrouter/openai/gpt-5-mini -5lzi,7DB,openrouter/openai/gpt-5-mini -2wjh,GDP,openrouter/openai/gpt-5-mini -1m6w,12H,openrouter/openai/gpt-5-mini -7e66,HY6,openrouter/openai/gpt-5-mini -5a0c,JJV,openrouter/openai/gpt-5-mini -5j7l,TAC,openrouter/openai/gpt-5-mini -4xo4,MET,openrouter/openai/gpt-5-mini -4xou,ACP,openrouter/openai/gpt-5-mini -4xob,KGM,openrouter/openai/gpt-5-mini -3k2d,MET,openrouter/openai/gpt-5-mini -7e00,PRO,openrouter/openai/gpt-5-mini -2egb,SAH,openrouter/openai/gpt-5-mini -2egs,SAH,openrouter/openai/gpt-5-mini -5jvz,FLP,openrouter/openai/gpt-5-mini -5jvl,6NQ,openrouter/openai/gpt-5-mini -7oli,8HG,openrouter/openai/gpt-5-mini -5b3s,CHD,openrouter/openai/gpt-5-mini -6b3f,CKV,openrouter/openai/gpt-5-mini -6b3c,CKS,openrouter/openai/gpt-5-mini -8fwa,CYC,openrouter/openai/gpt-5-mini -2q1j,FXI,openrouter/openai/gpt-5-mini -4q1w,017,openrouter/openai/gpt-5-mini -4gid,0GH,openrouter/openai/gpt-5-mini -3gi4,K60,openrouter/openai/gpt-5-mini -7td8,AGG,openrouter/openai/gpt-5-mini -5lud,76X,openrouter/openai/gpt-5-mini -7zfv,IJR,openrouter/openai/gpt-5-mini -5zfk,HBI,openrouter/openai/gpt-5-mini -5e2k,BX4,openrouter/openai/gpt-5-mini -5e28,BC5,openrouter/openai/gpt-5-mini -1nzf,UPG,openrouter/openai/gpt-5-mini -1nzd,UPG,openrouter/openai/gpt-5-mini -1kta,PMP,openrouter/openai/gpt-5-mini -3qls,GLY,openrouter/openai/gpt-5-mini -3qlh,MNK,openrouter/openai/gpt-5-mini -6oy2,NJJ,openrouter/openai/gpt-5-mini -6oy1,NJ1,openrouter/openai/gpt-5-mini -1oyq,T87,openrouter/openai/gpt-5-mini -3oy4,017,openrouter/openai/gpt-5-mini -3scx,DUP,openrouter/openai/gpt-5-mini -6sck,DAR,openrouter/openai/gpt-5-mini -7vm7,7RF,openrouter/openai/gpt-5-mini -7vm6,7R8,openrouter/openai/gpt-5-mini -2vml,CYC,openrouter/openai/gpt-5-mini -5icf,SAH,openrouter/openai/gpt-5-mini -2w5t,GP9,openrouter/openai/gpt-5-mini -2w5r,GP9,openrouter/openai/gpt-5-mini -1fm6,BRL,openrouter/openai/gpt-5-mini -1fm9,570,openrouter/openai/gpt-5-mini -6fa3,GNP,openrouter/openai/gpt-5-mini -6fa1,GNP,openrouter/openai/gpt-5-mini -5ku8,6XK,openrouter/openai/gpt-5-mini -3kuc,GDP,openrouter/openai/gpt-5-mini -1ebz,BEC,openrouter/openai/gpt-5-mini -1eby,BEB,openrouter/openai/gpt-5-mini -1ebw,BEI,openrouter/openai/gpt-5-mini -4hoe,GLY,openrouter/openai/gpt-5-mini -4hof,GLY,openrouter/openai/gpt-5-mini -7wb6,F5R,openrouter/openai/gpt-5-mini -7wbs,8LT,openrouter/openai/gpt-5-mini -1wbk,568,openrouter/openai/gpt-5-mini -4wb7,ATP,openrouter/openai/gpt-5-mini -1wbm,BLL,openrouter/openai/gpt-5-mini -4j2d,TTP,openrouter/openai/gpt-5-mini -4j2a,TTP,openrouter/openai/gpt-5-mini -5j20,6FJ,openrouter/openai/gpt-5-mini -2wc1,FMN,openrouter/openai/gpt-5-mini -2hr1,SAH,openrouter/openai/gpt-5-mini -6a5x,9R3,openrouter/openai/gpt-5-mini -5a5q,6XC,openrouter/openai/gpt-5-mini -6a5y,9R0,openrouter/openai/gpt-5-mini -5zdb,AR6,openrouter/openai/gpt-5-mini -1gc5,ADP,openrouter/openai/gpt-5-mini -3tgu,WF3,openrouter/openai/gpt-5-mini -6ag7,H55,openrouter/openai/gpt-5-mini -1j1g,CPG,openrouter/openai/gpt-5-mini -1j1f,CPG,openrouter/openai/gpt-5-mini -2e4r,SAH,openrouter/openai/gpt-5-mini -5e41,AUL,openrouter/openai/gpt-5-mini -2p6d,SAH,openrouter/openai/gpt-5-mini -2p6k,SAH,openrouter/openai/gpt-5-mini -2p6i,SAH,openrouter/openai/gpt-5-mini -4p6w,MOF,openrouter/openai/gpt-5-mini -5gt4,2KB,openrouter/openai/gpt-5-mini -1xv5,UDP,openrouter/openai/gpt-5-mini -2bza,ABN,openrouter/openai/gpt-5-mini -1jof,PIN,openrouter/openai/gpt-5-mini -3g7x,HSM,openrouter/openai/gpt-5-mini -5yp5,4CZ,openrouter/openai/gpt-5-mini -5zvp,GDP,openrouter/openai/gpt-5-mini -3x1z,GNP,openrouter/openai/gpt-5-mini -2x1t,RES,openrouter/openai/gpt-5-mini -5x19,CHD,openrouter/openai/gpt-5-mini -4y43,46T,openrouter/openai/gpt-5-mini -4y4u,46V,openrouter/openai/gpt-5-mini -4y41,46O,openrouter/openai/gpt-5-mini -4y4e,46R,openrouter/openai/gpt-5-mini -4i3z,ADP,openrouter/openai/gpt-5-mini -2o4c,NAD,openrouter/openai/gpt-5-mini -5rop,47E,openrouter/openai/gpt-5-mini -3moz,5IP,openrouter/openai/gpt-5-mini -8qve,FAD,openrouter/openai/gpt-5-mini -6tx7,V1L,openrouter/openai/gpt-5-mini -1tx8,AM4,openrouter/openai/gpt-5-mini -6tx6,NCA,openrouter/openai/gpt-5-mini -6tx5,4MZ,openrouter/openai/gpt-5-mini -6tx4,HRZ,openrouter/openai/gpt-5-mini -4tx0,384,openrouter/openai/gpt-5-mini -6hia,G7N,openrouter/openai/gpt-5-mini -3mkd,ADP,openrouter/openai/gpt-5-mini -6cvl,AGS,openrouter/openai/gpt-5-mini -2cvz,NDP,openrouter/openai/gpt-5-mini -5e9i,F60,openrouter/openai/gpt-5-mini -5e9k,5KX,openrouter/openai/gpt-5-mini -5e95,GDP,openrouter/openai/gpt-5-mini -1c9w,NAP,openrouter/openai/gpt-5-mini -4kap,1QV,openrouter/openai/gpt-5-mini -6kae,2FU,openrouter/openai/gpt-5-mini -6b83,6NA,openrouter/openai/gpt-5-mini -3b8h,NAD,openrouter/openai/gpt-5-mini -3b82,NAD,openrouter/openai/gpt-5-mini -1u6q,745,openrouter/openai/gpt-5-mini -2rb1,261,openrouter/openai/gpt-5-mini -2rbq,263,openrouter/openai/gpt-5-mini -1kvl,THN,openrouter/openai/gpt-5-mini -6c7d,EOJ,openrouter/openai/gpt-5-mini -6c7e,EOG,openrouter/openai/gpt-5-mini -4c7f,GC2,openrouter/openai/gpt-5-mini -6c7i,EP7,openrouter/openai/gpt-5-mini -6zb0,QCW,openrouter/openai/gpt-5-mini -3sq4,TTP,openrouter/openai/gpt-5-mini -3sq2,TTP,openrouter/openai/gpt-5-mini -3sq6,EPJ,openrouter/openai/gpt-5-mini -3sq0,DUP,openrouter/openai/gpt-5-mini -3sq1,DUP,openrouter/openai/gpt-5-mini -4y2w,ALA,openrouter/openai/gpt-5-mini -6y2o,O72,openrouter/openai/gpt-5-mini -4ldj,GDP,openrouter/openai/gpt-5-mini -7ldy,DJR,openrouter/openai/gpt-5-mini -5tcc,J56,openrouter/openai/gpt-5-mini -6ay3,C3J,openrouter/openai/gpt-5-mini -4k13,ETS,openrouter/openai/gpt-5-mini -4k11,0J9,openrouter/openai/gpt-5-mini -4k18,1OB,openrouter/openai/gpt-5-mini -2ev9,SKM,openrouter/openai/gpt-5-mini -2r43,G3G,openrouter/openai/gpt-5-mini -5r4z,GWA,openrouter/openai/gpt-5-mini -5r4x,K3D,openrouter/openai/gpt-5-mini -2x8z,X8Z,openrouter/openai/gpt-5-mini -1x8t,RC1,openrouter/openai/gpt-5-mini -2h42,VIA,openrouter/openai/gpt-5-mini -1h46,RNP,openrouter/openai/gpt-5-mini -2h44,7CA,openrouter/openai/gpt-5-mini -6epx,BQW,openrouter/openai/gpt-5-mini -4epy,GDP,openrouter/openai/gpt-5-mini -6epu,BQH,openrouter/openai/gpt-5-mini -3rxg,SZ3,openrouter/openai/gpt-5-mini -3rxa,SZ1,openrouter/openai/gpt-5-mini -3rxh,HSM,openrouter/openai/gpt-5-mini -3rxc,2AP,openrouter/openai/gpt-5-mini -3rxf,4AP,openrouter/openai/gpt-5-mini -3rxr,SZ1,openrouter/openai/gpt-5-mini -3rxb,ALG,openrouter/openai/gpt-5-mini -3rxl,SZ9,openrouter/openai/gpt-5-mini -2qfs,S3P,openrouter/openai/gpt-5-mini -6qfg,J08,openrouter/openai/gpt-5-mini -2qfq,S3P,openrouter/openai/gpt-5-mini -3rk8,PYR,openrouter/openai/gpt-5-mini -3s9h,DUP,openrouter/openai/gpt-5-mini -7tle,GDP,openrouter/openai/gpt-5-mini -3ar6,12D,openrouter/openai/gpt-5-mini -3ar2,ACP,openrouter/openai/gpt-5-mini -3ar5,TM1,openrouter/openai/gpt-5-mini -3ar4,ATP,openrouter/openai/gpt-5-mini -3ar7,128,openrouter/openai/gpt-5-mini -3ar9,TM1,openrouter/openai/gpt-5-mini -3ar3,ADP,openrouter/openai/gpt-5-mini -4tmv,GSP,openrouter/openai/gpt-5-mini -1d4i,BEG,openrouter/openai/gpt-5-mini -1d4h,BEH,openrouter/openai/gpt-5-mini -1d4j,MSC,openrouter/openai/gpt-5-mini -2x45,HSM,openrouter/openai/gpt-5-mini -4ogj,2TA,openrouter/openai/gpt-5-mini -4ogi,R78,openrouter/openai/gpt-5-mini -4fud,6UP,openrouter/openai/gpt-5-mini -4fu8,2UP,openrouter/openai/gpt-5-mini -6qs5,JGB,openrouter/openai/gpt-5-mini -4qsv,THM,openrouter/openai/gpt-5-mini -4qsx,38S,openrouter/openai/gpt-5-mini -3qsy,GNP,openrouter/openai/gpt-5-mini -3snn,DCP,openrouter/openai/gpt-5-mini -8snz,FMN,openrouter/openai/gpt-5-mini -8fg4,GNP,openrouter/openai/gpt-5-mini -8fg3,GNP,openrouter/openai/gpt-5-mini -3fg2,FAD,openrouter/openai/gpt-5-mini -3fgd,BYA,openrouter/openai/gpt-5-mini -4av5,FYZ,openrouter/openai/gpt-5-mini -5k6j,6QQ,openrouter/openai/gpt-5-mini -5l66,BO2,openrouter/openai/gpt-5-mini -7nlm,UHE,openrouter/openai/gpt-5-mini -5c4s,4Y5,openrouter/openai/gpt-5-mini -5c4o,4F1,openrouter/openai/gpt-5-mini -3ids,NAD,openrouter/openai/gpt-5-mini -1fl3,SPB,openrouter/openai/gpt-5-mini -1xl5,190,openrouter/openai/gpt-5-mini -8hus,7YY,openrouter/openai/gpt-5-mini -8hux,7YY,openrouter/openai/gpt-5-mini -2huv,SAH,openrouter/openai/gpt-5-mini -3a8a,4FZ,openrouter/openai/gpt-5-mini -3a8c,O09,openrouter/openai/gpt-5-mini -3a8d,O09,openrouter/openai/gpt-5-mini -3a86,O09,openrouter/openai/gpt-5-mini -3gw5,72X,openrouter/openai/gpt-5-mini -6rmx,5DU,openrouter/openai/gpt-5-mini -3uk4,XXD,openrouter/openai/gpt-5-mini -8c6o,CZH,openrouter/openai/gpt-5-mini -5tex,7AU,openrouter/openai/gpt-5-mini -1mi4,S3P,openrouter/openai/gpt-5-mini -5tqz,AGC,openrouter/openai/gpt-5-mini -4drm,0MC,openrouter/openai/gpt-5-mini -8u2e,UP9,openrouter/openai/gpt-5-mini -4u27,VIF,openrouter/openai/gpt-5-mini -4u21,FWD,openrouter/openai/gpt-5-mini -7u2z,L7C,openrouter/openai/gpt-5-mini -5g20,MYA,openrouter/openai/gpt-5-mini -1g2k,NM1,openrouter/openai/gpt-5-mini -6g2r,EJK,openrouter/openai/gpt-5-mini -7l4c,SAH,openrouter/openai/gpt-5-mini -7l4h,SAH,openrouter/openai/gpt-5-mini -7a1x,QWB,openrouter/openai/gpt-5-mini -8t1u,SAH,openrouter/openai/gpt-5-mini -3swa,UD1,openrouter/openai/gpt-5-mini -3swq,EPU,openrouter/openai/gpt-5-mini -1r0a,AGC,openrouter/openai/gpt-5-mini -5hzn,66A,openrouter/openai/gpt-5-mini -5hw8,FK5,openrouter/openai/gpt-5-mini -8hwp,BUA,openrouter/openai/gpt-5-mini -4hw3,19G,openrouter/openai/gpt-5-mini -4hx2,1AX,openrouter/openai/gpt-5-mini -4b6l,9ZP,openrouter/openai/gpt-5-mini -4dje,C2F,openrouter/openai/gpt-5-mini -3esz,FMN,openrouter/openai/gpt-5-mini -2im0,CTP,openrouter/openai/gpt-5-mini -2im1,CTP,openrouter/openai/gpt-5-mini -2im2,UTP,openrouter/openai/gpt-5-mini -5j4t,MBG,openrouter/openai/gpt-5-mini -5cqa,2LY,openrouter/openai/gpt-5-mini -4tti,FMC,openrouter/openai/gpt-5-mini -4tta,FMC,openrouter/openai/gpt-5-mini -3ixb,BZB,openrouter/openai/gpt-5-mini -6mbv,NIO,openrouter/openai/gpt-5-mini -6mby,FER,openrouter/openai/gpt-5-mini -6qu0,FMN,openrouter/openai/gpt-5-mini -4qu1,AKG,openrouter/openai/gpt-5-mini -5ll4,6YH,openrouter/openai/gpt-5-mini -3llm,ADP,openrouter/openai/gpt-5-mini -6bqa,67C,openrouter/openai/gpt-5-mini -2bqv,A1A,openrouter/openai/gpt-5-mini -5bqs,4VN,openrouter/openai/gpt-5-mini -7bqv,F4U,openrouter/openai/gpt-5-mini -6l04,32I,openrouter/openai/gpt-5-mini -4w8e,3JB,openrouter/openai/gpt-5-mini -4w86,BGC,openrouter/openai/gpt-5-mini -4w8d,3JA,openrouter/openai/gpt-5-mini -6d5w,GNP,openrouter/openai/gpt-5-mini -7d5x,CHD,openrouter/openai/gpt-5-mini -1d5c,GDP,openrouter/openai/gpt-5-mini -6tak,ORO,openrouter/openai/gpt-5-mini -1c5s,ESX,openrouter/openai/gpt-5-mini -3si6,DUP,openrouter/openai/gpt-5-mini -4hj3,FMN,openrouter/openai/gpt-5-mini -1hjo,ADP,openrouter/openai/gpt-5-mini -5hjo,DGO,openrouter/openai/gpt-5-mini -4hj6,FMN,openrouter/openai/gpt-5-mini -5jn7,6LU,openrouter/openai/gpt-5-mini -6xhf,V2S,openrouter/openai/gpt-5-mini -1tke,SEG,openrouter/openai/gpt-5-mini -3d6p,U2S,openrouter/openai/gpt-5-mini -2x96,RX3,openrouter/openai/gpt-5-mini -2gy5,NDG,openrouter/openai/gpt-5-mini -3gy4,PBZ,openrouter/openai/gpt-5-mini -4ozt,P1A,openrouter/openai/gpt-5-mini -3ozw,FAD,openrouter/openai/gpt-5-mini -2oz7,CA4,openrouter/openai/gpt-5-mini -1eqc,CTS,openrouter/openai/gpt-5-mini -3n8y,DIF,openrouter/openai/gpt-5-mini -3n8g,ACP,openrouter/openai/gpt-5-mini -3n8w,FLP,openrouter/openai/gpt-5-mini -2a3i,C0R,openrouter/openai/gpt-5-mini -5nit,FAD,openrouter/openai/gpt-5-mini -4zsg,4QX,openrouter/openai/gpt-5-mini -2zsu,AG3,openrouter/openai/gpt-5-mini -4q02,GDP,openrouter/openai/gpt-5-mini -1q36,SKP,openrouter/openai/gpt-5-mini -6q3x,HFK,openrouter/openai/gpt-5-mini -6q3u,ARG,openrouter/openai/gpt-5-mini -3ma0,HSZ,openrouter/openai/gpt-5-mini -7maa,A61,openrouter/openai/gpt-5-mini -7ma2,XUY,openrouter/openai/gpt-5-mini -7ma8,F53,openrouter/openai/gpt-5-mini -7ma7,K2D,openrouter/openai/gpt-5-mini -7ma4,K2A,openrouter/openai/gpt-5-mini -7ma1,065,openrouter/openai/gpt-5-mini -7ma9,K2E,openrouter/openai/gpt-5-mini -7ma0,NJM,openrouter/openai/gpt-5-mini -7ma3,K14,openrouter/openai/gpt-5-mini -7ma5,K20,openrouter/openai/gpt-5-mini -1o0n,U3P,openrouter/openai/gpt-5-mini -7o0e,GLY,openrouter/openai/gpt-5-mini -1o0h,ADP,openrouter/openai/gpt-5-mini -1o03,G16,openrouter/openai/gpt-5-mini -6z4w,ADP,openrouter/openai/gpt-5-mini -2z4j,DHT,openrouter/openai/gpt-5-mini -4glo,NAD,openrouter/openai/gpt-5-mini -1sgu,MK1,openrouter/openai/gpt-5-mini -3ggx,GGX,openrouter/openai/gpt-5-mini -2ggs,NDP,openrouter/openai/gpt-5-mini -2qyk,NPV,openrouter/openai/gpt-5-mini -1p2v,GNP,openrouter/openai/gpt-5-mini -1p2s,GNP,openrouter/openai/gpt-5-mini -4jui,EGR,openrouter/openai/gpt-5-mini -2pfz,PCA,openrouter/openai/gpt-5-mini -4pfx,UDP,openrouter/openai/gpt-5-mini -3pfl,OXM,openrouter/openai/gpt-5-mini -3fk0,S3P,openrouter/openai/gpt-5-mini -6fkb,DLH,openrouter/openai/gpt-5-mini -6fk6,DOK,openrouter/openai/gpt-5-mini -2apc,UDM,openrouter/openai/gpt-5-mini -1t8e,DCT,openrouter/openai/gpt-5-mini -7lmq,9ZW,openrouter/openai/gpt-5-mini -7lmo,NYO,openrouter/openai/gpt-5-mini -6dbc,G3J,openrouter/openai/gpt-5-mini -7uah,NZ5,openrouter/openai/gpt-5-mini -1ua0,AF,openrouter/openai/gpt-5-mini -4do6,AGC,openrouter/openai/gpt-5-mini -4do4,DJN,openrouter/openai/gpt-5-mini -4do5,DGJ,openrouter/openai/gpt-5-mini -5f36,5UE,openrouter/openai/gpt-5-mini -3rut,59G,openrouter/openai/gpt-5-mini -2pch,SAH,openrouter/openai/gpt-5-mini -2pci,SAH,openrouter/openai/gpt-5-mini -2pcg,SAH,openrouter/openai/gpt-5-mini -3pcw,FBF,openrouter/openai/gpt-5-mini -2pca,SAH,openrouter/openai/gpt-5-mini -4pct,H76,openrouter/openai/gpt-5-mini -1zgy,BRL,openrouter/openai/gpt-5-mini -4az2,9MU,openrouter/openai/gpt-5-mini -7azn,YK8,openrouter/openai/gpt-5-mini -7cms,9E0,openrouter/openai/gpt-5-mini -8hfn,XGC,openrouter/openai/gpt-5-mini -5kqy,017,openrouter/openai/gpt-5-mini -3kqb,LGJ,openrouter/openai/gpt-5-mini -6kqq,DW9,openrouter/openai/gpt-5-mini -3kqc,LGK,openrouter/openai/gpt-5-mini -3kqe,LGM,openrouter/openai/gpt-5-mini -3kqj,UD1,openrouter/openai/gpt-5-mini -5dq1,5HL,openrouter/openai/gpt-5-mini -2xrs,GAL,openrouter/openai/gpt-5-mini -2i0u,TRT,openrouter/openai/gpt-5-mini -7efw,CYC,openrouter/openai/gpt-5-mini -6dws,HFY,openrouter/openai/gpt-5-mini -1ht5,FL2,openrouter/openai/gpt-5-mini -5ues,87S,openrouter/openai/gpt-5-mini -5uep,88P,openrouter/openai/gpt-5-mini -5uer,87P,openrouter/openai/gpt-5-mini -5uez,89G,openrouter/openai/gpt-5-mini -5uet,87V,openrouter/openai/gpt-5-mini -8cx5,GDP,openrouter/openai/gpt-5-mini -2g6p,HM2,openrouter/openai/gpt-5-mini -8g69,YXN,openrouter/openai/gpt-5-mini -1g6t,S3P,openrouter/openai/gpt-5-mini -1ra7,GTP,openrouter/openai/gpt-5-mini -2ray,258,openrouter/openai/gpt-5-mini -4ra3,TFX,openrouter/openai/gpt-5-mini -3rab,GNP,openrouter/openai/gpt-5-mini -4kx6,FAD,openrouter/openai/gpt-5-mini -7kxp,X9V,openrouter/openai/gpt-5-mini -5l8t,6RR,openrouter/openai/gpt-5-mini -3l8y,GNP,openrouter/openai/gpt-5-mini -1l8b,MGP,openrouter/openai/gpt-5-mini -1oko,GAL,openrouter/openai/gpt-5-mini -5ok3,M77,openrouter/openai/gpt-5-mini -5ok1,B16,openrouter/openai/gpt-5-mini -2q96,A18,openrouter/openai/gpt-5-mini -2q94,A04,openrouter/openai/gpt-5-mini -2q93,B21,openrouter/openai/gpt-5-mini -2q95,A05,openrouter/openai/gpt-5-mini -2q92,B23,openrouter/openai/gpt-5-mini -5ljq,ANV,openrouter/openai/gpt-5-mini -8fsi,SAM,openrouter/openai/gpt-5-mini -3tuh,TUH,openrouter/openai/gpt-5-mini -6tuk,BU3,openrouter/openai/gpt-5-mini -4tu4,37N,openrouter/openai/gpt-5-mini -4ct9,AMP,openrouter/openai/gpt-5-mini -7xf7,NDG,openrouter/openai/gpt-5-mini -4xf7,CBU,openrouter/openai/gpt-5-mini -7xf8,NDG,openrouter/openai/gpt-5-mini -2onj,ANP,openrouter/openai/gpt-5-mini -2onf,COA,openrouter/openai/gpt-5-mini -7w1i,C8X,openrouter/openai/gpt-5-mini -1w1x,NAN,openrouter/openai/gpt-5-mini -5z86,CHD,openrouter/openai/gpt-5-mini -5z84,CHD,openrouter/openai/gpt-5-mini -7vdo,NAP,openrouter/openai/gpt-5-mini -4e3s,QTP,openrouter/openai/gpt-5-mini -5je7,EVF,openrouter/openai/gpt-5-mini -6jea,HSR,openrouter/openai/gpt-5-mini -8jea,MAN,openrouter/openai/gpt-5-mini -4gh6,LUO,openrouter/openai/gpt-5-mini -7ghq,OYX,openrouter/openai/gpt-5-mini -4rif,3R2,openrouter/openai/gpt-5-mini -8baq,NAD,openrouter/openai/gpt-5-mini -3byo,AM9,openrouter/openai/gpt-5-mini -1pno,NAP,openrouter/openai/gpt-5-mini -1pnq,NDP,openrouter/openai/gpt-5-mini -7z63,IE3,openrouter/openai/gpt-5-mini -1z6e,IK8,openrouter/openai/gpt-5-mini -7m0m,YK1,openrouter/openai/gpt-5-mini -3so9,017,openrouter/openai/gpt-5-mini -5cg9,AKG,openrouter/openai/gpt-5-mini -5kr1,017,openrouter/openai/gpt-5-mini -7krg,NAP,openrouter/openai/gpt-5-mini -4hn1,TDR,openrouter/openai/gpt-5-mini -5hnu,NAP,openrouter/openai/gpt-5-mini -4rqu,NAD,openrouter/openai/gpt-5-mini -1wuw,SEG,openrouter/openai/gpt-5-mini -5clu,S8A,openrouter/openai/gpt-5-mini -6opy,017,openrouter/openai/gpt-5-mini -6opw,017,openrouter/openai/gpt-5-mini -6opt,017,openrouter/openai/gpt-5-mini -6opz,017,openrouter/openai/gpt-5-mini -6opv,017,openrouter/openai/gpt-5-mini -6ops,017,openrouter/openai/gpt-5-mini -7m8r,W6X,openrouter/openai/gpt-5-mini -6lx5,C5F,openrouter/openai/gpt-5-mini -4lxq,TYD,openrouter/openai/gpt-5-mini -6bun,HPG,openrouter/openai/gpt-5-mini -6bur,BR8,openrouter/openai/gpt-5-mini -6f57,SAH,openrouter/openai/gpt-5-mini -7wa2,RKX,openrouter/openai/gpt-5-mini -4pzz,GDP,openrouter/openai/gpt-5-mini -2eni,SAH,openrouter/openai/gpt-5-mini -7enz,LDR,openrouter/openai/gpt-5-mini -2p3u,663,openrouter/openai/gpt-5-mini -3p3g,3P3,openrouter/openai/gpt-5-mini -1vb3,KPA,openrouter/openai/gpt-5-mini -4xn4,MET,openrouter/openai/gpt-5-mini -4xn7,DPP,openrouter/openai/gpt-5-mini -8eip,7ID,openrouter/openai/gpt-5-mini -4a6c,QG9,openrouter/openai/gpt-5-mini -4a6s,GS9,openrouter/openai/gpt-5-mini -5ccn,4ZZ,openrouter/openai/gpt-5-mini -5ccq,502,openrouter/openai/gpt-5-mini -8c0q,SWU,openrouter/openai/gpt-5-mini -8c0r,SXL,openrouter/openai/gpt-5-mini -7dhn,H7R,openrouter/openai/gpt-5-mini -6dh5,A60,openrouter/openai/gpt-5-mini -6dh4,K13,openrouter/openai/gpt-5-mini -6dh0,017,openrouter/openai/gpt-5-mini -6dh1,K13,openrouter/openai/gpt-5-mini -6dh8,A60,openrouter/openai/gpt-5-mini -6dh3,017,openrouter/openai/gpt-5-mini -6dh2,A60,openrouter/openai/gpt-5-mini -6dh6,017,openrouter/openai/gpt-5-mini -7dh9,H7F,openrouter/openai/gpt-5-mini -7dh3,H7C,openrouter/openai/gpt-5-mini -6dh7,K13,openrouter/openai/gpt-5-mini -2xel,AD9,openrouter/openai/gpt-5-mini -2xe5,ASZ,openrouter/openai/gpt-5-mini -5m2b,7DX,openrouter/openai/gpt-5-mini -5lwp,79U,openrouter/openai/gpt-5-mini -5c1m,VF1,openrouter/openai/gpt-5-mini -5ytd,DGT,openrouter/openai/gpt-5-mini -2boj,ARW,openrouter/openai/gpt-5-mini -2fxd,DR7,openrouter/openai/gpt-5-mini -6q27,BM3,openrouter/openai/gpt-5-mini -2h3h,BGC,openrouter/openai/gpt-5-mini -4n1n,UNU,openrouter/openai/gpt-5-mini -4n1q,WM2,openrouter/openai/gpt-5-mini -4bcw,TU0,openrouter/openai/gpt-5-mini -2uz4,SAH,openrouter/openai/gpt-5-mini -1zw6,GNP,openrouter/openai/gpt-5-mini -3a7x,O09,openrouter/openai/gpt-5-mini -3a7t,4FZ,openrouter/openai/gpt-5-mini -3iog,SDF,openrouter/openai/gpt-5-mini -2w26,RIV,openrouter/openai/gpt-5-mini -1t65,DHT,openrouter/openai/gpt-5-mini -4ca8,3ES,openrouter/openai/gpt-5-mini -5yjk,8VX,openrouter/openai/gpt-5-mini -3pmu,F7L,openrouter/openai/gpt-5-mini -3pm4,F5N,openrouter/openai/gpt-5-mini -3pmy,41L,openrouter/openai/gpt-5-mini -4pmj,NAP,openrouter/openai/gpt-5-mini -6r79,GLY,openrouter/openai/gpt-5-mini -8fol,SAM,openrouter/openai/gpt-5-mini -8p0o,GDU,openrouter/openai/gpt-5-mini -5lcu,IQP,openrouter/openai/gpt-5-mini -5eyk,5U5,openrouter/openai/gpt-5-mini -6eyf,BY2,openrouter/openai/gpt-5-mini -4z0q,4K9,openrouter/openai/gpt-5-mini -2dv3,SAH,openrouter/openai/gpt-5-mini -2dvn,IMP,openrouter/openai/gpt-5-mini -2dv7,SAH,openrouter/openai/gpt-5-mini -4v3c,C25,openrouter/openai/gpt-5-mini -3s0n,0BB,openrouter/openai/gpt-5-mini -3s0b,FNA,openrouter/openai/gpt-5-mini -3s0e,EOL,openrouter/openai/gpt-5-mini -2xyf,G40,openrouter/openai/gpt-5-mini -3mwl,8OX,openrouter/openai/gpt-5-mini -2phb,230,openrouter/openai/gpt-5-mini -4phs,UDP,openrouter/openai/gpt-5-mini -4phr,UDP,openrouter/openai/gpt-5-mini -1geg,NAD,openrouter/openai/gpt-5-mini -7rek,R6S,openrouter/openai/gpt-5-mini -4kz5,1U3,openrouter/openai/gpt-5-mini -4kza,NZ9,openrouter/openai/gpt-5-mini -7kze,N0Y,openrouter/openai/gpt-5-mini -4kz7,1U5,openrouter/openai/gpt-5-mini -4kz6,ZB6,openrouter/openai/gpt-5-mini -6oot,017,openrouter/openai/gpt-5-mini -6bv4,MET,openrouter/openai/gpt-5-mini -6lkj,BGP,openrouter/openai/gpt-5-mini -6lkk,G6P,openrouter/openai/gpt-5-mini -6lkh,G6P,openrouter/openai/gpt-5-mini -1tjy,PAV,openrouter/openai/gpt-5-mini -6gqx,F8K,openrouter/openai/gpt-5-mini -6yyv,Q1Z,openrouter/openai/gpt-5-mini -8hy1,5ZU,openrouter/openai/gpt-5-mini -7rwf,7TW,openrouter/openai/gpt-5-mini -7w41,8B8,openrouter/openai/gpt-5-mini -1w4o,UA3,openrouter/openai/gpt-5-mini -5w44,GY6,openrouter/openai/gpt-5-mini -1w4p,UM3,openrouter/openai/gpt-5-mini -5z3n,DGT,openrouter/openai/gpt-5-mini -2w3i,L1C,openrouter/openai/gpt-5-mini -2w3k,L1D,openrouter/openai/gpt-5-mini -6i46,H2N,openrouter/openai/gpt-5-mini -6gxy,FFN,openrouter/openai/gpt-5-mini -4gxs,0YS,openrouter/openai/gpt-5-mini -1o2n,762,openrouter/openai/gpt-5-mini -1o2e,ANN,openrouter/openai/gpt-5-mini -1o2i,655,openrouter/openai/gpt-5-mini -5kir,RCX,openrouter/openai/gpt-5-mini -3rtv,DCP,openrouter/openai/gpt-5-mini -3rtf,CWD,openrouter/openai/gpt-5-mini -5xg5,A2G,openrouter/openai/gpt-5-mini -1xgi,NST,openrouter/openai/gpt-5-mini -1xgj,HTC,openrouter/openai/gpt-5-mini -6oxs,NJ4,openrouter/openai/gpt-5-mini -6oxv,NF4,openrouter/openai/gpt-5-mini -5oxg,B4B,openrouter/openai/gpt-5-mini -6oxo,NJM,openrouter/openai/gpt-5-mini -2uyc,SAH,openrouter/openai/gpt-5-mini -1xjb,NAP,openrouter/openai/gpt-5-mini -5xj2,SAH,openrouter/openai/gpt-5-mini -5j88,GUN,openrouter/openai/gpt-5-mini -5j8a,GUN,openrouter/openai/gpt-5-mini -6ahs,9YO,openrouter/openai/gpt-5-mini -2y5h,Y5H,openrouter/openai/gpt-5-mini -4y56,47J,openrouter/openai/gpt-5-mini -4y5n,487,openrouter/openai/gpt-5-mini -5hvs,65V,openrouter/openai/gpt-5-mini -2hvi,DCT,openrouter/openai/gpt-5-mini -2hvc,LGD,openrouter/openai/gpt-5-mini -7rp2,GDP,openrouter/openai/gpt-5-mini -4uuw,AMP,openrouter/openai/gpt-5-mini -7osa,GTP,openrouter/openai/gpt-5-mini -4dto,DCP,openrouter/openai/gpt-5-mini -4dtp,DGT,openrouter/openai/gpt-5-mini -4dtj,TTP,openrouter/openai/gpt-5-mini -4dtm,DCP,openrouter/openai/gpt-5-mini -4dtn,DTP,openrouter/openai/gpt-5-mini -3gbb,MS8,openrouter/openai/gpt-5-mini -4gb2,0LQ,openrouter/openai/gpt-5-mini -5m71,7K7,openrouter/openai/gpt-5-mini -3m7r,VDX,openrouter/openai/gpt-5-mini -1vzq,SHY,openrouter/openai/gpt-5-mini -5nxo,9HK,openrouter/openai/gpt-5-mini -2nxe,SAM,openrouter/openai/gpt-5-mini -6t4u,4F1,openrouter/openai/gpt-5-mini -3po1,MKY,openrouter/openai/gpt-5-mini -2p94,ME4,openrouter/openai/gpt-5-mini -2p99,YE6,openrouter/openai/gpt-5-mini -2p95,ME5,openrouter/openai/gpt-5-mini -6t5b,GDP,openrouter/openai/gpt-5-mini -1t5s,ACP,openrouter/openai/gpt-5-mini -1t5t,ADP,openrouter/openai/gpt-5-mini -6b59,CQS,openrouter/openai/gpt-5-mini -3b50,SLB,openrouter/openai/gpt-5-mini -5b5f,6F3,openrouter/openai/gpt-5-mini -2fzw,NAD,openrouter/openai/gpt-5-mini -6fzg,EDK,openrouter/openai/gpt-5-mini -5j5g,6GF,openrouter/openai/gpt-5-mini -4j52,1J3,openrouter/openai/gpt-5-mini -4twp,AXI,openrouter/openai/gpt-5-mini -1mgo,NAD,openrouter/openai/gpt-5-mini -5mgf,7MW,openrouter/openai/gpt-5-mini -6na4,VES,openrouter/openai/gpt-5-mini -1s3v,TQD,openrouter/openai/gpt-5-mini -3s3i,CQ0,openrouter/openai/gpt-5-mini -1s3u,TQD,openrouter/openai/gpt-5-mini -6h29,FK8,openrouter/openai/gpt-5-mini -6h2t,GGL,openrouter/openai/gpt-5-mini -6h20,ASN,openrouter/openai/gpt-5-mini -4y3q,F02,openrouter/openai/gpt-5-mini -4y3g,463,openrouter/openai/gpt-5-mini -4y36,45L,openrouter/openai/gpt-5-mini -4y3d,45N,openrouter/openai/gpt-5-mini -4y3x,46P,openrouter/openai/gpt-5-mini -3ffg,FFG,openrouter/openai/gpt-5-mini -6mqg,GDP,openrouter/openai/gpt-5-mini -7qdt,T3,openrouter/openai/gpt-5-mini -8tbj,GNP,openrouter/openai/gpt-5-mini -8tbg,GNP,openrouter/openai/gpt-5-mini -8tbf,GNP,openrouter/openai/gpt-5-mini -8tbh,GNP,openrouter/openai/gpt-5-mini -5lr1,72Y,openrouter/openai/gpt-5-mini -5lrl,73S,openrouter/openai/gpt-5-mini -6eaa,J1V,openrouter/openai/gpt-5-mini -5eaj,FOL,openrouter/openai/gpt-5-mini -3h1k,IKR,openrouter/openai/gpt-5-mini -6h1u,ASP,openrouter/openai/gpt-5-mini -3h1j,SMA,openrouter/openai/gpt-5-mini -3h1l,3H1,openrouter/openai/gpt-5-mini -7duy,HLL,openrouter/openai/gpt-5-mini -7dux,HLF,openrouter/openai/gpt-5-mini -2f4j,VX6,openrouter/openai/gpt-5-mini -5wzt,7W6,openrouter/openai/gpt-5-mini -5wzu,7W3,openrouter/openai/gpt-5-mini -8wzq,XIU,openrouter/openai/gpt-5-mini -5wzv,7W0,openrouter/openai/gpt-5-mini -1wp4,NDP,openrouter/openai/gpt-5-mini -4xt9,43V,openrouter/openai/gpt-5-mini -6dgx,017,openrouter/openai/gpt-5-mini -4dgn,LU2,openrouter/openai/gpt-5-mini -6dgy,K13,openrouter/openai/gpt-5-mini -4dgm,AGI,openrouter/openai/gpt-5-mini -7dg4,H5R,openrouter/openai/gpt-5-mini -6dgz,A60,openrouter/openai/gpt-5-mini -8fr2,N8A,openrouter/openai/gpt-5-mini -8fr1,N84,openrouter/openai/gpt-5-mini -6xq9,V6S,openrouter/openai/gpt-5-mini -7vsl,7XI,openrouter/openai/gpt-5-mini -2zxw,CHD,openrouter/openai/gpt-5-mini -4zx0,5L2,openrouter/openai/gpt-5-mini -3au2,DGT,openrouter/openai/gpt-5-mini -5xzb,A9Y,openrouter/openai/gpt-5-mini -5f61,5W0,openrouter/openai/gpt-5-mini -4fcw,ADP,openrouter/openai/gpt-5-mini -4jfi,1KT,openrouter/openai/gpt-5-mini -3pi0,F91,openrouter/openai/gpt-5-mini -1h50,FMN,openrouter/openai/gpt-5-mini -7mz2,0KX,openrouter/openai/gpt-5-mini -4yoi,4F4,openrouter/openai/gpt-5-mini -6yot,P4W,openrouter/openai/gpt-5-mini -3chs,4BU,openrouter/openai/gpt-5-mini -3cho,4BG,openrouter/openai/gpt-5-mini -8chi,UMR,openrouter/openai/gpt-5-mini -8chk,UUI,openrouter/openai/gpt-5-mini -8chj,UQI,openrouter/openai/gpt-5-mini -6g3r,ADP,openrouter/openai/gpt-5-mini -1g35,AHF,openrouter/openai/gpt-5-mini -5g3l,NAN,openrouter/openai/gpt-5-mini -1g36,R11,openrouter/openai/gpt-5-mini -6g3c,EKT,openrouter/openai/gpt-5-mini -8g3s,YLT,openrouter/openai/gpt-5-mini -8g3t,YLK,openrouter/openai/gpt-5-mini -2q89,6CS,openrouter/openai/gpt-5-mini -2q88,4CS,openrouter/openai/gpt-5-mini -7b7b,T1B,openrouter/openai/gpt-5-mini -4fn4,NAD,openrouter/openai/gpt-5-mini -2qrz,GCP,openrouter/openai/gpt-5-mini -1pd9,CO4,openrouter/openai/gpt-5-mini -2qk5,CS5,openrouter/openai/gpt-5-mini -6ssy,P7I,openrouter/openai/gpt-5-mini -2ceq,GIM,openrouter/openai/gpt-5-mini -1h63,FMN,openrouter/openai/gpt-5-mini -5zcq,CHD,openrouter/openai/gpt-5-mini -5zcp,CHD,openrouter/openai/gpt-5-mini -4e7e,UPG,openrouter/openai/gpt-5-mini -4e7b,UPG,openrouter/openai/gpt-5-mini -4e7f,UDP,openrouter/openai/gpt-5-mini -2wyk,NGE,openrouter/openai/gpt-5-mini -6y9r,OH8,openrouter/openai/gpt-5-mini -5y9a,AR3,openrouter/openai/gpt-5-mini -4y95,746,openrouter/openai/gpt-5-mini -4mdn,Y30,openrouter/openai/gpt-5-mini -2aa9,SKM,openrouter/openai/gpt-5-mini -6ddj,G7V,openrouter/openai/gpt-5-mini -6zyh,ADP,openrouter/openai/gpt-5-mini -3suo,TTP,openrouter/openai/gpt-5-mini -3su9,EPZ,openrouter/openai/gpt-5-mini -1uhj,CZB,openrouter/openai/gpt-5-mini -3abk,CHD,openrouter/openai/gpt-5-mini -7abo,FMN,openrouter/openai/gpt-5-mini -6rr3,FAD,openrouter/openai/gpt-5-mini -3rry,GNP,openrouter/openai/gpt-5-mini -2qeh,SRO,openrouter/openai/gpt-5-mini -2qeb,HSM,openrouter/openai/gpt-5-mini -3qet,TTP,openrouter/openai/gpt-5-mini -3qei,DCP,openrouter/openai/gpt-5-mini -2qen,ADP,openrouter/openai/gpt-5-mini -6svf,ARG,openrouter/openai/gpt-5-mini -3aso,CHD,openrouter/openai/gpt-5-mini -3asn,CHD,openrouter/openai/gpt-5-mini -3s77,EVI,openrouter/openai/gpt-5-mini -3s75,EVG,openrouter/openai/gpt-5-mini -2oci,TYC,openrouter/openai/gpt-5-mini -5edi,5M9,openrouter/openai/gpt-5-mini -5edt,5MK,openrouter/openai/gpt-5-mini -6edg,P34,openrouter/openai/gpt-5-mini -2ow3,BIM,openrouter/openai/gpt-5-mini -2owg,SAH,openrouter/openai/gpt-5-mini -7owf,2IU,openrouter/openai/gpt-5-mini -3owb,BSM,openrouter/openai/gpt-5-mini -3ow6,MEX,openrouter/openai/gpt-5-mini -3c8c,ALA,openrouter/openai/gpt-5-mini -5uvw,8NG,openrouter/openai/gpt-5-mini -5uvz,8NP,openrouter/openai/gpt-5-mini -5uvs,8O1,openrouter/openai/gpt-5-mini -4kd1,1QK,openrouter/openai/gpt-5-mini -4kdo,NAN,openrouter/openai/gpt-5-mini -6pjg,ORV,openrouter/openai/gpt-5-mini -6pjl,OQA,openrouter/openai/gpt-5-mini -6pji,OO4,openrouter/openai/gpt-5-mini -3cz7,ACO,openrouter/openai/gpt-5-mini -6cz1,3FD,openrouter/openai/gpt-5-mini -3dxg,U25,openrouter/openai/gpt-5-mini -4b1c,1B1,openrouter/openai/gpt-5-mini -6b1c,C9J,openrouter/openai/gpt-5-mini -6b1d,BGC,openrouter/openai/gpt-5-mini -5b1b,CHD,openrouter/openai/gpt-5-mini -7le5,K2E,openrouter/openai/gpt-5-mini -7le3,K19,openrouter/openai/gpt-5-mini -7le0,XUY,openrouter/openai/gpt-5-mini -7le4,K2D,openrouter/openai/gpt-5-mini -7le6,A61,openrouter/openai/gpt-5-mini -7le2,K20,openrouter/openai/gpt-5-mini -7ze7,UUJ,openrouter/openai/gpt-5-mini -5zec,NAP,openrouter/openai/gpt-5-mini -3l3x,DHT,openrouter/openai/gpt-5-mini -2qhu,OYA,openrouter/openai/gpt-5-mini -2qhv,OC9,openrouter/openai/gpt-5-mini -4qhq,MET,openrouter/openai/gpt-5-mini -7w6f,8I6,openrouter/openai/gpt-5-mini -6uqv,BUA,openrouter/openai/gpt-5-mini -7bky,U1E,openrouter/openai/gpt-5-mini -7bku,PHN,openrouter/openai/gpt-5-mini -6awt,28E,openrouter/openai/gpt-5-mini -8awr,OIZ,openrouter/openai/gpt-5-mini -3aty,FMN,openrouter/openai/gpt-5-mini -3atk,SZ1,openrouter/openai/gpt-5-mini -4wq2,3SU,openrouter/openai/gpt-5-mini -5wqk,7NC,openrouter/openai/gpt-5-mini -3r17,5UM,openrouter/openai/gpt-5-mini -3r16,5UN,openrouter/openai/gpt-5-mini -1nvt,NAP,openrouter/openai/gpt-5-mini -1nvk,UDP,openrouter/openai/gpt-5-mini -3nvz,MTE,openrouter/openai/gpt-5-mini -5yxd,93R,openrouter/openai/gpt-5-mini -4x2u,TOD,openrouter/openai/gpt-5-mini -4yry,FAD,openrouter/openai/gpt-5-mini -3b0x,DGT,openrouter/openai/gpt-5-mini -3b0y,DGT,openrouter/openai/gpt-5-mini -4pgl,SOE,openrouter/openai/gpt-5-mini -4pgx,1FZ,openrouter/openai/gpt-5-mini -3ajn,GM1,openrouter/openai/gpt-5-mini -1s5e,GAL,openrouter/openai/gpt-5-mini -4nyi,GNP,openrouter/openai/gpt-5-mini -4nyj,GNP,openrouter/openai/gpt-5-mini -5ny3,9E8,openrouter/openai/gpt-5-mini -5nya,FB2,openrouter/openai/gpt-5-mini -2g9x,NU5,openrouter/openai/gpt-5-mini -1ws4,GYP,openrouter/openai/gpt-5-mini -4yd6,4AS,openrouter/openai/gpt-5-mini -2ydg,ASC,openrouter/openai/gpt-5-mini -4yd5,4AV,openrouter/openai/gpt-5-mini -3p1f,3PF,openrouter/openai/gpt-5-mini -6jqf,HSR,openrouter/openai/gpt-5-mini -3m35,M35,openrouter/openai/gpt-5-mini -3m37,M37,openrouter/openai/gpt-5-mini -3m36,M35,openrouter/openai/gpt-5-mini -1ihx,SND,openrouter/openai/gpt-5-mini -1u8y,GNP,openrouter/openai/gpt-5-mini -4u8z,3FE,openrouter/openai/gpt-5-mini -6ee6,J4P,openrouter/openai/gpt-5-mini -6ee3,J4V,openrouter/openai/gpt-5-mini -6eeo,J6V,openrouter/openai/gpt-5-mini -3rlj,RLJ,openrouter/openai/gpt-5-mini -1jir,AML,openrouter/openai/gpt-5-mini -8gvm,CHD,openrouter/openai/gpt-5-mini -1gv8,GLY,openrouter/openai/gpt-5-mini -5not,938,openrouter/openai/gpt-5-mini -5now,L89,openrouter/openai/gpt-5-mini -4hg9,G3P,openrouter/openai/gpt-5-mini -4u54,3C5,openrouter/openai/gpt-5-mini -4u5o,3D5,openrouter/openai/gpt-5-mini -7m9x,YUA,openrouter/openai/gpt-5-mini -7m9r,YUP,openrouter/openai/gpt-5-mini -7m9g,NF7,openrouter/openai/gpt-5-mini -7m9w,YUD,openrouter/openai/gpt-5-mini -7m9h,NJG,openrouter/openai/gpt-5-mini -7m9i,NJ1,openrouter/openai/gpt-5-mini -7m9v,YUJ,openrouter/openai/gpt-5-mini -7m9z,DJR,openrouter/openai/gpt-5-mini -7m9s,YUJ,openrouter/openai/gpt-5-mini -7m9t,YUD,openrouter/openai/gpt-5-mini -5wlt,86B,openrouter/openai/gpt-5-mini -5wlr,86B,openrouter/openai/gpt-5-mini -1unl,RRC,openrouter/openai/gpt-5-mini -6sds,L8N,openrouter/openai/gpt-5-mini -2ync,YNC,openrouter/openai/gpt-5-mini -4a95,NHW,openrouter/openai/gpt-5-mini -6cw9,7LM,openrouter/openai/gpt-5-mini -3ps1,ZH2,openrouter/openai/gpt-5-mini -3ps3,L53,openrouter/openai/gpt-5-mini -5jw1,CEL,openrouter/openai/gpt-5-mini -1l2s,STC,openrouter/openai/gpt-5-mini -3fjx,S3P,openrouter/openai/gpt-5-mini -6fj2,TMO,openrouter/openai/gpt-5-mini -5ej4,TD6,openrouter/openai/gpt-5-mini -2ejj,SAH,openrouter/openai/gpt-5-mini -2ejk,SAH,openrouter/openai/gpt-5-mini -7ejv,YK2,openrouter/openai/gpt-5-mini -4k0y,1OA,openrouter/openai/gpt-5-mini -4k0z,MZM,openrouter/openai/gpt-5-mini -5k0f,6P1,openrouter/openai/gpt-5-mini -4k0s,AZM,openrouter/openai/gpt-5-mini -4k0t,D9Z,openrouter/openai/gpt-5-mini -3n3z,IBM,openrouter/openai/gpt-5-mini -6kwt,NDP,openrouter/openai/gpt-5-mini -3b92,440,openrouter/openai/gpt-5-mini -3lft,LTR,openrouter/openai/gpt-5-mini -5odh,COM,openrouter/openai/gpt-5-mini -5dpz,51V,openrouter/openai/gpt-5-mini -6dpy,H7A,openrouter/openai/gpt-5-mini -2brc,CT5,openrouter/openai/gpt-5-mini -3brw,GDP,openrouter/openai/gpt-5-mini -4ymv,ATP,openrouter/openai/gpt-5-mini -2rgd,GNP,openrouter/openai/gpt-5-mini -2rga,GNP,openrouter/openai/gpt-5-mini -2rgb,GNP,openrouter/openai/gpt-5-mini -2rgc,GNP,openrouter/openai/gpt-5-mini -6otp,N8A,openrouter/openai/gpt-5-mini -7otn,1IH,openrouter/openai/gpt-5-mini -1otw,PQQ,openrouter/openai/gpt-5-mini -2otv,NCA,openrouter/openai/gpt-5-mini -2otz,1MR,openrouter/openai/gpt-5-mini -7ota,1I1,openrouter/openai/gpt-5-mini -3upk,UD1,openrouter/openai/gpt-5-mini -8har,SAH,openrouter/openai/gpt-5-mini -3qnn,DGT,openrouter/openai/gpt-5-mini -6kjd,LVA,openrouter/openai/gpt-5-mini -2pr3,237,openrouter/openai/gpt-5-mini -3f28,S7B,openrouter/openai/gpt-5-mini -6q54,HJ8,openrouter/openai/gpt-5-mini -7bni,SAL,openrouter/openai/gpt-5-mini -5wr6,NX6,openrouter/openai/gpt-5-mini -1wra,POC,openrouter/openai/gpt-5-mini -1vce,SAH,openrouter/openai/gpt-5-mini -5ivr,6EG,openrouter/openai/gpt-5-mini -5ivq,6EH,openrouter/openai/gpt-5-mini -2eh4,SAH,openrouter/openai/gpt-5-mini -6ugr,Q71,openrouter/openai/gpt-5-mini -6ugn,Q77,openrouter/openai/gpt-5-mini -1ugw,GAL,openrouter/openai/gpt-5-mini -2el0,SAH,openrouter/openai/gpt-5-mini -2el3,SAH,openrouter/openai/gpt-5-mini -2el1,SAH,openrouter/openai/gpt-5-mini -2ztv,NAD,openrouter/openai/gpt-5-mini -4y8v,ADP,openrouter/openai/gpt-5-mini -4y88,HPG,openrouter/openai/gpt-5-mini -7lpk,Y9P,openrouter/openai/gpt-5-mini -5lpm,71Y,openrouter/openai/gpt-5-mini diff --git a/Launch_scripts/worker.sh b/Launch_scripts/worker.sh deleted file mode 100644 index d9113bd..0000000 --- a/Launch_scripts/worker.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# worker.sh — executed once per srun task -# -# SLURM variables set per-task: -# $SLURM_NODEID — node index (0..NODES-1) -# $SLURM_LOCALID — local GPU rank on this node (0..GPUS_PER_NODE-1) -# $SLURM_NNODES — total number of nodes -# -# Inherited from submit.sh: -# $PYTHON, $WORK_DIR, $CSV_FILE, $FAILED_SYSTEMS, $GPUS_PER_NODE - -cd $WORK_DIR - -NODE_ID=$SLURM_NODEID -GPU_ID=$SLURM_LOCALID # 0-indexed within the node - -echo "[INFO] Node $NODE_ID | GPU $GPU_ID | sees CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES" - -# --- Chunk the CSV across nodes and GPUs --- -TOTAL_ROWS=$(tail -n +2 "$CSV_FILE" | wc -l) -DATA_PER_NODE=$(( TOTAL_ROWS / SLURM_NNODES )) -DATA_PER_GPU=$(( DATA_PER_NODE / GPUS_PER_NODE )) - -START_ROW=$(( NODE_ID * DATA_PER_NODE + GPU_ID * DATA_PER_GPU + 1 )) # +1: tail is 1-indexed - -echo "[INFO] Handling rows $START_ROW to $(( START_ROW + DATA_PER_GPU - 1 )) of $TOTAL_ROWS" - -tail -n +2 "$CSV_FILE" | tail -n +"$START_ROW" | head -n "$DATA_PER_GPU" \ -| while IFS=',' read -r PROTEIN LIGAND MODEL; do - - PROTEIN=$(echo "$PROTEIN" | xargs) - LIGAND=$(echo "$LIGAND" | xargs) - MODEL=$(echo "$MODEL" | xargs) - MODEL_SHORT=${MODEL##*/} - - LIG_ARG="None" - if [[ -n "$LIGAND" && "$LIGAND" != "None" && "$LIGAND" != "none" ]]; then - LIG_ARG="$LIGAND" - fi - - for RUN in 1 2 3; do - LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" - - echo "------------------------------------------------------" - echo "[INFO] Node=$NODE_ID GPU=$GPU_ID | $PROTEIN | $LIG_ARG | $MODEL_SHORT | Run $RUN/3" - echo "[INFO] Output → $LOGFILE" - echo "------------------------------------------------------" - - if ! $PYTHON -u main.py \ - --pdb_id "$PROTEIN" \ - --ligand "$LIG_ARG" \ - --model "$MODEL" \ - --temp 300 \ - --duration 0.01 \ - > "$LOGFILE" 2>&1 - then - echo "[WARN] Failed: $PROTEIN $LIG_ARG run $RUN" | tee -a "$FAILED_SYSTEMS" - fi - - echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL_SHORT)." - done -done - -echo "[INFO] Node $NODE_ID | GPU $GPU_ID | All rows complete." \ No newline at end of file diff --git a/Launch_scripts/workstation_launch.sh b/Launch_scripts/workstation_launch.sh deleted file mode 100755 index 8911ea0..0000000 --- a/Launch_scripts/workstation_launch.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -echo "[INFO] Loading environment..." -source setup.sh - -CSV_FILE="Launch/systems.csv" -CHECKPOINT=".csv_checkpoint" -FAILED_SYSTEMS="Launch/failed_systems.txt" - -if [[ ! -f "$CSV_FILE" ]]; then - echo "[ERROR] CSV file not found: $CSV_FILE" - exit 1 -fi - -echo "[INFO] Starting sequential execution..." -echo "[INFO] Each system will be run 3 times." -echo - -# Load starting line (default=2) -START_LINE=2 -[[ -s "$CHECKPOINT" ]] && START_LINE=$(<"$CHECKPOINT") - -# Iterate through CSV (skip header) -LINE_NUM=$((START_LINE - 1)) -tail -n +$START_LINE "$CSV_FILE" | while IFS=',' read -r PROTEIN LIGAND MODEL; do - ((LINE_NUM++)) - - echo "[INFO] Processing CSV line $LINE_NUM" - - # Trim leading/trailing spaces - PROTEIN=$(echo "$PROTEIN" | xargs) - LIGAND=$(echo "$LIGAND" | xargs) - MODEL=$(echo "$MODEL" | xargs) - - # Take only the last part of the model name after the last '/' - MODEL_SHORT=${MODEL##*/} - echo "Model='$MODEL'" - - # Handle missing ligand - if [[ "$LIGAND" == "" || "$LIGAND" == "None" || "$LIGAND" == "none" ]]; then - LIG_ARG="None" - else - LIG_ARG="$LIGAND" - fi - - for RUN in 1 2 3; do - - LOGFILE="agent_logs/${PROTEIN}_${LIG_ARG}_${MODEL_SHORT}_run${RUN}.log" - - echo "------------------------------------------------------" - echo "[INFO] Running: Protein=$PROTEIN | Ligand=$LIG_ARG | Model=$MODEL (Repeat $RUN/3)" - echo "[INFO] Output → $LOGFILE" - echo "------------------------------------------------------" - - # Run the Python script - if ! python main.py \ - --pdb_id "$PROTEIN" \ - --ligand "$LIG_ARG" \ - --model "$MODEL" \ - --temp 300 \ - --duration 0.01 \ - > "$LOGFILE" 2>&1 - then - echo "[WARN] DynaMate failed for $PROTEIN $LIG_ARG, run $RUN." | tee -a "$FAILED_SYSTEMS" - fi - - echo "[INFO] Finished run $RUN for $PROTEIN ($MODEL)." - - done - - # Save progress - echo $((LINE_NUM + 1)) > "$CHECKPOINT" - -done - -echo "[INFO] All runs completed!" From 61ac0889062da954c1c5422c33fa701ecb1ae00e Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Mon, 11 May 2026 16:43:48 +0200 Subject: [PATCH 07/14] remove useless imports --- src/agents/agent.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/agents/agent.py b/src/agents/agent.py index 56bb5de..a9eeeb5 100644 --- a/src/agents/agent.py +++ b/src/agents/agent.py @@ -1,5 +1,4 @@ import os -import time from pathlib import Path from typing import Dict, Any, List import json From 1f11d88f08d1ebd06069fe6ac426c4b576d55445 Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Wed, 13 May 2026 14:51:55 +0200 Subject: [PATCH 08/14] add sandbox path --- src/tools/pdb_tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/pdb_tools.py b/src/tools/pdb_tools.py index c433c7d..071574b 100644 --- a/src/tools/pdb_tools.py +++ b/src/tools/pdb_tools.py @@ -205,7 +205,7 @@ def prepare_pdb_file_ligand(sandbox_dir: str, pdb_id: str, ligand_name: str = No else: index = ligand_pdb_file.split("_")[-1].split(".")[0] # get index from filename protonated_file = f"{sandbox_dir}/{ligand_name}_{index}_h.pdb" - list_protonated_files.append(f"{ligand_name}_{index}_h.pdb") + list_protonated_files.append(f"{sandbox_dir}/{ligand_name}_{index}_h.pdb") cmd = shlex.split(f"obabel {ligand_pdb_file} -O {protonated_file} -p7") result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) From 448b7a358a682e8fccae53601741aebe0e64fb6e Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Sat, 4 Jul 2026 00:34:26 +0200 Subject: [PATCH 09/14] update tleap script --- src/scripts/run_tleap.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/scripts/run_tleap.sh b/src/scripts/run_tleap.sh index 8416710..b090866 100755 --- a/src/scripts/run_tleap.sh +++ b/src/scripts/run_tleap.sh @@ -13,6 +13,8 @@ PDB_ID=$3 # Create tleap input file cat > leap.in << EOF source leaprc.protein.ff14SB +# Load DNA parameters to support DNA residues (DA/DC/DG/DT) +source leaprc.DNA.bsc1 source leaprc.water.tip3p # Map PDB atom names to template atom names @@ -38,4 +40,4 @@ if [ $? -ne 0 ]; then echo "tleap failed to generate output files." else echo "${PDBFILE} processed. Generated ${PDB_ID}.prmtop, ${PDB_ID}.inpcrd, and ${PDB_ID}_tleap.pdb." -fi \ No newline at end of file +fi From 13c6080bb5c0d2dc4c802673b15ea83eb93d3e25 Mon Sep 17 00:00:00 2001 From: Cassandra Masschelein Date: Sat, 4 Jul 2026 00:54:54 +0200 Subject: [PATCH 10/14] remove automated pipeline inputs --- main.py | 2 +- src/agents/md_agent.py | 9 +++------ src/agents/prep_agent.py | 16 +++------------- src/constants.py | 2 +- 4 files changed, 8 insertions(+), 21 deletions(-) diff --git a/main.py b/main.py index 3548357..ebe1801 100644 --- a/main.py +++ b/main.py @@ -20,7 +20,7 @@ def _ensure_api_key(env_var: str, prompt_name: str) -> str | None: key = os.environ.get(env_var) if not key: - print(f"--- Missing API Key: {prompt_name} ---") + print(f"Missing API Key: {prompt_name}") key = input(f"Please enter your {prompt_name} API key: ").strip() if key: os.environ[env_var] = key diff --git a/src/agents/md_agent.py b/src/agents/md_agent.py index 8a35b22..82e8d6b 100644 --- a/src/agents/md_agent.py +++ b/src/agents/md_agent.py @@ -223,8 +223,7 @@ def _run_agent(self, remaining_steps: list[str]): if iteration == MAX_ITERATIONS: print(f"\n[Warning] Pipeline has reached {MAX_ITERATIONS} iterations without completing.") - # answer = input("Would you like to quit and get a summary of what went wrong? (yes/no): ").strip().lower() - answer = "yes" + answer = input("Would you like to quit and get a summary of what went wrong? (yes/no): ").strip().lower() if answer in ("yes", "y"): self.logger.info(f"User chose to quit after {iteration} iterations.") return @@ -245,8 +244,7 @@ def _run_agent(self, remaining_steps: list[str]): print(f"\nAgent: {response.content}") else: print("\nAgent: I need your input to continue.") - # user_input = input("You: ").strip() - user_input = "No input provided, please make your own decision to help the pipeline continue." + user_input = input("You: ").strip() self.messages.append({"role": "user", "content": user_input}) except Exception as e: @@ -278,8 +276,7 @@ def _run_agent(self, remaining_steps: list[str]): self.messages.append({"role": "assistant", "content": response.content}) if response.content: print(f"\nAgent: {response.content}") - # user_input = input("You (press Enter to exit): ").strip() - user_input = None + user_input = input("You (press Enter to exit): ").strip() if not user_input: self.logger.info("User exited post-pipeline conversation.") break diff --git a/src/agents/prep_agent.py b/src/agents/prep_agent.py index af82bc2..d9b57ff 100644 --- a/src/agents/prep_agent.py +++ b/src/agents/prep_agent.py @@ -70,7 +70,6 @@ def _setup_system_prompt(self) -> None: def _ask_for_system(self): """Have the LLM ask the user for the PDB ID and optional ligand, parse via LLM, then confirm.""" - # Step 1: LLM asks the user self.messages.append({ "role": "user", "content": "Ask the user what molecular system they would like to simulate (PDB ID or file upload) and whether they have a ligand to include (3-letter code).", @@ -83,7 +82,6 @@ def _ask_for_system(self): user_input = input("You: ").strip() self.messages.append({"role": "user", "content": user_input}) - # Step 2: LLM extracts PDB ID and ligand as JSON parse_messages = [ { "role": "user", @@ -108,7 +106,6 @@ def _ask_for_system(self): except (json.JSONDecodeError, AttributeError): pdb_id, ligand = None, None - # Step 3: Confirm with user confirm_parts = [f"PDB ID: {pdb_id or 'not found'}"] confirm_parts.append(f"Ligand: {ligand}" if ligand else "Ligand: none") print(f"\nAgent: I understood the following — {', '.join(confirm_parts)}. Is that correct? (yes/no)") @@ -141,8 +138,7 @@ def _get_pdb_file_path(self, prompt): self.messages.append({"role": "assistant", "content": response.content}) if response.content: print(f"\nAgent: {response.content}") - user_input = "No input provided, please make your own decision to help the pipeline continue." - # user_input = input("You: ").strip() + user_input = input("You: ").strip() if user_input: self.messages.append({"role": "user", "content": user_input}) @@ -235,10 +231,7 @@ def _calculate_duration(self): def _generate_plan(self, temperature, duration): if self.ligand_name: steps = [ - { - "step": "prepare_pdb_file_ligand", - "description": "Clean and preprocess PDB file for protein-ligand system.", - }, + {"step": "prepare_pdb_file_ligand", "description": "Clean and preprocess PDB file for protein-ligand system"}, {"step": "add_caps", "description": "Add N- and C-terminal capping groups."}, {"step": "rename_histidines", "description": "Rename HIS to HIE, HIP or HID."}, {"step": "param_ligand", "description": "Generate ligand parameters using antechamber or acpype."}, @@ -249,10 +242,7 @@ def _generate_plan(self, temperature, duration): ] else: steps = [ - { - "step": "prepare_pdb_file_ligand", - "description": "Clean and preprocess PDB file for protein-only system.", - }, + {"step": "prepare_pdb_file_ligand","description": "Clean and preprocess PDB file for protein-only system."}, {"step": "add_caps", "description": "Add N- and C-terminal capping groups."}, {"step": "rename_histidines", "description": "Rename HIS to HIE, HIP or HID."}, {"step": "run_tleap", "description": "Build system topology and solvate complex using tleap."}, diff --git a/src/constants.py b/src/constants.py index 759f994..c5421e7 100644 --- a/src/constants.py +++ b/src/constants.py @@ -5,7 +5,7 @@ SUMMARY_OUTPUT_TOKENS = 6000 MAX_CONTEXT_TOKENS = 32000 PAPER_DIR = Path(__file__).resolve().parent.parent / "my_papers" -MODEL_NAME = "openrouter/openai/gpt-4.1-2025-04-14" +MODEL_NAME = "openrouter/openai/gpt-5.5" TEMPERATURE = 0.1 SCRIPTS_DIR = Path(__file__).resolve().parent / "scripts" From aef94bb40ba0221a026360ae94ace49e55ec6f10 Mon Sep 17 00:00:00 2001 From: Bohdan Naida Date: Tue, 7 Jul 2026 13:33:00 +0200 Subject: [PATCH 11/14] fix: update docker --- docker/Dockerfile | 10 ++++++++-- docker/entrypoint.sh | 7 ++++++- src/tools/pdb_tools.py | 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 1df482e..60c0c0b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM md_software:latest +FROM bohdannaida/md_software:latest RUN apt-get update && apt-get install -y \ openbabel \ @@ -24,12 +24,18 @@ RUN conda tos accept --override-channels --channel https://repo.anaconda.com/pkg COPY environment.yml /tmp/environment.yml RUN conda env create -f /tmp/environment.yml && \ conda clean -afy +# Separate env for MM/PB(GB)SA binding affinity +COPY gmx_MMPBSA/env.yml /tmp/gmxmmpbsa.yml +RUN conda env create -f /tmp/gmxmmpbsa.yml && \ + conda clean -afy +ENV MMPBSA_ENV_DIR="/opt/conda/envs/gmxMMPBSA/bin/gmx_MMPBSA" -ARG CONDA_ENV_NAME=dynagent +ARG CONDA_ENV_NAME=dynamate ENV CONDA_DEFAULT_ENV=$CONDA_ENV_NAME ENV PATH="$CONDA_DIR/envs/$CONDA_ENV_NAME/bin:$PATH" + # Create a new user for the agent ARG AGENT_USER=beautifulagent RUN useradd -m $AGENT_USER diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 37e0dd5..2b96523 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,5 +1,10 @@ #!/bin/bash source /opt/conda/etc/profile.d/conda.sh -conda activate dynagent +conda activate dynamate source /opt/software/ambertools25/amber.sh + +# First arg is a flag (e.g. --model) -> run the agent; else exec it (e.g. /bin/bash) +if [ "${1:0:1}" = '-' ]; then + set -- python /app/main.py "$@" +fi exec "$@" \ No newline at end of file diff --git a/src/tools/pdb_tools.py b/src/tools/pdb_tools.py index 071574b..22b80ca 100644 --- a/src/tools/pdb_tools.py +++ b/src/tools/pdb_tools.py @@ -205,7 +205,8 @@ def prepare_pdb_file_ligand(sandbox_dir: str, pdb_id: str, ligand_name: str = No else: index = ligand_pdb_file.split("_")[-1].split(".")[0] # get index from filename protonated_file = f"{sandbox_dir}/{ligand_name}_{index}_h.pdb" - list_protonated_files.append(f"{sandbox_dir}/{ligand_name}_{index}_h.pdb") + + list_protonated_files.append(protonated_file) cmd = shlex.split(f"obabel {ligand_pdb_file} -O {protonated_file} -p7") result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) From 94ceb816bf6509c6a0cdc41a80d444e2e96ec734 Mon Sep 17 00:00:00 2001 From: Bohdan Naida Date: Tue, 7 Jul 2026 14:25:18 +0200 Subject: [PATCH 12/14] make MMPBSA use the environment direction defined as the env variable --- src/tools/MMPBSA.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tools/MMPBSA.py b/src/tools/MMPBSA.py index af0cd81..9287f37 100644 --- a/src/tools/MMPBSA.py +++ b/src/tools/MMPBSA.py @@ -73,9 +73,10 @@ def run_gmxMMPBSA(sandbox_dir: str, pdb_id: str, nsteps:str, nstxout_compressed: xtc_file=f"{sandbox_dir}/md_noPBC.xtc" index_file=f"{sandbox_dir}/index.ndx" topol_file=f"{sandbox_dir}/topol.top" + MMPBSA_ENV_DIR=os.environ.get("MMPBSA_ENV_DIR", str(constants.MMPBSA_ENV_DIR)) cmd = [ - constants.MMPBSA_ENV_DIR, + MMPBSA_ENV_DIR, "-O", "-i", "mmpbsa.in", "-cs", tpr_file, From 09540d1b53505fbb4f8ad9d3836e7bbb71bb7752 Mon Sep 17 00:00:00 2001 From: Bohdan Naida Date: Tue, 7 Jul 2026 15:24:24 +0200 Subject: [PATCH 13/14] fix: make the system ask for OpenAI key only if there are documents we need to embed --- src/tools/RAG_tools.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/tools/RAG_tools.py b/src/tools/RAG_tools.py index c106490..b6a1ea6 100644 --- a/src/tools/RAG_tools.py +++ b/src/tools/RAG_tools.py @@ -23,15 +23,15 @@ def _ensure_openai_key() -> None: def _load_documents() -> Docs: - _ensure_openai_key() - docs = Docs() - pdf_files = list(constants.PAPER_DIR.rglob("*.pdf")) if constants.PAPER_DIR.exists() else [] total_files = len(pdf_files) if total_files == 0: return None + _ensure_openai_key() # only needed once we actually have papers to embed + docs = Docs() + pickled_docs = "my_docs.pkl" if not os.path.exists(pickled_docs): @@ -56,7 +56,6 @@ def _load_documents() -> Docs: def search_papers(query: dict): global documents - _ensure_openai_key() if not documents: documents = _load_documents() From f0de3fe871635884e71aef4b9add9ecbe1083c23 Mon Sep 17 00:00:00 2001 From: Bohdan Naida Date: Tue, 7 Jul 2026 16:48:36 +0200 Subject: [PATCH 14/14] make docker work well on the cluster --- docker/Dockerfile | 1 + gmx_MMPBSA/env.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 60c0c0b..38568b8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -15,6 +15,7 @@ RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh - bash /tmp/miniconda.sh -b -p $CONDA_DIR && \ rm /tmp/miniconda.sh ENV PATH="$CONDA_DIR/bin:$PATH" +ENV CONDA_FETCH_THREADS=1 # Accept Conda's Terms and Conditions diff --git a/gmx_MMPBSA/env.yml b/gmx_MMPBSA/env.yml index e394468..1f9a9ef 100644 --- a/gmx_MMPBSA/env.yml +++ b/gmx_MMPBSA/env.yml @@ -6,6 +6,7 @@ dependencies: - python=3.9 - pip - ambertools<=23.3 + - mpich - mpi4py<=3.1.5 - gromacs<=2023.4 - git