DEMO of the bbconf module
bbconf
is a configuration and management tool for BEDbase, facilitating the reading of configuration file,
setting up connections to PostgreSQL, PEPhub, S3, and Qdrant databases, managing file paths, and storing transformer models.
Introduction
bbconf
is divided into 2 main modules:
- bbconf.config_parser
- reads the configuration file and sets up connections to databases.
BedBaseConfig
class is used to store the passwords, configuration, connection objects, and other information.
bbconf.modules
- contains modules for managingbed_files
,bedsets
, and other common functionalities. Users will mainly use this mudule because it provides classes with methods for managing the database.
Example:
1) Init the BedBaseAgent
class
from bbconf.bbagent import BedBaseAgent
bbagent = BedBaseAgent(bbconf_file_path)
bbconf_file_path
is the path to the configuration file. How to create a configuration file is described in the configuration section.
Upload a bedfile to the database
bbagent.bed.add(
identifier=bed_metadata.bed_digest,
stats=stats.model_dump(exclude_unset=True),
metadata=other_metadata,
plots=plots.model_dump(exclude_unset=True),
files=files.model_dump(exclude_unset=True),
classification=classification.model_dump(exclude_unset=True),
upload_qdrant=upload_qdrant,
upload_pephub=upload_pephub,
upload_s3=upload_s3,
local_path=outfolder,
overwrite=force_overwrite,
nofail=True,
)
Get a bedfile from the database
bed = bbagent.bed.get(identifier=bed_id, full=True,)
Get a bedset from the database
bedset = bbagent.bedset.get(identifier=bedset_id, full=True,)
User can access credentials and other configurations from the BedBaseConfig
class
e.g. to get pephub namespace used in config you can use the following code:
bbagent.config._config["pephub"]["namespace"]
Full API of bbconf can be found here