Metadata-Version: 2.4
Name: Nucleone
Version: 1.0.1
Summary: Dyad identification from nucleosome occupancy profile
Author: Yosef Masoudi-Sobhanzadeh, Sushant Kumar
License: MIT
Project-URL: Homepage, https://nucleone.org/
Project-URL: Repository, https://nucleone.org/
Requires-Python: >=3.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib>=3.5
Dynamic: license-file

# Nucleone

Nucleone is a Python package for identifying dyad positions from nucleosome occupancy profiles. The algorithm first smooths the input nucleosome occupancy profile and then scores each genomic coordinate based on sequence features associated with nucleosome positioning that were identified in our previous study published in *Nucleic Acids Research* (DOI: 10.1093/nar/gkae623).

The dyad position is defined as the midpoint nucleotide of the 147-bp nucleosomal DNA fragment. A dyad count represents the total number of DNA fragments whose midpoint corresponds to a specific genomic coordinate.

Nucleone is compatible with Windows, macOS, and Linux operating systems and is distributed under the MIT License.

## Installation

Nucleone is available from the Python Package Index (PyPI). Install the package using:

```bash
python -m pip install Nucleone
```

### Checking Python and pip versions

Python is case-sensitive. It is also important to ensure that `pip` is associated with the same Python installation that will be used to run Nucleone.

Check the Python version using:

```bash
python --version
```

Check the `pip` version using:

```bash
pip --version
```

If these commands report different Python versions, use:

```bash
python -m pip install Nucleone
```

instead of:

```bash
pip install Nucleone
```

Using `python -m pip` ensures that `pip` is executed through the Python interpreter specified by the `python` command.

## Input

Nucleone requires three parameters. The first two parameters specify two input files in TXT format:

1. DNA sequence file — contains the DNA nucleotide sequence.
2. Dyad count file — contains the dyad count corresponding to each nucleotide in the DNA sequence.

Both input files must be provided in plain-text format.

The dyad count file must contain one dyad count for each nucleotide in the DNA sequence, with individual dyad counts separated by commas.

Examples of input files are available in the Download section of the Nucleone website:

https://nucleone.org/DS

## Output

The third parameter specifies the output file prefix. Nucleone generates two output files with the same base name but different file extensions.

The first output file contains:

* The smoothed dyad counts associated with the input nucleosome occupancy profile
* The genomic coordinates identified as potential dyad positions

The second output file is a JPG-format image showing:

* The input nucleosome occupancy profile as a blue curve
* The smoothed nucleosome occupancy profile as a green curve
* The identified dyad positions as brown dots

## Usage

After installing Nucleone, import the package and provide the paths to the input and output files:

```python
import Nucleone

SequenceFile = "The path to the input DNA sequence file"
DyadCountFile = "The path to the input dyad count file"
OutputFile = "The path to the output file"

Nucleone.Nucleone(SequenceFile, DyadCountFile, OutputFile)
```

where:

* `SequenceFile` specifies the DNA sequence file.
* `DyadCountFile` specifies the dyad count file.
* `OutputFile` specifies the output file prefix.

## Example

For example:

```python
import Nucleone

SequenceFile = "DNA.txt"
DyadCountFile = "DyadCount.txt"
OutputFile = "Nucleone_Output"

Nucleone.Nucleone(SequenceFile, DyadCountFile, OutputFile)
```

This command generates the corresponding output files using `Nucleone_Output` as the output file prefix.

## Web Server

Nucleone is also available as a web-based application. The web server provides both dyad identification and dyad position classification.

The web-based version currently supports DNA sequences with a maximum length of 1,000 nucleotides for dyad identification.

These limits are imposed to ensure that hardware resources are fairly shared among users. For larger datasets, users are recommended to install and use the standalone version of Nucleone.

Nucleone web server:

https://nucleone.org/

## Dyad Position Classifier

In addition to dyad identification, the Nucleone web server provides a dyad position classifier. The classifier takes a 201-bp nucleotide sequence as input and predicts whether its midpoint nucleotide corresponds to a dyad position.

The classifier is a separate program from the standalone Nucleone dyad identification package.

## Citation

If you use Nucleone in your research, please cite the associated study:

Masoudi-Sobhanzadeh Y, et al. *Interpretable deep residual network for nucleosome positioning prediction.* *Nucleic Acids Research*. DOI: 10.1093/nar/gkae623

## Source Code and License

The source code of Nucleone is freely available under the MIT License.

## Contact

For further information, please visit:

https://nucleone.org/
