Skip to main content

High-performance library designed for parsing genomic files and analysing genomic context

Project description

eccLib

Pipeline Python Documentation C Documentation

eccLib is a python high-performance library designed for parsing genomic files and analysing genomic context.

Install

The most reliable way of installing this library is to use pip. You can do this with the following command:

pip install eccLib

If you want to install this library from source, you can do this by cloning the repository and using the makefile.

make install

If for some reason, makefile doesn't work for you, the following sequence of steps should work as well:

  1. Initialize third party libraries

    git submodule update --init --remote
    
  2. Ensure you have a compiler installed

    You are going to need to have a C/C++ compiler installed on your system. For Linux I recommend gcc and for Windows realistically speaking you don't have a choice and will have to install msvc. In order to compile run the following commands

  3. Build the library

    pip install .
    

In order to then uninstall this library do this:

pip uninstall eccLib

Usage

Currently the library supports parsing and processing of GTF and FASTA formats. Your IDE should pick up the .pyi file associated with the library and provide documentation for the functions and classes. Additionally the library is properly typed, so you should be able to use it with type checkers like mypy.

For more detailed notes on usage, please refer to the documentation, you can also build it yourself by running the following command:

make python-doc

Citing

If you use this library in your research, please cite the associated article as follows:

@article{10.1093/bioinformatics/btaf558,
    author = {Chady, Tomasz and Filutowska, Zuzanna Karolina},
    title = {Parsing GTF and FASTA files using the eccLib Library},
    journal = {Bioinformatics},
    volume = {41},
    number = {10},
    pages = {btaf558},
    year = {2025},
    month = {10},
    issn = {1367-4811},
    doi = {10.1093/bioinformatics/btaf558},
    url = {https://doi.org/10.1093/bioinformatics/btaf558},
    eprint = {https://academic.oup.com/bioinformatics/article-pdf/41/10/btaf558/64539454/btaf558.pdf},
}

Development

The source code of the library is stored in the src folder. You can learn about the Python/C API here. The preferred way of building the library for development and debugging is to use the debug target in the makefile. This will build the library with debugging symbols. Be sure to check out the test folder during development, as it contains a lot of useful tests. Also consult with the internal documentation for more information on the C code. You can build the documentation by running the following command:

make internal-doc

If you wish to contribute to the library, please first consult the contributing file.

Third party libraries

  • hashmap.h has been utilized as the low level hashmap implementation
  • xxHash (BSD 2-Clause) has been used for the hashing function used by the hashmap

Benchmarking

You can find the benchmarking scripts in the bench folder. The README file in that folder contains more detailed information on how to run them.

Wheel building

For building wheels for multiple Python versions, we use cibuildwheel. First install it:

pip install cibuildwheel

then run it:

python -m cibuildwheel --output-dir wheelhouse

License

This library is licensed under GNU GPL v3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecclib-1.2.0.tar.gz (136.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl (443.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (453.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl (406.1 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (412.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

ecclib-1.2.0-cp313-cp313-win_amd64.whl (57.7 kB view details)

Uploaded CPython 3.13Windows x86-64

ecclib-1.2.0-cp313-cp313-win32.whl (53.8 kB view details)

Uploaded CPython 3.13Windows x86

ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (406.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (413.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

ecclib-1.2.0-cp312-cp312-win_amd64.whl (57.7 kB view details)

Uploaded CPython 3.12Windows x86-64

ecclib-1.2.0-cp312-cp312-win32.whl (53.8 kB view details)

Uploaded CPython 3.12Windows x86

ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (406.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (412.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

ecclib-1.2.0-cp311-cp311-win_amd64.whl (57.4 kB view details)

Uploaded CPython 3.11Windows x86-64

ecclib-1.2.0-cp311-cp311-win32.whl (53.4 kB view details)

Uploaded CPython 3.11Windows x86

ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (396.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (403.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

ecclib-1.2.0-cp310-cp310-win_amd64.whl (57.6 kB view details)

Uploaded CPython 3.10Windows x86-64

ecclib-1.2.0-cp310-cp310-win32.whl (53.6 kB view details)

Uploaded CPython 3.10Windows x86

ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (394.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (402.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file ecclib-1.2.0.tar.gz.

File metadata

  • Download URL: ecclib-1.2.0.tar.gz
  • Upload date:
  • Size: 136.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0.tar.gz
Algorithm Hash digest
SHA256 50c440acda03dcf24660702af7dc394f7ad8a6b5bc206e7a0a9429c0f8f22121
MD5 7015c92c1c31e2642b6249c5b2fa884d
BLAKE2b-256 bf547bfabd3bc42ff15da0b9f7cfb93d42490db873cd6080c70411e3b41aac8f

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 994da328cec550e30a5ec5f58d28a0bc4390a3d72ddd81b38a11b1e130131ec3
MD5 f83797e755cf67513a7796b1a3300a4c
BLAKE2b-256 24d5dac6bc26264cdb3aea9df64eb0cb03bf8b214bff11901acadf9dce0d34c1

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51ec874cbfd589bde8ab7de62665ae04a77133028d5682516bfaf4ba47325445
MD5 8c283bd0cf8c7f074e16afe7b38788aa
BLAKE2b-256 061bedcf25f8716505b17238fbf11615d68a090645134c5228a99ba6d3bda5d7

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d0bbe9d145ca264b4a042a7ce1ae9f9c92ed2c606ad454f360ddcc604643da4c
MD5 20489cd91a6b4573bb6f4f34926238f7
BLAKE2b-256 de6e78670e76929835d09518b257ff5aefb0a5ab7161edfb99f946c3d5ef61dc

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59e33afc9c80877d6304f00903142d8e8a7536d0e388ec779cf291ce184a1a32
MD5 23176f044d08a16d3b0539b1c0c12d97
BLAKE2b-256 00f6f5d2b4a5b17d37be87a094bee1f4511119b890868de191da8ae12e8de567

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 57.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 69af8f54a4cf516c305755a4f8f5be80b86c4b42647c68a4993f1ec48d23bd51
MD5 c680ec9c4057f9f7ddad566258c4b0df
BLAKE2b-256 1616dca09a0d5a62b5ebb47fc03f4556768c049a29a2f8195a894ff756c1f87b

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 106168166836747cfa3385b90282e665e0488081e29e4b91fcb4f8e7503f8e01
MD5 c1e68ecc8e8015a0d884c6d074e8f880
BLAKE2b-256 88b7693eead110c964ae4c0127f671e93d0d77015195a7d76c38e68f234879e4

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45dc38d801496231c4aaae5d84e738f461142bf6452f8d6286f97712198cd427
MD5 aa4f3a4f3c501845af6b23a94528e41d
BLAKE2b-256 c461b354cc7552c3d9968e1ca817c48424334db75bb596b8634e25366d5b0db4

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5a9ceeb741a07a96f456b5c54fae3a6240123b103bc64b9f2dc5c3e199be65fb
MD5 66c6a758c2eb8c10335b7f05b08958b8
BLAKE2b-256 329fdaf577d6e189273cf95ccaa0d444a8b1c4ff02b05c7cfc3e1faf1a2611ec

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 57.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0de5c89fdd021403c213214ebc19607f281a32836414e6f7265afbffdfc886d6
MD5 56f57a9e514c38b249f28788fc64a809
BLAKE2b-256 c24af3a9ad78d5402b54b7d951d335b41ab97c92223c7b6889fdc19a33e4e10c

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 53.8 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 592a9027f39c85599d3a1504d9645af6a9f8e8fd35e3c73d970abbf492ba333a
MD5 a3a6398ebf97f1f26ac61a607232ee0a
BLAKE2b-256 587215f874a86c6e9c1fb0cd3f97b6efb6ce1d81fcc76610d72070f931b44a06

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5cd73ba7a7a074ff723def0b0e4beb1b39e45611d43eeb5e06d3a34095fe061a
MD5 9a8a22df3b67d2b1f61e94cb821df5d9
BLAKE2b-256 187102d7f659d3c3977f4bd71d84836a60f3cdf9f4aa49b60a0754c4f21126ea

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7bff823e2428f9cde8c8c14341322c4b9cf86e49d9dbfab5b7142dc08e6482a8
MD5 c438553bd28c47b543fb44904c48eff6
BLAKE2b-256 e4a9f7630b137f7eea8b8197187ad4948b0377c0869f3564d1bb4148d17439a6

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ccd3152d32a9698da9d39526902ac6234a352cf818694b224d7c3aba4637ad76
MD5 13d93529ec263acbb21d76b045d0053a
BLAKE2b-256 2a0fc3a92ffe4522aed9cca0f286d9f5f8a4b31b4bd52cb73bf3f44a2cc31535

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 53.4 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d4bb03ed6d4663c92a13a8df5eaab07664bc69bd7a9ef32dbfd139d5072cc545
MD5 722996bdc6696174500308362746ab89
BLAKE2b-256 c1c7343f8bfcb860b2a6a9d878507dec329ddec3670375cc4f9b1ac835539e09

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a88f9140a2a28c8e27809186622dbb6f5d41846428520cc619d54bc6cb66090
MD5 a57cd7428d8f7ba02e19458f098cf212
BLAKE2b-256 a70e3f613bc4a405cca75a626da7fcb46bbfc6971d8c757f22ff860a7c4217cf

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7348de26ff5371c82fa67064d34f8f622ec4ac02189750a2b9d9ceec74aa8db1
MD5 0044f735ac85311b4eed4c509deb8211
BLAKE2b-256 5457fda203f2d924dae0f46ffe30447294759512a675f2578ae281d08793dfcc

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 57.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d0645f60423af7f7414a6770ca677474d139ab940df0b62ce2f554a056ef3128
MD5 280e17fbe8c7335145f64de2dd7b88e3
BLAKE2b-256 17f3406c9181891ee566af574c10394646edb687aee2bb8c6596ce5634a7bd48

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: ecclib-1.2.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 53.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.9

File hashes

Hashes for ecclib-1.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 57b68e0ae37f56b683a5f274eab14c5487f74d6f671ee5206f398516c02dba80
MD5 64f221be830e853122da5c2245e16c39
BLAKE2b-256 0bd22a4abd323989b2fecd54ce2369192e36ed0b5f0c429dbd3a2c69fe93632e

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e4b87b0fa9bda920bd3281304b44283bae45f376060ce269ea708839e2f3a06
MD5 a51ef4c7f115e41de5fa461f074b7afa
BLAKE2b-256 d5b41cffdb587321f3f07b31faff29f332449d6eeab122f406bc96f876703e46

See more details on using hashes here.

File details

Details for the file ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 912550608c2a44f5a0353b701123ce1ae4d18b3c64ab1931f0ab95add3bbe992
MD5 6fee7ecfc54e7b6d726c96f3ee52866c
BLAKE2b-256 df1ea956605a432130a94103214d4c07eb4f889370a83b122a247475a8b3da33

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page