From e6a2abe7d6322d63ffe8a3fd11c3c496cd72db7f Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 15:54:35 -0400 Subject: [PATCH 1/8] Add github action to codespell master on push and PRs --- .github/workflows/codespell.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/codespell.yml diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml new file mode 100644 index 00000000..b026c855 --- /dev/null +++ b/.github/workflows/codespell.yml @@ -0,0 +1,25 @@ +# Codespell configuration is within .codespellrc +--- +name: Codespell + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + codespell: + name: Check for spelling errors + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Annotate locations with typos + uses: codespell-project/codespell-problem-matcher@v1 + - name: Codespell + uses: codespell-project/actions-codespell@v2 From 8d4f3e683cd3c984197fe0b66c5dc5564c8ec5cb Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 15:54:35 -0400 Subject: [PATCH 2/8] Add codespell config --- .codespellrc | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .codespellrc diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 00000000..088cf3e1 --- /dev/null +++ b/.codespellrc @@ -0,0 +1,7 @@ +[codespell] +# Ref: https://github.com/codespell-project/codespell#using-a-config-file +skip = .git*,*.svg,*.lock,*.min.*,.codespellrc +check-hidden = true +# ignore variable definitions in the headers +ignore-regex = ^ *var +\S+\s*= +ignore-words-list = rouge From 6b61f95c7056ce5c93121a1db98a0e0f0e54240b Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 15:57:24 -0400 Subject: [PATCH 3/8] [DATALAD RUNCMD] run codespell throughout fixing typos automagically === Do not change lines below === { "chain": [], "cmd": "codespell -w", "exit": 0, "extra_inputs": [], "inputs": [], "outputs": [], "pwd": "." } ^^^ Do not change lines above ^^^ --- _pages/aboutwebsite.md | 2 +- _sass/bootstrap/_input-groups.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_pages/aboutwebsite.md b/_pages/aboutwebsite.md index e03dc69f..9f5679f6 100644 --- a/_pages/aboutwebsite.md +++ b/_pages/aboutwebsite.md @@ -8,7 +8,7 @@ permalink: /aboutwebsite.html # Use this website as a template for your academic research group -This website is powered by [Jekyll](https://jekyllrb.com) and uses some [Bootstrap](http://www.getbootstrap.com) and [Bootswatch](http://www.bootswatch.com). We tried to make it simple yet adaptable, so that it is easy for you to re-use it for your purpose. +This website is powered by [Jekyll](https://jekyllrb.com) and uses some [Bootstrap](http://www.getbootstrap.com) and [Bootswatch](http://www.bootswatch.com). We tried to make it simple yet adaptable, so that it is easy for you to reuse it for your purpose. ### Getting started All pages are written in [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) for easy editing, and [Jekyll](https://jekyllrb.com) uses Liquid for the data-driven pages. The publicaion list, news items, and group members are stored as `.yml` data sheets (plain text) in the `_data folder`, so that one can update the website easily. The pages are in the `_pages` folder. Updating and maintaining is easy using [Github](http://www.github.com) (not worldpress-easy, but there are other advantages (see e.g. [this](https://www.taniarascia.com/make-a-static-website-with-jekyll/), or [this](http://www.webdesignerdepot.com/2015/11/jekyll-against-the-rest-of-the-world/)). [Jekyll](https://jekyllrb.com) takes all the markdown and data files, and creates beautiful `html` files in the `_site` folder. diff --git a/_sass/bootstrap/_input-groups.scss b/_sass/bootstrap/_input-groups.scss index 81f46f3e..05cefed5 100644 --- a/_sass/bootstrap/_input-groups.scss +++ b/_sass/bootstrap/_input-groups.scss @@ -139,7 +139,7 @@ font-size: 0; white-space: nowrap; - // Negative margin for spacing, position for bringing hovered/focused/actived + // Negative margin for spacing, position for bringing hovered/focused/activated // element above the siblings. > .btn { position: relative; From 3ed6e10cf1c4da61ad791dce1f3704990ee01e37 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 15:59:54 -0400 Subject: [PATCH 4/8] Add pre-commit definition for basic fixups etc --- .pre-commit-config.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..85af0b49 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,15 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.0.1 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files +- repo: https://github.com/codespell-project/codespell + rev: v2.3.0 + hooks: + - id: codespell + exclude: ^(dandi/_version\.py|dandi/due\.py|versioneer\.py)$ From a3afbd3c030e51031641dca1a59b7e297b1647fe Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 16:03:42 -0400 Subject: [PATCH 5/8] Exclude svg and binary from pre-commit --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 85af0b49..f9512879 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,6 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks +exclude_types: [binary, svg] repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 From 3432b57bcd492e4f555619b57e381c3c690e1ca3 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 16:06:58 -0400 Subject: [PATCH 6/8] Redo exclusion via regex also since svg was not excluded --- .pre-commit-config.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f9512879..462a76b2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,11 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks -exclude_types: [binary, svg] +exclude_types: [ binary ] +exclude: > + (?x)( + \.svg$| + \.js$ + ) repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 From a4efd8260f152164b9ead83ed128ad064c130489 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 9 Aug 2024 16:09:01 -0400 Subject: [PATCH 7/8] [DATALAD RUNCMD] Run pre-commit on all files === Do not change lines below === { "chain": [], "cmd": "pre-commit run --all; pre-commit run --all", "exit": 0, "extra_inputs": [], "inputs": [], "outputs": [], "pwd": "." } ^^^ Do not change lines above ^^^ --- .gitignore | 2 +- CNAME | 2 +- Gemfile | 1 - README.md | 6 +-- _config.yml | 1 - _data/alumni_members.yml | 1 - _data/news.yml | 4 +- _data/team_members.yml | 4 +- _includes/footer.html | 2 +- _includes/home-banner.html | 10 ++--- _includes/news.html | 4 +- _layouts/blog.html | 2 +- _layouts/collab.html | 1 - _layouts/team.html | 1 - _pages/404.md | 1 - _pages/aboutwebsite.md | 17 ++++----- _pages/collab.md | 16 ++++---- _pages/home.md | 10 ++--- _pages/maintenance.md | 1 - _pages/research.md | 39 ++++++++++---------- _pages/team.md | 1 - _posts/2021-09-12-introducing-dandi.md | 2 +- _posts/2021-10-13-dandi-workshop.md | 6 +-- _posts/2022-03-03-external-links-organize.md | 14 +++---- _posts/2022-03-08-microscopy-workshop.md | 20 +++++----- _sass/_bootstrap.scss | 1 - _sass/bootstrap/_bootswatch.scss | 4 +- tools/rescale.sh | 2 +- 28 files changed, 81 insertions(+), 94 deletions(-) diff --git a/.gitignore b/.gitignore index 513ff953..de4ffc0c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ _site .jekyll-metadata .DS_Store .idea -.ruby-version \ No newline at end of file +.ruby-version diff --git a/CNAME b/CNAME index 35555216..32cea383 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -www.dandiarchive.org \ No newline at end of file +www.dandiarchive.org diff --git a/Gemfile b/Gemfile index 0e1352fb..9f46d8cd 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,3 @@ source 'https://rubygems.org' gem "jekyll", ">= 3.6.3" - diff --git a/README.md b/README.md index 39f2386d..621d034b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # DANDI project website -This website is powered by Jekyll and some Bootstrap, Bootwatch. Go to -*aboutwebsite.md* to learn how to copy and modify this page for your purpose. +This website is powered by Jekyll and some Bootstrap, Bootwatch. Go to +*aboutwebsite.md* to learn how to copy and modify this page for your purpose. ## Acknowledgements -A big thank you to https://github.com/mpa139/allanlab for setting up this +A big thank you to https://github.com/mpa139/allanlab for setting up this framework. diff --git a/_config.yml b/_config.yml index 37a5418a..1bab29d8 100644 --- a/_config.yml +++ b/_config.yml @@ -42,4 +42,3 @@ kramdown: smart_quotes: lsquo,rsquo,ldquo,rdquo enable_coderay: false parse_block_html: true # default for kramdown is false. This will enable using Markdown links - diff --git a/_data/alumni_members.yml b/_data/alumni_members.yml index a602d48c..4e5077e3 100644 --- a/_data/alumni_members.yml +++ b/_data/alumni_members.yml @@ -7,4 +7,3 @@ education1: BS Biology and Biotechnology, Worcester Polytechnic Institute education2: MS Candidate Bioinformatics, Johns Hopkins University education3: Full CV - diff --git a/_data/news.yml b/_data/news.yml index e04436f7..bc65c059 100644 --- a/_data/news.yml +++ b/_data/news.yml @@ -54,8 +54,8 @@ Open Neurodata Showcase 2023 - date: 2022 10 04 - headline: > - Paper outline the Neurodata Without Borders ecosystem including DANDI published in ELife + headline: > + Paper outline the Neurodata Without Borders ecosystem including DANDI published in ELife (Link). - date: 2022 03 08 diff --git a/_data/team_members.yml b/_data/team_members.yml index aa3a8410..c7b65655 100644 --- a/_data/team_members.yml +++ b/_data/team_members.yml @@ -1,7 +1,7 @@ - name: Satrajit S Ghosh photo: ../assets/team/Satrajit_S_Ghosh.png info: > - Director of Open Data in Neuroscience Initiative and Principal Research Scientist at MIT; Assistant + Director of Open Data in Neuroscience Initiative and Principal Research Scientist at MIT; Assistant Professor of Otolaryngology at Harvard Medical School email: satra@mit.edu number_educ: 3 @@ -105,7 +105,7 @@ info: Research Scientist, MIT email: kabi@mit.edu number_educ: 2 - education1: PhD Biomedical Engineering, Case Western Reserve University + education1: PhD Biomedical Engineering, Case Western Reserve University education2: MD, Case Western Reserve University - name: Aaron Kanzer diff --git a/_includes/footer.html b/_includes/footer.html index 25161245..fb60b5a5 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -3,7 +3,7 @@
- +

© 2019-2024 DANDI contributors

Site adapted from Allan Lab. diff --git a/_includes/home-banner.html b/_includes/home-banner.html index 44aadbc4..83daf049 100644 --- a/_includes/home-banner.html +++ b/_includes/home-banner.html @@ -4,12 +4,12 @@

DANDI: Distributed Archives for Neurophysiology Data Integration

The DANDI platform is supported by the BRAIN Initiative for publishing, sharing, and processing neurophysiology data. - The archive accepts cellular neurophysiology data including electrophysiology, - optophysiology, and behavioral time-series, and images from immunostaining experiments. The + The archive accepts cellular neurophysiology data including electrophysiology, + optophysiology, and behavioral time-series, and images from immunostaining experiments. The platform is now available for data upload and distribution. The storage of data in the archive - is also supported by the Amazon Opendata - program.

-

The data in the archive can be browsed using the Data Portal. + is also supported by the Amazon Opendata + program.

+

The data in the archive can be browsed using the Data Portal. For detailed instructions on how to interact (view, upload, download, process) with DANDI click here.

diff --git a/_includes/news.html b/_includes/news.html index 021f8cb3..f01b8766 100644 --- a/_includes/news.html +++ b/_includes/news.html @@ -8,5 +8,5 @@

News

{% endfor %}

... see all News

- -
\ No newline at end of file + +
diff --git a/_layouts/blog.html b/_layouts/blog.html index 9bdea6b7..2dafea3e 100644 --- a/_layouts/blog.html +++ b/_layouts/blog.html @@ -3,4 +3,4 @@ ---
{{ content }} -
\ No newline at end of file + diff --git a/_layouts/collab.html b/_layouts/collab.html index c1cd30eb..4b8bc807 100644 --- a/_layouts/collab.html +++ b/_layouts/collab.html @@ -4,4 +4,3 @@
{{ content }}
- diff --git a/_layouts/team.html b/_layouts/team.html index c17f2cea..2e6dbd34 100644 --- a/_layouts/team.html +++ b/_layouts/team.html @@ -4,4 +4,3 @@
{{ content }}
- diff --git a/_pages/404.md b/_pages/404.md index 4dfa4844..070789c5 100755 --- a/_pages/404.md +++ b/_pages/404.md @@ -7,4 +7,3 @@ permalink: /404.html --- Sorry, but the page you were trying to view does not exist. - diff --git a/_pages/aboutwebsite.md b/_pages/aboutwebsite.md index 9f5679f6..1d4eaef1 100644 --- a/_pages/aboutwebsite.md +++ b/_pages/aboutwebsite.md @@ -8,19 +8,19 @@ permalink: /aboutwebsite.html # Use this website as a template for your academic research group -This website is powered by [Jekyll](https://jekyllrb.com) and uses some [Bootstrap](http://www.getbootstrap.com) and [Bootswatch](http://www.bootswatch.com). We tried to make it simple yet adaptable, so that it is easy for you to reuse it for your purpose. +This website is powered by [Jekyll](https://jekyllrb.com) and uses some [Bootstrap](http://www.getbootstrap.com) and [Bootswatch](http://www.bootswatch.com). We tried to make it simple yet adaptable, so that it is easy for you to reuse it for your purpose. ### Getting started All pages are written in [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) for easy editing, and [Jekyll](https://jekyllrb.com) uses Liquid for the data-driven pages. The publicaion list, news items, and group members are stored as `.yml` data sheets (plain text) in the `_data folder`, so that one can update the website easily. The pages are in the `_pages` folder. Updating and maintaining is easy using [Github](http://www.github.com) (not worldpress-easy, but there are other advantages (see e.g. [this](https://www.taniarascia.com/make-a-static-website-with-jekyll/), or [this](http://www.webdesignerdepot.com/2015/11/jekyll-against-the-rest-of-the-world/)). [Jekyll](https://jekyllrb.com) takes all the markdown and data files, and creates beautiful `html` files in the `_site` folder. -If you never used [Jekyll](https://jekyllrb.com), read the [wikipedia article](https://en.wikipedia.org/wiki/Jekyll_(software)) article and check out [their website](https://jekyllrb.com). Same for [Github](http://www.github.com), which will host your first website draft. +If you never used [Jekyll](https://jekyllrb.com), read the [wikipedia article](https://en.wikipedia.org/wiki/Jekyll_(software)) article and check out [their website](https://jekyllrb.com). Same for [Github](http://www.github.com), which will host your first website draft. -Create and open a github account, go to [our repository](https://github.com/allanlab/allanlab), and click 'fork'. This is now your copy of the website, and you can change and adapt it as you want. You don't have to link to us or mention us (but of course we appreciate it). Then change the name of the repository to "your_username" and the name of the branch to "gh-pages". Your website is now automatically published under *your_username.github.io/your_username/*. Except that it probably still looks like our website. +Create and open a github account, go to [our repository](https://github.com/allanlab/allanlab), and click 'fork'. This is now your copy of the website, and you can change and adapt it as you want. You don't have to link to us or mention us (but of course we appreciate it). Then change the name of the repository to "your_username" and the name of the branch to "gh-pages". Your website is now automatically published under *your_username.github.io/your_username/*. Except that it probably still looks like our website. -To modify the webpage, you can either do everything on on github.com (go to a file, click "edit", then "commit", "push"), or install [Jekyll](https://jekyllrb.com) on your computer and play with your local copy that you sync with the branch on github.com. The former is much easier in the beginning, but a bit less convenient once you start rewriting everythint. To get it to work on your computer (and to learn a bit more about [Jekyll](https://jekyllrb.com)), [here](https://www.taniarascia.com/make-a-static-website-with-jekyll/) and [here](https://scotch.io/tutorials/getting-started-with-jekyll-plus-a-free-bootstrap-3-starter-theme) are tutorials on how to use it and how set it up locally. Also, consider using the [Github desktop app](http://www.desktop.github.com), I found it helpful. +To modify the webpage, you can either do everything on on github.com (go to a file, click "edit", then "commit", "push"), or install [Jekyll](https://jekyllrb.com) on your computer and play with your local copy that you sync with the branch on github.com. The former is much easier in the beginning, but a bit less convenient once you start rewriting everythint. To get it to work on your computer (and to learn a bit more about [Jekyll](https://jekyllrb.com)), [here](https://www.taniarascia.com/make-a-static-website-with-jekyll/) and [here](https://scotch.io/tutorials/getting-started-with-jekyll-plus-a-free-bootstrap-3-starter-theme) are tutorials on how to use it and how set it up locally. Also, consider using the [Github desktop app](http://www.desktop.github.com), I found it helpful. ### Customization -Now let's make this *your* website. +Now let's make this *your* website. First, go to the `news.ylm`, `publist.ylm`, and `team.ylm` files in the `_data` folder and insert your own data into the data fields. Watch out: [Jekyll](https://jekyllrb.com) is quite strict about extra or missing spaces etc. Adhere to the format. In the beginning, test each change: commit, push, and check the published website. @@ -34,7 +34,7 @@ Next, change the content of all files in the `_pages` folder. To change the tit Lastly, change the footer and perhaps header appropriately (in `_include`). -You might also want to change the style or theme. I imported style files (in sass) from Bootstrap/Bootwatch, you can replace them with your own (in the `_sass directory`). For small changes, just work on the override stuff in the `main.sass` file in the `CSS` folder. Or change some variables in the `_variables.sass` file, like the background color etc. +You might also want to change the style or theme. I imported style files (in sass) from Bootstrap/Bootwatch, you can replace them with your own (in the `_sass directory`). For small changes, just work on the override stuff in the `main.sass` file in the `CSS` folder. Or change some variables in the `_variables.sass` file, like the background color etc. As said, [Jekyll](https://jekyllrb.com) takes all the markdown and data files, and creates beautiful `html` files in the `_site` folder.In the end, either upload these files to your server, or buy yourself a domain and check the instructions on github on how to host it there. @@ -42,7 +42,4 @@ As said, [Jekyll](https://jekyllrb.com) takes all the markdown and data files, a We adapted this site from the [Allan Lab](https://github.com/mpa139/allanlab). -Their code was released under the MIT License. - - - +Their code was released under the MIT License. diff --git a/_pages/collab.md b/_pages/collab.md index e6149662..90a68c02 100644 --- a/_pages/collab.md +++ b/_pages/collab.md @@ -8,21 +8,21 @@ permalink: /collab/ ## Our collaboration policies are: -- Authorship is a function of intellectual contribution and we try to minimize -author bloat in our group. For multi-institution student collaborations, we will -identify ahead of time who the primary advisers and collaborators are on a +- Authorship is a function of intellectual contribution and we try to minimize +author bloat in our group. For multi-institution student collaborations, we will +identify ahead of time who the primary advisers and collaborators are on a project. -- Our work is open. However, there have been prior situations where we have +- Our work is open. However, there have been prior situations where we have applied for patents during collaborations. -- We tend to share any data we collect and any code we produce under open +- We tend to share any data we collect and any code we produce under open licenses (data: PDDL, code: Apache 2.0, doc: CC-BY) -- Any digital research work we produce together should be re-executable and hopefully +- Any digital research work we produce together should be re-executable and hopefully reproducible/generalizable. # Collaborators -** This list may not always be accurate. We apologize if we missed your name, -listed incorrect information or did not ask you before listing you. Please let us +** This list may not always be accurate. We apologize if we missed your name, +listed incorrect information or did not ask you before listing you. Please let us know so we can rectify the situation. {% for site in site.data.collaborators %} diff --git a/_pages/home.md b/_pages/home.md index 2fd1b5fd..a4075015 100644 --- a/_pages/home.md +++ b/_pages/home.md @@ -14,19 +14,19 @@ necessary data and metadata that you need, is at least what we should be storing DANDI provides: -1. A cloud-based platform to store, process, and disseminate data. You can use +1. A cloud-based platform to store, process, and disseminate data. You can use DANDI to collaborate and publish datasets. -2. Open access to data to enable secondary uses of data outside the intent +2. Open access to data to enable secondary uses of data outside the intent of the study. -3. Optimize data storage and access through partnerships, compression and +3. Optimize data storage and access through partnerships, compression and accessibility technologies. -4. Enables reproducible practices and publications through data standards such +4. Enables reproducible practices and publications through data standards such as NWB and BIDS, which provide extensive metadata. 5. The platform is not just an endpoint to dump data, it is intended as a living repository that enables collaboration within and across labs, and for others, the entry point for research. -For a better view of how DANDI might help you, please see these +For a better view of how DANDI might help you, please see these onboarding slides. diff --git a/_posts/2022-03-03-external-links-organize.md b/_posts/2022-03-03-external-links-organize.md index 1376a182..b885c5ab 100644 --- a/_posts/2022-03-03-external-links-organize.md +++ b/_posts/2022-03-03-external-links-organize.md @@ -5,18 +5,18 @@ author: Saksham Sharda, CatalystNeuro --- ## External Files in NWB -External Files: video/audio files that are part of the experiment but are not stored in NWB as HDF5 format. +External Files: video/audio files that are part of the experiment but are not stored in NWB as HDF5 format. ### The need for external files -Neurophysiology experiments often include natural videos (such as behaving animals), which need to be stored with the neurophysiological recordings in order to ensure maximal reusability of the data. These videos are commonly stored with lossy compression (e.g. h264 in an .mp4 file), which allows them to achieve very high compression ratios. It is possible to read these videos frame-by-frame, and store them in HDF5, but since HDF5 is not able to access popular video codecs like h264, the volume of the video in the NWB file is much larger (even when using the available compression algorithms like GZIP). NWB has an option to avoid storing these altogether by linking to these external video files using a relative path to that file on disk. This relative path is stored in the ImageSeries neurodata_type storing it as an attribute of a string dtype. We also need to publish these video linked NWB files in an archive (e.g. in DANDI). For DANDI, which renames and reorganizes the the NWB files, this requires not only uploading the video file on the archive but also changing the path attribute of the ImageSeries to reflect the new file names. +Neurophysiology experiments often include natural videos (such as behaving animals), which need to be stored with the neurophysiological recordings in order to ensure maximal reusability of the data. These videos are commonly stored with lossy compression (e.g. h264 in an .mp4 file), which allows them to achieve very high compression ratios. It is possible to read these videos frame-by-frame, and store them in HDF5, but since HDF5 is not able to access popular video codecs like h264, the volume of the video in the NWB file is much larger (even when using the available compression algorithms like GZIP). NWB has an option to avoid storing these altogether by linking to these external video files using a relative path to that file on disk. This relative path is stored in the ImageSeries neurodata_type storing it as an attribute of a string dtype. We also need to publish these video linked NWB files in an archive (e.g. in DANDI). For DANDI, which renames and reorganizes the the NWB files, this requires not only uploading the video file on the archive but also changing the path attribute of the ImageSeries to reflect the new file names. -To implement this, we have created a formal naming convention for these video files relative to the NWB files' path. In addition, these video files are also placed in a specific folder structure relative to the new location of the NWB file during the `dandi organize` call. +To implement this, we have created a formal naming convention for these video files relative to the NWB files' path. In addition, these video files are also placed in a specific folder structure relative to the new location of the NWB file during the `dandi organize` call. Internally the steps are as follows: 2. Organizing and renaming the video files with one of move/copy/symlink/hardlink in the new folder structure. -3. Updating the value of the `external_file` attribute in the NWB files. -4. Uploading on DANDI. +3. Updating the value of the `external_file` attribute in the NWB files. +4. Uploading on DANDI. __Note__: this solution is specifically for natural videos like those of behaving animals. There are other types of image sequences like image stacks from optical physiology, which do not use codecs like h264; these types of videos can be copied into an HDF5 file. @@ -39,7 +39,7 @@ With the path attribute as: `image_series.external_files=["../video_files/test1_ ### After `dandi organize` The renaming pattern is as follows `//{ImageSeries UUID}_external_file_{number}.mp4`. -This UUID is that assigned to the `ImageSeries` datatype when its created. Thus its possible to lookup a video file linked to an NWB file and vice versa. +This UUID is that assigned to the `ImageSeries` datatype when its created. Thus its possible to lookup a video file linked to an NWB file and vice versa. ``` └── dandi_organized @@ -54,7 +54,7 @@ This UUID is that assigned to the `ImageSeries` datatype when its created. Thus │   └── 03137112-9d42-46b6-9046-45bc9aa7eb5e_external_file_1.avi └── sub-mouse1_ses-sessionid1_image.nwb ``` -With the renamed path attribute as +With the renamed path attribute as ``` image_series.external_files= diff --git a/_posts/2022-03-08-microscopy-workshop.md b/_posts/2022-03-08-microscopy-workshop.md index d803d1eb..2d9becfd 100644 --- a/_posts/2022-03-08-microscopy-workshop.md +++ b/_posts/2022-03-08-microscopy-workshop.md @@ -6,17 +6,17 @@ author: DANDI team ## Online hackathon for human ex-vivo microscopy -The goal of this set of events is to introduce the BICCN human ex vivo MRI and -microscopy datasets, involve the relevant communities to develop and explore -scientific ideas, create tooling around these and future datasets to make it -easy, and plan towards development of an online, digital, cellular atlas and -knowledge base of the human brain. +The goal of this set of events is to introduce the BICCN human ex vivo MRI and +microscopy datasets, involve the relevant communities to develop and explore +scientific ideas, create tooling around these and future datasets to make it +easy, and plan towards development of an online, digital, cellular atlas and +knowledge base of the human brain. **Date/Time: April 21 - 22, 2022. 9am - 6pm ET** **Online: Link will be sent to registered participants.** -If you are interested in participating please fill in this form to be sent +If you are interested in participating please fill in this form to be sent announcements: [Register here](https://forms.gle/xe9cJrZNcXX5aLddA) ### Pre-meeting presentations @@ -46,15 +46,15 @@ The events will run 9 - 6 ET to accommodate multiple time zones. Participants ar - DANDI+Microscopy Starter Kit: We will generate a set Starter Kit that makes it easy for users to navigate these and other Dandisets, including easier visualization of individual files. -- Dandiset Abstraction Layer: - - Create a set of scripts to make it easy to programmatically access these Dandisets +- Dandiset Abstraction Layer: + - Create a set of scripts to make it easy to programmatically access these Dandisets - Be able to view and compute on them. Unconference session (11.30 - 12.30 ET) #### Day 2: April 22, 2022 (9 - 6 ET) -- Visualization/Annotation: +- Visualization/Annotation: - Develop a visualization of a single slab or a set of related chunks - Develop the steps to annotate using NeuroTrAle @@ -63,5 +63,5 @@ Unconference session (11.30 - 12.30 ET) Unconference session (11.30 - 12.30 ET) -Please feel free to comment on this [community +Please feel free to comment on this [community doc](https://docs.google.com/document/d/1jZPCXtYAjQJGjjhMCWl0wCiYwIssGqZfb7qcyiAZXio/edit). diff --git a/_sass/_bootstrap.scss b/_sass/_bootstrap.scss index 9babefd5..9a61ca8f 100644 --- a/_sass/_bootstrap.scss +++ b/_sass/_bootstrap.scss @@ -55,4 +55,3 @@ @import "bootstrap/utilities"; @import "bootstrap/responsive-utilities"; @import "bootstrap/bootswatch"; - diff --git a/_sass/bootstrap/_bootswatch.scss b/_sass/bootstrap/_bootswatch.scss index 2d35f522..add80900 100644 --- a/_sass/bootstrap/_bootswatch.scss +++ b/_sass/bootstrap/_bootswatch.scss @@ -477,7 +477,7 @@ a.list-group-item { &.active { background-color: $state-warning-bg; } - + &.active:hover, &.active:focus { background-color: darken($state-warning-bg, 5%); @@ -488,7 +488,7 @@ a.list-group-item { &.active { background-color: $state-danger-bg; } - + &.active:hover, &.active:focus { background-color: darken($state-danger-bg, 5%); diff --git a/tools/rescale.sh b/tools/rescale.sh index 82207477..3d9ccb91 100755 --- a/tools/rescale.sh +++ b/tools/rescale.sh @@ -7,7 +7,7 @@ directory="assets/team/" for file in "$directory"*.{jpg,jpeg,png}; do # Get the width of the image using ImageMagick's identify command width=$(identify -format "%w" "$file") - + # Check if the image width exceeds 512 pixels if (( width > 512 )); then # Resize the image to have a width of 512 pixels using ImageMagick's convert command From 9336aa5fbfb6ba73f33fd2b712be798a7ef0de89 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Mon, 12 Aug 2024 18:25:17 -0400 Subject: [PATCH 8/8] no excludes in pre-commit --- .pre-commit-config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 462a76b2..6fd712bf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,4 +18,3 @@ repos: rev: v2.3.0 hooks: - id: codespell - exclude: ^(dandi/_version\.py|dandi/due\.py|versioneer\.py)$