Metadata-Version: 2.4
Name: xpmtd
Version: 0.1.5
Summary: Handling experimental metadata, mainly paths needed for various pipeline applications
Author-email: Stephen Lenzi <stephen.lenzi@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/stephenlenzi/xpmtd
Project-URL: Bug Tracker, https://github.com/stephenlenzi/xpmtd/issues
Project-URL: Documentation, https://stephenlenzi.github.io/xpmtd
Project-URL: Source Code, https://github.com/stephenlenzi/xpmtd
Project-URL: User Support, https://github.com/stephenlenzi/xpmtd/issues
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.9.0
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: tox; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: setuptools_scm; extra == "dev"
Dynamic: license-file

# xpmtd


This package is for keeping track of rawdata and derivatives directory structures.
The core principle is that filepaths are deterministic following the NIU
NeuroBlueprint principles (https://neuroblueprint.neuroinformatics.dev/latest/index.html)

Ideally, this package should free users from having to define paths to any
of their data and provide a comfortable api for accessing different data.

TODO: combine with datashuttle


The user needs to specify the path to the root raw data, and the path to the
root derivatives data and a mouse name.

This will then be used to look for and organise the different data sources,
where they have been specified. E.g. for Behaviour, Neuropixels,
and Histological data.

Some example code:

```python
from metadata import MouseMetadata

rawdata_directory = "/path/to/rawdata/"
derivatives_directory = "/path/to/derivatives/"
mouse_id = "mouse_1"

metadata = MouseMetadata(
                           mouse_id,
                           rawdata_directory,
                           derivatives_directory,
                           )                           
``` 

This metadata object can then be used directly in different python
scripts to access and generate filepaths of different types down to 
the session and run level when needed and only needs to be defined 
once per mouse. e.g.:

```python
import run_behaviour analysis # (or whatever)
for s in metadata.sessions:
    behaviour_directory = s.behav_derivatives
    run_behaviour_analysis(behaviour_directory)

```




