bconv: Python library for converting between BioNLP formats
bconv offers format conversion and manipulation of documents with text and annotations.
It supports various popular formats used in natural-language processing for biomedical texts.
Supported formats
The following formats are currently supported:
| Name | I | O | T | A | Description |
|---|---|---|---|---|---|
bioc_xml, bioc_json |
✓ | ✓ | ✓ | ✓ | BioC |
bionlp |
✓ | ✓ | BioNLP stand-off | ||
brat |
✓ | ✓ | brat stand-off | ||
conll |
✓ | ✓ | ✓ | ✓ | CoNLL |
europepmc, europepmc.zip |
✓ | ✓ | Europe-PMC JSON | ||
pubtator, pubtator_fbk |
✓ | ✓ | ✓ | ✓ | PubTator |
pubmed, pxml |
✓ | ✓ | PubMed abstracts | ||
pmc, nxml |
✓ | ✓ | PMC full-text | ||
pubanno_json, pubanno_json.tgz |
✓ | ✓ | ✓ | ✓ | PubAnnotation JSON |
csv, tsv |
✓ | ✓ | comma/tab-separated values | ||
text_csv, text_tsv |
✓ | ✓ | ✓ | comma/tab-separated values | |
txt |
✓ | ✓ | ✓ | plain text | |
txt.json |
✓ | ✓ | ✓ | collection of plain-text documents |
I: input format; O: output format; T: can represent text; A: can represent annotations (entities).
Installation
bconv is hosted on PyPI, so you can use pip to install it:
$ pip install bconv
Usage
Load an annotated collection in BioC XML format:
>>> import bconv
>>> coll = bconv.load('path/to/example.xml', fmt='bioc_xml')
>>> coll
<Collection with 37 documents at 0x7f1966e4b3c8>
A Collection is a sequence of Document objects:
>>> coll[0]
<Document with 12 sections at 0x7f1966e2f6d8>
Documents contain Sections, which contain Sentences:
>>> sent = coll[0][3][5]
>>> sent.text
'A Live cell imaging reveals that expression of GFP‐KSHV‐TK, but not GFP induces contraction of HeLa cells.'
Find the first annotation for this sentence:
>>> e = next(sent.iter_entities())
>>> e.start, e.end, e.text
(571, 578, 'KSHV‐TK')
>>> e.metadata
{'type': 'gene/protein', 'ui': 'Uniprot:F5HB62'}
Write the whole collection to a new file in CoNLL format:
>>> with open('path/to/example.conll', 'w', encoding='utf8') as f:
... bconv.dump(coll, f, fmt='conll', tagset='IOBES', include_offsets=True)
Documentation
bconv is documented in the GitHub wiki.
Metadata
Release files for bconv 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| bconv-1.2.1.tar.gz | 35.6 kB | Without provenance | Details for bconv-1.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bconv-1.2.1-py3-none-any.whl | Python 3 | none | any | Details for bconv-1.2.1-py3-none-any.whl |
Total release size: 77.7 kB
Release files / bconv-1.2.1.tar.gz
| Download URL | bconv-1.2.1.tar.gz |
|---|---|
| Size | 35.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
123ced08350eb6d74fc2f0d86c407f77f2c89ae46dbd46895186ab639b52fd4d
|
|
BLAKE2b-256 checksum How to use checksums |
7ec7ac9b87c1fc51b81f57347cb13695d578dd478fb586c06bf94212affffca2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.1 CPython/3.10.6 Linux/5.19.0-38-generic
|
Release files / bconv-1.2.1-py3-none-any.whl
| Download URL | bconv-1.2.1-py3-none-any.whl |
|---|---|
| Size | 42.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
832884c697ec4eea2020587a47014fd5cd27744053bf2c36e0525d36b69a3f97
|
|
BLAKE2b-256 checksum How to use checksums |
cef978dd23cb5f496d5c3f06dbf73ec9190ab7a31580448187f578adfd3e943f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.1 CPython/3.10.6 Linux/5.19.0-38-generic
|
Security for bconv 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.