Metadata-Version: 2.4
Name: signifikante
Version: 0.1.0
Summary: Scalable gene regulatory network inference using tree-based ensemble regressors with p-values
Project-URL: Homepage, https://github.com/bionetslab/SignifiKANTE
Author-email: Anne Hartebrodt <anne.hartebrodt@fau.de>, Fabian Woller <fabian.woller@fau.de>, Paul Martini <paul.martini@fau.de>, Thomas Moerman <thomas.moerman@gmail.com>
License: GNU General Public License v3 (GPLv3)
License-File: LICENSE
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: <3.14,>=3.10
Requires-Dist: dask
Requires-Dist: distributed
Requires-Dist: numba
Requires-Dist: numpy<2.0
Requires-Dist: pandas
Requires-Dist: pyarrow
Requires-Dist: pytest
Requires-Dist: scikit-learn
Requires-Dist: scikit-learn-extra
Requires-Dist: scipy
Requires-Dist: setuptools
Requires-Dist: xgboost
Description-Content-Type: text/x-rst

SignifiKANTE
************

.. _arboreto: https://arboreto.readthedocs.io

SignifiKANTE builds upon the arboreto_ software library to enable regression-based gene regulatory network inference and efficient, permutation-based empirical *P*-value computation for predicted regulatory links.

Quick install
*************

The tool is installable via pip and pixi

.. code-block:: bash

    git clone git@github.com:bionetslab/SignifiKANTE.git
    cd SignifiKANTE
    pip install -e .

To create a pixi environment, download pixi from pixi.sh, install and run 

.. code-block:: bash

    git clone git@github.com:bionetslab/SignifiKANTE.git
    cd SignifiKANTE
    pixi install

Create jupyter kernel using pixi.toml/pyproject.toml, which will install a jupyter kernel using a custom environment (including ipython)

.. code-block:: bash

    git clone git@github.com:bionetslab/SignifiKANTE.git
    cd SignifiKANTE
    pixi run -e kernel install-kernel

FDR control
***********

We provide an efficient FDR control implementation based on GRNBoost2, which computes empirical *P*-values for each edge in a given or to-be-inferred GRN. Our implementation offers both a full and a (more efficient) approximate way of *P*-value computation. An example call to our FDR control includes the following steps:

.. code-block:: python

    import pandas as pd
    from signifikante.algo import grnboost2_fdr

    # Load expression matrix - in this case simulate one.
    exp_data = np.random.randn(100, 10)
    exp_df = pd.DataFrame(data, columns=columns)

    # Run approximate FDR control.
    fdr_grn = grnboost2_fdr(
                expression_data=exp_df,
                cluster_representative_mode="random",
                num_target_clusters=5,
                num_tf_clusters=-1
            )

A more detailed description of all parameters of the :code:`grnboost2_fdr` function can be found in the respective docstring.

License
*******
This project is licensed under the GNU General Public `LICENSE <./LICENSE>`_ v3.0.
