Skip to content

Commit 78447aa

Browse files
Finalize scripts for OME challenge submission
1 parent 9aa89ee commit 78447aa

File tree

3 files changed

+111
-1
lines changed

3 files changed

+111
-1
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import os
2+
import numpy as np
3+
import pandas as pd
4+
5+
ROOT = "/mnt/lustre-emmy-hdd/usr/u12086/data/flamingo/ngff-v3"
6+
URL_ROOT = "https://radosgw.public.os.wwu.de/n4bi-goe"
7+
8+
9+
def get_directory_size(directory):
10+
total_size = 0
11+
# Walk through all subdirectories and files
12+
for dirpath, dirnames, filenames in os.walk(directory):
13+
for filename in filenames:
14+
filepath = os.path.join(dirpath, filename)
15+
# Only add file size if it is a file (skip if it's a broken symlink)
16+
if os.path.isfile(filepath):
17+
total_size += os.path.getsize(filepath)
18+
19+
size_rd = np.round(total_size / 1e9, 2)
20+
size_rd = f"{size_rd} GB"
21+
return total_size, size_rd
22+
23+
24+
names = [
25+
"Platynereis-H2B-TL.ome.zarr",
26+
"Zebrafish-H2B-short-timelapse.ome.zarr",
27+
"Zebrafish-XSPIM-multiview.ome.zarr",
28+
]
29+
30+
urls = []
31+
written = []
32+
written_human_readable = []
33+
34+
for name in names:
35+
url = f"{URL_ROOT}/{name}"
36+
urls.append(url)
37+
folder = os.path.join(ROOT, name)
38+
size, size_rd = get_directory_size(folder)
39+
written.append(size)
40+
written_human_readable.append(size_rd)
41+
42+
df = {
43+
"url": urls, "written": written, "written_human_readable": written_human_readable,
44+
}
45+
46+
df = pd.DataFrame(df)
47+
df.to_csv("flamingo.csv", index=False)
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Create additional top-level metadata.
2+
3+
import argparse
4+
import os
5+
import json
6+
from glob import glob
7+
8+
9+
def get_series(path):
10+
setups = sorted(glob(os.path.join(path, "**/timepoint*")))
11+
setups = [os.path.relpath(p, path) for p in setups]
12+
return setups
13+
14+
15+
def create_metadata(path):
16+
# TOP LEVEL METADATA
17+
bf_to_raw = {
18+
"attributes": {
19+
"ome": {
20+
"version": "0.5",
21+
"bioformats2raw.layout": 3
22+
}
23+
},
24+
"zarr_format": 3,
25+
"node_type": "group",
26+
}
27+
meta_path = os.path.join(path, "zarr.json")
28+
29+
# This can be safely over-written.
30+
with open(meta_path, "w") as f:
31+
json.dump(bf_to_raw, f)
32+
33+
# OME METADATA
34+
series = get_series(path)
35+
ome_metadata = {
36+
"attributes": {
37+
"ome": {
38+
"version": "0.5",
39+
"series": series
40+
}
41+
},
42+
"zarr_format": 3,
43+
"node_type": "group",
44+
}
45+
meta_folder = os.path.join(path, "OME")
46+
os.makedirs(meta_folder, exist_ok=True)
47+
meta_path = os.path.join(meta_folder, "zarr.json")
48+
with open(meta_path, "w") as f:
49+
json.dump(ome_metadata, f)
50+
51+
52+
def main():
53+
parser = argparse.ArgumentParser()
54+
parser.add_argument("path")
55+
args = parser.parse_args()
56+
create_metadata(args.path)
57+
58+
59+
if __name__ == "__main__":
60+
main()

scripts/ome_challenge/upload_data.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ def upload_data(name):
2525

2626

2727
def main():
28-
name = "Platynereis-H2B-TL.ome.zarr"
28+
# name = "Platynereis-H2B-TL.ome.zarr"
29+
# name = "Zebrafish-H2B-short-timelapse.ome.zarr"
30+
name = "Zebrafish-XSPIM-multiview.ome.zarr"
31+
2932
upload_data(name)
3033

3134

0 commit comments

Comments
 (0)