gitextract_455isr46/ ├── .github/ │ ├── CODEOWNERS │ ├── CODE_OF_CONDUCT.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── code-check.yml │ ├── doc.yml │ ├── release.yml │ ├── test.yml │ └── test_ipu.yml ├── .gitignore ├── LICENSE ├── README.md ├── cleanup_files.sh ├── codecov.yml ├── docs/ │ ├── _assets/ │ │ ├── css/ │ │ │ ├── custom-graphium.css │ │ │ └── custom.css │ │ └── js/ │ │ └── google-analytics.js │ ├── api/ │ │ ├── graphium.config.md │ │ ├── graphium.data.md │ │ ├── graphium.features.md │ │ ├── graphium.finetuning.md │ │ ├── graphium.ipu.md │ │ ├── graphium.nn/ │ │ │ ├── architectures.md │ │ │ ├── encoders.md │ │ │ ├── graphium.nn.md │ │ │ └── pyg_layers.md │ │ ├── graphium.trainer.md │ │ └── graphium.utils.md │ ├── baseline.md │ ├── cli/ │ │ ├── graphium-train.md │ │ ├── graphium.md │ │ └── reference.md │ ├── contribute.md │ ├── datasets.md │ ├── design.md │ ├── index.md │ ├── license.md │ ├── pretrained_models.md │ └── tutorials/ │ ├── feature_processing/ │ │ ├── add_new_positional_encoding.ipynb │ │ ├── choosing_parallelization.ipynb │ │ ├── csv_to_parquet.ipynb │ │ └── timing_parallel.ipynb │ ├── gnn/ │ │ ├── add_new_gnn_layers.ipynb │ │ ├── making_gnn_networks.ipynb │ │ └── using_gnn_layers.ipynb │ └── model_training/ │ └── simple-molecular-model.ipynb ├── enable_ipu.sh ├── env.yml ├── expts/ │ ├── __init__.py │ ├── configs/ │ │ ├── config_gps_10M_pcqm4m.yaml │ │ ├── config_gps_10M_pcqm4m_mod.yaml │ │ ├── config_mpnn_10M_b3lyp.yaml │ │ └── config_mpnn_pcqm4m.yaml │ ├── data/ │ │ ├── micro_zinc_splits.csv │ │ └── tiny_zinc_splits.csv │ ├── dataset_benchmark.py │ ├── debug_yaml.py │ ├── hydra-configs/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── accelerator/ │ │ │ ├── cpu.yaml │ │ │ ├── gpu.yaml │ │ │ ├── ipu.yaml │ │ │ └── ipu_pipeline.yaml │ │ ├── architecture/ │ │ │ ├── largemix.yaml │ │ │ ├── pcqm4m.yaml │ │ │ └── toymix.yaml │ │ ├── experiment/ │ │ │ └── toymix_mpnn.yaml │ │ ├── finetuning/ │ │ │ ├── admet.yaml │ │ │ └── admet_baseline.yaml │ │ ├── hparam_search/ │ │ │ └── optuna.yaml │ │ ├── main.yaml │ │ ├── model/ │ │ │ ├── gated_gcn.yaml │ │ │ ├── gcn.yaml │ │ │ ├── gin.yaml │ │ │ ├── gine.yaml │ │ │ ├── gpspp.yaml │ │ │ └── mpnn.yaml │ │ ├── tasks/ │ │ │ ├── admet.yaml │ │ │ ├── l1000_mcf7.yaml │ │ │ ├── l1000_vcap.yaml │ │ │ ├── largemix.yaml │ │ │ ├── loss_metrics_datamodule/ │ │ │ │ ├── admet.yaml │ │ │ │ ├── l1000_mcf7.yaml │ │ │ │ ├── l1000_vcap.yaml │ │ │ │ ├── largemix.yaml │ │ │ │ ├── pcba_1328.yaml │ │ │ │ ├── pcqm4m.yaml │ │ │ │ ├── pcqm4m_g25.yaml │ │ │ │ ├── pcqm4m_n4.yaml │ │ │ │ └── toymix.yaml │ │ │ ├── pcba_1328.yaml │ │ │ ├── pcqm4m.yaml │ │ │ ├── pcqm4m_g25.yaml │ │ │ ├── pcqm4m_n4.yaml │ │ │ ├── task_heads/ │ │ │ │ ├── admet.yaml │ │ │ │ ├── l1000_mcf7.yaml │ │ │ │ ├── l1000_vcap.yaml │ │ │ │ ├── largemix.yaml │ │ │ │ ├── pcba_1328.yaml │ │ │ │ ├── pcqm4m.yaml │ │ │ │ ├── pcqm4m_g25.yaml │ │ │ │ ├── pcqm4m_n4.yaml │ │ │ │ └── toymix.yaml │ │ │ └── toymix.yaml │ │ └── training/ │ │ ├── accelerator/ │ │ │ ├── largemix_cpu.yaml │ │ │ ├── largemix_gpu.yaml │ │ │ ├── largemix_ipu.yaml │ │ │ ├── pcqm4m_ipu.yaml │ │ │ ├── toymix_cpu.yaml │ │ │ ├── toymix_gpu.yaml │ │ │ └── toymix_ipu.yaml │ │ ├── largemix.yaml │ │ ├── model/ │ │ │ ├── largemix_gated_gcn.yaml │ │ │ ├── largemix_gcn.yaml │ │ │ ├── largemix_gin.yaml │ │ │ ├── largemix_gine.yaml │ │ │ ├── largemix_mpnn.yaml │ │ │ ├── pcqm4m_gpspp.yaml │ │ │ ├── pcqm4m_mpnn.yaml │ │ │ ├── toymix_gcn.yaml │ │ │ └── toymix_gin.yaml │ │ ├── pcqm4m.yaml │ │ └── toymix.yaml │ ├── main_run_get_fingerprints.py │ ├── main_run_multitask.py │ ├── main_run_predict.py │ ├── main_run_test.py │ ├── neurips2023_configs/ │ │ ├── base_config/ │ │ │ ├── large.yaml │ │ │ ├── large_pcba.yaml │ │ │ ├── large_pcqm_g25.yaml │ │ │ ├── large_pcqm_n4.yaml │ │ │ └── small.yaml │ │ ├── baseline/ │ │ │ ├── config_small_gcn_baseline.yaml │ │ │ ├── config_small_gin_baseline.yaml │ │ │ └── config_small_gine_baseline.yaml │ │ ├── config_classifigression_l1000.yaml │ │ ├── config_large_gcn.yaml │ │ ├── config_large_gcn_g25.yaml │ │ ├── config_large_gcn_gpu.yaml │ │ ├── config_large_gcn_n4.yaml │ │ ├── config_large_gcn_pcba.yaml │ │ ├── config_large_gin.yaml │ │ ├── config_large_gin_g25.yaml │ │ ├── config_large_gin_n4.yaml │ │ ├── config_large_gin_pcba.yaml │ │ ├── config_large_gine.yaml │ │ ├── config_large_gine_g25.yaml │ │ ├── config_large_gine_n4.yaml │ │ ├── config_large_gine_pcba.yaml │ │ ├── config_large_mpnn.yaml │ │ ├── config_luis_jama.yaml │ │ ├── config_small_gated_gcn.yaml │ │ ├── config_small_gcn.yaml │ │ ├── config_small_gcn_gpu.yaml │ │ ├── config_small_gin.yaml │ │ ├── config_small_gine.yaml │ │ ├── config_small_mpnn.yaml │ │ ├── single_task_gcn/ │ │ │ ├── config_large_gcn_mcf7.yaml │ │ │ ├── config_large_gcn_pcba.yaml │ │ │ └── config_large_gcn_vcap.yaml │ │ ├── single_task_gin/ │ │ │ ├── config_large_gin_g25.yaml │ │ │ ├── config_large_gin_mcf7.yaml │ │ │ ├── config_large_gin_n4.yaml │ │ │ ├── config_large_gin_pcba.yaml │ │ │ ├── config_large_gin_pcq.yaml │ │ │ └── config_large_gin_vcap.yaml │ │ └── single_task_gine/ │ │ ├── config_large_gine_g25.yaml │ │ ├── config_large_gine_mcf7.yaml │ │ ├── config_large_gine_n4.yaml │ │ ├── config_large_gine_pcba.yaml │ │ ├── config_large_gine_pcq.yaml │ │ └── config_large_gine_vcap.yaml │ └── run_validation_test.py ├── graphium/ │ ├── __init__.py │ ├── _version.py │ ├── cli/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── data.py │ │ ├── finetune_utils.py │ │ ├── fingerprints.py │ │ ├── main.py │ │ ├── parameters.py │ │ └── train_finetune_test.py │ ├── config/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── _load.py │ │ ├── _loader.py │ │ ├── config_convert.py │ │ ├── dummy_finetuning_from_gnn.yaml │ │ ├── dummy_finetuning_from_task_head.yaml │ │ ├── fake_and_missing_multilevel_multitask_pyg.yaml │ │ ├── fake_multilevel_multitask_pyg.yaml │ │ └── zinc_default_multitask_pyg.yaml │ ├── data/ │ │ ├── L1000/ │ │ │ └── datasets_goli-L1000_parse_gctx_to_csv.ipynb │ │ ├── QM9/ │ │ │ ├── micro_qm9.csv │ │ │ ├── micro_qm9.parquet │ │ │ └── norm_micro_qm9.csv │ │ ├── README.md │ │ ├── __init__.py │ │ ├── collate.py │ │ ├── datamodule.py │ │ ├── dataset.py │ │ ├── make_data_splits/ │ │ │ ├── make_train_val_test_splits_large.ipynb │ │ │ └── make_train_val_test_splits_small.ipynb │ │ ├── micro_ZINC/ │ │ │ ├── __init__.py │ │ │ └── micro_ZINC.csv │ │ ├── multilevel_utils.py │ │ ├── multitask/ │ │ │ ├── __init__.py │ │ │ ├── tiny_ZINC_SA.csv │ │ │ ├── tiny_ZINC_logp.csv │ │ │ └── tiny_ZINC_score.csv │ │ ├── normalization.py │ │ ├── sampler.py │ │ ├── sdf2csv.py │ │ ├── single_atom_dataset/ │ │ │ └── single_atom_dataset.csv │ │ ├── smiles_transform.py │ │ └── utils.py │ ├── expts/ │ │ └── pyg_batching_sparse.ipynb │ ├── features/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── commute.py │ │ ├── electrostatic.py │ │ ├── featurizer.py │ │ ├── graphormer.py │ │ ├── nmp.py │ │ ├── periodic_table.csv │ │ ├── positional_encoding.py │ │ ├── properties.py │ │ ├── rw.py │ │ ├── spectral.py │ │ └── transfer_pos_level.py │ ├── finetuning/ │ │ ├── __init__.py │ │ ├── finetuning.py │ │ ├── finetuning_architecture.py │ │ ├── fingerprinting.py │ │ └── utils.py │ ├── hyper_param_search/ │ │ ├── __init__.py │ │ └── results.py │ ├── ipu/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── ipu_dataloader.py │ │ ├── ipu_losses.py │ │ ├── ipu_metrics.py │ │ ├── ipu_simple_lightning.py │ │ ├── ipu_utils.py │ │ ├── ipu_wrapper.py │ │ └── to_dense_batch.py │ ├── nn/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── architectures/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── encoder_manager.py │ │ │ ├── global_architectures.py │ │ │ └── pyg_architectures.py │ │ ├── base_graph_layer.py │ │ ├── base_layers.py │ │ ├── encoders/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── base_encoder.py │ │ │ ├── bessel_pos_encoder.py │ │ │ ├── gaussian_kernel_pos_encoder.py │ │ │ ├── laplace_pos_encoder.py │ │ │ ├── mlp_encoder.py │ │ │ └── signnet_pos_encoder.py │ │ ├── ensemble_layers.py │ │ ├── pyg_layers/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── dimenet_pyg.py │ │ │ ├── gated_gcn_pyg.py │ │ │ ├── gcn_pyg.py │ │ │ ├── gin_pyg.py │ │ │ ├── gps_pyg.py │ │ │ ├── mpnn_pyg.py │ │ │ ├── pna_pyg.py │ │ │ ├── pooling_pyg.py │ │ │ └── utils.py │ │ ├── residual_connections.py │ │ └── utils.py │ ├── trainer/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── losses.py │ │ ├── metrics.py │ │ ├── predictor.py │ │ ├── predictor_options.py │ │ └── predictor_summaries.py │ └── utils/ │ ├── README.md │ ├── __init__.py │ ├── arg_checker.py │ ├── command_line_utils.py │ ├── custom_lr.py │ ├── decorators.py │ ├── fs.py │ ├── hashing.py │ ├── moving_average_tracker.py │ ├── mup.py │ ├── packing.py │ ├── safe_run.py │ ├── spaces.py │ └── tensor.py ├── install_ipu.sh ├── mkdocs.yml ├── notebooks/ │ ├── compare-pretraining-finetuning-performance.ipynb │ ├── dev-datamodule-invalidate-cache.ipynb │ ├── dev-datamodule-ogb.ipynb │ ├── dev-datamodule.ipynb │ ├── dev-pretrained.ipynb │ ├── dev-training-loop.ipynb │ ├── dev.ipynb │ ├── finetuning-on-tdc-admet-benchmark.ipynb │ ├── running-fingerprints-from-pretrained-model.ipynb │ └── running-model-from-config.ipynb ├── profiling/ │ ├── configs_profiling.yaml │ ├── profile_mol_to_graph.py │ ├── profile_one_of_k_encoding.py │ └── profile_predictor.py ├── pyproject.toml ├── scripts/ │ ├── balance_params_and_train.sh │ ├── convert_yml.py │ ├── ipu_start.sh │ ├── ipu_venv.sh │ └── scale_mpnn.sh └── tests/ ├── .gitignore ├── __init__.py ├── config_test_ipu_dataloader.yaml ├── config_test_ipu_dataloader_multitask.yaml ├── conftest.py ├── converted_fake_multilevel_data.parquet ├── data/ │ ├── config_micro_ZINC.yaml │ ├── micro_ZINC.csv │ ├── micro_ZINC_corrupt.csv │ ├── micro_ZINC_shard_1.csv │ ├── micro_ZINC_shard_1.parquet │ ├── micro_ZINC_shard_2.csv │ ├── micro_ZINC_shard_2.parquet │ └── pcqm4mv2-2k.csv ├── fake_and_missing_multilevel_data.parquet ├── test_architectures.py ├── test_attention.py ├── test_base_layers.py ├── test_collate.py ├── test_data_utils.py ├── test_datamodule.py ├── test_dataset.py ├── test_ensemble_layers.py ├── test_featurizer.py ├── test_finetuning.py ├── test_ipu_dataloader.py ├── test_ipu_losses.py ├── test_ipu_metrics.py ├── test_ipu_options.py ├── test_ipu_poptorch.py ├── test_ipu_to_dense_batch.py ├── test_loaders.py ├── test_losses.py ├── test_metrics.py ├── test_mtl_architecture.py ├── test_multitask_datamodule.py ├── test_mup.py ├── test_packing.py ├── test_pe_nodepair.py ├── test_pe_rw.py ├── test_pe_spectral.py ├── test_pos_transfer_funcs.py ├── test_positional_encoders.py ├── test_positional_encodings.py ├── test_predictor.py ├── test_pyg_layers.py ├── test_residual_connections.py ├── test_training.py └── test_utils.py