From a43cb923edf55024c674efeb4c9da8c1024fc024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1t=C3=A9=20Balajti?= <51365402+balajtimate@users.noreply.github.com> Date: Wed, 20 Nov 2024 16:01:40 +0100 Subject: [PATCH] docs: update RtD guides (#172) * docs: update RtD page * docs: add installation guide * docs: add usage and examples pages * docs: update guides * docs: update README * docs: update guides * fix README badges * docs: update README, guides * update version * update rtd config * update versioning * remove docker image and build * update readme * update versioning * update guides * update usage guide with tables * update Results model description * docs: update index, restructure API docs * update style --- .dockerignore | 8 --- .github/workflows/ci.yml | 35 ----------- .readthedocs.yaml | 2 +- Dockerfile | 48 --------------- README.md | 115 ++++++++++++---------------------- docs/_static/custom.css | 4 ++ docs/api/index.rst | 24 -------- docs/{api => }/conf.py | 14 +++-- docs/guides/examples.rst | 96 +++++++++++++++++++++++++++++ docs/guides/installation.rst | 66 ++++++++++++++++++++ docs/guides/usage.rst | 116 +++++++++++++++++++++++++++++++++++ docs/index.rst | 32 ++++++++++ docs/indices_and_tables.rst | 8 +++ htsinfer/__init__.py | 2 - htsinfer/cli.py | 6 +- htsinfer/models.py | 10 +-- htsinfer/version.py | 3 + setup.py | 4 +- 18 files changed, 385 insertions(+), 208 deletions(-) delete mode 100644 .dockerignore delete mode 100644 Dockerfile create mode 100644 docs/_static/custom.css delete mode 100644 docs/api/index.rst rename docs/{api => }/conf.py (90%) create mode 100644 docs/guides/examples.rst create mode 100644 docs/guides/installation.rst create mode 100644 docs/guides/usage.rst create mode 100644 docs/index.rst create mode 100644 docs/indices_and_tables.rst create mode 100644 htsinfer/version.py diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 2de06c86..00000000 --- a/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -* -!data/ -!htsinfer/ -!tests/ -!setup.py -!environment.yml -!LICENSE -!README.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3993e32a..1fd8e310 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -126,38 +126,3 @@ jobs: - name: integration test - paired-ended library run: htsinfer --cleanup-regime=KEEP_NONE --verbosity=DEBUG tests/files/adapter_{1,2}.fastq - publish: - name: build and publish app image - runs-on: ubuntu-latest - if: | - github.event_name == 'push' && - github.ref == format('refs/heads/{0}', github.event.repository.default_branch) - - steps: - - - name: check out repository - uses: actions/checkout@v3 - - - name: generate tag - run: | - echo "TAG=$(date '+%Y%m%d')" >> $GITHUB_ENV - - - name: build and publish image - id: docker - uses: philips-software/docker-ci-scripts@v5.1.0 - with: - dockerfile: . - image-name: "htsinfer" - tags: "latest ${{ env.TAG }}" - push-branches: "${{ github.event.repository.default_branch }}" - env: - REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_LOGIN }} - REGISTRY_TOKEN: "${{ secrets.DOCKERHUB_TOKEN }}" - DOCKER_ORGANIZATION: ${{ secrets.DOCKERHUB_ORG }} - GITHUB_ORGANIZATION: ${{ github.repository_owner }} - - - name: Verify that image was pushed - run: | - echo "Push indicator: ${{ steps.docker.outputs.push-indicator }}" - echo "# Set to 'true' if image was pushed, empty string otherwise" - test "${{ steps.docker.outputs.push-indicator }}" == "true" diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 0922ec04..bbfa0038 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,7 +8,7 @@ build: tools: python: "mambaforge-4.10" sphinx: - configuration: docs/api/conf.py + configuration: docs/conf.py formats: - pdf - epub diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 9329b4f3..00000000 --- a/Dockerfile +++ /dev/null @@ -1,48 +0,0 @@ -###### BASE IMAGE ###### -FROM continuumio/miniconda3:4.12.0 - -####### METADATA ####### -LABEL base_image="continuumio/miniconda3:4.12.0" -LABEL version="1.0" -LABEL software="HTSinfer" -LABEL software.version="v0.9.0" -LABEL about.summary="HTSinfer infers metadata from Illumina high-throughput sequencing (HTS) data" -LABEL about.home="https://github.com/zavolanlab/htsinfer" -LABEL about.documentation="https://htsinfer.readthedocs.io/" -LABEL about.license_file="https://spdx.org/licenses/Apache-2.0" -LABEL about.license="Apache License 2.0" -LABEL about.tags="Transcriptomics" - -###### MAINTAINER ###### -LABEL maintainer="Alexander Kanitz " -LABEL maintainer.organisation="Biozentrum, University of Basel" -LABEL maintainer.location="Spitalstrasse 41, CH-4056 Basel, Switzerland" -LABEL maintainer.lab="Zavolan Lab" - -##### INSTALLATION ##### - -# COPY THE YAML & INSTALL SOFTWARE WITH CONDA -WORKDIR /usr/src/app -COPY ./ ./ -RUN conda env create --file environment.yml \ - && conda clean --all - -# VARIABLES -ARG WORKDIR="/home/USER" -ARG USER="USER" -ARG GROUP="GROUP" -ENV PATH="${WORKDIR}:${PATH}" - -# CREATE USER -RUN groupadd -r ${GROUP} && useradd --no-log-init -r -g ${GROUP} ${USER} - -# SET ENVIRONMENT -WORKDIR ${WORKDIR} -RUN chown -R ${USER}:${GROUP} ${WORKDIR} && chmod 700 ${WORKDIR} -USER ${USER} -RUN echo "source activate htsinfer" > ~/.bashrc -ENV PATH /opt/conda/envs/htsinfer/bin:$PATH - -# SET ENTRYPOINT -ENTRYPOINT ["htsinfer"] -CMD ["-h"] diff --git a/README.md b/README.md index 391892b5..0e0a71b7 100644 --- a/README.md +++ b/README.md @@ -3,21 +3,41 @@ [![license][badge-license]][badge-url-license] [![docs][badge-docs]][badge-url-docs] [![release_gh][badge-release-gh]][badge-url-release-gh] -[![release_docker][badge-release-docker]][badge-url-release-docker] [![ci][badge-ci]][badge-url-ci] [![coverage][badge-coverage]][badge-url-coverage] +[![release_biocontainer][badge-release-biocontainer]][badge-url-release-biocontainer] +[![DOI:zenodo][badge-doi-zenodo]][badge-url-doi-zenodo] -HTSinfer infers metadata from Illumina high-throughput sequencing (HTS) data. +HTSinfer infers RNA-Seq metadata from Illumina high-throughput sequencing (HTS) data. -## Examples +## Quick start -**Single-ended library*** +For a more in-depth guide please refer to the [HTSinfer documentation][docs-documentation]. + +### Installation + +HTSinfer is available on [Bioconda][bioconda-release]. To install it in your currently active [Conda][conda] environment, run: + +```sh +conda install bioconda::htsinfer +``` + +### General usage + +```sh +htsinfer [-h] [--verbosity {DEBUG,INFO,WARN,ERROR,CRITICAL}] [--version] + PATH [PATH] +``` + +### Examples + +**Single-ended library** ```sh htsinfer tests/files/adapter_single.fastq ``` -**Paired-ended library*** +**Paired-ended library** ```sh htsinfer tests/files/adapter_1.fastq tests/files/adapter_2.fastq @@ -85,73 +105,13 @@ example library: } ``` -To better understand the output, please refer to the [`Results` -model][docs-api-results] in the [API documentation][badge-url-docs]. Note that -`Results` model has several nested child models, such as enumerators of -possible outcomes. Simply follow the references in each parent model for -detailed descriptions of each child model's attributes. - -## General usage - -```sh -htsinfer [--output-directory PATH] - [--temporary-directory PATH] - [--cleanup-regime {DEFAULT,KEEP_ALL,KEEP_NONE,KEEP_RESULTS}] - [--records INT] - [--threads INT] - [--transcripts FASTA] - [--read-layout-adapters PATH] - [--read-layout-min-match-percentage FLOAT] - [--read-layout-min-frequency-ratio FLOAT] - [--library-source-min-match-percentage FLOAT] - [--library-source-min-frequency-ratio FLOAT] - [--library-type-max-distance INT] - [--library-type-mates-cutoff FLOAT] - [--read-orientation-min-mapped-reads INT] - [--read-orientation-min-fraction FLOAT] - [--tax-id INT] - [--verbosity {DEBUG,INFO,WARN,ERROR,CRITICAL}] - [-h] [--version] - PATH [PATH] -``` - -## Installation - -In order to use the HTSinfer, clone the repository and install the -dependencies via [Conda][conda]: - -```sh -git clone https://github.com/zavolanlab/htsinfer -cd htsinfer -conda env create --file environment.yml -# Alternatively, to install with development dependencies, -# run the following instead -conda env create --file environment-dev.yml -``` - -> Note that creating the environment takes non-trivial time and it is strongly -> recommended that you install [Mamba][mamba] and replace `conda` with `mamba` -> in the previous command. - -Then, activate the `htsinfer` Conda environment with: - -```sh -conda activate htsinfer -``` - -If you have installed the development/testing dependencies, you may first want -to verify that HTSinfer was installed correctly by executing the tests shipped -with the package: - -```sh -python -m pytest -``` - -Otherwise just go ahead and try one of the [examples](#Examples). +To better understand the output, please refer to the [`Results`][docs-results] +section in the [documentation][badge-url-docs]. -## API documentation +## Versioning -Auto-built API documentation is hosted on [ReadTheDocs][badge-url-docs]. +The project follows the [Semantic Versioning][semver] guidelines for version management. +Currently, the service is in its beta phase, meaning API breaking changes or updates may occur without prior notice. ## Contributing @@ -169,20 +129,25 @@ by email: (c) 2020 [Zavolan lab, Biozentrum, University of Basel][contact] -[badge-ci]: +[badge-ci]: [badge-coverage]: [badge-docs]: [badge-license]: -[badge-release-docker]: +[badge-release-biocontainer]: [badge-release-gh]: -[badge-url-ci]: +[badge-doi-zenodo]: +[badge-url-ci]: [badge-url-coverage]: [badge-url-docs]: [badge-url-license]: -[badge-url-release-docker]: +[badge-url-release-biocontainer]: [badge-url-release-gh]: +[badge-url-doi-zenodo]: [conda]: +[bioconda-release]: +[semver]: [contact]: -[docs-api-results]: +[docs-documentation]: +[docs-results]: [issue-tracker]: [mamba]: diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..e73a1dd0 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,4 @@ +/* Increase font size for toctree elements */ +.toctree-l1 { + font-size: 18px; /* Adjust the size as needed */ +} diff --git a/docs/api/index.rst b/docs/api/index.rst deleted file mode 100644 index 42e2e565..00000000 --- a/docs/api/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. Documentation master file, created by - sphinx-quickstart on Thu Jun 4 16:04:23 2020. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -HTSinfer API docs -================= - -.. toctree:: - :caption: Modules - - modules/modules - -.. toctree:: - :caption: Index - - indices - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` - diff --git a/docs/api/conf.py b/docs/conf.py similarity index 90% rename from docs/api/conf.py rename to docs/conf.py index eacbee59..fc96dc7f 100644 --- a/docs/api/conf.py +++ b/docs/conf.py @@ -1,4 +1,4 @@ -from htsinfer import __version__ +from htsinfer.version import __version__ # Configuration file for the Sphinx documentation builder. # @@ -17,7 +17,7 @@ from sphinx.ext import apidoc -sys.path.insert(0, os.path.abspath('../..')) +sys.path.insert(0, os.path.abspath('../htsinfer')) # -- Project information ----------------------------------------------------- @@ -38,6 +38,7 @@ extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', + 'sphinx.ext.autosectionlabel' ] # Add any paths that contain templates here, relative to this directory. @@ -46,7 +47,9 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'api/yourpackage.rst'] +exclude_patterns = [ + 'setup.py' +] # Default doc to search for master_doc = 'index' @@ -61,7 +64,7 @@ # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] +html_static_path = ['_static'] # -- Automation ------------------------------------------------------------- @@ -74,10 +77,11 @@ def run_apidoc(_): "--force", "--module-first", "-o", "./modules", - "../../htsinfer" + "../htsinfer" ] + ignore_paths apidoc.main(argv) def setup(app): app.connect('builder-inited', run_apidoc) + app.add_css_file('custom.css') diff --git a/docs/guides/examples.rst b/docs/guides/examples.rst new file mode 100644 index 00000000..0718b3ba --- /dev/null +++ b/docs/guides/examples.rst @@ -0,0 +1,96 @@ +Examples +======== + +`HTSinfer` provides easy-to-use commands for analyzing single- and paired-ended RNA-Seq libraries. + + +Single-ended library example +---------------------------- + +To run `HTSinfer` on a single-ended RNA-Seq library, use the following command: + +.. code-block:: bash + + htsinfer tests/files/adapter_single.fastq + +Paired-ended library example +---------------------------- + +To run `HTSinfer` on a paired-ended RNA-Seq library, use the following command: + +.. code-block:: bash + + htsinfer tests/files/adapter_1.fastq tests/files/adapter_2.fastq + +Both commands will output the results in JSON format to :code:`STDOUT` and the log to :code:`STDERR`. + +Example output +-------------- + +Here is a sample output for the paired-ended library: + +.. code-block:: json + + { + "library_stats": { + "file_1": { + "read_length": { + "min": 75, + "max": 75, + "mean": 75.0, + "median": 75, + "mode": 75 + } + }, + "file_2": { + "read_length": { + "min": 75, + "max": 75, + "mean": 75.0, + "median": 75, + "mode": 75 + } + } + }, + "library_source": { + "file_1": { + "short_name": "hsapiens", + "taxon_id": "9606" + }, + "file_2": { + "short_name": "hsapiens", + "taxon_id": "9606" + } + }, + "library_type": { + "file_1": "first_mate", + "file_2": "second_mate", + "relationship": "split_mates" + }, + "read_orientation": { + "file_1": "SF", + "file_2": "SR", + "relationship": "ISF" + }, + "read_layout": { + "file_1": { + "adapt_3": "AATGATACGGCGACC", + "polyA_frac": 10.0 + }, + "file_2": { + "adapt_3": "AATGATACGGCGACC", + "polyA_frac": 10.0 + } + } + } + +Results +------- + +- :code:`library_stats`: Read length statistics results, including the minimum, maximum, mean, median and mode. +- :code:`library_source`: Library source inference results, with the short name and NCBI taxonomy ID of the source organism. +- :code:`library_type`: Library type inference results, single- or paired-end. In case of paired-end samples, the mate designation. +- :code:`read_orientation`: Read orientation inference results, based on the fragment library types notation from `Salmon `_. +- :code:`read_layout`: Read layout inference results, including the 3'-adapter sequence and the poly(A) fraction. + +For more details on the output structure, refer to the :code:`Results` model in the API documentation. \ No newline at end of file diff --git a/docs/guides/installation.rst b/docs/guides/installation.rst new file mode 100644 index 00000000..eb440713 --- /dev/null +++ b/docs/guides/installation.rst @@ -0,0 +1,66 @@ +Installation +============ + +This section describes how to install `HTSinfer`, either from :ref:`Bioconda` (recommended for most users) or :ref:`GitHub` (for experienced users and developers). + +Both installation methods require the popular package and environment manager `Conda `_ to be available on your system. + +.. note:: + + For improved performance, we recommend using Conda's drop-in replacement `Mamba `_ instead. + In that case, simply replace :code:`conda` with :code:`mamba` in all of the commands below. + +Install from Bioconda +--------------------- + +The easiest and quickest installation method is to install the latest `HTSinfer` release from `Bioconda `_. + +To install `HTSinfer` in your currently active environment, run: + +.. code-block:: bash + + conda install bioconda::htsinfer + +.. note:: + + We do not recommend installing HTSinfer into the default (:code:`base`) environment. + Instead, activate a project- or tool-specific environment with :code:`conda activate MY_CONDA_PROJECT`. + If you do not have such an environment, just create one with :code:`conda create --name MY_CONDA_PROJECT`. + :code:`MY_CONDA_PROJECT` can be any name you like (with some constraints imposed by Conda), e.g., :code:`htsinfer`. + +Install from GitHub +------------------- + +If you wish to use the latest unreleased version of the tool or if you would like to contribute to its further development, +please install `HTSinfer` from `GitHub `_. + +First clone the repository: + +.. code-block:: bash + + git clone https://github.com/zavolanlab/htsinfer.git + cd htsinfer + +Then, install `HTSinfer` and its dependencies via `Conda `_: + +.. code-block:: bash + + conda env create --file environment.yml + +Alternatively, to include `HTSinfer`'s optional development dependencies, run the following instead: + +.. code-block:: bash + + conda env create --file environment-dev.yml + +After the installation is complete, activate the :code:`htsinfer` Conda environment with: + +.. code-block:: bash + + conda activate htsinfer + +If you have installed the development dependencies, you can verify that `HTSinfer` was installed correctly by executing the tests shipped with the package: + +.. code-block:: bash + + python -m pytest diff --git a/docs/guides/usage.rst b/docs/guides/usage.rst new file mode 100644 index 00000000..0f3669a7 --- /dev/null +++ b/docs/guides/usage.rst @@ -0,0 +1,116 @@ +Usage +===== + +This section describes the general usage of `HTSinfer`. + +General usage +------------- + +.. code-block:: bash + + htsinfer [--output-directory PATH] + [--temporary-directory PATH] + [--cleanup-regime {DEFAULT,KEEP_ALL,KEEP_NONE,KEEP_RESULTS}] + [--records INT] + [--threads INT] + [--transcripts FASTA] + [--read-layout-adapters PATH] + [--read-layout-min-match-percentage FLOAT] + [--read-layout-min-frequency-ratio FLOAT] + [--library-source-min-match-percentage FLOAT] + [--library-source-min-frequency-ratio FLOAT] + [--library-type-max-distance INT] + [--library-type-mates-cutoff FLOAT] + [--read-orientation-min-mapped-reads INT] + [--read-orientation-min-fraction FLOAT] + [--tax-id INT] + [--verbosity {DEBUG,INFO,WARN,ERROR,CRITICAL}] + [-h] [--version] + PATH [PATH] + +The above command allows the user to infer metadata for single- or paired-ended RNA-Seq libraries by specifying file paths and relevant parameters. The tool outputs metadata in JSON format to :code:`STDOUT` and logs to :code:`STDERR`. + +Command-line options +--------------------- + +Available command-line parameters are categorized as follows: + +**General options** + +.. list-table:: + :widths: 30 70 + + * - :code:`--output-directory` + - Path where output data will be saved. + * - :code:`--temporary-directory` + - Path for storing temporary files generated during execution. + * - :code:`--cleanup-regime` + - Specifies which data should be kept after completion. Options are: :code:`DEFAULT, KEEP_ALL, KEEP_NONE, KEEP_RESULTS` + * - :code:`--verbosity` + - Controls the verbosity level of log output. Options are: :code:`DEBUG, INFO, WARN, ERROR, CRITICAL` + * - :code:`-h, --help` + - Show help screen and exit. + * - :code:`-v, --version` + - Show version information and exit. + + +**Processing and performance options** + +.. list-table:: + :widths: 30 70 + + * - :code:`--records` + - Limits the number of input records to process; setting this to 0 will process all records. + * - :code:`--threads` + - Specifies the number of threads for STAR to optimize performance. + * - :code:`--tax-id` + - Taxonomy ID for the sample source, aiding in organism-specific analyses. + + +**Library-specific options** + +.. list-table:: + :widths: 30 70 + + * - :code:`PATH [PATH]` + - | + | Path(s) to the RNA-Seq input data. + | For paired-end libraries, provide paths to both mate files. + * - :code:`--transcripts` + - Path to the FASTA file containing transcript sequences for reference. + * - :code:`--read-layout-adapters` + - | + | Path to a file with 3' adapter sequences (one sequence per line) + | used to identify adapter content. + * - :code:`--read-layout-min-match-percentage` + - | + | Minimum percentage of reads containing an adapter + | for it to be considered as the library’s 3’-end adapter. + * - :code:`--read-layout-min-frequency-ratio` + - | + | Minimum frequency ratio between the most and second most + | frequent adapters to select the 3’-end adapter. + * - :code:`--library-source-min-match-percentage` + - | + | Minimum percentage of reads aligning with a library source + | for it to be considered representative of the library. + * - :code:`--library-source-min-frequency-ratio` + - | + | Minimum frequency ratio between primary and secondary library sources, + | ensuring only the most prominent source is identified. + * - :code:`--library-type-max-distance` + - | + | Maximum allowable distance between read pairs + | to classify the library type. + * - :code:`--library-type-mates-cutoff` + - | + | Ratio cutoff to determine the consistency + | of mate orientation in paired-end reads. + * - :code:`--read-orientation-min-mapped-reads` + - | + | Minimum number of mapped reads to ensure + | reliable inference of read orientation. + * - :code:`--read-orientation-min-fraction` + - | + | Minimum fraction (must exceed 0.5) of reads + | supporting a given orientation to confirm its accuracy. diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..404304e1 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,32 @@ +.. Documentation master file, created by + sphinx-quickstart on Thu Jun 4 16:04:23 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to the HTSinfer documentation pages! +============================================ + +`HTSinfer` is a command-line tool that infers RNA-Seq metadata from Illumina high-throughput sequencing (HTS) data. + +This documentation will guide you through installation and usage. It also contains an API reference. + +.. toctree:: + :hidden: + + Home + +.. toctree:: + :caption: Documentation + :maxdepth: 1 + + guides/installation + guides/usage + guides/examples + +.. toctree:: + :caption: API overview + :maxdepth: 1 + + modules/modules + indices_and_tables + diff --git a/docs/indices_and_tables.rst b/docs/indices_and_tables.rst new file mode 100644 index 00000000..63d1b81d --- /dev/null +++ b/docs/indices_and_tables.rst @@ -0,0 +1,8 @@ +Indices and tables +------------------ + +.. toctree:: + :maxdepth: 1 + + genindex + modindex \ No newline at end of file diff --git a/htsinfer/__init__.py b/htsinfer/__init__.py index 12ac9814..de38280e 100644 --- a/htsinfer/__init__.py +++ b/htsinfer/__init__.py @@ -1,5 +1,3 @@ """HTSinfer project root""" from htsinfer.htsinfer import HtsInfer # noqa:F401 - -__version__ = "0.11.0" diff --git a/htsinfer/cli.py b/htsinfer/cli.py index 68506000..b0723f96 100644 --- a/htsinfer/cli.py +++ b/htsinfer/cli.py @@ -10,10 +10,8 @@ import sys import tempfile -from htsinfer import ( - HtsInfer, - __version__, -) +from htsinfer import HtsInfer +from htsinfer.version import __version__ from htsinfer.models import ( CleanupRegimes, LogLevels, diff --git a/htsinfer/models.py b/htsinfer/models.py index 872e4135..8485974d 100644 --- a/htsinfer/models.py +++ b/htsinfer/models.py @@ -328,14 +328,16 @@ class Results(BaseModel): functionalities. Args: + library_stats: Read length statistics results. library_type: Library type inference results. library_source: Library source inference results. - orientation: Read orientation inference results. + read_orientation: Read orientation inference results. read_layout: Read layout inference results. - Args: - type: Library type inference results. - source: Library source inference results. + Attributes: + library_stats: Read length statistics results. + library_type: Library type inference results. + library_source: Library source inference results. read_orientation: Read orientation inference results. read_layout: Read layout inference results. """ diff --git a/htsinfer/version.py b/htsinfer/version.py new file mode 100644 index 00000000..257c5c63 --- /dev/null +++ b/htsinfer/version.py @@ -0,0 +1,3 @@ +"""Single source of truth for package version.""" + +__version__ = "1.0.0-rc.1" diff --git a/setup.py b/setup.py index ed2144a3..b8b915a4 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,8 @@ """HTSinfer package definition""" -from setuptools import setup, find_packages +from setuptools import (setup, find_packages) -from htsinfer import __version__ +from htsinfer.version import __version__ # Read long description from file with open("README.md", "r", encoding="utf-8") as fh: