Skip to content

Commit 04b5341

Browse files
authored
Merge pull request #1153 from AllenNeuralDynamics/release-v1.2.0
Release v1.2.0
2 parents 73701a9 + 4a0b629 commit 04b5341

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+71116
-61371
lines changed

.github/workflows/run_dev_tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ on:
44
pull_request:
55
branches:
66
- dev
7+
merge_group:
8+
branches:
9+
- dev
710

811
jobs:
912
linters:

.github/workflows/run_main_tests.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ on:
55
branches:
66
- '*release*'
77
- main
8+
merge_group:
9+
branches:
10+
- '*release*'
11+
- main
812

913
jobs:
1014
linters:

docs/source/quality_control.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ We recommend that you write PNG files for images and static multi-panel figures,
7272

7373
**Metadata**
7474

75-
We'll post documentation on how to append `QCEvaluations` to pre-existing quality_control.json files, via DocDB using the `aind-data-access-api`, in the future.
75+
We'll post documentation on how to append `QCEvaluations` to pre-existing quality_control.json files, via DocDB using the `aind-data-access-api`, in the future. For now, you can refer to the code snippet in the [`aind-qc-capsule-example`](https://github.com/AllenNeuralDynamics/aind-qc-capsule-example/).
7676

7777
**References**
7878

@@ -90,18 +90,24 @@ The QC portal automatically calls ``QualityControl.evaluate_status()`` whenever
9090

9191
**Q: How do reference URLs get pulled into the QC Portal?**
9292

93-
Each metric is associated with a reference figure, image, or video. The QC portal can interpret four ways of setting the reference field:
93+
Each metric is associated with a reference figure (PDF preferred), image (png preferred), or video (mp4 preferred). The QC portal can interpret four ways of setting the reference field:
9494

95-
- Provide a relative path to a file in this data asset's S3 bucket
95+
- Provide a relative path to a file in this data asset's S3 bucket, i.e. "figures/my_figure.png". The mount/asset name should not be included.
9696
- Provide a url to a FigURL figure
9797
- Provide the name of one of the interactive plots, e.g. "ecephys-drift-map"
9898

99-
<!-- There are many situations where it's helpful to be able to "swipe" between two images. If you have two identical images separated by a ';' the portal will allow users to swipe between them. For example, you might show snippets of the raw electrophysiology raster with detected spikes overlaid on the swipe. -->
100-
10199
**Q: I saw fancy things like dropdowns in the QC Portal, how do I do that?**
102100

103-
By default the QC portal displays dictionaries as tables where the values can be edited. We also support a few special cases to allow a bit more flexibility or to constrain the actions that manual annotators can take. Install the `aind-qcportal-schema` package and set the `value` field to the corresponding pydantic object to use these.
101+
By default the QC portal displays dictionaries as tables where the values can be edited. We also support a few special cases to allow a bit more flexibility or to constrain the actions that manual annotators can take. Install the [`aind-qcportal-schema`](https://github.com/AllenNeuralDynamics/aind-qcportal-schema/blob/dev/src/aind_qcportal_schema/metric_value.py) package and set the `value` field to the corresponding pydantic object to use these.
102+
103+
### Multi-asset QC
104+
105+
During analysis there are many situations where multiple data assets need to be pulled together, often for comparison. For example, FOVs across imaging sessions or recording sessions from a chronic probe might need to get matched up across days. When a `QCEvaluation` is being calculated from multiple assets it should be tagged with `Stage:MULTI_ASSET` and each of its `QCMetric` objects needs to track the assets that were used to generate that metric in the `evaluated_assets` list.
106+
107+
**Q: Where do I store multi-asset QC?**
108+
109+
You should follow the preferred/alternate workflows described above. If your multi-asset analysis pipeline generates a new data asset, put the QC there. If your pipeline does not generate an asset, push a copy of each `QCEvaluation` back to **each** individual data asset.
104110

105-
### Multi-session QC
111+
**Q: I want to be able to store data about each of the evaluated assets in this metric**
106112

107-
[Details coming soon, this is under discussion]
113+
Take a look at the `MultiAssetMetric` class in `aind-qc-portal-schema`. It allows you to pass a list of values which will be matched up with the `evaluated_assets` names. You can also include options which will appear as dropdowns or checkboxes.

docs/source/session.rst

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@ the Stimulus Class, but the trial-by-trial stimulus information belongs in the N
5959

6060
Great question! We began defining specific classes for different stimulus and behavior modalities, but quickly found
6161
that this won't be scalable. You can currently use these classes if they work for you. However, in the long run we
62-
would like this to move into the `script` field. This field uses the Software class, which has a field for stimulus
63-
parameters, where users can define their own dictionary of parameters used in the script to control the stimulus/
64-
behavior. We recommend that you use software to define these and be consistent within your projects. Please reach out
65-
with questions and we can help you with this.
62+
would like this to move into the `script` field. This field uses the Software class, which has a field for
63+
`parameters`. Users should use this to document the parameters used to control the stimulus or behavior. parameters
64+
should have unambiguous names (e.g. "trial_duration" rather than "duration") and units must be provided as a separate
65+
field (e.g. "trial_duration_unit"). We recommend that you use software to define these and be consistent within your
66+
projects. Please reach out with questions and we can help you with this.
6667

6768
**Q: What should I put for the `session_type`?**
6869

@@ -77,8 +78,8 @@ and SLIMS. Until this is fully functional, these files must be created manually.
7778
**Q: How do I know if my mouse platform is "active"?**
7879

7980
There are experiments in which the mouse platform is actively controlled by the stimulus/behavior software - i.e. the
80-
resistance of the wheel is adjusted based on the subjects activity. This is an "active" mouse platform. Most platforms
81-
we use are not active in this way.
81+
resistance of the wheel is adjusted based on the subject's activity. This is an "active" mouse platform. Most platforms
82+
we use are currently not active in this way.
8283

8384
**Q: How do I use the Calibration field?**
8485

examples/aibs_smartspim_instrument.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/instrument.py",
3-
"schema_version": "1.0.1",
3+
"schema_version": "1.0.3",
44
"instrument_id": "440_SmartSPIM2_20231004",
55
"modification_date": "2023-10-04",
66
"instrument_type": "SmartSPIM",

examples/aibs_smartspim_procedures.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/procedures.py",
3-
"schema_version": "1.1.1",
3+
"schema_version": "1.1.3",
44
"subject_id": "651286",
55
"subject_procedures": [
66
{

examples/aind_smartspim_instrument.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/instrument.py",
3-
"schema_version": "1.0.1",
3+
"schema_version": "1.0.3",
44
"instrument_id": "440_SmartSPIM1_20231004",
55
"modification_date": "2023-10-04",
66
"instrument_type": "SmartSPIM",

examples/bergamo_ophys_session.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/session.py",
3-
"schema_version": "1.0.1",
3+
"schema_version": "1.0.3",
44
"protocol_id": [],
55
"experimenter_full_name": [
66
"John Doe"

examples/data_description.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/data_description.py",
3-
"schema_version": "1.0.1",
3+
"schema_version": "1.0.3",
44
"license": "CC-BY-4.0",
55
"platform": {
66
"name": "Electrophysiology platform",

examples/ephys_rig.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"describedBy": "https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/core/rig.py",
3-
"schema_version": "1.0.1",
3+
"schema_version": "1.0.3",
44
"rig_id": "323_EPHYS1_20231003",
55
"modification_date": "2023-10-03",
66
"mouse_platform": {
@@ -842,8 +842,8 @@
842842
"firmware_version": null,
843843
"hardware_version": null,
844844
"harp_device_type": {
845-
"name": "Behavior",
846-
"whoami": 1216
845+
"whoami": 1216,
846+
"name": "Behavior"
847847
},
848848
"core_version": "2.1",
849849
"tag_version": null,

0 commit comments

Comments
 (0)