Skip to main content

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

Metadata

Release files for eccLib 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eccLib 1.2.0
File Size Uploaded
ecclib-1.2.0.tar.gz 136.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for eccLib 1.2.0
File
ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
ecclib-1.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ecclib-1.2.0-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
ecclib-1.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ecclib-1.2.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
ecclib-1.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ecclib-1.2.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
ecclib-1.2.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
ecclib-1.2.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details

Total release size: 5.5 MB

Release files / ecclib-1.2.0.tar.gz

Download URL ecclib-1.2.0.tar.gz
Size 136.2 kB
Tags Source
SHA-256 checksum
How to use checksums
50c440acda03dcf24660702af7dc394f7ad8a6b5bc206e7a0a9429c0f8f22121
BLAKE2b-256 checksum
How to use checksums
bf547bfabd3bc42ff15da0b9f7cfb93d42490db873cd6080c70411e3b41aac8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 443.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
994da328cec550e30a5ec5f58d28a0bc4390a3d72ddd81b38a11b1e130131ec3
BLAKE2b-256 checksum
How to use checksums
24d5dac6bc26264cdb3aea9df64eb0cb03bf8b214bff11901acadf9dce0d34c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 453.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
51ec874cbfd589bde8ab7de62665ae04a77133028d5682516bfaf4ba47325445
BLAKE2b-256 checksum
How to use checksums
061bedcf25f8716505b17238fbf11615d68a090645134c5228a99ba6d3bda5d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 406.1 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d0bbe9d145ca264b4a042a7ce1ae9f9c92ed2c606ad454f360ddcc604643da4c
BLAKE2b-256 checksum
How to use checksums
de6e78670e76929835d09518b257ff5aefb0a5ab7161edfb99f946c3d5ef61dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 412.7 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
59e33afc9c80877d6304f00903142d8e8a7536d0e388ec779cf291ce184a1a32
BLAKE2b-256 checksum
How to use checksums
00f6f5d2b4a5b17d37be87a094bee1f4511119b890868de191da8ae12e8de567
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp313-cp313-win_amd64.whl

Download URL ecclib-1.2.0-cp313-cp313-win_amd64.whl
Size 57.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
69af8f54a4cf516c305755a4f8f5be80b86c4b42647c68a4993f1ec48d23bd51
BLAKE2b-256 checksum
How to use checksums
1616dca09a0d5a62b5ebb47fc03f4556768c049a29a2f8195a894ff756c1f87b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp313-cp313-win32.whl

Download URL ecclib-1.2.0-cp313-cp313-win32.whl
Size 53.8 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
106168166836747cfa3385b90282e665e0488081e29e4b91fcb4f8e7503f8e01
BLAKE2b-256 checksum
How to use checksums
88b7693eead110c964ae4c0127f671e93d0d77015195a7d76c38e68f234879e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 406.1 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
45dc38d801496231c4aaae5d84e738f461142bf6452f8d6286f97712198cd427
BLAKE2b-256 checksum
How to use checksums
c461b354cc7552c3d9968e1ca817c48424334db75bb596b8634e25366d5b0db4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 413.0 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5a9ceeb741a07a96f456b5c54fae3a6240123b103bc64b9f2dc5c3e199be65fb
BLAKE2b-256 checksum
How to use checksums
329fdaf577d6e189273cf95ccaa0d444a8b1c4ff02b05c7cfc3e1faf1a2611ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp312-cp312-win_amd64.whl

Download URL ecclib-1.2.0-cp312-cp312-win_amd64.whl
Size 57.7 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
0de5c89fdd021403c213214ebc19607f281a32836414e6f7265afbffdfc886d6
BLAKE2b-256 checksum
How to use checksums
c24af3a9ad78d5402b54b7d951d335b41ab97c92223c7b6889fdc19a33e4e10c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp312-cp312-win32.whl

Download URL ecclib-1.2.0-cp312-cp312-win32.whl
Size 53.8 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
592a9027f39c85599d3a1504d9645af6a9f8e8fd35e3c73d970abbf492ba333a
BLAKE2b-256 checksum
How to use checksums
587215f874a86c6e9c1fb0cd3f97b6efb6ce1d81fcc76610d72070f931b44a06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 406.0 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5cd73ba7a7a074ff723def0b0e4beb1b39e45611d43eeb5e06d3a34095fe061a
BLAKE2b-256 checksum
How to use checksums
187102d7f659d3c3977f4bd71d84836a60f3cdf9f4aa49b60a0754c4f21126ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 412.2 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7bff823e2428f9cde8c8c14341322c4b9cf86e49d9dbfab5b7142dc08e6482a8
BLAKE2b-256 checksum
How to use checksums
e4a9f7630b137f7eea8b8197187ad4948b0377c0869f3564d1bb4148d17439a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp311-cp311-win_amd64.whl

Download URL ecclib-1.2.0-cp311-cp311-win_amd64.whl
Size 57.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
ccd3152d32a9698da9d39526902ac6234a352cf818694b224d7c3aba4637ad76
BLAKE2b-256 checksum
How to use checksums
2a0fc3a92ffe4522aed9cca0f286d9f5f8a4b31b4bd52cb73bf3f44a2cc31535
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp311-cp311-win32.whl

Download URL ecclib-1.2.0-cp311-cp311-win32.whl
Size 53.4 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
d4bb03ed6d4663c92a13a8df5eaab07664bc69bd7a9ef32dbfd139d5072cc545
BLAKE2b-256 checksum
How to use checksums
c1c7343f8bfcb860b2a6a9d878507dec329ddec3670375cc4f9b1ac835539e09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 396.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4a88f9140a2a28c8e27809186622dbb6f5d41846428520cc619d54bc6cb66090
BLAKE2b-256 checksum
How to use checksums
a70e3f613bc4a405cca75a626da7fcb46bbfc6971d8c757f22ff860a7c4217cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 403.0 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7348de26ff5371c82fa67064d34f8f622ec4ac02189750a2b9d9ceec74aa8db1
BLAKE2b-256 checksum
How to use checksums
5457fda203f2d924dae0f46ffe30447294759512a675f2578ae281d08793dfcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp310-cp310-win_amd64.whl

Download URL ecclib-1.2.0-cp310-cp310-win_amd64.whl
Size 57.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d0645f60423af7f7414a6770ca677474d139ab940df0b62ce2f554a056ef3128
BLAKE2b-256 checksum
How to use checksums
17f3406c9181891ee566af574c10394646edb687aee2bb8c6596ce5634a7bd48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp310-cp310-win32.whl

Download URL ecclib-1.2.0-cp310-cp310-win32.whl
Size 53.6 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
57b68e0ae37f56b683a5f274eab14c5487f74d6f671ee5206f398516c02dba80
BLAKE2b-256 checksum
How to use checksums
0bd22a4abd323989b2fecd54ce2369192e36ed0b5f0c429dbd3a2c69fe93632e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 394.2 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1e4b87b0fa9bda920bd3281304b44283bae45f376060ce269ea708839e2f3a06
BLAKE2b-256 checksum
How to use checksums
d5b41cffdb587321f3f07b31faff29f332449d6eeab122f406bc96f876703e46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release files / ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 402.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
912550608c2a44f5a0353b701123ce1ae4d18b3c64ab1931f0ab95add3bbe992
BLAKE2b-256 checksum
How to use checksums
df1ea956605a432130a94103214d4c07eb4f889370a83b122a247475a8b3da33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

1.2.0 This release

21 release files

1.0.0

29 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page