epipred2 / test_model.py
mercelv's picture
app
292ca6d verified
Raw
History Blame Contribute Delete
2.54 kB
#!/usr/bin/env python3
"""
Test script to verify the epitope prediction model is working correctly
"""
import sys
import os
import logging
# Add the current directory to path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from model_predictor import EpitopePredictor
# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def test_model():
"""Test the epitope prediction model"""
logger.info("Starting model test...")
try:
# Initialize predictor
logger.info("Initializing EpitopePredictor...")
predictor = EpitopePredictor()
logger.info("Model loaded successfully!")
# Get model info
model_info = predictor.get_model_info()
logger.info(f"Model info: {model_info}")
# Test sequences
test_sequences = {
"Test_Sequence_1": "MKLLILTCLVAVALARPKHPIKHQGLPQEVLNENLLRFFVAPFPEVFGKEKVNEL",
"Test_Sequence_2": "GIVEQCCTSICSLYQLENYCN", # Insulin A chain
"Test_Sequence_3": "FVNQHLCGSHLVEALYLVCGERGFFYTPKT" # Insulin B chain
}
for seq_name, sequence in test_sequences.items():
logger.info(f"\nTesting sequence: {seq_name} (length: {len(sequence)})")
logger.info(f"Sequence: {sequence}")
try:
# Predict epitopes
b_cell_epitopes, t_cell_epitopes = predictor.predict_epitopes(sequence)
logger.info(f"Results for {seq_name}:")
logger.info(f" B-cell epitopes: {len(b_cell_epitopes)}")
for i, (epitope, confidence, pos_range) in enumerate(b_cell_epitopes[:3]):
logger.info(f" {i+1}. {epitope} (confidence: {confidence:.3f}, position: {pos_range})")
logger.info(f" T-cell epitopes: {len(t_cell_epitopes)}")
for i, (epitope, confidence, pos_range) in enumerate(t_cell_epitopes[:3]):
logger.info(f" {i+1}. {epitope} (confidence: {confidence:.3f}, position: {pos_range})")
except Exception as e:
logger.error(f"Error predicting epitopes for {seq_name}: {e}")
logger.info("\nModel test completed successfully!")
return True
except Exception as e:
logger.error(f"Model test failed: {e}")
return False
if __name__ == "__main__":
success = test_model()
sys.exit(0 if success else 1)