Q-CHIPP (Quantum Convolutional HLA Immunogenic Peptide Prediction) is a combinatorial framework integrating MHC binding and T-cell recognition to more accurately identify immunogenic peptides, improving the prognostic impact of predicted neoantigen load.
Please cite the following article if you use Q-CHIPP:
Quantum Convolutional HLA Immunogenic Peptide Prediction (Q-CHIPP): Next-Generation Neoantigen Prediction with Quantum Neural Networks
Ryan Peters, Kahn Rhrissorrakrai, Prerana Bangalore Parthasarathy, Vadim Ratner, Tanvi P. Gujarati, Meltem Tolunay, Jie Shi, Jeffrey K. Weber, Timothy A. Chan, Laxmi Parida, Sara Capponi, Filippo Utro, Tyler J. Alban.
doi: https://doi.org/10.1101/2025.07.29.667313
- Python 3.12
- Qiskit 2.x
- See
requirements.txtfor complete list of dependencies
git clone https://github.com/IBM/Q-CHIPP.git
cd Q-CHIPP/It is recommended to create a Python virtual environment:
python3.12 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activatepip install --upgrade pip
pip install -r requirements.txtTo run experiments with default configuration:
python qcnn_all.py --config-name=defaults_qcnn.yaml- Create a new YAML configuration file in the
configs/directory - Specify all relevant parameters (see Parameter Descriptions below)
- Run with your custom config:
python qcnn_all.py --config-name=your_config.yamlQ-CHIPP uses Hydra for configuration management. Key parameters include:
train_data_file: Path to training data CSVtest_data_file: Path to test data CSVencoding_method: Data encoding method (e.g., 'binary', 'ordinal')
feature_map: Type of feature map ('ZFeatureMap', 'ZZFeatureMap', 'qrac_21', 'qrac_31', 'basis')ansatz: Ansatz type for variational circuitprimitive: Qiskit primitive to use ('estimator' or 'sampler')backend: Backend for execution ('statevector', 'aer_simulator', or IBM backend)
optimizer: Optimization algorithm ('COBYLA', 'SPSA', 'L_BFGS_B')max_iter: Maximum iterations for optimizershots: Number of measurement shots (for hardware/simulator)seed: Random seed for reproducibility
dir_output: Output directory for resultsfile_output: Output filename for results
See configs/defaults_qcnn.yaml for a complete example with all available parameters.
The notebooks/ directory contains Jupyter notebooks for:
- Data preparation and preprocessing
- Reading and analyzing experiment outputs
- Creating summary dataframes of results
- Programmatically generating YAML configurations
Import Errors: Ensure you're using Python 3.12 and have activated the virtual environment.
Memory Issues: For large datasets, consider reducing batch size or using a machine with more RAM.
Backend Connection Issues: For IBM Quantum backends, ensure your credentials are properly configured.
Results are saved to the experiments/ directory (or custom output directory specified in config) including:
- Model weights (
.npyfiles) - Objective function values
- Classification results (
.pklfiles)
See LICENSE file for details.
For issues, questions, or contributions, please refer to the citation paper or contact the authors.