Skip to content

Commit f83bc54

Browse files
committed
deploy: 373e9bd
1 parent 2052538 commit f83bc54

23 files changed

+2272
-126
lines changed
633 KB
Loading

_images/slice_detection_widget.png

89.2 KB
Loading
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
:blogpost: true
2+
:date: September 15, 2025
3+
:author: Saarah Hussain
4+
:location: London, UK
5+
:category: Blog
6+
:language: English
7+
:image: 0
8+
9+
# GSoC 2025: brainglobe-registration
10+
11+
## Introduction
12+
13+
Hi, I'm [Saarah](https://github.com/saarah815). The intersection of healthcare and software development has
14+
always been important to me, which is why spending my summer with the
15+
[Neuroinformatics Unit](https://github.com/neuroinformatics-unit)
16+
has been the perfect opportunity to bring together the work I love.
17+
18+
**Project**: [BrainGlobe: Automating Region Selection in brainglobe-registration](https://summerofcode.withgoogle.com/programs/2025/projects/7Xk4Fl7t) <br>
19+
**Mentors**: [Igor Tatarnikov](https://github.com/IgorTatarnikov), [Alessandro Felder](https://github.com/alessandrofelder), [Adam Tyson](https://github.com/adamltyson)
20+
21+
---
22+
23+
## Project Overview
24+
25+
Over the summer, I worked on extending the
26+
[`brainglobe-registration`](https://github.com/brainglobe/brainglobe-registration)
27+
plugin, focusing on making atlas alignment more accessible and less
28+
error-prone for users without a neuroscience background.
29+
30+
Thus far, choosing the correct atlas slice and orientation has been a manual
31+
task – requiring users to scroll through volumes, make rough visual
32+
judgements, and enter rotation values by hand. My project aimed to automate
33+
this step, using
34+
[`BayesianOptimization`](https://github.com/bayesian-optimization/BayesianOptimization)
35+
to identify the best matching slice and orientation parameters directly
36+
from the data.
37+
38+
The result is a new **Automatic Slice Detection widget** in the plugin, which
39+
not only handles single 2D images but can also align slabs of consecutive
40+
slices.
41+
42+
![img_1.png](slice_detection_widget.png)
43+
44+
The optimiser identifies the atlas slice and rotation parameters that best
45+
match the moving image, and then updates the Napari widget accordingly:
46+
47+
![img.png](post_slice_detection_screenshot.png)
48+
49+
For slabs, the optimiser matches the first and last slices and then
50+
interpolates alignment parameters across the stack, so that users can align
51+
larger volumes in one go. I have also written detailed
52+
[documentation](https://github.com/brainglobe/brainglobe.github.io/pull/362/files?short_path=61a3e19)
53+
outlining exactly how to use these features.
54+
55+
In addition to the core project requirements, I also worked on enhancing the
56+
project following discussions with my mentors. A key part of this work was
57+
building **clear and informative logging** – every optimisation step logs
58+
the parameters tested, its similarity score, the corresponding rotated slice
59+
image, and the rotation parameters. This makes the process more transparent
60+
and provides a useful record for reproducibility.
61+
62+
Working on this project has been a valuable experience in bridging methods
63+
from optimisation and image analysis with practical neuroscience workflows.
64+
I particularly enjoyed balancing algorithmic design with UX considerations,
65+
such as keeping the interface intuitive while still exposing enough
66+
flexibility for advanced use.
67+
68+
Collaborating with the NIU team also gave me a deeper appreciation of the
69+
importance of open, well-documented tools in neuroinformatics, and the work
70+
that goes into making them robust and user-friendly.
71+
72+
Looking back, the most rewarding part was seeing the tool go from concept to
73+
a usable feature that I hope will save researchers time and difficulty in
74+
their workflows. Contributing to the BrainGlobe ecosystem has been a greatly
75+
rewarding opportunity, and I am incredibly excited to see how these tools
76+
continue to evolve in the future.
77+
78+
---
79+
80+
## Repositories
81+
82+
- [`brainglobe-registration`](https://github.com/brainglobe/brainglobe-registration)
83+
- [`fancylog`](https://github.com/neuroinformatics-unit/fancylog)
84+
- [`brainglobe.github.io`](https://github.com/brainglobe/brainglobe.github.io/)
85+
86+
---
87+
88+
*Thank you to my mentors and the incredible team at NIU for all of their support and guidance!*

blog.html

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,80 @@ <h1>
600600
</span>
601601
</h1>
602602

603+
<div class="section ablog-post">
604+
<h2 class="ablog-post-title">
605+
<a href="blog/gsoc_2025_brainglobe_registration.html">GSoC 2025: brainglobe-registration</a>
606+
</h2>
607+
<ul class="ablog-archive">
608+
<li>
609+
610+
<i class="fa fa-calendar"></i>
611+
612+
<span>15 September 2025</span>
613+
614+
</li>
615+
<div class="ablog-sidebar-item ablog__postcard2">
616+
617+
<li id="ablog-sidebar-item author ablog__author">
618+
<span>
619+
620+
<i class="fa-fw fa fa-user"></i>
621+
622+
</span>
623+
624+
<a href="blog/author/saarah-hussain.html">Saarah Hussain</a>
625+
626+
</li>
627+
628+
<li id="ablog-sidebar-item location ablog__location">
629+
<span>
630+
631+
<i class="fa-fw fa fa-location-arrow"></i>
632+
633+
</span>
634+
635+
<a href="blog/location/london.html">London</a>
636+
,
637+
<a href="blog/location/uk.html">UK</a>
638+
639+
</li>
640+
641+
<li id="ablog-sidebar-item language ablog__language">
642+
<span>
643+
644+
<i class="fa-fw fa fa-language"></i>
645+
646+
</span>
647+
648+
<a href="blog/language/english.html">English</a>
649+
650+
</li>
651+
652+
<li id="ablog-sidebar-item category ablog__category">
653+
<span>
654+
655+
<i class="fa-fw fa fa-folder-open"></i>
656+
657+
</span>
658+
659+
<a href="blog/category/blog.html">Blog</a>
660+
661+
</li>
662+
663+
</div>
664+
</ul>
665+
<p class="ablog-post-excerpt"><p>Hi, I’m <a class="reference external" href="https://github.com/saarah815">Saarah</a>. The intersection of healthcare and software development has
666+
always been important to me, which is why spending my summer with the
667+
<a class="reference external" href="https://github.com/neuroinformatics-unit">Neuroinformatics Unit</a>
668+
has been the perfect opportunity to bring together the work I love.</p>
669+
</p>
670+
671+
<p class="ablog-post-expand">
672+
<a href="blog/gsoc_2025_brainglobe_registration.html"><em>Read more ...</em></a>
673+
</p>
674+
<hr />
675+
</div>
676+
603677
<div class="section ablog-post">
604678
<h2 class="ablog-post-title">
605679
<a href="blog/datashuttle_gsoc2025.html">Add Google Drive and AWS to datashuttle - Final GSoC Report</a>

blog/2025.html

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,80 @@ <h1>
600600
</span>
601601
</h1>
602602

603+
<div class="section ablog-post">
604+
<h2 class="ablog-post-title">
605+
<a href="gsoc_2025_brainglobe_registration.html">GSoC 2025: brainglobe-registration</a>
606+
</h2>
607+
<ul class="ablog-archive">
608+
<li>
609+
610+
<i class="fa fa-calendar"></i>
611+
612+
<span>15 September 2025</span>
613+
614+
</li>
615+
<div class="ablog-sidebar-item ablog__postcard2">
616+
617+
<li id="ablog-sidebar-item author ablog__author">
618+
<span>
619+
620+
<i class="fa-fw fa fa-user"></i>
621+
622+
</span>
623+
624+
<a href="author/saarah-hussain.html">Saarah Hussain</a>
625+
626+
</li>
627+
628+
<li id="ablog-sidebar-item location ablog__location">
629+
<span>
630+
631+
<i class="fa-fw fa fa-location-arrow"></i>
632+
633+
</span>
634+
635+
<a href="location/london.html">London</a>
636+
,
637+
<a href="location/uk.html">UK</a>
638+
639+
</li>
640+
641+
<li id="ablog-sidebar-item language ablog__language">
642+
<span>
643+
644+
<i class="fa-fw fa fa-language"></i>
645+
646+
</span>
647+
648+
<a href="language/english.html">English</a>
649+
650+
</li>
651+
652+
<li id="ablog-sidebar-item category ablog__category">
653+
<span>
654+
655+
<i class="fa-fw fa fa-folder-open"></i>
656+
657+
</span>
658+
659+
<a href="category/blog.html">Blog</a>
660+
661+
</li>
662+
663+
</div>
664+
</ul>
665+
<p class="ablog-post-excerpt"><p>Hi, I’m <a class="reference external" href="https://github.com/saarah815">Saarah</a>. The intersection of healthcare and software development has
666+
always been important to me, which is why spending my summer with the
667+
<a class="reference external" href="https://github.com/neuroinformatics-unit">Neuroinformatics Unit</a>
668+
has been the perfect opportunity to bring together the work I love.</p>
669+
</p>
670+
671+
<p class="ablog-post-expand">
672+
<a href="gsoc_2025_brainglobe_registration.html"><em>Read more ...</em></a>
673+
</p>
674+
<hr />
675+
</div>
676+
603677
<div class="section ablog-post">
604678
<h2 class="ablog-post-title">
605679
<a href="datashuttle_gsoc2025.html">Add Google Drive and AWS to datashuttle - Final GSoC Report</a>

blog/archive.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,15 @@ <h2>
593593
</span>
594594
</h2>
595595

596+
<div class="section ablog__catalog_post">
597+
<p>
598+
599+
<span>15 September 2025</span>
600+
-
601+
<a href="gsoc_2025_brainglobe_registration.html">GSoC 2025: brainglobe-registration</a>
602+
</p>
603+
</div>
604+
596605
<div class="section ablog__catalog_post">
597606
<p>
598607

blog/author.html

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,25 @@ <h2>
688688

689689
</div>
690690

691+
<div class="section ablog__catalog_header">
692+
<h2>
693+
<span
694+
>Posts by
695+
<a href="author/saarah-hussain.html">Saarah Hussain</a>
696+
</span>
697+
</h2>
698+
699+
<div class="section ablog__catalog_post">
700+
<p>
701+
702+
<span>15 September 2025</span>
703+
-
704+
<a href="gsoc_2025_brainglobe_registration.html">GSoC 2025: brainglobe-registration</a>
705+
</p>
706+
</div>
707+
708+
</div>
709+
691710
<div class="section ablog__catalog_header">
692711
<h2>
693712
<span

0 commit comments

Comments
 (0)