PolyMon: A Unified Framework for Polymer Property Prediction
Organizations: Department of Chemistry, Imperial College London
Abstract
Accurate prediction of polymer properties is essential for materials design, but remains challenging due to data scarcity, diverse polymer representations, and the lack of systematic evaluation across modelling choices. Here, we present PolyMon, a unified and accessible framework that integrates multiple polymer representations, machine learning methods, and training strategies within a single, accessible platform. PolyMon supports various descriptors and graph construction strategies for polymer representations, and includes a wide range of models, from tabular models to graph neural networks, along with flexible training strategies including multi-fidelity learning, Δ-learning, active learning, and ensemble learning. Using five key polymer properties as benchmarks, we perform systematic evaluations to assess how representations and models affect predictive performance. These case studies further illustrate how different training strategies can be applied within a consistent workflow to leverage limited data and incorporate physical model derived information. Overall, PolyMon provides a comprehensive and extensible foundation for benchmarking and advancing machine learning-based polymer property prediction. The code is available at github.com/fate1997/polymon.
Figures & tables
| Dataset | Description | Unit | # data points | Source |
|---|---|---|---|---|
| Glass transition temperature | ∘ C | 7,367 | [ 38 ] | |
| FFV | Fractional free volume | 1 | 7,030 | [ 41 ] |
| TC | Thermal conductivity | 1,070 | [ 26 ] | |
| MD-calculated density | 1,077 | [ 26 ] | ||
| Radius of gyration | Å | 1,328 | [ 26 , 41 ] | |
| Experimentally measured density | 117 | [ 2 ] |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Argument | Type | Description |
|---|---|---|
| --raw-csv | str | Path to the raw CSV file. The CSV file should contain the SMILES column |
| --sources | str (multiple) | Sources to use for training (only when the input CSV file contains the Source column.) |
| --tag | str | Tag to use for training. |
| --labels | str (multiple) | Labels to be predict. The available choice is from the CSV columns. |
| --feature-names | str (multiple) | Feature names to use for training. Available features can be found in Table 2 . |
| --n-trials | int | Number of trials for hyperparameter optimisation. |
| Descriptor Name | Description |
|---|---|
| xenonpy_atom | XenonPy atom features |
| cgcnn | CGCNN atom features |
| source | Source labels as features |
| z | Atomic numbers as integers |
| edge | Default edge features ( bond ) |
| bond | Chemical bond features |
| Model Type | Model Name | Description |
| GNNs | gatv2 | Graph Attention Network v2 |
| attentivefp | AttentiveFP | |
| dimenetpp | DimeNet++ | |
| gatv2vn | GATv2 with virtual node | |
| gin | Graph Isomorphism Network | |
| pna | Principal Neighbourhood Aggregation |
| Hyperparameter | Description | Search Space |
|---|---|---|
| n_estimators | Number of estimators | 1000 |
| learning_rate | Boosting learning rate | -uniform |
| max_depth | Maximum tree depth | Integer |
| subsample | Row subsampling ratio | Uniform |
| colsample_bytree | Feature subsampling ratio | Uniform |
| min_child_weight | Minimum child weight | Integer |
| Hyperparameter | Description | Search Space |
|---|---|---|
| n_estimators | Number of trees | Integer |
| max_depth | Maximum tree depth | Integer |
| min_samples_split | Minimum samples required to split a node | Integer |
| min_samples_leaf | Minimum samples required at a leaf | Integer |
| Hyperparameter | Description | Search Space |
|---|---|---|
| n_estimators | Number of estimators | Integer |
| learning_rate | Boosting learning rate | |
| max_depth | Maximum tree depth | 10, 20, 100 |
| num_leaves | Number of leaves | Integer |
| reg_alpha | L1 regularization strength | -uniform |
| reg_lambda | L2 regularization strength | -uniform |
| Hyperparameter | Description | Search Space |
|---|---|---|
| learning_rate | Learning rate | Discrete grid: with step |
| depth | Tree depth | Integer |
| l2_leaf_reg | L2 regularization strength | Discrete grid: with step |
| min_child_samples | Minimum samples per leaf | |
| grow_policy | Tree growing policy | Depthwise |
| iterations | Number of iterations for training | 10000 |
| Hyperparameter | Description | Search Space |
|---|---|---|
| n_estimators | Number of ensemble estimators | Integer |
| softmax_temperature | Softmax temperature | |
| average_before_softmax | Logit averaging strategy | {True, False} |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of hidden layers in the FastKAN network | Integer: |
| grid_min | Minimum value of the spline grid range | Integer” |
| grid_max | Maximum value of the spline grid range | Integer: |
| num_grids | Number of spline interpolation grids | Discrete grid: with step |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of hidden layers in the FastKAN network | Integer: |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of hidden layers in the FastKAN network | Integer: |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | |
| num_layers | Number of graph attention layers | Integer |
| num_heads | Number of attention heads | |
| pred_hidden_dim | Hidden dimension of the prediction head | Distance grid: with step |
| pred_dropout | Dropout rate in the prediction head | |
| pred_layers | Number of layers in the prediction head |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of GIN layers | |
| pred_hidden_dim | Hidden dimension of the prediction (readout) head | Discrete grid: with step |
| pred_dropout | Dropout rate applied to the prediction head | |
| pred_layers | Number of layers in the prediction head | |
| n_mlp_layers | Number of MLP layers per GIN block |
| Hyperparameter | Description | Search Space |
|---|---|---|
| in_channels | Dimension of input node feature vectors | Distance grid: with step |
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of GCN layers | |
| dropout | Dropout rate applied to node features |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| towers | Number of aggregation towers | |
| num_layers | Number of PNA layers | Integer |
| pred_hidden_dim | Hidden dimension of the prediction (readout) head | Discrete grid: with step |
| pred_dropout | Dropout rate applied to the prediction head | |
| pred_layers | Number of layers in the prediction head |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of interaction layers | Integer |
| num_spherical | Number of spherical basis functions | Integer |
| num_radial | Number of radial basis functions | |
| cutoff | Distance cutoff for message passing | |
| int_emb_size | Dimension of interaction embedding layers | Discrete grid: with step |
| Hyperparameter | Description | Search Space |
|---|---|---|
| in_channels | Dimension of input node feature vectors | Discrete grid: with step |
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of message-passing layers | |
| num_timesteps | Number of iterative attention refinement steps |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Distance grid: with step |
| num_layers | Number of graph attention layers | Integer |
| num_heads | Number of attention heads | |
| pred_hidden_dim | Hidden dimension of the prediction head | Distance grid: with step |
| pred_dropout | Dropout rate in the prediction head | |
| pred_layers | Number of layers in the prediction head |
| Hyperparameter | Description | Search Space |
|---|---|---|
| hidden_dim | Hidden feature dimension | Discrete grid: with step |
| num_layers | Number of stacked GPS layers | Discrete grid: with step |
| pe_dim | Dimension of positional encodings | |
| heads | Number of attention heads in the transformer component | |
| attn_type | Type of attention mechanism used in GPS | { performer , multihead } |
| attention_dropout | Dropout probability used inside the attention module |
| Model | Descriptor | FFV | TC | |||
|---|---|---|---|---|---|---|
| CatBoost | ECFP4 | |||||
| MACCS | ||||||
| Mordred | ||||||
| Oligomer-ECFP4 | ||||||
| Oligomer-Mordred | ||||||
| Oligomer-RDKit2D |
| Model | FFV | TC | |||
|---|---|---|---|---|---|
| GATv2 | |||||
| gatv2_chain_readout | |||||
| gatv2_pe | |||||
| DMPNN |