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

Cleaning up core function and structures i/o #35

Merged
merged 3 commits into from Jun 3, 2020
Merged

Conversation

vigji
Copy link
Member

@vigji vigji commented Jun 1, 2020

I started refactoring the core class as per #34. I realised that the AllenSDK stuff for the structure is quite useless for most of our cases, and it's very straightforward to implement ourselves what we need for handling the structures.

I added 2 classes for this - the first one I am not very sure about, the second is surely useful.

  • The first one provide some minimal mesh API with caching of the mesh through meshio. It's basically a dictionary that stores the value of the mesh of a region after queried for it. Having this here can't do any harm, but would depend on whether we want to support mesh loading in this package or not.
  • The second one is a neat way of doing all the region-related queries by either a string (acronym), an integer (id), or a list/tuple with any combination of the above:
structures = StructureDict(structures_list)
[structures[997], structures["grey"]] == structures[["root", 8]]

In this way all the Atlas.get_stuff_from_region(args) methods will just wrap the query to the Atlas.structures[args]["stuff"] and they will get for free the possibility of accepting any of these arguments without ifs.

I think that we most of the stuff that was in the AllenSDK classes won't be missed, and refactoring the useful part in this dictionary would be trivial.

@FedeClaudi
Copy link
Contributor

Hey I'm in favor ditching the Allen SDK as I dislike how it's written, I find it very confusing.

The StructureDict class seems to handle the queries very nicely, I like it. I would keep some of the methods based on treelib that I had added to StructuresTree though, stuff like listing all the structures and printing the structure tree. treelib has a lot of useful utils to find parents/children of a given node, to get the subtree from a given node, leaf nodes etc that I suggest we use to handle similar methods.
Perhaps these methods can be implemented in a dedicated StructuersTree class of our own, maybe subclassing treelib.tree.

What do you think? I'm happy to add this in.


p.s.: I think that the tests are failing becaus meshio is not listed in setup.py

@vigji
Copy link
Member Author

vigji commented Jun 1, 2020

Yes, thanks, I will fix the test together with some more improvements!

I would definitively keep those functions that you added in the old class and i don't mind that light dependency. I would just wonder whether they make more sense to have as a function that takes the StructuresDict method or as a method of the class itself. What are the usage cases apart for printing the tree?

@FedeClaudi
Copy link
Contributor

find parents/children of a given node, to get the subtree from a given node, leaf nodes etc

@vigji
Copy link
Member Author

vigji commented Jun 2, 2020

Ok - because parents / children are one-liners to find with the path entry of the dict right now (structure["structure_id_path"] is the parents, [s for s in structures_list if i in s["structure_id_path"]]), and maybe a couple more conditionals for check is something is a leaf..

Not that I mind the dependency, and for sure it's good for the printing, but if stuff like the above can be handled easily within the class it would be better to avoid redundancies of data representations

@FedeClaudi
Copy link
Contributor

yeah but stuff like

  • subtree: get all descendants of a region but keeping their hierarchical structure
  • sibling
  • root to node path

is implemented in treelib. Honestly I don;t know if any of this is necessary/important. I guess more generally I find treelib a very intuitive way to think about and manipulate the hierarchy, but if we don't need to use it we don't need to use it.

@vigji
Copy link
Member Author

vigji commented Jun 2, 2020

In principle I also thought that a truly tree-like structure was good to have, but the more I try stuff the more I realise that the crosses we will make are almost always good to do on a plain list (to parse stuff per regions). Let see how it progresses.

I changed stuff not to deal with the iteration in the StructuresDict. In real cases, we generally don't want to collect entire lists of dictionaries, but single elements (e.g. name) for a list of regions, in which case syntax would require in any case to parse out the key. So I just made a dedicated method in the class to parse one or multiple items there. The double query by id or acronym will remain in the StructuresDict.

@vigji
Copy link
Member Author

vigji commented Jun 2, 2020

Ok, if you guys can have a look, I like this current version, I would test it out in real applications to see how convenient it is.

Each structure is represented by a dictionary-like class that manages lazy loading of meshes; the structures tree is represented (in a plain version, not as tree) by a dictionary that can be queried either by structure id or acronym.

finally, the Atlas class has a structures attribute that can be used as a dictionary of dictionary (for queries like {k: s["rgb_triplet"] for k, s in self.structures.items() }); or through Atlas methods such as Atlas.mesh_from_structure(structure_id). In the latter case, there is a single method Atlas._get_from_structure(structure_id, key) that handles all the queries to the structures dictionary and support either single ids or lists of ids.

@FedeClaudi I moved the tree generation to a function in structure_tree_util. Do we want it as a method to define the print(StructuresDict) behaviour? The current implementation is printing the list of "{id} \t- {acronym}\n"

@FedeClaudi
Copy link
Contributor

Perhaps the function that prints the whole tree is more useful for print(StructuresDict)?
Is that function also in the same script?

It all looks very good, will test tomorrow

@adamltyson
Copy link
Member

Looks good to me. Don't have time to test properly at the moment though.

@vigji
Copy link
Member Author

vigji commented Jun 3, 2020

Ok, maybe we could merge and you can go back and potentially insult me later ? 😃

@adamltyson
Copy link
Member

Ok, maybe we could merge and you can go back and potentially insult me later?

Sounds good to me!

@FedeClaudi
Copy link
Contributor

it looks fine, let's merge

@vigji vigji merged commit fd3c957 into master Jun 3, 2020
@vigji vigji deleted the cleanup_core_methods branch August 21, 2020 10:58
willGraham01 pushed a commit that referenced this pull request Feb 14, 2024
* 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
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