ronboger Claude Opus 4.5 commited on
Commit
173414b
·
1 Parent(s): 9f07ba7

fix: use N=100 for FDR (matches paper), 100 trials, partial thresholds

Browse files

- Original paper code used N=100 for get_thresh_FDR (not 5000)
- Add partial match FDR/FNR computation to SLURM scripts
- Update Apptainer base to PyTorch 2.4.0 (fixes glibc mismatch)
- Set 100 trials as default (stable estimates)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

apptainer.def CHANGED
@@ -1,5 +1,5 @@
1
  Bootstrap: docker
2
- From: pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime
3
 
4
  %labels
5
  Author Ron Boger <ronboger@berkeley.edu>
 
1
  Bootstrap: docker
2
+ From: pytorch/pytorch:2.4.0-cuda12.1-cudnn9-runtime
3
 
4
  %labels
5
  Author Ron Boger <ronboger@berkeley.edu>
scripts/compute_fdr_table.py CHANGED
@@ -94,8 +94,8 @@ def main():
94
  parser.add_argument(
95
  '--n-trials',
96
  type=int,
97
- default=10,
98
- help='Number of calibration trials (default: 10)'
99
  )
100
  parser.add_argument(
101
  '--n-calib',
 
94
  parser.add_argument(
95
  '--n-trials',
96
  type=int,
97
+ default=100,
98
+ help='Number of calibration trials (default: 100)'
99
  )
100
  parser.add_argument(
101
  '--n-calib',
scripts/compute_fnr_table.py CHANGED
@@ -97,8 +97,8 @@ def main():
97
  parser.add_argument(
98
  '--n-trials',
99
  type=int,
100
- default=10,
101
- help='Number of calibration trials (default: 10)'
102
  )
103
  parser.add_argument(
104
  '--n-calib',
 
97
  parser.add_argument(
98
  '--n-trials',
99
  type=int,
100
+ default=100,
101
+ help='Number of calibration trials (default: 100)'
102
  )
103
  parser.add_argument(
104
  '--n-calib',
scripts/slurm_compute_fdr_thresholds.sh CHANGED
@@ -5,7 +5,7 @@
5
  #SBATCH --ntasks=1
6
  #SBATCH --cpus-per-task=4
7
  #SBATCH --mem=32G
8
- #SBATCH --time=04:00:00
9
  #SBATCH --output=/groups/doudna/projects/ronb/conformal-protein-retrieval/logs/fdr_thresholds_%j.log
10
  #SBATCH --error=/groups/doudna/projects/ronb/conformal-protein-retrieval/logs/fdr_thresholds_%j.err
11
 
@@ -28,13 +28,27 @@ echo "Start time: $(date)"
28
  echo "Node: $(hostname)"
29
  echo ""
30
 
 
 
31
  python scripts/compute_fdr_table.py \
32
  --calibration data/pfam_new_proteins.npy \
33
  --output results/fdr_thresholds.csv \
34
- --n-trials 10 \
35
  --n-calib 1000 \
36
  --seed 42
37
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  echo ""
39
  echo "============================================"
40
  echo "Completed: $(date)"
 
5
  #SBATCH --ntasks=1
6
  #SBATCH --cpus-per-task=4
7
  #SBATCH --mem=32G
8
+ #SBATCH --time=24:00:00
9
  #SBATCH --output=/groups/doudna/projects/ronb/conformal-protein-retrieval/logs/fdr_thresholds_%j.log
10
  #SBATCH --error=/groups/doudna/projects/ronb/conformal-protein-retrieval/logs/fdr_thresholds_%j.err
11
 
 
28
  echo "Node: $(hostname)"
29
  echo ""
30
 
31
+ # Exact match FDR
32
+ echo "=== Computing EXACT match FDR thresholds ==="
33
  python scripts/compute_fdr_table.py \
34
  --calibration data/pfam_new_proteins.npy \
35
  --output results/fdr_thresholds.csv \
36
+ --n-trials 100 \
37
  --n-calib 1000 \
38
  --seed 42
39
 
40
+ echo ""
41
+
42
+ # Partial match FDR
43
+ echo "=== Computing PARTIAL match FDR thresholds ==="
44
+ python scripts/compute_fdr_table.py \
45
+ --calibration data/pfam_new_proteins.npy \
46
+ --output results/fdr_thresholds_partial.csv \
47
+ --n-trials 100 \
48
+ --n-calib 1000 \
49
+ --seed 42 \
50
+ --partial
51
+
52
  echo ""
53
  echo "============================================"
54
  echo "Completed: $(date)"
scripts/slurm_compute_fnr_thresholds.sh CHANGED
@@ -27,21 +27,23 @@ echo "Start time: $(date)"
27
  echo "Node: $(hostname)"
28
  echo ""
29
 
30
- # Compute exact match FNR thresholds
31
  echo "=== Computing EXACT match FNR thresholds ==="
32
  python scripts/compute_fnr_table.py \
33
  --calibration data/pfam_new_proteins.npy \
34
  --output results/fnr_thresholds.csv \
35
- --n-trials 10 \
36
  --n-calib 1000 \
37
  --seed 42
38
 
39
  echo ""
 
 
40
  echo "=== Computing PARTIAL match FNR thresholds ==="
41
  python scripts/compute_fnr_table.py \
42
  --calibration data/pfam_new_proteins.npy \
43
  --output results/fnr_thresholds_partial.csv \
44
- --n-trials 10 \
45
  --n-calib 1000 \
46
  --seed 42 \
47
  --partial
 
27
  echo "Node: $(hostname)"
28
  echo ""
29
 
30
+ # Exact match FNR
31
  echo "=== Computing EXACT match FNR thresholds ==="
32
  python scripts/compute_fnr_table.py \
33
  --calibration data/pfam_new_proteins.npy \
34
  --output results/fnr_thresholds.csv \
35
+ --n-trials 100 \
36
  --n-calib 1000 \
37
  --seed 42
38
 
39
  echo ""
40
+
41
+ # Partial match FNR
42
  echo "=== Computing PARTIAL match FNR thresholds ==="
43
  python scripts/compute_fnr_table.py \
44
  --calibration data/pfam_new_proteins.npy \
45
  --output results/fnr_thresholds_partial.csv \
46
+ --n-trials 100 \
47
  --n-calib 1000 \
48
  --seed 42 \
49
  --partial