Skip to main content

Basic Schema for interacting with Arnheim through Bergen

Project description

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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grunnlag-0.2.12.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grunnlag-0.2.12-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file grunnlag-0.2.12.tar.gz.

File metadata

  • Download URL: grunnlag-0.2.12.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.8.0-43-generic

File hashes

Hashes for grunnlag-0.2.12.tar.gz
Algorithm Hash digest
SHA256 4c6838705b29ec8b80cf6ebb7a606e235ad0a9cb707ce38937b84c83b878c991
MD5 14339117b2049bdb27dcf5de87ca27a9
BLAKE2b-256 96604da80ba7245e4be7995f4d04c81acf28c23a3cb939b697f05f1106517f27

See more details on using hashes here.

File details

Details for the file grunnlag-0.2.12-py3-none-any.whl.

File metadata

  • Download URL: grunnlag-0.2.12-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.8.0-43-generic

File hashes

Hashes for grunnlag-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 b76671af1e88b428c87d36ec57528440b29b9b7e6d9ea323bdc8cabd840b8d05
MD5 ccb057a3d9241158343d5578e65cb9d5
BLAKE2b-256 0286747123090e9f721ff5a6da1fae04d4e6dd34523f523c50e7cedca2553d96

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page