Delete example.py
Browse files- example.py +0 -74
example.py
DELETED
|
@@ -1,74 +0,0 @@
|
|
| 1 |
-
"""
|
| 2 |
-
Simple example of using Sybil for lung cancer risk prediction
|
| 3 |
-
"""
|
| 4 |
-
|
| 5 |
-
import sys
|
| 6 |
-
import os
|
| 7 |
-
|
| 8 |
-
# Install required packages if needed
|
| 9 |
-
# !pip install torch torchvision transformers pydicom torchio sybil
|
| 10 |
-
|
| 11 |
-
# Import the model
|
| 12 |
-
from modeling_sybil_wrapper import SybilHFWrapper
|
| 13 |
-
from configuration_sybil import SybilConfig
|
| 14 |
-
|
| 15 |
-
def predict_cancer_risk(dicom_paths):
|
| 16 |
-
"""
|
| 17 |
-
Predict lung cancer risk from DICOM files.
|
| 18 |
-
|
| 19 |
-
Args:
|
| 20 |
-
dicom_paths: List of paths to DICOM files from a CT scan
|
| 21 |
-
|
| 22 |
-
Returns:
|
| 23 |
-
Risk scores for years 1-6
|
| 24 |
-
"""
|
| 25 |
-
# Load model
|
| 26 |
-
print("Loading Sybil model...")
|
| 27 |
-
config = SybilConfig()
|
| 28 |
-
model = SybilHFWrapper.from_pretrained("Lab-Rasool/sybil")
|
| 29 |
-
|
| 30 |
-
# Run prediction
|
| 31 |
-
print(f"Processing {len(dicom_paths)} DICOM files...")
|
| 32 |
-
output = model(dicom_paths=dicom_paths, return_attentions=False)
|
| 33 |
-
|
| 34 |
-
# Extract risk scores
|
| 35 |
-
risk_scores = output.risk_scores.numpy()
|
| 36 |
-
|
| 37 |
-
return risk_scores
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
def main():
|
| 41 |
-
# Example usage with demo data
|
| 42 |
-
# In practice, replace with actual DICOM file paths
|
| 43 |
-
demo_dicom_paths = [
|
| 44 |
-
"path/to/slice001.dcm",
|
| 45 |
-
"path/to/slice002.dcm",
|
| 46 |
-
# ... more slices
|
| 47 |
-
]
|
| 48 |
-
|
| 49 |
-
# For testing, you can download demo data:
|
| 50 |
-
# Download from: https://github.com/reginabarzilaygroup/Sybil
|
| 51 |
-
|
| 52 |
-
print("=" * 50)
|
| 53 |
-
print("Sybil Lung Cancer Risk Prediction")
|
| 54 |
-
print("=" * 50)
|
| 55 |
-
|
| 56 |
-
# Uncomment when you have actual DICOM files:
|
| 57 |
-
# risk_scores = predict_cancer_risk(demo_dicom_paths)
|
| 58 |
-
|
| 59 |
-
# Print results
|
| 60 |
-
# print("\nLung Cancer Risk Predictions:")
|
| 61 |
-
# print("-" * 30)
|
| 62 |
-
# for year, score in enumerate(risk_scores, 1):
|
| 63 |
-
# risk_pct = score * 100
|
| 64 |
-
# print(f"Year {year}: {risk_pct:.2f}% risk")
|
| 65 |
-
|
| 66 |
-
print("\nNote: This example requires actual DICOM files.")
|
| 67 |
-
print("Please provide paths to LDCT scan DICOM files.")
|
| 68 |
-
print("\nFor more information:")
|
| 69 |
-
print("- Original paper: https://doi.org/10.1200/JCO.22.01345")
|
| 70 |
-
print("- GitHub: https://github.com/reginabarzilaygroup/Sybil")
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
if __name__ == "__main__":
|
| 74 |
-
main()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|