|
1 | 1 | # Scientific Computing at AIND |
2 | 2 |
|
| 3 | +## Core principles |
3 | 4 |
|
4 | | -# Data Infrastructure |
| 5 | +All of the teams in Scientific Computing adhere to a set of core principles about our software. |
5 | 6 |
|
6 | | -# Data & Outreach |
| 7 | +### Code Review |
7 | 8 |
|
8 | | -# Physiology and Behavior |
| 9 | +At least one other software developer needs to approve a pull request in order for it to be merged. Please be courteous when providing feedback. The team lead can resolve any conflicts. |
| 10 | + |
| 11 | +### Style |
| 12 | + |
| 13 | +We use `black`, `flake8`, and `interrogate` to enforce [PEP 8](https://peps.python.org/pep-0008/) standards with [docstrings](https://peps.python.org/pep-0257/) in [NUMPY](https://numpydoc.readthedocs.io/en/latest/format.html) format. |
| 14 | + |
| 15 | +### Versioning |
| 16 | + |
| 17 | +We use [semver](https://semver.org/) major.minor.patch versions, these are automatically incremented when you use the `aind-library-template`. Note that for major versions you need to put the exact string "BREAKING CHANGE" in the commit *comment* (not the title). |
| 18 | + |
| 19 | +You should set patch version floor `>=1.0.0` and major version ceiling `<2` for each internal dependency that you use. This is good practice for all dependencies. |
| 20 | + |
| 21 | +## Data Infrastructure |
| 22 | + |
| 23 | +Data Infrastructure maintains the core services in AIND. Some of the major ones include: |
| 24 | + |
| 25 | +**aind-data-transfer-service** |
| 26 | + |
| 27 | +FastAPI service to run data compression and transfer jobs on the HPC |
| 28 | + |
| 29 | +[link](http://aind-data-transfer-service/) | [readthedoc](https://aind-data-transfer-service.readthedocs.io/en/latest/) | [repo](https://github.com/AllenNeuralDynamics/aind-data-transfer-service) |
| 30 | + |
| 31 | +**aind-metadata-service** |
| 32 | + |
| 33 | +REST service to retrieve metadata from AIND databases |
| 34 | + |
| 35 | +[link](http://aind-metadata-service/) | [readthedoc](http://aind-metadata-service/docs) | [repo](https://github.com/AllenNeuralDynamics/aind-metadata-service) |
| 36 | + |
| 37 | +**aind-data-access-api** |
| 38 | + |
| 39 | +Library to interface with AIND databases |
| 40 | + |
| 41 | +[tutorial](https://codeocean.allenneuraldynamics.org/capsule/9613367/tree/v1) | [readthedoc](https://aind-data-access-api.readthedocs.io/en/latest/) | [repo](https://github.com/AllenNeuralDynamics/aind-data-access-api) |
| 42 | + |
| 43 | +**aind-data-asset-indexer** |
| 44 | + |
| 45 | +Index jobs for AIND metadata in AWS DocumentDB and S3 |
| 46 | + |
| 47 | +[readthedoc](https://aind-data-asset-indexer.readthedocs.io/en/latest/) | [repo](https://github.com/AllenNeuralDynamics/aind-data-asset-indexer) |
| 48 | + |
| 49 | + |
| 50 | +## Data & Outreach |
| 51 | + |
| 52 | +The Data & Outreach team maintains the data schema and associated downstream tools and is responsible for coordinating workshops and other outreach events. |
| 53 | + |
| 54 | +**aind-data-schema** |
| 55 | + |
| 56 | +Metadata schema for neuroscience |
| 57 | + |
| 58 | +[readthedoc](https://aind-data-schema.readthedocs.io/en/latest/) | [repo](https://github.com/AllenNeuralDynamics/aind-data-schema) | [registries repo](https://github.com/AllenNeuralDynamics/aind-data-schema-models/) |
| 59 | + |
| 60 | +**aind-metadata-mapper** |
| 61 | + |
| 62 | +Repository to help gather and map metadata from different sources |
| 63 | + |
| 64 | +[readthedoc](https://aind-metadata-mapper.readthedocs.io/en/latest/) | [repo](https://github.com/AllenNeuralDynamics/aind-metadata-mapper) |
| 65 | + |
| 66 | +## Physiology and Behavior |
| 67 | + |
| 68 | +[todo] |
| 69 | + |
| 70 | +## Computer Vision |
| 71 | + |
| 72 | +[todo] |
| 73 | + |
| 74 | +## Resources for SWEs |
| 75 | + |
| 76 | +For research software engineers, [Good Research Code](https://goodresearch.dev/) is a good primer. |
| 77 | + |
| 78 | +[Data structure fundamentals](https://www.crackingthecodinginterview.com/) |
9 | 79 |
|
10 | | -# Image Processing |
|
0 commit comments