From dfc2ef8f3aff534bef20b9dd536e49f88a0a1d42 Mon Sep 17 00:00:00 2001 From: YalanBi Date: Wed, 7 May 2025 11:26:35 +0200 Subject: [PATCH 01/14] Update documentation and configuration files for clarity and accuracy - Enhanced .readthedocs.yaml with os system. - Updated CHANGELOG.md format. - Revised README.md and quickstart.rst with citation. - Added author information in docs/conf.py. - Update notebooks/README.md. --- .readthedocs.yaml | 7 ++++++- CHANGELOG.md | 21 +++++++++------------ README.md | 29 ++++++++++++++++------------- docs/conf.py | 2 +- docs/quickstart.rst | 30 ++++++++++++++++++------------ notebooks/README.md | 5 +++-- 6 files changed, 53 insertions(+), 41 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 18eee5a..2097366 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -1,8 +1,13 @@ -# File: .readthedocs.yaml +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details version: 2 # Build from the docs/ directory with Sphinx +build: + os: ubuntu-22.04 + +# Build documentation in the "docs/" directory with Sphinx sphinx: configuration: docs/conf.py diff --git a/CHANGELOG.md b/CHANGELOG.md index f36ad4a..1a2d14c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,9 +56,9 @@ * new feature: filter_transcripts function for genes * changed SUBSTANTIAL filter to 1% of the genes total (was 5%) * coordination test: - * changed argument and column naming, to make it consistent with other test results - * added conditional delta PSI effect size measure - * order of events is now according to gene strand: A upstream of B + * changed argument and column naming, to make it consistent with other test results + * added conditional delta PSI effect size measure + * order of events is now according to gene strand: A upstream of B ## [0.3.0] @@ -76,7 +76,6 @@ * added function to import samples from csv/gtf to import transcriptome reconstruction / quantification from other tools. * dropped requirement for gtf files to be tabix indexed. - ## [0.2.10] * fixed get_overlap - important for correct assignment of mono exonic genes to reference @@ -106,22 +105,20 @@ * added colors parameter to plotting functions * various fixes of command line script run_isotools.py - ## [0.2.7] * added command line script run_isotools.py * added test data for unit tests - ## [0.2.6] * Added unit tests * Fixed bug in novel splicing subcategory assignment * new feature: rarefaction analysis * Changed filtering: expressions get evaluated during iteration - * Predefined filters are added automatically - * Add / remove filters one by one - * added optional progress bar to iter_genes/transcripts + * Predefined filters are added automatically + * Add / remove filters one by one + * added optional progress bar to iter_genes/transcripts ## [0.2.5] @@ -174,7 +171,7 @@ * fix: property of transcripts included {sample_name:0} * save the TSS and PAS positions * New: use_satag parameter for add_sample_from_bam -* Change: use median TSS/PAS (of all reads with same splice pattern) as transcript start/end (e.g. exons[0][0]/exons[-1][1]) +* Change: use median TSS/PAS (of all reads with same splice pattern) as transcript start/end (e.g. exons\[0\]\[0\]/exons\[-1\]\[1\]) * Fix: Novel exon skipping annotation now finds all exonic regions that are skipped. * change: Default filter of FRAGMENTS now only tags reads that do not use a reference TSS or PAS @@ -206,8 +203,8 @@ * Change: refactored SpliceGraph to SegmentGraph to better comply with common terms in literature * New: added a basic implementation of an actual SpliceGraph (as commonly defined in literature) - * based on sorted dict - * not used so far, but maybe useful in importing the long read bam files since it can be extended easily + * based on sorted dict + * not used so far, but maybe useful in importing the long read bam files since it can be extended easily * New: added decorators "experimental" and "deprecated" to mark unsafe functions * Change: in differential splicing changed the alternative fraction, to match the common PSI (% spliced in) definition * Change: narrowed definition of mutually exclusive exons: the alternatives now need to to feature exactly one ME exon and rejoin at node C diff --git a/README.md b/README.md index e7ac775..7f7b14c 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,19 @@ Key features: * Import of LRTS bam files (aligned full length transcripts). * Import of reference annotation in gff3/gtf format. * Computation of quality control metrics. -* Annotation and classification of novel transcripts with biologically motivated classification scheme. +* Annotation and classification of novel transcripts using the biologically motivated classification scheme SQANTI. +* Evaluation of the coding potential of isoforms. * Definition of alternative splicing events based on segment graphs. * Detection of differential alternative splicing between samples and groups of samples. -* Data visualization. +* Gene modelling based on structural and expression variability. +* Support for proteogenomic approaches at the interface of transcriptomics and proteomics. +* Various data visualizations. -## documentation: +## Documentation The documentation, including tutorials with real-world case studies and the complete API reference is available at [readthedocs](https://isotools.readthedocs.io/en/latest/ "documentation") -## installation: +## Installation Isotools is available from PyPI, and can be installed with the pip command: @@ -39,7 +42,7 @@ cd isotools python3 -m pip install . ``` -## usage: +## Usage This code block demonstrates the basic file import with IsoTools. It uses a small test data set contained in this repository, and should run within seconds. The paths are relative to the root of the repository. @@ -50,19 +53,19 @@ from isotools import Transcriptome import logging logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO) # import the reference annotation -isoseq = Transcriptome.from_reference('tests/data/example.gff.gz') -# import the isoseq data +transcriptome = Transcriptome.from_reference('tests/data/example.gff.gz') +# import the transcriptome data for sa in ('CTL', 'VPA'): - isoseq.add_sample_from_bam(f'../tests/data/example_1_{sa}.bam', sample_name=sa, group=sa, platform='SequelII') + transcriptome.add_sample_from_bam(f'../tests/data/example_1_{sa}.bam', sample_name=sa, group=sa, platform='SequelII') # save the imported file as pkl file (for faster import) -isoseq.add_qc_metrics('../tests/data/example.fa') -isoseq.save('../tests/data/example_1_isotools.pkl') +transcriptome.add_qc_metrics('../tests/data/example.fa') +transcriptome.save('../tests/data/example_1_isotools.pkl') ``` -## Citation and feedback: +## Citation and feedback * If you run into any issues, please use the [github issues report feature](https://github.com/HerwigLab/IsoTools2/issues). * For general feedback, please write us an email to [yalan_bi@molgen.mpg.de](mailto:yalan_bi@molgen.mpg.de) and [herwig@molgen.mpg.de](mailto:herwig@molgen.mpg.de). * If you use IsoTools in your publication, please cite the following paper in addition to this repository: - * Lienhard, Matthias et al. “IsoTools: a flexible workflow for long-read transcriptome sequencing analysis.” Bioinformatics (Oxford, England) vol. 39,6 (2023): btad364. [doi:10.1093/bioinformatics/btad364](https://doi.org/10.1093/bioinformatics/btad364) - * Bi, Yalan et al. “IsoTools 2.0: Software for Comprehensive Analysis of Long-read Transcriptome Sequencing Data.” Journal of molecular biology, 169049. 26 Feb. 2025, [doi:10.1016/j.jmb.2025.169049](https://doi.org/10.1016/j.jmb.2025.169049) + * Lienhard, Matthias et al. “**IsoTools: a flexible workflow for long-read transcriptome sequencing analysis**.” Bioinformatics (Oxford, England) vol. 39,6 (2023): btad364. [doi:10.1093/bioinformatics/btad364](https://doi.org/10.1093/bioinformatics/btad364) + * Bi, Yalan et al. “**IsoTools 2.0: Software for Comprehensive Analysis of Long-read Transcriptome Sequencing Data**.” Journal of molecular biology, 169049. 26 Feb. 2025, [doi:10.1016/j.jmb.2025.169049](https://doi.org/10.1016/j.jmb.2025.169049) diff --git a/docs/conf.py b/docs/conf.py index d06c8d5..60e12d9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -25,7 +25,7 @@ project = "isotools" copyright = "2021, Matthias Lienhard" -author = "Matthias Lienhard" +author = "Matthias Lienhard, Yalan Bi" # The short X.Y version version = ".".join(__version__.split(".")[:2]) diff --git a/docs/quickstart.rst b/docs/quickstart.rst index c8d847a..2fc7bec 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -7,10 +7,13 @@ Key features: * Import of LRTS bam files (aligned full length transcripts). * Import of reference annotation in gff3/gtf format. * Computation of quality control metrics. -* Annotation and classification of novel transcripts with biologically motivated classification scheme. +* Annotation and classification of novel transcripts using the biologically motivated classification scheme SQANTI. +* Evaluation of the coding potential of isoforms. * Definition of alternative splicing events based on segment graphs. * Detection of differential alternative splicing between samples and groups of samples. -* Data visualization. +* Gene modelling based on structural and expression variability. +* Support for proteogenomic approaches at the interface of transcriptomics and proteomics. +* Various data visualizations. .. image:: notebooks/Isotools_overview_slide.png :width: 800 @@ -26,25 +29,28 @@ The package can be installed with pip: Usage ----- -This code block demonstrates the basic file import with isoseq. For a more comprehensive real world example see the tutorial. +This code block demonstrates the basic file import with IsoTools. +For more comprehensive real world examples see the [tutorials](https://isotools.readthedocs.io/en/latest/tutorials.html "readthedocs"). .. code-block:: python from isotools import Transcriptome import logging logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO) - isoseq=Transcriptome.from_reference('reference_file.gff3.gz') + transcriptome=Transcriptome.from_reference('reference_file.gff3.gz') isoseq_bam_fn={'sample1':'isoseq_fn_s1.bam', 'sample2':'isoseq_fn_s2.bam'} groups={'sample1':'control', 'sample2':'treatment'} for sa,bam in isoseq_bam_fn.items(): - isoseq.add_sample_from_bam(bam, sample_name=sa, group=groups[sa]) - isoseq.add_qc_metrics('genome.fa') - isoseq.make_index() - isoseq.add_filter() - isoseq.save('example_isotools.pkl') + transcriptome.add_sample_from_bam(bam, sample_name=sa, group=groups[sa]) + transcriptome.add_qc_metrics('genome.fa') + transcriptome.make_index() + transcriptome.add_filter() + transcriptome.save('example_isotools.pkl') Citation and feedback --------------------- -* If you run into any issues, please use the `github issues `_ report feature. -* For feedback, please write me an email to `lienhard@molgen.mpg.de `_. -* If you use isotools in your publication, please cite the following [paper](https://doi.org/10.1093/bioinformatics/btad364): Lienhard et al, Bioinformatics, 2023: IsoTools: a flexible workflow for long-read transcriptome sequencing analysis +* If you run into any issues, please use the `github issues `_ report feature. +* For feedback, please write me an email to `yalan_bi@molgen.mpg.de `_ and `herwig@molgen.mpg.de `_. +* If you use IsoTools in your publication, please cite the following paper in addition to this repository: + * Lienhard, Matthias et al. “**IsoTools: a flexible workflow for long-read transcriptome sequencing analysis**.” Bioinformatics (Oxford, England) vol. 39,6 (2023): btad364. [doi:10.1093/bioinformatics/btad364](https://doi.org/10.1093/bioinformatics/btad364) + * Bi, Yalan et al. “**IsoTools 2.0: Software for Comprehensive Analysis of Long-read Transcriptome Sequencing Data**.” Journal of molecular biology, 169049. 26 Feb. 2025, [doi:10.1016/j.jmb.2025.169049](https://doi.org/10.1016/j.jmb.2025.169049) diff --git a/notebooks/README.md b/notebooks/README.md index 9698daf..fa4974e 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -1,4 +1,5 @@ # Notebooks -This folder contains notebooks to replicate the results from the paper -IsoTools: IsoTools: a python toolbox for long-read transcriptome sequencing (in preparation) \ No newline at end of file +This folder contains notebooks to replicate the results described in the [paper](https://doi.org/10.1093/bioinformatics/btad364) + +Lienhard, Matthias et al. “**IsoTools: a flexible workflow for long-read transcriptome sequencing analysis**.” Bioinformatics (Oxford, England) vol. 39,6 (2023): btad364. [doi:10.1093/bioinformatics/btad364](https://doi.org/10.1093/bioinformatics/btad364) From 38b7c7ef173f07ee0a82a4964c69cc2c369a707f Mon Sep 17 00:00:00 2001 From: YalanBi Date: Wed, 7 May 2025 12:17:18 +0200 Subject: [PATCH 02/14] Refactor Read the Docs configuration --- .readthedocs.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 2097366..1647740 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -6,13 +6,15 @@ version: 2 # Build from the docs/ directory with Sphinx build: os: ubuntu-22.04 - -# Build documentation in the "docs/" directory with Sphinx -sphinx: - configuration: docs/conf.py + tools: + python: "3.12" # Explicitly set the version of Python python: - version: 3.12 install: - - requirements: docs/requirements.txt \ No newline at end of file + - requirements: docs/requirements.txt + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/conf.py + fail_on_warning: true From b9db9b49bced47751d5a560df8d9aa1535360de4 Mon Sep 17 00:00:00 2001 From: YalanBi Date: Wed, 7 May 2025 12:19:59 +0200 Subject: [PATCH 03/14] Update Read the Docs configuration to use ubuntu-lts-latest --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 1647740..b3e0bac 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -5,7 +5,7 @@ version: 2 # Build from the docs/ directory with Sphinx build: - os: ubuntu-22.04 + os: "ubuntu-lts-latest" tools: python: "3.12" From 4e90891f5e066203815a6a669d1acff6a66147eb Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 18:26:29 +0200 Subject: [PATCH 04/14] Update Sphinx and theme versions in requirements.txt --- docs/requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 2c5f233..ebdaca4 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,13 +1,13 @@ # File: docs/requirements.txt # Defining the exact version will make sure things don't break -sphinx>=4.2 -sphinx_rtd_theme==0.5.2 +sphinx>=5.3.0 +sphinx_rtd_theme==1.1.1 sphinx-argparse==0.3.2 +sphinx-notfound-page==1.0.2 readthedocs-sphinx-search==0.1.0 myst_parser==0.15.1 nbsphinx==0.8.6 Jinja2<3.1 IPython==7.27.0 isotools - From 015ab4b24d79be4b16d2eeccc991316fa6bffcdf Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 18:39:02 +0200 Subject: [PATCH 05/14] Remove version constraints from requirements.txt for Sphinx and related packages --- docs/requirements.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index ebdaca4..6bc07b8 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,13 +1,13 @@ # File: docs/requirements.txt # Defining the exact version will make sure things don't break -sphinx>=5.3.0 -sphinx_rtd_theme==1.1.1 -sphinx-argparse==0.3.2 -sphinx-notfound-page==1.0.2 -readthedocs-sphinx-search==0.1.0 -myst_parser==0.15.1 -nbsphinx==0.8.6 -Jinja2<3.1 -IPython==7.27.0 +sphinx +sphinx_rtd_theme +sphinx-argparse +sphinx-notfound-page +readthedocs-sphinx-search +myst_parser +nbsphinx +Jinja2 +IPython isotools From fa8c562d9a1631cefae64d4b8794c8ea5f80f9fd Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 18:51:40 +0200 Subject: [PATCH 06/14] Fix package names in requirements and setup configuration --- docs/requirements.txt | 2 +- requirements.txt | 2 +- setup.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 6bc07b8..fccccc4 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,7 +1,7 @@ # File: docs/requirements.txt # Defining the exact version will make sure things don't break -sphinx +sphinx==8.1.3 sphinx_rtd_theme sphinx-argparse sphinx-notfound-page diff --git a/requirements.txt b/requirements.txt index 5a87506..9d374f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,4 +14,4 @@ importlib-metadata pyhmmer requests CPAT -ternary \ No newline at end of file +python-ternary \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 764cd13..66627ee 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,7 @@ install_requires = pyhmmer requests CPAT - ternary + python-ternary [options.packages.find] where = src From b63ab8ed787d191a68116b513bf62e5ca1d1d282 Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 19:07:52 +0200 Subject: [PATCH 07/14] Remove version constraint for Sphinx in requirements.txt --- docs/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index fccccc4..a28ae5b 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,7 +1,7 @@ # File: docs/requirements.txt # Defining the exact version will make sure things don't break -sphinx==8.1.3 +sphinx sphinx_rtd_theme sphinx-argparse sphinx-notfound-page @@ -11,3 +11,4 @@ nbsphinx Jinja2 IPython isotools +python-ternary \ No newline at end of file From 90db101babbd8110adf6f6fa6d0435706dfe193f Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 20:47:58 +0200 Subject: [PATCH 08/14] Update Read the Docs configuration and requirements.txt --- .readthedocs.yaml | 6 ++++-- docs/requirements.txt | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index b3e0bac..96ba767 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -5,8 +5,9 @@ version: 2 # Build from the docs/ directory with Sphinx build: - os: "ubuntu-lts-latest" + os: "ubuntu-24.04" tools: + nodejs: "20" python: "3.12" # Explicitly set the version of Python @@ -17,4 +18,5 @@ python: # Build documentation in the "docs/" directory with Sphinx sphinx: configuration: docs/conf.py - fail_on_warning: true + fail_on_warning: False + fail_on_error: True diff --git a/docs/requirements.txt b/docs/requirements.txt index a28ae5b..efecc44 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,10 +1,10 @@ # File: docs/requirements.txt # Defining the exact version will make sure things don't break -sphinx -sphinx_rtd_theme +sphinx==5.3.0 +sphinx_rtd_theme==1.1.1 sphinx-argparse -sphinx-notfound-page +sphinx-notfound-page==1.0.2 readthedocs-sphinx-search myst_parser nbsphinx From 2373c99803a64ddb681d7879b13b7e1f914e9a8d Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 20:49:18 +0200 Subject: [PATCH 09/14] Remove fail_on_error setting from Sphinx configuration --- .readthedocs.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 96ba767..04666da 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -19,4 +19,3 @@ python: sphinx: configuration: docs/conf.py fail_on_warning: False - fail_on_error: True From 03822786d55d4bf0c9b4f295f8326b4c7a89d347 Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 20:54:16 +0200 Subject: [PATCH 10/14] Add docutils version constraint to requirements.txt --- docs/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/requirements.txt b/docs/requirements.txt index efecc44..cc14228 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -5,6 +5,7 @@ sphinx==5.3.0 sphinx_rtd_theme==1.1.1 sphinx-argparse sphinx-notfound-page==1.0.2 +docutils<0.18 readthedocs-sphinx-search myst_parser nbsphinx From 8267c1f3fbf9882366f9f7760c4c6bf2215b4633 Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 20:57:42 +0200 Subject: [PATCH 11/14] Specify version for sphinx-argparse in requirements.txt --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index cc14228..b5f9ef6 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -3,7 +3,7 @@ # Defining the exact version will make sure things don't break sphinx==5.3.0 sphinx_rtd_theme==1.1.1 -sphinx-argparse +sphinx-argparse==0.3.1 sphinx-notfound-page==1.0.2 docutils<0.18 readthedocs-sphinx-search From 3709bb9b2526f76ed62ff20bf88c54e9e73b842e Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 21:11:27 +0200 Subject: [PATCH 12/14] Update package versions in requirements.txt --- docs/requirements.txt | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index b5f9ef6..a0a4a3e 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,15 +1,13 @@ # File: docs/requirements.txt # Defining the exact version will make sure things don't break -sphinx==5.3.0 -sphinx_rtd_theme==1.1.1 -sphinx-argparse==0.3.1 -sphinx-notfound-page==1.0.2 -docutils<0.18 -readthedocs-sphinx-search -myst_parser -nbsphinx +sphinx==8.1.3 +sphinx_rtd_theme==3.0.2 +sphinx-argparse==0.5.2 +sphinx-notfound-page==1.1.0 +readthedocs-sphinx-search==0.3.2 +myst_parser==4.0.1 +nbsphinx==0.9.7 Jinja2 -IPython -isotools -python-ternary \ No newline at end of file +IPython==9.2.0 +isotools \ No newline at end of file From 5bf0ede530bcf84bf8b9f5230b5621c0f657a69c Mon Sep 17 00:00:00 2001 From: YalanBi Date: Thu, 8 May 2025 22:10:15 +0200 Subject: [PATCH 13/14] Update project dependencies and configuration files - Specify Jinja2 version in requirements.txt - Update setuptools version requirement in pyproject.toml - Add additional project metadata and dependencies in pyproject.toml - Remove importlib-metadata from requirements.txt - Refine operating system classifiers in setup.cfg --- docs/requirements.txt | 2 +- pyproject.toml | 48 ++++++++++++++++++++++++++++++++++++++++++- requirements.txt | 1 - setup.cfg | 3 ++- 4 files changed, 50 insertions(+), 4 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index a0a4a3e..e394147 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -8,6 +8,6 @@ sphinx-notfound-page==1.1.0 readthedocs-sphinx-search==0.3.2 myst_parser==4.0.1 nbsphinx==0.9.7 -Jinja2 +Jinja2==3.1.6 IPython==9.2.0 isotools \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index fe1008f..6c2a2db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,53 @@ [build-system] -requires = ["setuptools>=46.4", "wheel"] +requires = ["setuptools >= 77.0.3", "wheel"] build-backend = "setuptools.build_meta" +[project] +name = "isotools" +authors = [ + { name="Matthias Lienhard", email="lienhard@molgen.mpg.de" }, + { name="Yalan Bi", email="yalan_bi@molgen.mpg.de" }, +] +description = "Framework for the analysis of long read transcriptome sequencing data" +readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Programming Language :: Python :: 3", + "Operating System :: MacOS", + "Operating System :: POSIX :: Linux", +] +license = "MIT" +license-files = ["LICEN[CS]E*"] +dynamic = ["version"] +dependencies = [ + "numpy", + "pandas", + "tqdm", + "intervaltree", + "matplotlib", + "seaborn", + "biopython", + "pysam", + "umap-learn", + "scikit-learn", + "scipy", + "statsmodels", + "pyhmmer", + "requests", + "CPAT", + "python-ternary", +] + +[project.urls] +Homepage = "https://github.com/HerwigLab/IsoTools2" +Documentation = "https://isotools.readthedocs.io/" +Repository = "https://github.com/HerwigLab/IsoTools2.git" +Issues = "https://github.com/HerwigLab/IsoTools2/issues" +Changelog = "https://github.com/HerwigLab/IsoTools2/blob/master/CHANGELOG.md" + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + [tool.pytest.ini_options] addopts = "--cov=isotools" testpaths = [ diff --git a/requirements.txt b/requirements.txt index 9d374f1..be6b76e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,6 @@ umap-learn scikit-learn scipy statsmodels -importlib-metadata pyhmmer requests CPAT diff --git a/setup.cfg b/setup.cfg index 66627ee..49e3c6d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,7 +13,8 @@ project_urls = classifiers = Programming Language :: Python :: 3 License :: OSI Approved :: MIT License - Operating System :: OS Independent + Operating System :: MacOS :: MacOS X + Operating System :: POSIX :: Linux [options] package_dir = From 301949f52a8b4834ae0a2f4094136f7944c8806a Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 8 May 2025 20:11:17 +0000 Subject: [PATCH 14/14] Apply linting fixes --- src/isotools/_transcriptome_io.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/isotools/_transcriptome_io.py b/src/isotools/_transcriptome_io.py index 7f0d7d1..7e1c504 100644 --- a/src/isotools/_transcriptome_io.py +++ b/src/isotools/_transcriptome_io.py @@ -1757,13 +1757,16 @@ def _read_gff_file(file_name, chromosomes, progress_bar=True): cds_start = dict() cds_stop = dict() # takes quite some time... add a progress bar? - with tqdm( - total=path.getsize(file_name), - unit_scale=True, - unit="B", - unit_divisor=1024, - disable=not progress_bar, - ) as pbar, TabixFile(file_name) as gff: + with ( + tqdm( + total=path.getsize(file_name), + unit_scale=True, + unit="B", + unit_divisor=1024, + disable=not progress_bar, + ) as pbar, + TabixFile(file_name) as gff, + ): chrom_ids = get_gff_chrom_dict(gff, chromosomes) for line in gff.fetch(): file_pos = (