Validation Package bioprofilekit
Language: Python
BioProfileKit; explorative-data-analysis
v0.0.1 released on 06/25/2026
by Sonja Diedrich; Maria Hansen; Julian Hahnfeld; Heinrich Lukas Weil; Jonathan Bauer
60 Downloads
BioProfileKit validation package for explorative data analysis
Install with arc-validate
arc-validate package install bioprofilekit --version 0.0.1
Include in a PLANTDataHUB CQC pipeline
validation_packages:
- name: bioprofilekit
version: 0.0.1
Description
BioProfileKit is a web application for explorative data analysis of biological data.
This python package validates ARCs for containment of relevant data for the BioProfileKit web application.
Release notes
- fixed folder output path again
Browse code for v0.0.1 (python)
"""
---
Name: bioprofilekit
MajorVersion: 0
MinorVersion: 0
PatchVersion: 1
Summary: BioProfileKit validation package for explorative data analysis
Description: |
BioProfileKit is a web application for explorative data analysis of biological data.
This python package validates ARCs for containment of relevant data for the BioProfileKit web application.
Publish: true
Authors:
- FullName: Sonja Diedrich
Email: sonja.diedrich@computational.bio.uni-giessen.de
Affiliation: JLU Giessen
AffiliationLink: https://www.uni-giessen.de
- FullName: Maria Hansen
Email: maria.hansen@computational.bio.uni-giessen.de
Affiliation: JLU Giessen
AffiliationLink: https://www.uni-giessen.de
- FullName: Julian Hahnfeld
Email: julian.hahnfeld@computational.bio.uni-giessen.de
Affiliation: JLU Giessen
AffiliationLink: https://www.uni-giessen.de
- FullName: Heinrich Lukas Weil
Email: weil@rptu.de
Affiliation: RPTU Kaiserslautern-Landau
AffiliationLink: https://www.rptu.de
- FullName: Jonathan Bauer
Email: jonathan.bauer@rz.uni-freiburg.de
Affiliation: University of Freiburg
AffiliationLink: https://uni-freiburg.de
Tags:
- Name: BioProfileKit
- Name: explorative-data-analysis
ReleaseNotes: |
- fixed folder output path again
CQCHookEndpoint: https://bioprofilekit.computational.bio/ready
---
"""
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "arctrl==3.1.0",
# "arcexpect==0.0.3",
# ]
# ///
from __future__ import annotations
import argparse
from pathlib import Path
from arctrl import ARC, start_as_task, DataContext
from arcexpect import Execute, Expect, Setup, test_case, test_list
parser = argparse.ArgumentParser(description="Validate an ARC for BioProfileKit submission.")
parser.add_argument("-i", "--input", required=True, type=Path, help="Path to the ARC directory")
parser.add_argument("-o", "--output", required=False, type=Path, help="Directory for validation results")
args = parser.parse_args()
output_dir = str(args.output if args.output else args.input)
arc: ARC | None = None
arc_error: str | None = None
try:
arc = ARC.load(str(args.input))
except Exception as e:
arc_error = str(e)
def get_datamaps() -> list:
datamaps = []
for study in arc.Studies:
datamaps.append(study.Datamap)
for assay in arc.Assays:
datamaps.append(assay.Datamap)
for workflow in arc.Workflows:
datamaps.append(workflow.Datamap)
for run in arc.Runs:
datamaps.append(run.Datamap)
return datamaps
# def datacontext_is_relevant(datacontext : DataContext) -> bool:
# return datacontext.Explication.NameText != "" and datacontext.FilePath != None
def arc_has_datamap() -> None:
datamaps = get_datamaps()
Expect.is_true(len(datamaps) > 0, "No datamap found in the ARC.")
if arc_error is not None:
testList = [test_case("load ARC", lambda: Expect.is_true(False, f"Failed to load ARC: {arc_error}"))]
else:
testList = [
test_case("load ARC", lambda: None),
test_case("Datamap", arc_has_datamap),
]
package = Setup.validation_package_from_script(
__file__,
critical=[
test_list(
"BioProfileKit ARC validation",
testList
)
],
)
Execute.validation_pipeline(package, output_dir)
Available versions
| Version | Released on |
|---|---|
| 0.0.1 | 06/25/2026 |