Skip to main content

Grunnlag

Idea

Grunnlag is a Schema Provider for the Bergen Client accessing your Arnheim Framework

Prerequisites

Bergen (and in Conclusion Grunnlag) only works with a running Arnheim Instance (in your network or locally for debugging).

Usage

In order to initialize the Client you need to connect it as a Valid Application with your Arnheim Instance

from bergen import Bergen

client = Bergen(host="p-tnagerl-lab1",
    port=8000,
  client_id="APPLICATION_ID_FROM_ARNHEIM", 
  client_secret="APPLICATION_SECRET_FROM_ARNHEIM",
  name="karl",
)

In your following code you can simple query your data according to the Schema of the Datapoint

Example 1:

from grunnlag.schema import Node

rep = Representation.objects.get(id=1)
print(rep.shape)

Access a Representation (Grunnlags Implementation of a 5 Dimensional Array e.g Image Stack, Time Series Photography) and display the dimensions

Example 2:

from grunnlag.schema import Representation, Sample
from bergen.query import TypedGQL

samples = TypedGQL("""
query {
  samples(creator: 1){
    id
    representations(name: "initial", dims: ["x","y","z"]) {
      id
      store
    }
  }
}
""", Sample).run({})

for sample in samples:
    print(sample.id)
    for representation in sample.representations:
        print(representation.data.shape)

Get all Samples and include the representations if they have the name "initial" and contains the required dimensions. (An automatically documented and browsable Schema can be found at your Arnheim Instance /graphql)

Example 3:

from grunnlag.schema import Representation, Sample
from bergen.query import TypedGQL
import xarray as xr


massive_array = xr.DataArray(da.zeros(1024,1024,100,40,4), dims=["x","y","z","t","c"])
rep = Representation.objects.from_xarray(massive_array, name="massive", sample=1)

The Grunnlag Implementation allows for upload of massive arrays do to its reliance on Xarray, dask, and zarr, combined with S3 Storage on the Backend. Client Data gets compresed and send over to the S3 Storage and automatically added to the system. (Permissions required!)

Example 4:

from grunnlag.schema import Representation, Sample
from bergen.query import TypedGQL
import xarray as xr
import napari

rep = Representation.objects.get(name="massive", sample=1)

with napari.gui_qt() as gui:
    viewer = napari.view_image(rep.data.sel(c=0).data)

Combined with Napari that is able to handle dask arrays, data visualization of massive Datasets becomes a breeze as only required chunks are downloaded form the storage backend.

Testing and Documentation

So far Grunnlad does only provide limitedunit-tests and is in desperate need of documentation, please beware that you are using an Alpha-Version

Build with

Roadmap

This is considered pre-Alpha so pretty much everything is still on the roadmap

Deployment

Contact the Developer before you plan to deploy this App, it is NOT ready for public release

Versioning

There is not yet a working versioning profile in place, consider non-stable for every release

Authors

  • **Johannes Roos ** - Initial work - jhnnsrs

See also the list of contributors who participated in this project.

License

Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)

Acknowledgments

  • EVERY single open-source project this library used (the list is too extensive so far)

Metadata

Release files for grunnlag 0.4.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for grunnlag 0.4.22
File Size Uploaded Provenance
grunnlag-0.4.22.tar.gz 7.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for grunnlag 0.4.22
File Interpreter ABI Platform
grunnlag-0.4.22-py3-none-any.whl Python 3 none any Details

Total release size: 15.8 kB

Release files / grunnlag-0.4.22.tar.gz

Download URL grunnlag-0.4.22.tar.gz
Size 7.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4cbf3c33daf905268a100624ebc74eaed4a11fcb7e7d461f0009a54e3d48fe50
BLAKE2b-256 checksum
How to use checksums
4f9380aaee287d5bece4fd2b26318d43a19a3f4333b808cecc5d563eb0046898
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.8.6 Linux/5.8.0-55-generic

Release files / grunnlag-0.4.22-py3-none-any.whl

Download URL grunnlag-0.4.22-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07c9265c54d851dad889a8aa42c6d0b5a0fa630855767a443445ba4b9db64115
BLAKE2b-256 checksum
How to use checksums
68d94b369f1f6247f8e9f72e5f348a36ff61082949b39f174f0424ab0e7807cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.4 CPython/3.8.6 Linux/5.8.0-55-generic

Security for grunnlag 0.4.22

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.

Release history Release notifications | RSS feed

This release

0.4.22 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page