A small wrapper around quilt3 to make distributing manifest style datasets even easier.
Project description
quilt3distribute
People commonly work with tabular datasets, people want to share their data, this makes that easier through Quilt3.
Features
- Automatically determines which files to upload based off CSV headers. (Explicit override available)
- Simple interface for attaching metadata to each file based off the manifest contents.
- Groups metadata for files that are referenced multiple times.
- Validates and runs basic cleaning operations on your dataset manifest CSV.
- Optionally add license details and usage instructions to your dataset README.
- Parses README for any referenced files and packages them up as well.
- Support for adding extra files not contained in the manifest.
- Constructs an "associates" map that is placed into each files metadata for quick navigation around the package.
- Enforces that the metadata attached to each file is standardized across the package for each file column.
Quick Start
Construct a csv (or pandas dataframe) dataset manifest (Example):
CellId | Structure | 2dReadPath | 3dReadPath |
---|---|---|---|
1 | lysosome | 2d/1.png | 3d/1.tiff |
2 | laminb1 | 2d/2.png | 3d/2.tiff |
3 | golgi | 2d/3.png | 3d/3.tiff |
4 | myosin | 2d/4.png | 3d/4.tiff |
from quilt3distribute import Dataset
# Create the dataset
ds = Dataset(
dataset="single_cell_examples.csv",
name="single_cell_examples",
package_owner="jacksonb",
readme_path="single_cell_examples.md"
)
# Optionally add common additional requirements
ds.add_usage_doc("https://docs.quiltdata.com/walkthrough/reading-from-a-package")
ds.add_license("https://www.allencell.org/terms-of-use.html")
# Optionally indicate column values to use for file metadata
ds.set_metadata_columns(["CellId", "Structure"])
# Optionally rename the columns on the package level
ds.set_column_names_map({
"2dReadPath": "images_2d",
"3dReadPath": "images_3d"
})
# Distribute
pkg = ds.distribute(push_uri="s3://quilt-jacksonb", message="Initial dataset example")
Returns:
(remote Package)
└─README.md
└─images_2d
└─03cdf019_1.png
└─148ddc09_2.png
└─2b2cf361_3.png
└─312a0367_4.png
└─images_3d
└─a0ce6e01_1.tiff
└─c360072c_2.tiff
└─d9b55cba_3.tiff
└─eb29e6b3_4.tiff
└─metadata.csv
└─referenced_files
└─some_file_referenced_by_the_readme.png
Example Metadata:
pkg["images_2d"]["03cdf019_1.png"].meta
{
"CellId": 1,
"Structure": "lysosome",
"associates": {
"images_2d": "images_2d/03cdf019_1.png",
"images_3d": "images_3d/a0ce6e01_1.tiff"
}
}
Installation
Stable Release: pip install quilt3distribute
Development Head: pip install git+https://github.com/AllenCellModeling/quilt3distribute.git
Credits
This package was created with Cookiecutter. Original repository
Free software: Allen Institute Software License
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
Built Distribution
File details
Details for the file quilt3distribute-0.1.4.tar.gz
.
File metadata
- Download URL: quilt3distribute-0.1.4.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e97bd1556b3dfbf668e73c99d93d73ae78a44091b8b6fef07a3c7e87ceea023d |
|
MD5 | 2a3e5d75d90d59803ad3386a5d76a2be |
|
BLAKE2b-256 | 9eae39436d66dc04715ac52b6c3ded76fbb9afc5c7a51f22d156788ae940a05e |
File details
Details for the file quilt3distribute-0.1.4-py2.py3-none-any.whl
.
File metadata
- Download URL: quilt3distribute-0.1.4-py2.py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8b0a40b0b4f44c9f109f4fbc6cbd11eaccebe4da21949403f3a2d04382aed15 |
|
MD5 | c3ea9132fe3fe9e2d2a2660a0cd6a08f |
|
BLAKE2b-256 | 1fbb7ab719fd92292cd44747738ba82de73cab94820fb2a27a97bdb92b252e22 |