Metadata-Version: 2.1
Name: acro
Version: 0.4.7
Summary: ACRO: Tools for the Automatic Checking of Research Outputs
Home-page: https://github.com/AI-SDC/ACRO
Maintainer: Jim Smith
Maintainer-email: james.smith@uwe.ac.uk
License: MIT
Project-URL: Changelog, https://github.com/AI-SDC/ACRO/CHANGELOG.md
Project-URL: Documentation, https://github.com/AI-SDC/ACRO/wiki
Project-URL: Bug Tracker, https://github.com/AI-SDC/ACRO/issues
Project-URL: Discussions, https://github.com/AI-SDC/ACRO/discussions
Keywords: data-privacy,data-protection,privacy,privacy-tools,statistical-disclosure-control,statistical-software
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: lxml
Requires-Dist: matplotlib
Requires-Dist: numpy <2.0.0
Requires-Dist: openpyxl
Requires-Dist: pandas <2.3,>=1.5.0
Requires-Dist: PyYAML
Requires-Dist: statsmodels
Provides-Extra: doc
Requires-Dist: matplotlib ==3.7.2 ; extra == 'doc'
Requires-Dist: numpy ==1.23.1 ; extra == 'doc'
Requires-Dist: numpydoc ==1.4.0 ; extra == 'doc'
Requires-Dist: pandas ==1.5.0 ; extra == 'doc'
Requires-Dist: pytest ==7.1.2 ; extra == 'doc'
Requires-Dist: PyYAML ==6.0 ; extra == 'doc'
Requires-Dist: sphinx-autopackagesummary ==1.3 ; extra == 'doc'
Requires-Dist: sphinx-gallery ==0.10.1 ; extra == 'doc'
Requires-Dist: sphinx-issues ==3.0.1 ; extra == 'doc'
Requires-Dist: sphinx-prompt ==1.5.0 ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ==1.0.0 ; extra == 'doc'
Requires-Dist: statsmodels ==0.13.2 ; extra == 'doc'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'

## ACRO: Tools for the Automatic Checking of Research Outputs

[![DOI](https://zenodo.org/badge/534172863.svg)](https://zenodo.org/badge/latestdoi/534172863)
[![PyPI package](https://img.shields.io/pypi/v/acro.svg)](https://pypi.org/project/acro)
[![Python versions](https://img.shields.io/pypi/pyversions/acro.svg)](https://pypi.org/project/acro)
[![Codacy](https://app.codacy.com/project/badge/Grade/a125e023fd7744d79cb42cd31f6ea05e)](https://app.codacy.com/gh/AI-SDC/ACRO/dashboard)
[![codecov](https://codecov.io/gh/AI-SDC/ACRO/branch/main/graph/badge.svg?token=VVHI41N05F)](https://codecov.io/gh/AI-SDC/ACRO)

This repository holds the Python ACRO package. An R wrapper package is available: [ACRO-R](https://github.com/AI-SDC/ACRO-R).

A GUI for viewing and approving outputs is also available: [SACRO-Viewer](https://github.com/AI-SDC/SACRO-Viewer)

ACRO (Automatic Checking of Research Outputs) is an open source tool for automating the [statistical disclosure control](https://en.wikipedia.org/wiki/Statistical_disclosure_control) (SDC) of research outputs. ACRO assists researchers and output checkers by distinguishing between research output that is safe to publish, output that requires further analysis, and output that cannot be published because of a substantial risk of disclosing private data.

It does this by providing a lightweight 'skin' that sits over well-known analysis tools, in a variety of languages researchers might use. This adds functionality to:

*   identify potentially disclosive outputs against a range of commonly used disclosure tests;
*   suppress outputs where required;
*   report reasons for suppression;
*   produce simple summary documents TRE staff can use to streamline their workflow.

![ACRO workflow and architecture schematic](docs/schematic.png)

### Installation

ACRO can be installed via [PyPI](https://pypi.org/project/acro/).

If installed in this way, the example [notebooks](notebooks) and the [data](data) files used therein will need to be copied from the repository.

```
$ pip install acro
```

#### Notes for Python 3.13

ACRO currently depends on numpy version 1.x.x for which no pre-compiled wheels are available within pip for Python 3.13. Therefore, in this scenario, numpy must be built from source. This requires the installation of a C++ compiler before pip installing acro.

For Windows, the [Microsoft Visual Studio C++ build tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) will likely need to be installed first.

### Examples

See the example notebooks for:

* [Python charities dataset](notebooks/test.ipynb)
* [Python nursery dataset](notebooks/test-nursery.ipynb)
* [R charities dataset](https://ai-sdc.github.io/ACRO/_static/test.nb.html)
* [R nursery dataset](https://ai-sdc.github.io/ACRO/_static/test-nursery.nb.html)

### Documentation

The github-pages contains pre-built [documentation](https://ai-sdc.github.io/ACRO/).

### Training Materials

For training videos about ACRO, see [training videos](https://drive.google.com/drive/folders/1z5zKuZdiNth0c7CLBt3vDEyhGwSIocw_).

### Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md)

### Acknowledgement

This work was funded by UK Research and Innovation under Grant Number MC_PC_23006 as part of Phase 1 of the [DARE UK](https://dareuk.org.uk) (Data and Analytics Research Environments UK) programme, delivered in partnership with Health Data Research UK (HDR UK) and Administrative Data Research UK (ADR UK). The specific project was Semi-Automatic Checking of Research Outputs (SACRO).

