Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump version to 2.0.0_beta.4 and update numpy and influx-si dependencies #19

Open
wants to merge 37 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
0ad6f2e
Bump version to 2.0.0_beta.4 and update numpy and influx-si dependencies
Jan 21, 2025
1a568b1
Update authors in pyproject.toml and correction dependency constraint…
Jan 21, 2025
b71b06b
Update version retrieval to use PyPI instead of TestPyPI
Jan 21, 2025
b6f7b0f
Remove isodesign.ipynb from the repo
Jan 21, 2025
4ddc938
Fix author list formatting in pyproject.toml
Jan 21, 2025
2cc948b
Refactor output folder handling in Process class and UI components
Jan 21, 2025
e35c0d0
Add file type restriction for session file uploader
Jan 23, 2025
f9e4c09
Update documentation build configuration and author list
Jan 31, 2025
1d05b1a
update doc (index)
pierremillard Jan 31, 2025
c02c1fe
update doc (index)
pierremillard Jan 31, 2025
29d0889
update doc (installation)
pierremillard Jan 31, 2025
cc733f5
update doc (installation)
pierremillard Jan 31, 2025
be06ebb
update doc (installation)
pierremillard Jan 31, 2025
651483d
update doc (quickstart)
pierremillard Jan 31, 2025
8ad494a
update doc (quickstart)
pierremillard Jan 31, 2025
4b46687
update doc (installation)
pierremillard Jan 31, 2025
53281b8
update doc (quickstart)
pierremillard Jan 31, 2025
0e101ca
update doc (installation)
pierremillard Jan 31, 2025
b61d365
update doc (index)
pierremillard Jan 31, 2025
2508b73
update doc (index)
pierremillard Jan 31, 2025
d7bfbd9
update doc (index)
pierremillard Jan 31, 2025
daf3c3b
update doc (index)
pierremillard Jan 31, 2025
fe94601
made modifications to docs
llegregam Jan 31, 2025
ab5542c
update doc (index)
pierremillard Jan 31, 2025
1b4f7f3
update doc (index)
pierremillard Jan 31, 2025
5b6ae26
update doc (index)
pierremillard Jan 31, 2025
04345e6
update doc (index)
pierremillard Jan 31, 2025
28fbccd
update doc (index)
pierremillard Jan 31, 2025
8d2f1c5
update doc (index)
pierremillard Jan 31, 2025
9d6616f
Merged PMI changes with LLE
llegregam Jan 31, 2025
d02859a
Merge remote-tracking branch 'origin/Dev' into Dev
llegregam Jan 31, 2025
c4c3a3d
Merged PMI changes with LLE
llegregam Jan 31, 2025
c4d565f
update doc (index)
pierremillard Jan 31, 2025
e29af53
update doc (index)
pierremillard Jan 31, 2025
a1af0e5
update docs
llegregam Jan 31, 2025
124152e
refactor subprocess handling in influx simulation method
Jan 31, 2025
9bcbb72
refactor simulation execution and subprocess handling
Jan 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
./README.md
__pycache__
isodesign/test_data/acetate_LLE/tmp
.ipynb_checkpoints
.ipynb_checkpoints
/docs/_build/
721 changes: 0 additions & 721 deletions Isodesign.ipynb

This file was deleted.

4 changes: 2 additions & 2 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
SOURCEDIR = .
BUILDDIR = _build

# Put it first so that "make" without argument is like "make help".
help:
Expand Down
7 changes: 3 additions & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------
Expand All @@ -17,13 +16,13 @@

project = 'IsoDesign'
copyright = '2024, INRAE'
author = 'Rochelle Kouakou, Loïc Le Grégam'
author = 'Rochelle Kouakou, Loïc Le Gregam, Serguei Sokol, Pierre Millard'

# The full version, including alpha/beta/rc tags
release = __version__

# -- General configuration ---------------------------------------------------

# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
Expand Down
62 changes: 40 additions & 22 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,38 +1,56 @@
.. IsoDesign documentation master file, created by
sphinx-quickstart on Mon Nov 18 10:19:08 2024.
sphinx-quickstart on Fri Jan 31 09:51:42 2025.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.


Welcome to IsoDesign documentation !
=======================
====================================

IsoDesign is a scientific tool designed to optimize the choice of the optimal
isotopic composition of labeled substrates in 13C fluxomic labeling experiments.
IsoDesign is a scientific tool designed to identify the optimal
isotopic composition of labeled substrates in :sup:`13`\ C-fluxomics
experiments.

Simulated labeling is calculated using the `influx_si software <https://influx-si.readthedocs.io/en/latest/index.html>`_ , distributed with IsoDesign.
**Key features:**

**IsoDesign includes the following features:**

* user can **define lower and upper bounds** and **define the desired number of intervals** for each isotopic form to be included,
* **substrate pricing can be entered**, which will be incorporated into the rating criteria,
* **simulation of all possible combinations** of isotopic forms in a single run,
* ability to **simulate stationary or instationary labeling**,
* **multiple scoring criteria** are available and can be applied simultaneously to assess simulation results,
* the results of the scoring criteria are displayed using a table for detailed values and a bar plot for visual representation,
* shipped as a **library** with a **graphical** interface,
* **open-source, free and easy to install** everywhere where Python 3 and pip run,
* users can **define all isotopic forms to consider for each substrate**,
* account for the **substrate price** to keep the cost of the experiment
reasonable,
* design of both (isotopic) **stationary and non-stationary** :sup:`13`\ C-fluxomics experiments
* **diverse scoring criteria** to finely analyse flux resolution at reaction-, pathway- and
network-levels to identify the optimal label input
according to the biological question,
* **scoring criteria can be combined** to find the optimal balance
between different objectives (e.g., the highest flux resolution at a
minimal cost),
* **visual representation** of the design results to support the
decision-making process,
* increased computational performance through **parallel computing**,
* shipped as a **library** with a **graphical user interface**,
* **open-source, free and easy to install** everywhere where Python and R
run,
* **biologist-friendly**.

It is one of the routine tools that we use at the
`Mathematics cell of TBI <https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/cellule-mathematiques/>`_
and `MetaToul platform <https://mth-metatoul.com/>`_.
It is one of the routine tools that we use at the `MetaToul platform
<https://mth-metatoul.com/>`_ and `MetaSys team <http://www
.toulouse-biotechnology-institute
.fr/en/research/molecular-physiology-and-metabolism/metasys.html>`_ of the
`Toulouse Biotechnology Institute <http://www
.toulouse-biotechnology-institute.fr/en/>`_.
IsoDesign has been developed in collaboration with the `Math cell of TBI
<https://www.toulouse-biotechnology-institute
.fr/en/plateformes-plateaux/cellule-mathematiques/>`_, with the continuous
support of `MetaboHUB <https://www.metabohub.fr/home.html>`_.

The code is open-source, and available on `GitHub <https://github.com/MetaboHUB-MetaToul-FluxoMet/IsoDesign/>`_ under a
The code is open-source, and available on `GitHub <https://github
.com/MetaboHUB-MetaToul-FluxoMet/IsoDesign/>`_ under a
:ref:`GPLv3 license <license>`.

This documentation is available on Read the Docs (`https://isodesign.readthedocs.io <https://isodesign.readthedocs.io/>`_)
and can be downloaded as a `PDF file <https://readthedocs.org/projects/isodesign/downloads/pdf/latest/>`_.
This documentation is available on Read the Docs (`https://isodesign
.readthedocs.io <https://isodesign.readthedocs.io/>`_)
and can be downloaded as a `PDF file <https://readthedocs
.org/projects/isodesign/downloads/pdf/latest/>`_.


.. toctree::
:maxdepth: 2
Expand All @@ -47,4 +65,4 @@ and can be downloaded as a `PDF file <https://readthedocs.org/projects/isodesign
:maxdepth: 2
:caption: Miscellaneous

license.rst
license.rst
45 changes: 35 additions & 10 deletions docs/installation.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
Installation
============

Installation
Requirements
-----------------

IsoDesign requires Python 3.10 or higher and run on all platforms supporting Python3 (Windows, MacOS and Linux).
IsoDesign runs on all platforms (Windows, MacOS and Linux) and requires Python (3.10 or higher) and R (3.4.0 or higher).
If you do not have a Python environment configured on your computer, we recommend that you follow the instructions
from `Anaconda <https://www.anaconda.com/download/>`_.


Installation with conda (recommended)
-------------------------

This is the recommended installation procedure. If you have a version of conda (such as miniconda or Anaconda), you can install IsoDesign with the following command:

.. code-block:: bash

conda install isodesign -c bioconda

This will install IsoDesign and all its dependencies.


Installation with pip
-------------------------

Expand All @@ -20,32 +32,45 @@ installed on your system, you can install IsoDesign with pip.

pip install isodesign

This will install IsoDesign and all its dependencies. To use IsoDesign, you will need to some R dependencies (necessary for the simulation part with influx_si).
Once you installed IsoDesign, you can install these dependencies by running the following command:
This will install IsoDesign and most of its dependencies. To use IsoDesign,
you will need some additional R dependencies (necessary for the flux
simulation part with influx_si). Once you installed IsoDesign, you can
install these dependencies by running the following command:

.. code-block:: bashy
.. code-block:: bash

influx_s --install_rdep

For more information on the installation of R dependencies, please refer to `influx_si software <https://influx-si.readthedocs.io/en/latest/install.html#r-dependencies>`_ documentation.
For more information on the installation of R dependencies, please refer to the
`influx_si documentation <https://influx-si.readthedocs.io/en/latest/install
.html#r-dependencies>`_ .


Alternatives & updates
----------------------

If you know that you do not have permission to install software system-wide, you can install IsoDesign into your user directory using the :samp:`--user` flag:
If you do not have permission to install software system-wide, you can
install IsoDesign into your user directory using the :samp:`--user` flag:

.. code-block::

pip install --user isodesign

This does not require any special privileges.

Once the package is installed, you can update it using the following command:
Once the package is installed, you can update it using pip with the following
command:

.. code-block::

pip install -U isodesign

Alternatively, you can also download all sources in a tarball from `GitHub <https://github.com/MetaboHUB-MetaToul-FluxoMet/IsoDesign/>`_,
but it will be more difficult to update IsoDesign later on.
and using conda:

.. code-block::

conda update isodesign

Alternatively, you can also download all sources in a tarball from `GitHub
<https://github.com/MetaboHUB-MetaToul-FluxoMet/IsoDesign/>`_, but it will
be more difficult to update IsoDesign later on.
4 changes: 2 additions & 2 deletions docs/make.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
set SOURCEDIR=.
set BUILDDIR=_build

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
Expand Down
61 changes: 43 additions & 18 deletions docs/quickstart.rst
Original file line number Diff line number Diff line change
@@ -1,51 +1,76 @@
Quick start
============

In this section we will explain how to launch IsoDesign once it has been installed onto your system.
In this section, we explain how to launch IsoDesign once it has been
installed on your system.


Graphical user interface
--------------------------------------

To open the Graphical User Interface, type in a terminal (e.g. Anaconda Prompt if installed on Windows):
To open the Graphical User Interface, type in a terminal (e.g. Anaconda
Prompt if installed on Windows):

.. code-block:: bash

isodesign

If you have installed the package in a specific environment, make sure to activate it before starting IsoDesign.
If you have installed the package in a specific environment, make sure to
activate it before starting IsoDesign.

IsoDesign interface will open in a new browser window :
IsoDesign interface will open in a new browser window:

.. image:: _static/interface.JPG
:scale: 60%
:scale: 40%

Select your input network file (which should have a :file:`.netw` extension. It's a :file:`tsv` format file, refer to :ref:`required_input_data_files` for more details).
By default, an output directory path is pre-configured, but you can modify it if needed. Once ready, you click the "Submit" button to load your model
and explore its different elements. Afterward, click the "Next Page" button to proceed.
Select your input network file (which should have a :file:`.netw` extension,
refer to :ref:`required_input_data_files` for more details).
By default, an output directory path is pre-configured, but you can modify
it if needed. Once ready, you click the "Submit" button to load your model
and explore its structure through a dedicated interface. Afterward, click on
"Next Page" to go to the next step. This will open the **Labels input** page.

In the following page, **Labels input**, you can configure the isotopic composition of the substrates and specify the desire proportions by setting the
lower and upper bounds along with the number of intervals. Additionnally, you can preview the generated combinations before proceeding with simulations
[PHOTO LABELS INPUT]

In the page **Labels input**, you can define the available isotopic forms of
the substrate(s) and specify the desired proportions to be tested by setting
lower and upper bounds along with a number of intervals. Additionally,
you can preview the generated combinations before proceeding with simulations
(refer to the :ref:`labels_input` for more details).

In the **Simulation options** page, you can choose your desired simulation mode : influx_s (stationary) or influx_i (instationary) (refer to the :ref:`simulation_options` for more details).
Then, configure the simulation options and initiate the simulation.
[PHOTO SIMULATIONS PAGE]

In the **Simulation options** page, you can choose your desired simulation
mode: influx_s (stationary) or influx_i (instationary) (refer to the
:ref:`simulation_options` for more details).
Then, configure the simulation options and initiate the simulation. Once the
calculations are completed, you can proceed to the **Results** page.

[PHOTO RESULTS PAGE]

The **Results** page allows you to view simulation outcomes and apply one or more scoring criteria (refer to :ref:`results` for more details).
The **Results** page allows you to visualize the results and apply one or
more scoring criteria to identify the optimal label input (refer to
:ref:`results` for more details).

.. note:: The process is continuously and automatically saved as a pickle file (".pkl") in the output folder. To reopen the current processing state, just reopen this file by clicking on "Load a session - Browse files" on on the “Upload data” page.
.. note:: The process is continuously and automatically saved as a pickle
file (:file:`.pkl`) in the output folder. To reopen the current processing
state, just reopen this file by clicking on "Load a session - Browse files"
on on the “Upload data” page.

.. warning:: IsoDesign overwrites (results and processing) files if they already exist. So take care to copy your results elsewhere or to change the output path and/or filename if you want to protect them from overwriting.
.. warning:: IsoDesign overwrites (results and processing) files if they
already exist. So take care to copy your results elsewhere or to change the
output path and/or filename if you want to protect them from overwriting.


Library
-------

IsoDesign is also available as a library (a Python module) that you can import directly in your Python
scripts:
IsoDesign is also available as a library (a Python module) that you can
import directly in your Python scripts:

.. code-block:: python

import isodesign

.. seealso:: Have a look at our :ref:`API <Library documentation>` if you are interested in this feature.
.. seealso:: Have a look at our :ref:`API <Library documentation>` if you
are interested in this experimental feature.
4 changes: 2 additions & 2 deletions isodesign/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ def get_last_version():
"""Get last IsoDesign version."""
try:
isodesign_path = Path(isodesign.__file__).parent
# Get the version from testpypi
response = requests.get('https://test.pypi.org/simple/ isodesign')
# Get the version from pypi
response = requests.get('https://pypi.org/pypi/isodesign/json')
latest_version = response.json()['info']['version']
with open(str(Path(isodesign_path, "last_version.txt")), "w") as f:
f.write(latest_version)
Expand Down
Loading