autoclasswrapper 1.5.1
AutoClassWrapper: a Python wrapper for AutoClass C classification.
License: BSD 3-Clause License
Requires Python: >=3.4
Keywords: autoclass,clustering,proteins,genes

# AutoClassWrapper: a Python wrapper for AutoClass C classification

[![License: BSD](https://img.shields.io/badge/License-BSD-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)   [![autoclasswrapper version on PyPI](https://badge.fury.io/py/autoclasswrapper.svg)](https://pypi.python.org/pypi/autoclasswrapper)   [![Build Status](https://travis-ci.org/pierrepo/autoclasswrapper.svg?branch=master)](https://travis-ci.org/pierrepo/autoclasswrapper)
[![Documentation Status](https://readthedocs.org/projects/autoclasswrapper/badge/?version=latest)](https://autoclasswrapper.readthedocs.io/en/latest/?badge=latest)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pierrepo/autoclasswrapper/master?filepath=notebooks)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2527059.svg)](https://doi.org/10.5281/zenodo.2527059)


AutoClass is an unsupervised Bayesian classification system.

[AutoClass C](https://ti.arc.nasa.gov/tech/rse/synthesis-projects-applications/autoclass/autoclass-c/) is an implementation of the AutoClass algorithm made by the NASA.

AutoClassWrapper is a Python wrapper to ease the use of Autoclass C.


## Installation and dependencies


### AutoClass C installation 

AutoClass C can be found [here](https://ti.arc.nasa.gov/tech/rse/synthesis-projects-applications/autoclass/autoclass-c/). The installation process can be achieved with the following commands:
```
$ wget https://ti.arc.nasa.gov/m/project/autoclass/autoclass-c-3-3-6.tar.gz
$ tar zxvf autoclass-c-3-3-6.tar.gz
$ rm -f autoclass-c-3-3-6.tar.gz
$ export PATH=$PATH:$(pwd)/autoclass-c
```

Please note that is you are running a 64-bit operating system, you will also need to install the standard 32-bit libraries. For instance, on a Debian/Ubuntu-like system:
```
$ sudo apt-get install -y libc6-i386
```


### AutoClassWrapper installation 

Dependencies:

- **Python 3.6** or above
- Python libraries: NumPy, Pandas, Scipy, matplotlib, chardet

AutoClassWrapper is available through the Python Package Index ([PyPI](https://pypi.org/)):

```
$ python3 -m pip install autoclasswrapper
```


## Documentation

Documentation is available on [ReadTheDocs](https://autoclasswrapper.readthedocs.io/en/latest/)


## License

AutoClassWrapper is free software made available under the BSD 3-clause license. For more details see the [LICENSE](LICENSE.txt) file.


## Contributing

If you want to report a bug, request a feature, or propose an improvement use the [GitHub issue system](https://github.com/pierrepo/autoclasswrapper/issues/).

Please, see also the [CONTRIBUTING](CONTRIBUTING.md) file.

Note that this project is released with a [Contributor Code of
Conduct](http://contributor-covenant.org/). By participating in this project you
agree to abide by its terms. See the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) file.

**Dev**

**1.5.1**
- Create new release for paper in the Journal of Open Source Software

**1.5.0**
- Print AutoClass C Version on run
- Update jinja and urllib3 for security issues
- Rename input.merge_dataframes() to input.prepare_input_data()
- Increase documentation 


**1.4.1**
- Rename marker files to autoclass-run-success and autoclass-run-failure

**1.4.0**
- Print columns with missing values one column per line
- Embed column stats in logging output

**1.3.0**
- Redirect run ouput to log files
- Use f-strings

**1.2.0**
- Handle error while checking for autoclass version
- Fix missing margin in dendrogram picture

**1.1.0**
- Rewrite write_dendrogram() method
- Rename marker files (autoclass_run_*) in snake_case

**1.0.0**
- Jump to major release

**0.2.2**
- Remove wrap method for results
- Update list of authorized characters in column names

**0.2.1**
- Move function utilities to tools.py
- Change defaut filename to 'autoclass'

**0.2.0**
- Fix error decorator for Sphinx doc generation
- Use 'class' (instead of 'cluster') for consistency
- Move get_autoclass_version() out of Run() class
- Create file marker upon autoclass run success/failure

**0.1.14**
- update missing dependencies in setup.cfg
- improve PEP 8 and PEP 257 compliance
- add documentation (Sphinx)

**0.1.13**
- print Exception content for check_data_type()
- output class probability for every gene/protein
- simplify the calculation of cluster stats
- class/cluster numbering starts at 1 (0-based in autoclass output)
- add dendrogram of classes
- add reproducible run option (test only)
- add tests for Input() class
- add tests for Output() class
- add tests for Run() class

**0.1.12**
- update write_cluster_stats() methods with mean/std column
- output data+clusters in clust_data.tsv

**0.1.11**
- add nohup while running autoclass script

**0.1.10**
- search_autoclass_in_path() returns the PATH

**0.1.9**
- check autoclass-c executable is in PATH
- building and running script are in Run() class

**0.1.8**
- add env in Popen()

**0.1.7**
- add missing dependencies

**0.1.6**
- move distribution package to bdist_wheel

**0.1.5**
- move config options to setup.cfg

**0.1.4**
- add MANIFEST.in

**0.1.3**
- remove tests from Python package

**0.1.2**
- add Markdown support for README description

BSD 3-Clause License

Copyright (c) 2018, Pierre Poulain
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.