High-performance library designed for parsing genomic files and analysing genomic context
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50c440acda03dcf24660702af7dc394f7ad8a6b5bc206e7a0a9429c0f8f22121
|
|
| MD5 |
7015c92c1c31e2642b6249c5b2fa884d
|
|
| BLAKE2b-256 |
bf547bfabd3bc42ff15da0b9f7cfb93d42490db873cd6080c70411e3b41aac8f
|
File details
Details for the file ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ecclib-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 443.8 kB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
994da328cec550e30a5ec5f58d28a0bc4390a3d72ddd81b38a11b1e130131ec3
|
|
| MD5 |
f83797e755cf67513a7796b1a3300a4c
|
|
| BLAKE2b-256 |
24d5dac6bc26264cdb3aea9df64eb0cb03bf8b214bff11901acadf9dce0d34c1
|
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
- Download URL: ecclib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 453.7 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51ec874cbfd589bde8ab7de62665ae04a77133028d5682516bfaf4ba47325445
|
|
| MD5 |
8c283bd0cf8c7f074e16afe7b38788aa
|
|
| BLAKE2b-256 |
061bedcf25f8716505b17238fbf11615d68a090645134c5228a99ba6d3bda5d7
|
File details
Details for the file ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ecclib-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 406.1 kB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0bbe9d145ca264b4a042a7ce1ae9f9c92ed2c606ad454f360ddcc604643da4c
|
|
| MD5 |
20489cd91a6b4573bb6f4f34926238f7
|
|
| BLAKE2b-256 |
de6e78670e76929835d09518b257ff5aefb0a5ab7161edfb99f946c3d5ef61dc
|
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
- Download URL: ecclib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 412.7 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59e33afc9c80877d6304f00903142d8e8a7536d0e388ec779cf291ce184a1a32
|
|
| MD5 |
23176f044d08a16d3b0539b1c0c12d97
|
|
| BLAKE2b-256 |
00f6f5d2b4a5b17d37be87a094bee1f4511119b890868de191da8ae12e8de567
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69af8f54a4cf516c305755a4f8f5be80b86c4b42647c68a4993f1ec48d23bd51
|
|
| MD5 |
c680ec9c4057f9f7ddad566258c4b0df
|
|
| BLAKE2b-256 |
1616dca09a0d5a62b5ebb47fc03f4556768c049a29a2f8195a894ff756c1f87b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
106168166836747cfa3385b90282e665e0488081e29e4b91fcb4f8e7503f8e01
|
|
| MD5 |
c1e68ecc8e8015a0d884c6d074e8f880
|
|
| BLAKE2b-256 |
88b7693eead110c964ae4c0127f671e93d0d77015195a7d76c38e68f234879e4
|
File details
Details for the file ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ecclib-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 406.1 kB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45dc38d801496231c4aaae5d84e738f461142bf6452f8d6286f97712198cd427
|
|
| MD5 |
aa4f3a4f3c501845af6b23a94528e41d
|
|
| BLAKE2b-256 |
c461b354cc7552c3d9968e1ca817c48424334db75bb596b8634e25366d5b0db4
|
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
- Download URL: ecclib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 413.0 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a9ceeb741a07a96f456b5c54fae3a6240123b103bc64b9f2dc5c3e199be65fb
|
|
| MD5 |
66c6a758c2eb8c10335b7f05b08958b8
|
|
| BLAKE2b-256 |
329fdaf577d6e189273cf95ccaa0d444a8b1c4ff02b05c7cfc3e1faf1a2611ec
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0de5c89fdd021403c213214ebc19607f281a32836414e6f7265afbffdfc886d6
|
|
| MD5 |
56f57a9e514c38b249f28788fc64a809
|
|
| BLAKE2b-256 |
c24af3a9ad78d5402b54b7d951d335b41ab97c92223c7b6889fdc19a33e4e10c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
592a9027f39c85599d3a1504d9645af6a9f8e8fd35e3c73d970abbf492ba333a
|
|
| MD5 |
a3a6398ebf97f1f26ac61a607232ee0a
|
|
| BLAKE2b-256 |
587215f874a86c6e9c1fb0cd3f97b6efb6ce1d81fcc76610d72070f931b44a06
|
File details
Details for the file ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ecclib-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 406.0 kB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd73ba7a7a074ff723def0b0e4beb1b39e45611d43eeb5e06d3a34095fe061a
|
|
| MD5 |
9a8a22df3b67d2b1f61e94cb821df5d9
|
|
| BLAKE2b-256 |
187102d7f659d3c3977f4bd71d84836a60f3cdf9f4aa49b60a0754c4f21126ea
|
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
- Download URL: ecclib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 412.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bff823e2428f9cde8c8c14341322c4b9cf86e49d9dbfab5b7142dc08e6482a8
|
|
| MD5 |
c438553bd28c47b543fb44904c48eff6
|
|
| BLAKE2b-256 |
e4a9f7630b137f7eea8b8197187ad4948b0377c0869f3564d1bb4148d17439a6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ccd3152d32a9698da9d39526902ac6234a352cf818694b224d7c3aba4637ad76
|
|
| MD5 |
13d93529ec263acbb21d76b045d0053a
|
|
| BLAKE2b-256 |
2a0fc3a92ffe4522aed9cca0f286d9f5f8a4b31b4bd52cb73bf3f44a2cc31535
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4bb03ed6d4663c92a13a8df5eaab07664bc69bd7a9ef32dbfd139d5072cc545
|
|
| MD5 |
722996bdc6696174500308362746ab89
|
|
| BLAKE2b-256 |
c1c7343f8bfcb860b2a6a9d878507dec329ddec3670375cc4f9b1ac835539e09
|
File details
Details for the file ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ecclib-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 396.9 kB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a88f9140a2a28c8e27809186622dbb6f5d41846428520cc619d54bc6cb66090
|
|
| MD5 |
a57cd7428d8f7ba02e19458f098cf212
|
|
| BLAKE2b-256 |
a70e3f613bc4a405cca75a626da7fcb46bbfc6971d8c757f22ff860a7c4217cf
|
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
- Download URL: ecclib-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 403.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7348de26ff5371c82fa67064d34f8f622ec4ac02189750a2b9d9ceec74aa8db1
|
|
| MD5 |
0044f735ac85311b4eed4c509deb8211
|
|
| BLAKE2b-256 |
5457fda203f2d924dae0f46ffe30447294759512a675f2578ae281d08793dfcc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0645f60423af7f7414a6770ca677474d139ab940df0b62ce2f554a056ef3128
|
|
| MD5 |
280e17fbe8c7335145f64de2dd7b88e3
|
|
| BLAKE2b-256 |
17f3406c9181891ee566af574c10394646edb687aee2bb8c6596ce5634a7bd48
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57b68e0ae37f56b683a5f274eab14c5487f74d6f671ee5206f398516c02dba80
|
|
| MD5 |
64f221be830e853122da5c2245e16c39
|
|
| BLAKE2b-256 |
0bd22a4abd323989b2fecd54ce2369192e36ed0b5f0c429dbd3a2c69fe93632e
|
File details
Details for the file ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ecclib-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 394.2 kB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e4b87b0fa9bda920bd3281304b44283bae45f376060ce269ea708839e2f3a06
|
|
| MD5 |
a51ef4c7f115e41de5fa461f074b7afa
|
|
| BLAKE2b-256 |
d5b41cffdb587321f3f07b31faff29f332449d6eeab122f406bc96f876703e46
|
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
- Download URL: ecclib-1.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 402.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
912550608c2a44f5a0353b701123ce1ae4d18b3c64ab1931f0ab95add3bbe992
|
|
| MD5 |
6fee7ecfc54e7b6d726c96f3ee52866c
|
|
| BLAKE2b-256 |
df1ea956605a432130a94103214d4c07eb4f889370a83b122a247475a8b3da33
|