aparent2 / README.md
ZhiyuanChen's picture
Upload folder using huggingface_hub
c0bbebc verified
---
language: dna
tags:
- Biology
- DNA
license: agpl-3.0
library_name: multimolecule
---
# APARENT2
Deep residual neural network for predicting human 3' UTR Alternative Polyadenylation (APA) and cleavage magnitude at base-pair resolution, and for deciphering the impact of genetic variants on polyadenylation.
## Disclaimer
This is an UNOFFICIAL implementation of [Deciphering the impact of genetic variation on human polyadenylation using APARENT2](https://doi.org/10.1186/s13059-022-02799-4) by Johannes Linder, Samantha E. Koplik et al.
The OFFICIAL repository of APARENT2 is at [johli/aparent-resnet](https://github.com/johli/aparent-resnet).
> [!TIP]
> The MultiMolecule team has confirmed that the provided model and checkpoints are producing the same intermediate representations as the original implementation.
**The team releasing APARENT2 did not write this model card for this model so this model card has been written by the MultiMolecule team.**
## Model Details
APARENT2 is a residual convolutional neural network (a ResNet successor to the original [APARENT](https://github.com/johli/aparent)) trained on a 3' UTR massively parallel reporter assay (MPRA). Given a fixed 205bp polyadenylation signal (PAS) sequence, it predicts a base-pair-resolution cleavage probability distribution as well as the overall isoform abundance. It is primarily used to score the effect of genetic variants on polyadenylation by comparing the predictions for a reference and an alternate sequence.
The network is fully convolutional: an input projection, seven groups of four pre-activation residual blocks (batch-norm → ReLU → dilated convolution, twice, with a skip connection), per-group skip convolutions that are summed, a final cleavage projection, and a position-wise locally-connected training-sub-library bias layer. There is no flatten or dense layer anywhere in the architecture.
- The core hexamer (e.g. `AATAAA`) is expected to start at position 70 (0-indexed) of the 205bp window.
- The model output is a `206`-dimensional cleavage distribution: one score per input position plus a trailing "no cleavage in window" bucket.
- Variant effect scoring is an input-schema concern: score the reference and alternate sequences separately and compare their cleavage / isoform predictions. There is no separate ref/alt output dataclass.
### Model Specification
| Num Layers | Hidden Size | Num Parameters (M) | FLOPs (G) | MACs (G) | Max Num Tokens |
| ---------- | ----------- | ------------------ | --------- | -------- | -------------- |
| 28 | 32 | 0.19 | 0.08 | 0.04 | 205 |
### Links
- **Code**: [multimolecule.aparent2](https://github.com/DLS5-Omics/multimolecule/tree/master/multimolecule/models/aparent2)
- **Weights**: [multimolecule/aparent2](https://huggingface.co/multimolecule/aparent2)
- **Paper**: [Deciphering the impact of genetic variation on human polyadenylation using APARENT2](https://doi.org/10.1186/s13059-022-02799-4)
- **Developed by**: Johannes Linder, Samantha E. Koplik, Anshul Kundaje, Georg Seelig
- **Original Repository**: [johli/aparent-resnet](https://github.com/johli/aparent-resnet)
## Usage
The model file depends on the [`multimolecule`](https://multimolecule.danling.org) library. You can install it using pip:
```bash
pip install multimolecule
```
### Direct Use
#### Polyadenylation Cleavage Prediction
You can use this model directly to predict the cleavage distribution of a 205bp polyadenylation signal sequence (core hexamer starting at position 70):
```python
>>> import torch
>>> from multimolecule import DnaTokenizer, Aparent2Model
>>> tokenizer = DnaTokenizer.from_pretrained("multimolecule/aparent2")
>>> model = Aparent2Model.from_pretrained("multimolecule/aparent2")
>>> sequence = "A" * 70 + "AATAAA" + "A" * 129
>>> output = model(**tokenizer(sequence, return_tensors="pt"))
>>> output.logits.shape
torch.Size([1, 206])
```
#### Variant Effect Scoring
Score a reference and an alternate sequence separately, then compare:
```python
>>> import torch
>>> ref = "A" * 70 + "AATAAA" + "A" * 129
>>> alt = "A" * 70 + "AATACA" + "A" * 129
>>> ref_prob = torch.softmax(model(**tokenizer(ref, return_tensors="pt")).logits, dim=-1)
>>> alt_prob = torch.softmax(model(**tokenizer(alt, return_tensors="pt")).logits, dim=-1)
>>> ref_iso = ref_prob[:, 77:127].sum(dim=-1)
>>> alt_iso = alt_prob[:, 77:127].sum(dim=-1)
>>> delta_logodds = torch.log(alt_iso / (1 - alt_iso)) - torch.log(ref_iso / (1 - ref_iso))
```
## Training Details
APARENT2 was trained to predict base-pair-resolution cleavage and isoform abundance from 3' UTR MPRA measurements.
### Training Data
The model was trained on the 3' UTR MPRA library used by the original APARENT, re-processed with additional improvements (exact cleavage positions for the Alien1 Random sublibrary and a 20 nt random barcode upstream of the USE in the Alien1 sublibrary). The measured variant data and processed data repository are available at the original [APARENT GitHub](https://github.com/johli/aparent).
### Training Procedure
The model minimizes a combination of a sigmoid KL-divergence isoform loss and a KL-divergence cleavage loss, weighted equally. The released inference checkpoint corresponds to the residual-network model trained for 5 epochs on all sublibraries (excluding ClinVar wild-type sequences), with dropout disabled for inference.
## Citation
```bibtex
@article{linder2022deciphering,
author = {Linder, Johannes and Koplik, Samantha E. and Kundaje, Anshul and Seelig, Georg},
title = {Deciphering the impact of genetic variation on human polyadenylation using APARENT2},
journal = {Genome Biology},
volume = {23},
number = {1},
pages = {232},
year = {2022},
doi = {10.1186/s13059-022-02799-4},
publisher = {Springer Science and Business Media LLC}
}
```
> [!NOTE]
> The artifacts distributed in this repository are part of the MultiMolecule project.
> If you use MultiMolecule in your research, you must cite the MultiMolecule project as follows:
```bibtex
@software{chen_2024_12638419,
author = {Chen, Zhiyuan and Zhu, Sophia Y.},
title = {MultiMolecule},
doi = {10.5281/zenodo.12638419},
publisher = {Zenodo},
url = {https://doi.org/10.5281/zenodo.12638419},
year = 2024,
month = may,
day = 4
}
```
## Known Limitations
- The model expects a fixed 205bp input window with the core hexamer starting at position 70 (0-indexed); it does not handle variable-length sequences.
- The training-sub-library bias is fixed to the index used by the upstream variant-effect workflow.
## Contact
Please use GitHub issues of [MultiMolecule](https://github.com/DLS5-Omics/multimolecule/issues) for any questions or comments on the model card.
Please contact the authors of the [APARENT2 paper](https://doi.org/10.1186/s13059-022-02799-4) for questions or comments on the paper/model.
## License
This model implementation is licensed under the [GNU Affero General Public License](license.md).
For additional terms and clarifications, please refer to our [License FAQ](license-faq.md).
```spdx
SPDX-License-Identifier: AGPL-3.0-or-later
```