Spaces:
Runtime error
Runtime error
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.
|
| 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=
|
| 98 |
-
help='Number of calibration trials (default:
|
| 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=
|
| 101 |
-
help='Number of calibration trials (default:
|
| 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=
|
| 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
|
| 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 |
-
#
|
| 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
|
| 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
|
| 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
|