Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mesh generation utils #27

Merged
merged 14 commits into from May 31, 2020
Merged

Mesh generation utils #27

merged 14 commits into from May 31, 2020

Conversation

FedeClaudi
Copy link
Contributor

Two main changes:

in volume_utils create_masked_array facilitates the creation of binary mask arrays for surface extraction

in mesh_tuils extract_mesh_from_mask automates the extraction of clean surface mesh with marching cubes, morphological transformations and vtkplotter magic.

@FedeClaudi FedeClaudi marked this pull request as draft May 29, 2020 10:56
@FedeClaudi
Copy link
Contributor Author

FedeClaudi commented May 29, 2020

With some parallel processing:
Creating meshes for 141 structures took: 187.711s

Main changes:

  • mesh_utils.extract_mesh_from_mask is faster
  • volume_utils.extract_volume_surface has been moved to mesh_utils.extract_mesh_from_mask_fast and improved
  • added parallel processing for mesh extraction in humanatlas.py
  • added 'mesh_utils.inspect_meshses_folder` to quickly inspect all .obj files in a folder

!!! mesh_utils.extract_mesh_from_mask limitation:
while mesh_utils.extract_mesh_from_mask very well to create better root meshes (#21) it sometimes fails with small structures made of two separate volumes (e.g. left and right amygdala). In this case the marching cubes algorithm sometimes only finds one of the two. However for this kind of structures, mesh_utils.extract_mesh_from_mask_fast is preferable anyways.

@FedeClaudi
Copy link
Contributor Author

#TODO: add methods to compare annotate volumetric data with meshes created during atlas generation to asses the quality of the meshes' fit to the original data

@FedeClaudi
Copy link
Contributor Author

merged extract_mesh_from_mask_fast and extract_mesh_from_mask into extract_mesh_from_mask. The default behaviour is that of extract_mesh_from_mask_fast which is more accurate and faster. Using the morphological transformations the resulting meshes are still good.

@vigji
Copy link
Member

vigji commented May 29, 2020

#TODO: add methods to compare annotate volumetric data with meshes created during atlas generation to asses the quality of the meshes' fit to the original data

This could be handled simply interpolating back stack from meshes and then compare if something has disappeared and if too many voxels are misassigned

@FedeClaudi
Copy link
Contributor Author

yeah, that would be good.

Meanwhile I've added this viewer: #24 (comment)

@FedeClaudi FedeClaudi marked this pull request as ready for review May 29, 2020 16:33
@FedeClaudi
Copy link
Contributor Author

@adamltyson does your code generate a mesh for every structure? With mine there are some for which I can't, I think it's mostly because the annotated volume is annotate at a fairly high hierarchical level so all the children of the regions in the atlas I can't generate a mesh for, but maybe I'm doing something else wrong.

I've merged your code on my branch as well btw.

@FedeClaudi FedeClaudi mentioned this pull request May 29, 2020
@adamltyson
Copy link
Member

does your code generate a mesh for every structure?

Yeah, it extracts every region, but I haven't fully tested it. Might be being dumb.

@FedeClaudi
Copy link
Contributor Author

So one of the problems with the human brain atlas is that the regions that are represented in the annotated volume are fairly high in the structure tree ('True' below):
image

so any region that is children to these there's not much we can do about.

@vigji
Copy link
Member

vigji commented May 29, 2020

If the problem is to small meshes maybe we could default a sphere of small radius as mesh?

@FedeClaudi
Copy link
Contributor Author

FedeClaudi commented May 29, 2020

No the problem is that if, say, one of the regions that is in the annotated volume has two children, A and B, I don't now which of the region's voxels belong to A and which to B. So I can't create a mesh for the subregions.

I ended pruning the tree to remove structures for which we can't provide a mesh, though not sure what we prefer to do in these cases.

By the way, the tests fail because of this:

E       FileNotFoundError: [Errno 2] No such file or directory: '/home/travis/.brainglobe/test/metadata.json'

I'll try uploading a version of the test atlas with metadata.json instead of atlas_metadata.json.

@FedeClaudi
Copy link
Contributor Author

@vigji and @adamltyson this is failing because of something wrong on the windows build, but it's passing all tests locally on a Window's machine.

I've made a bunch of changes so I'd suggest merging and then trying to figure out what's causing the failures.

@vigji
Copy link
Member

vigji commented May 31, 2020

Sorry for leaving this aside for a bit. Yes, it looks like a vtkplotter problem. Ideally though we should not get to ask for it at all when testing stuff in the core, yet it's invoked.

I think that the problem is having the description in the script_utils - as it totally makes sense to have them available in the whole package, just maybe move it into the brainatlas_api module would fix this. Then we can clean up tests in a separate branch

@vigji
Copy link
Member

vigji commented May 31, 2020

No the problem is that if, say, one of the regions that is in the annotated volume has two children, A and B, I don't now which of the region's voxels belong to A and which to B. So I can't create a mesh for the subregions.

So there are children that are not annotated in the annotation stack?

I ended pruning the tree to remove structures for which we can't provide a mesh, though not sure what we prefer to do in these cases.

If there's no voxels assigned to a region, I would prune it out from the tree. We can have a warning about that.

By the way, the tests fail because of this:

E       FileNotFoundError: [Errno 2] No such file or directory: '/home/travis/.brainglobe/test/metadata.json'

I'll try uploading a version of the test atlas with metadata.json instead of atlas_metadata.json.

Sorry, this was my mess for multiple versions.

This is why if you and @adamltyson agree I would have the version tag not specified in the scrip on a -per-brain fashion but in the descriptors together with the rest - this might still raise problems while we all work simultaneously but should give more stability later - what would you think?

@FedeClaudi
Copy link
Contributor Author

If there's no voxels assigned to a region, I would prune it out from the tree. We can have a warning about that.

Yeah I pruned them.

This is why if you and @adamltyson agree I would have the version tag not specified in the scrip on a -per-brain fashion but in the descriptors together with the rest

To fix the errors I've removed version from name but I've kept it as another attribute in addition to atlas_name. Happy to find other solutions, but I'd suggest merging this first to make sure everything is updated. You might also want to use the methods in mesh_utils to make a better root for the fish atlas, it worked well for the human atlas.

@vigji
Copy link
Member

vigji commented May 31, 2020

Ok, great - I will merge it and fix it

@vigji vigji merged commit c524330 into master May 31, 2020
willGraham01 pushed a commit that referenced this pull request Feb 14, 2024
* Added atlas generation script for the Princeton mouse brain atlas. Modified mesh_utils.py for fix.

* Modified atlas minor version, changed atlas orientation, and removed unnecessary html fetch of region hierarchy.

* Finalised atlas minor version.

Co-authored-by: Sam <sam.clothier.18@ucl.ac.uk>
willGraham01 added a commit that referenced this pull request Feb 23, 2024
* Initial commit

* Update README.md

* First commit

* gitignore

* Almost at complete atlas autogeneration

* Finalized script for automatic atlas generation

* Added template script for atlas generation

* Template description

* First working version of script for auto deployment

* Fixed metadata link

* Trying to fix windows permission error when deleting folders

* add 50um to allen mouse

* v1.2 for allen mouse

* blacked

* Update requirements

* vtkplotter -> vedo

* Format with black

* Update kim mouse atlas generation

* Improve downsampling

* revert roations

* add kim to main script

* rotate annotation volume for meshes

* add osten mouse atlas

* Added function for creating intermediate hierarchy structures masks

* Fix extract_largest_region and compare_mesh_volume

* reformat with black

* save additional metadata

* consistent syntax for empty dict

* Update docstring

* Add atlas packager metadata

* python 3.8 compatibility

* Add mouse spinal cord atlas

* add WHS SD Rat atlas

* add xmltodict to requirements.txt

* remove structures that are missing from annotation volume

* remove structures that are missing from annotation volume

* Fixed vedo Slicer import issue

* Update mesh_utils.py

* Create azba_zfish.py

* Standardise temporary output directory

* add [allenmouse] extra dependency (#17)

* Allow multiple downloads at once, updated citation

* Mesh cleaning improvements (#15)

* gitignore: added vscode

* gitignore: added vscode

* added rich fancy traceback for easier debugging

* replaced mesh cleaning with decimation

* pre-commit cleanup

* added TEST mode to atlas creation

* added smoothing options to all atlas gen scripts

* removed ratlas.py since outdated and theres a better atlas

* atlas gen update

* added smoothing and decimation to adult zebrafish atlas

Co-authored-by: Luigi Petrucco <luigi.petrucco@gmail.com>

* Update azba_zfish.py

Changing the reference file to be af and the additional references to be topro

* some fixes for mpin atlas

* Fix tiny typo (#22)

* Update README.md

* Add lsfm atlas script (#18)

* Update lsfm mouse atlas script

* 2nd update LSFM mouse atlas script

Co-authored-by: Johanna <johanna.perens@gmail.com>
Co-authored-by: Johanna Perens <jpe@gubra.dk>

* Update requirements.txt

* Add ADMBA 3D developing mouse atlases (#25)

* Add ADMBA 3D developing mouse atlases

Extend the `mouse_e15_5` script by @pr4deepr to build all the atlases in the 3D reconstructed version of the Allen Developing Mouse Brain Atlas series. This build script is essentially the same except for the addition of a data class to configure the atlas parameters, which is implemented for each atlas.

* Fix atlas orientation to LSA

Change the input orientation to LSA to fit the NumPy convention used in BrainGlobe. Add docstrings describing the orientation and resolution assumptions in the configuration data class.

* Update package authors

* Add script for the Princeton mouse brain atlas. (#27)

* Added atlas generation script for the Princeton mouse brain atlas. Modified mesh_utils.py for fix.

* Modified atlas minor version, changed atlas orientation, and removed unnecessary html fetch of region hierarchy.

* Finalised atlas minor version.

Co-authored-by: Sam <sam.clothier.18@ucl.ac.uk>

* KimLabDevCCFv001 (neuroinformatics team form) (#31)

* Create KimLabDevCCFv001.py

* Update KimLabDevCCFv001.py

* Update and rename KimLabDevCCFv001.py to KimLabDevCCF.py

* Update KimLabDevCCF.py

* first commit

* updated up to mesh creation, working through VTK type error

* kimlabdevccf working version 1 reference only

* rename atlasgen file

* start adding additional references

* add filenames for additional references

* fix unfinished handling of multi-templates

* update pre-commit black version to fix error with _unicode fun import from click

* tidy and install pre-commit

* fix change of plotter I erronoeusly made when using older python version

* testing kim atlsa with additional references

* Update requirements.txt

* add loguru requirement (at least windows 10)

* fix VTK type error

* remove path

* remove test code

* update to new download dir

* used to run atlas

* update atlas code for general use

* remove standard tempalte from additional references

* further clean up

* edit to run in single script

* fix False flag used to not run meshes

* get working on UNIX

* use PARALLEL and update atlas name

* update template key STP to stp

Co-authored-by: NovaFae <33562343+faekronman@users.noreply.github.com>
Co-authored-by: Adam Tyson <code@adamltyson.com>

* Add testing config (#35)

* Add testing config

* Specify branchs for workflow trigger

* Bump pre-commit versions

* Fix cov flag

* Run black on code base

* Clean up requirements

* Move requirements to setup.py

* Fix setup.py black

* Replace brainglobe with NI actions (#37)

* Use pyproject.toml

* Update supported Python metadata

* Clean manifest check

* Remove cibuildwheel config

* Catch warnings during tests (#39)

* Add standard pre-commit config (#40)

* Add standard pre-commit config

* Add automated pre-commit fixes

* Ignore line too long

* Fix branches that CI is run on (#42)

* Update link (#48)

* [pre-commit.ci] pre-commit autoupdate (#49)

updates:
- [github.com/charliermarsh/ruff-pre-commit: v0.0.240 → v0.0.272](astral-sh/ruff-pre-commit@v0.0.240...v0.0.272)
- [github.com/psf/black: 23.1.0 → 23.3.0](psf/black@23.1.0...23.3.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#50)

updates:
- [github.com/charliermarsh/ruff-pre-commit: v0.0.272 → v0.0.275](astral-sh/ruff-pre-commit@v0.0.272...v0.0.275)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#52)

updates:
- https://github.com/charliermarsh/ruff-pre-commithttps://github.com/astral-sh/ruff-pre-commit
- [github.com/astral-sh/ruff-pre-commit: v0.0.275 → v0.0.276](astral-sh/ruff-pre-commit@v0.0.275...v0.0.276)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#53)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.276 → v0.0.277](astral-sh/ruff-pre-commit@v0.0.276...v0.0.277)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#54)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.277 → v0.0.278](astral-sh/ruff-pre-commit@v0.0.277...v0.0.278)
- [github.com/psf/black: 23.3.0 → 23.7.0](psf/black@23.3.0...23.7.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#55)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.278 → v0.0.280](astral-sh/ruff-pre-commit@v0.0.278...v0.0.280)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#57)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.280 → v0.0.281](astral-sh/ruff-pre-commit@v0.0.280...v0.0.281)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#59)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.281 → v0.0.282](astral-sh/ruff-pre-commit@v0.0.281...v0.0.282)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Update to newer vedo API (#58)

* [pre-commit.ci] pre-commit autoupdate (#64)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.282 → v0.0.284](astral-sh/ruff-pre-commit@v0.0.282...v0.0.284)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* scale mesh points before mapping to new anatomical space (#62)

Co-authored-by: Will Graham <32364977+willGraham01@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#66)

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.284 → v0.0.285](astral-sh/ruff-pre-commit@v0.0.284...v0.0.285)

* update type assertion

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Adam Tyson <code@adamltyson.com>

* [pre-commit.ci] pre-commit autoupdate (#67)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.285 → v0.0.286](astral-sh/ruff-pre-commit@v0.0.285...v0.0.286)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Set pre-commit autoupdate frequency to monthly (#68)

* [pre-commit.ci] pre-commit autoupdate (#70)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.286 → v0.0.287](astral-sh/ruff-pre-commit@v0.0.286...v0.0.287)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#83)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.287 → v0.0.292](astral-sh/ruff-pre-commit@v0.0.287...v0.0.292)
- [github.com/psf/black: 23.7.0 → 23.9.1](psf/black@23.7.0...23.9.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#95)

updates:
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](pre-commit/pre-commit-hooks@v4.4.0...v4.5.0)
- [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.4](astral-sh/ruff-pre-commit@v0.0.292...v0.1.4)
- [github.com/psf/black: 23.9.1 → 23.10.1](psf/black@23.9.1...23.10.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#107)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.4 → v0.1.6](astral-sh/ruff-pre-commit@v0.1.4...v0.1.6)
- [github.com/psf/black: 23.10.1 → 23.11.0](psf/black@23.10.1...23.11.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#109)

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.6 → v0.1.9](astral-sh/ruff-pre-commit@v0.1.6...v0.1.9)
- [github.com/psf/black: 23.11.0 → 23.12.1](psf/black@23.11.0...23.12.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* draft validation functions (#90)

* draft validation functions

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* run on all atlases, don't crash on assertion error

* fixing atlas path

* Clearer output printing

* tidy up validation script, remove weird test_git

* add dev install, make test structure, initial tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add tests and return for _assert_close()

* add test for validate mesh matches annotation

* fix linting

* update version for actions

* drop py3.8 in tox, run pytest in tox

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix copy-paste error in pytest command

* drop py3.8 from gh action workflow file too

* Adding docstrings to validation script

* Making path tests stricter, breaking up long strings, adding diff_tolerance argument to _assert_close function

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* restructuring validate_mesh_matches_image_extents function, adding comments

* testing expected files and  meshes directory separately

* looping through validation functions and parameters to catch individual errors

* removing hard coded path, generalising to all atlases

* adding successful_validations list

* tidying up duplications

* fix recursive bug

* addressing Niko's final comments, cleaning code

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>
Co-authored-by: alessandrofelder <a.felder@ucl.ac.uk>

* Structure validation (#110)

* draft validation functions

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* run on all atlases, don't crash on assertion error

* fixing atlas path

* Clearer output printing

* tidy up validation script, remove weird test_git

* add dev install, make test structure, initial tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add tests and return for _assert_close()

* add test for validate mesh matches annotation

* fix linting

* update version for actions

* drop py3.8 in tox, run pytest in tox

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix copy-paste error in pytest command

* drop py3.8 from gh action workflow file too

* Adding docstrings to validation script

* wip: draft structure validation function

* Making path tests stricter, breaking up long strings, adding diff_tolerance argument to _assert_close function

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* restructuring validate_mesh_matches_image_extents function, adding comments

* testing expected files and  meshes directory separately

* looping through validation functions and parameters to catch individual errors

* removing hard coded path, generalising to all atlases

* adding successful_validations list

* tidying up duplications

* fix recursive bug

* checkout finished validate_atlases.py from validation branch

* adding validate_mesh_structure_pairs function

* Update bg_atlasgen/validate_atlases.py

Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

* adding assertion to validate_mesh_structure_pairs function

* checking IDs via bg_atlasapi, checking if IDs have mesh files and accesible through the atlas

* Update bg_atlasgen/validate_atlases.py

Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

* passing atlas_name to validate_mesh_structure_pairs function

* addressing Niko's final comments, cleaning code

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>
Co-authored-by: alessandrofelder <a.felder@ucl.ac.uk>

* simplify validation function (#113)

* simplify validation function

- all validation functions just take an atlas object
- means we don't need a parameters list
- also simplify output list to be dicts of lists mapping the atlas name to values

- another advantage of this is that it simplifies mocking of atlas functions in the tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix bug found in code review

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#117)

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.9 → v0.2.0](astral-sh/ruff-pre-commit@v0.1.9...v0.2.0)
- [github.com/psf/black: 23.12.1 → 24.1.1](psf/black@23.12.1...24.1.1)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Add manifest to ci (#118)

* Add manifest to CI

* Standardise tox.ini into pyproject

* printing data frames with validation function information (#115)

* first test functions for validate_mesh_structure_pairs

* storing atlases and successful/failed validation functions in a data frame

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* restoring test_validation.py to the original merged version. Chages are implemented on another branch

* validate_atlases.py: going back to the version on main, appending only the name of the successful and failed functions (not the function object) to lists in validate_atlases function

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* populating dictionaries in for loop, writing JSON files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* saving JSON files to ~/.brainglobe/atlases/validation

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* printing where to find the result files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update bg_atlasgen/validate_atlases.py

Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

* Update bg_atlasgen/validate_atlases.py

removing unused variables

Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* saving only one JSON file with all the information

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* uncommenting test functions

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

* bg-atlasapi -> brainglobe-atlasapi

* bg_atlasapi -> brainglobe_atlasapi, package restructure

* Move tests for API into separate subfolder

* Revert "bg_atlasapi -> brainglobe_atlasapi, package restructure"

This reverts commit 120c3b2.

* bg_atlasapi -> brainglobe_atlasapi, package restructure

* Update manifest

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Pre-commit pass

* fixing small bug: validation_functions function argument as variable instead of all_validation_functions (#119)

* Bump NIU action versions

* Move conftest back to top-level directory

* Refactor atlasgen into a submodule

* pre-commit pass

* test functions for validate_mesh_structure_pairs (#114)

* first test functions for validate_mesh_structure_pairs

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* adding docstring

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* writing docstrings to explain the behaviour of the test functions

* validate_atlases.py: updated validate_mesh_structure_pairs function, test_validation.py: updated tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* spliting validate_mesh_structure_pairs function, checking mesh files and structures separately

* writing tests for catch_missing_mesh_files and catch_missing_structures validation functions

* creating an atlas with a missing structure to test catch_missing_structures function

* Update tests/test_unit/test_validation.py

Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

* Revert "Prepare for merge and rename (#198)"

This reverts commit 9d5317d.

* Update pyproject.toml

Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>

---------

Co-authored-by: Luigi Petrucco <luigi.petrucco@gmail.com>
Co-authored-by: Adam Tyson <adam.tyson@ucl.ac.uk>
Co-authored-by: Mathieu <mbourdenx@me.com>
Co-authored-by: Adam Tyson <code@adamltyson.com>
Co-authored-by: Ben Kantor <benkantor@gmail.com>
Co-authored-by: Kailyn Fields <84587654+kailynkfields@users.noreply.github.com>
Co-authored-by: Federico Claudi <federicoclaudi@protonmail.com>
Co-authored-by: Gubra-ApS <61732801+Gubra-ApS@users.noreply.github.com>
Co-authored-by: Johanna <johanna.perens@gmail.com>
Co-authored-by: Johanna Perens <jpe@gubra.dk>
Co-authored-by: David Young <david@textflex.com>
Co-authored-by: Sam Clothier <sclothier52918@gmail.com>
Co-authored-by: Sam <sam.clothier.18@ucl.ac.uk>
Co-authored-by: Joe Ziminski <55797454+JoeZiminski@users.noreply.github.com>
Co-authored-by: NovaFae <33562343+faekronman@users.noreply.github.com>
Co-authored-by: David Stansby <dstansby@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Felder <alessandrofelder@users.noreply.github.com>
Co-authored-by: viktorpm <50667179+viktorpm@users.noreply.github.com>
Co-authored-by: alessandrofelder <a.felder@ucl.ac.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants