# 1. Create a new virtual environment in the .venv folder:
python3 -m venv .venv
# 2. Activate this environment:
source .venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Put pdb files into "data" folder (or adjust the path in run_all_knots.py)
# 5. Run with defaults (8 workers, save every 500 structures)
python run_all_knots.py
# 6. Check results in homfly_results/ folder
ls -la homfly_results/python run_all_knots.pyhomfly_results/
├── homfly_results_20260707_150530_checkpoint_100.csv
├── homfly_results_20260707_150530_checkpoint_100.xlsx
├── homfly_results_20260707_150530_checkpoint_200.csv
├── homfly_results_20260707_150530_checkpoint_200.xlsx
├── ...
├── homfly_results_20260707_150530_final.csv
└── homfly_results_20260707_150530_final.xlsx
During execution, you'll see:
Total files to process: 1900
Processed: 1/1900
Processed: 2/1900
...
Processed: 100/1900
Saved checkpoint at 100 structures
Saved CSV: homfly_results/homfly_results_20260707_150530_checkpoint_100.csv
Saved Excel: homfly_results/homfly_results_20260707_150530_checkpoint_100.xlsx
...
Final results saved! Total: 1900 structures processed
| Column | Description | Example |
|---|---|---|
| ID | File path | data_batch/pept_seq_last_refine_100_1.pdb |
| Knot_Type | Detected knot type | 4_1 |
| Probability | Max probability (filtered) | 0.85 |
| Unknot_Probability | Unknot (0_1) probability | 0.05 |
| Details | Full polynomial data (JSON) | {"4_1": 0.85, "5_1": 0.10} |
ID,Knot_Type,Probability,Unknot_Probability,Details
data/pept_seq_last_refine_100_1.pdb,4_1,0.85,0.05,"{""4_1"": 0.85, ""5_1"": 0.10}"
data/pept_seq_last_refine_100_2.pdb,3_1,0.72,0.12,"{""3_1"": 0.72, ""4_1"": 0.16}"