eccLib
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:
-
Initialize third party libraries
git submodule update --init --remote
-
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
gccand for Windows realistically speaking you don't have a choice and will have to installmsvc. In order to compile run the following commands -
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)
| File | Size | Uploaded | |
|---|---|---|---|
| ecclib-1.2.0.tar.gz | 136.2 kB | Details |
Built distributions (wheels)
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
|