{"id":37065970,"url":"https://github.com/dputhier/pygtftk","last_synced_at":"2026-01-14T07:44:17.487Z","repository":{"id":33013485,"uuid":"135356604","full_name":"dputhier/pygtftk","owner":"dputhier","description":"A python package and a set of shell commands to handle GTF files","archived":false,"fork":false,"pushed_at":"2025-12-18T10:49:17.000Z","size":149898,"stargazers_count":50,"open_issues_count":19,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-21T17:44:10.898Z","etag":null,"topics":["bed","bigwig","bioinformatics","cds","chip-seq","dna-sequences","exon","gene","genomic","genomics","gtf","intron","ngs","rna-seq","splicing","transcript","tss","tts"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dputhier.png","metadata":{"files":{"readme":"README.rst","changelog":"changelog.md","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-05-29T21:51:11.000Z","updated_at":"2025-11-25T11:57:17.000Z","dependencies_parsed_at":"2023-12-13T07:42:59.898Z","dependency_job_id":"2a61d572-f51e-40e9-bee0-8e33f4825134","html_url":"https://github.com/dputhier/pygtftk","commit_stats":{"total_commits":1303,"total_committers":7,"mean_commits":"186.14285714285714","dds":0.5541059094397545,"last_synced_commit":"d414e7398c0f107bf1f5168fd28923f6be0394ff"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/dputhier/pygtftk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dputhier%2Fpygtftk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dputhier%2Fpygtftk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dputhier%2Fpygtftk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dputhier%2Fpygtftk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dputhier","download_url":"https://codeload.github.com/dputhier/pygtftk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dputhier%2Fpygtftk/sbom","scorecard":{"id":354667,"data":{"date":"2025-08-11","repo":{"name":"github.com/dputhier/pygtftk","commit":"d414e7398c0f107bf1f5168fd28923f6be0394ff"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: manylinux/Dockerfile:1: pin your Docker image by updating pypywheels/manylinux2010-pypy_x86_64 to pypywheels/manylinux2010-pypy_x86_64@sha256:29c4fd5d41341f477701adfde83fed4eaba3241f9a53cae982d839ebc6ef696b","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"76 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-4 / GHSA-2mqj-m65w-jghx","Warn: Project is vulnerable to: PYSEC-2023-165 / GHSA-cwvm-v4w8-q58c","Warn: Project is vulnerable to: PYSEC-2022-42992 / GHSA-hcpj-qp55-gfph","Warn: Project is vulnerable to: PYSEC-2023-137 / GHSA-pr76-5cm5-w9cj","Warn: Project is vulnerable to: PYSEC-2023-161 / GHSA-wfm5-v35h-vwf4","Warn: Project is vulnerable to: PYSEC-2021-427 / GHSA-f865-m6cq-j9vx","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: GHSA-3c5c-7235-994j","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: PYSEC-2020-77 / GHSA-3xv8-3j54-hgrp","Warn: Project is vulnerable to: PYSEC-2020-80 / GHSA-43fq-w8qq-v88h","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2020-172 / GHSA-5gm3-px64-rw72","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2020-78 / GHSA-8843-m7mw-mxqm","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2014-87 / GHSA-8m9x-pxwq-j236","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2016-6 / GHSA-8xjv-v9xq-m5h9","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2014-10 / GHSA-cfmr-38g9-f2h7","Warn: Project is vulnerable to: PYSEC-2020-76 / GHSA-cqhg-xjhh-p8hf","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2015-16 / GHSA-h5rf-vgqx-wjv2","Warn: Project is vulnerable to: PYSEC-2016-5 / GHSA-hggx-3h72-49ww","Warn: Project is vulnerable to: PYSEC-2020-84 / GHSA-hj69-c76v-86wr","Warn: Project is vulnerable to: PYSEC-2016-7 / GHSA-hvr8-466p-75rh","Warn: Project is vulnerable to: PYSEC-2015-15 / GHSA-j6f7-g425-4gmx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: PYSEC-2019-110 / GHSA-j7mj-748x-7p78","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2020-83 / GHSA-p49h-hjvm-jg3h","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2020-82 / GHSA-r7rm-8j6h-r933","Warn: Project is vulnerable to: PYSEC-2014-23 / GHSA-r854-96gq-rfg3","Warn: Project is vulnerable to: PYSEC-2016-8 / GHSA-rwr3-c2q8-gm56","Warn: Project is vulnerable to: PYSEC-2020-81 / GHSA-vcqg-3p29-xw73","Warn: Project is vulnerable to: PYSEC-2020-79 / GHSA-vj42-xq3r-hr3r","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2016-9 / GHSA-w4vg-rf63-f3j3","Warn: Project is vulnerable to: PYSEC-2014-22 / GHSA-x895-2wrm-hvp7","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: OSV-2022-715","Warn: Project is vulnerable to: PYSEC-2021-137","Warn: Project is vulnerable to: PYSEC-2021-138","Warn: Project is vulnerable to: PYSEC-2021-317","Warn: Project is vulnerable to: PYSEC-2021-38","Warn: Project is vulnerable to: PYSEC-2021-39","Warn: Project is vulnerable to: PYSEC-2021-94","Warn: Project is vulnerable to: PYSEC-2022-42980","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49 / GHSA-rprw-h62v-c2w7","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: GHSA-jxfp-4rvq-9h9m","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2013-22 / GHSA-27x4-j476-jp5f","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T09:14:10.921Z","repository_id":33013485,"created_at":"2025-08-18T09:14:10.922Z","updated_at":"2025-08-18T09:14:10.922Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bed","bigwig","bioinformatics","cds","chip-seq","dna-sequences","exon","gene","genomic","genomics","gtf","intron","ngs","rna-seq","splicing","transcript","tss","tts"],"created_at":"2026-01-14T07:44:16.707Z","updated_at":"2026-01-14T07:44:17.476Z","avatar_url":"https://github.com/dputhier.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"===================        =================\nPip package                |Pippackage|_\nBioconda package           |bioconda|_\nLicense                    |license|_\nPlatforms                  |platform|_\nLanguages                  |lang|_\nBuild status               |build|_\nRepository size            |size|_\nLatest conda               |latestconda|_\nlatest commit              |last_commit|_\nDownloads                  |downloads|_\nCodacy                     |codacy|_\nContribution               |contrib|_\nIssues                     |issues|_\nCiting pygtftk             |citing_pygtftk|_\nCiting OLOGRAM             |citing_ologram|_\nCiting OLOGRAM-MODL        |citing_ologram_modl|_\nDocumentation              |documentation|_\n===================        =================\n\n.. |codacy| image:: https://app.codacy.com/project/badge/Grade/0e5b6b1af3a84af7a2d57e0465204e7f\n.. _codacy: https://www.codacy.com/gh/dputhier/pygtftk/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=dputhier/pygtftk\u0026amp;utm_campaign=Badge_Grade\n\n.. |bioconda| image:: https://anaconda.org/bioconda/pygtftk/badges/version.svg\n.. _bioconda: https://anaconda.org/bioconda/pygtftk\n\n.. |license| image:: https://img.shields.io/github/license/dputhier/pygtftk.svg\n.. _license: https://github.com/dputhier/pygtftk\n\n.. |pippackage| image:: https://badge.fury.io/py/pygtftk.svg\n.. _pippackage: https://badge.fury.io/py/pygtftk\n\n.. |contrib| image::  https://img.shields.io/badge/contributions-welcome-brightgreen.svg\n.. _contrib: https://github.com/dputhier/pygtftk/blob/master/CONTRIBUTING.rst\n\n.. |build| image:: https://travis-ci.org/dputhier/pygtftk.svg?branch=master\n.. _build: https://travis-ci.org/dputhier/pygtftk\n\n.. |size| image:: https://img.shields.io/github/repo-size/badges/shields.svg\n.. _size: https://travis-ci.org/dputhier/pygtftk\n\n.. |platform| image:: https://anaconda.org/bioconda/pygtftk/badges/platforms.svg\n.. _platform: https://anaconda.org/bioconda/pygtftk\n\n.. |latestconda| image:: https://anaconda.org/bioconda/pygtftk/badges/latest_release_date.svg\n.. _latestconda: https://anaconda.org/bioconda/pygtftk\n\n.. |downloads| image:: https://anaconda.org/bioconda/pygtftk/badges/downloads.svg\n.. _downloads: https://anaconda.org/bioconda/pygtftk\n\n.. |reference| image:: https://img.shields.io/reference-yes-green.svg\n.. _reference: http://hits.dwyl.io/dputhier/pygtftk\n\n.. |issues| image:: https://img.shields.io/github/issues-raw/dputhier/pygtftk.svg\n.. _issues: https://github.com/dputhier/pygtftk/issues\n\n.. |citing_pygtftk| image:: https://img.shields.io/badge/citing__pygtftk-https%3A%2F%2Fdoi.org%2F10.1093%2Fbioinformatics%2Fbtz116-blue\n.. _citing_pygtftk: https://doi.org/10.1093/bioinformatics/btz116\n\n.. |documentation| image:: https://img.shields.io/badge/Documentation-https%3A%2F%2Fdputhier.github.io%2Fpygtftk%2F-blue.svg\n.. _documentation: https://dputhier.github.io/pygtftk/\n\n.. |lang| image:: https://img.shields.io/badge/Languages-Python%2C%20C%2C%20Cython%2C%20C++-blue.svg\n.. _lang: https://github.com/dputhier/pygtftk\n\n.. |citing_ologram| image:: https://img.shields.io/badge/citing__ologram-https%3A%2F%2Fdoi.org%2F10.1093%2Fbioinformatics%2Fbtz810-blue\n.. _citing_ologram: https://doi.org/10.1093/bioinformatics/btz810\n\n.. |citing_ologram_modl| image:: https://img.shields.io/badge/citing__ologram--modl-https%3A%2F%2Fdoi.org%2F10.1093%2Fnargab%2Flqab114--modl-blue\n.. _citing_ologram_modl: https://doi.org/10.1093/nargab/lqab114\n\n.. |last_commit| image:: https://img.shields.io/github/last-commit/dputhier/pygtftk\n.. _last_commit: https://github.com/dputhier/pygtftk/commits/master\n\n\nPython GTF toolkit (pygtftk)\n=============================\n\nThe **Python GTF toolkit (pygtftk) package** is intended to ease handling of GTF/GFF2.0 files (Gene Transfer Format). It currently does not support GFF3 file format. The pygtftk package is compatible with Python 3.9 and relies on **libgtftk**, a library of functions **written in C**.\n\nThe package comes with a set of **UNIX commands** that can be accessed through the **gtftk  program**. The gtftk program proposes several atomic tools to **filter, convert, or extract data from GTF files**.\n\nThe newly released command, **OLOGRAM (OverLap Of Genomic Regions Analysis using Monte Carlo)** may be used to compute overlap statistics between user supplied regions (BED format) and annotation derived from :\n\n- Gene centric features enclosed in a GTF (e.g. exons, promoters, terminators...).\n- Regions in a GTFs flagged with built-in keys/values (e.g. check the 'gene_biotype' as provided by ensembl GTFs of the regions in which peaks fall).\n- Same with custom keys/values through the gtftk CLI (e.g. adding a numeric value to a gene and discretizing this value to create gene classes).\n- User supplied BED files.\n\nWith the most recent update, OLOGRAM is now also capable of computing the enrichment of **n-wise combinations** (ie. A+B, A+B+C, etc.) to find correlation groups of regions. Please see the documentation page of *OLOGRAM* for more details.\n\nThe gtftk set of Unix commands can be easily extended using a basic plugin architecture.\n\nAll these aspects are covered in the help sections ; please see the `documentation \u003chttps://dputhier.github.io/pygtftk/\u003e`_.\n\nWhile the gtftk Unix program comes with hundreds of unitary and functional tests, it is still in active development and may thus suffer from bugs that remain to be discovered. Feel free to post any problem or required enhancement in the issue section of the GitHub repository.\n\n\nDocumentation\n--------------\n\nDocumentation about the latest release is available as a `github page \u003chttps://dputhier.github.io/pygtftk/\u003e`_.\n\nDocumentation about OLOGRAM (OverLap Of Genomic Regions Analysis using Monte Carlo) can be found in `the 'ologram' section of the documentation \u003chttps://dputhier.github.io/pygtftk/ologram.html\u003e`_.\n\n**NB:** The readthedoc version won't be maintained and will be closed in the near future. This choice was motivated by the impossibility to maintain a dynamic documentation (using sphinx/sphinxcontrib-programoutput) given the computing time provided by readthedoc server.\n\nNote that example dataset are available to test the various subcommands (see `documentation page \u003chttps://dputhier.github.io/pygtftk/information.html#get-example\u003e`_).\n\n    gtftk get_example  -h\n    # E.g. to get all file from the 'simple' dataset\n    gtftk get_example -d simple -f \"*\"\n\n\nSystem requirements\n--------------------\n\nDepending on the **size of the GTF file**, pygtftk and gtftk may require lot of memory to perform selected tasks. A computer with 16Go is recommended in order to be able to pipe several commands when working with human annotations from ensembl release (e.g. 91). When working with a cluster think about reserving sufficient memory.\n\nAt the moment, the gtftk program has been tested on:\n\n  - Linux (Ubuntu 12.04 and 18.04)\n  - OSX (Yosemite, El Capitan, Mojave).\n\nInstallation\n-------------\n\nInstallation through conda package building\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nInstallation through **conda** should be the **preferred install solution**. The pygtftk package and gtftk command line tool require external dependencies (bedtools \"\u003ev2.23.1\", graphviz, unzip) with some version constrains.\n\nIf conda is not available on your system, first install miniconda from the official `web site \u003chttp://conda.pydata.org/miniconda.html\u003e`_ and make sure you have bioconda and conda-forge channels set up in the order below. ::\n\n    conda config --add channels defaults\n    conda config --add channels bioconda\n    conda config --add channels conda-forge\n\nThen you can simply install pygtftk in its own isolated environment and activate it. ::\n\n    conda create -n pygtftk pygtftk\n    conda activate pygtftk\n\n\nInstallation through setup.py\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis is not the preferred way for installation. Choose conda whenever possible. We have observed several issues with dependencies that still need to be fixed. ::\n\n    git clone http://git@github.com:dputhier/pygtftk.git pygtftk\n    cd pygtftk\n    # Check your Python version (\u003e=3.8,\u003c3.9)\n    pip install -r requirements.txt\n    python setup.py install\n\n\nInstallation through pip\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n**Prerequisites**\n\n\nAgain, this is not the preferred way for installation. Please choose conda whenever possible. We have observed several issues with dependencies that still need to be fixed.\n\n**Running pip**\n\n\nInstallation through pip can be done as follow. ::\n\n    pip install -r requirements.txt\n    pip install pygtftk\n    # It is important to call gtftk -h\n    # to look for plugins and their\n    # CLI in ~/.gtftk\n    # before going further\n    gtftk -h\n\n\n\nTesting\n--------\n\nRunning functional tests\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nA lot of functional tests have been developed to ensure consistency with expected results. This does not rule out that bugs may hide throughout the code... In order to check that installation is functional you may be interested in running functional tests. The definition of all functional tests declared in  gtftk commands is accessible using the -p/--plugin-tests argument: ::\n\n    gtftk -p\n\n\nTo run the tests, you will need to install `bats (Bash Automated Testing System) \u003chttps://github.com/sstephenson/bats\u003e`_. Once bats is installed run the following commands: ::\n\n    # The tests should be run in the pygtftk git\n    # directory because several tests contains references (relative path)\n    # to file enclosed in pygtftk/data directory.\n    gtftk -p \u003e gtftk_test.bats\n    bats gtftk_test.bats\n\n\nNote, alternatively you may directly call the tests using the Makefile. ::\n\n    make clean\n    make test\n\n\nOr run tests in parallel using: ::\n\n    make clean\n    make test_para -j 10 # Using 10 cores\n\n\n\nRunning unitary tests\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSeveral unitary tests have been implemented using doctests. You can run them using nose through the following command line: ::\n\n    make nose\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdputhier%2Fpygtftk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdputhier%2Fpygtftk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdputhier%2Fpygtftk/lists"}