{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.3.0.dev0", "url": "https://pretalx.com"}, "schedule": {"url": "https://pretalx.com/euroscipy-2025/schedule/", "version": "sprint-rooms", "base_url": "https://pretalx.com", "conference": {"acronym": "euroscipy-2025", "title": "EuroSciPy 2025", "start": "2025-08-18", "end": "2025-08-22", "daysCount": 5, "timeslot_duration": "00:05", "time_zone_name": "Europe/Warsaw", "colors": {"primary": "#0056aa"}, "rooms": [{"name": "1.19, 3.27b", "slug": "4580-119-327b", "guid": "997e63ba-2a62-563f-bc37-e283df415273", "description": null, "capacity": null}, {"name": "Room 1.38 (Ground Floor)", "slug": "4362-room-138-ground-floor", "guid": "878d0020-0353-50d1-9651-f5811b31f3d3", "description": null, "capacity": null}, {"name": "Room 1.19 (Ground Floor, Shannon)", "slug": "4736-room-119-ground-floor-shannon", "guid": "b6912309-5b14-5572-aef1-65264aec9014", "description": null, "capacity": null}, {"name": "Room 1.20 (Ground Floor, Shannon)", "slug": "4363-room-120-ground-floor-shannon", "guid": "ecc518d4-582e-5e7a-b947-09a5f44ba65f", "description": null, "capacity": null}, {"name": "Room 2.41 (First Floor, Turing)", "slug": "4392-room-241-first-floor-turing", "guid": "159af92f-b601-511d-8ed7-a2bf6ed89b41", "description": null, "capacity": null}, {"name": "Room 3.27b (Second Floor, Turing)", "slug": "4737-room-327b-second-floor-turing", "guid": "721b37ba-5da9-59c5-9eb5-b73b82671f04", "description": null, "capacity": null}, {"name": "Room 3.27c (Second Floor, Turing)", "slug": "4738-room-327c-second-floor-turing", "guid": "37d6491b-a005-5e94-99c3-3d92aee1db68", "description": null, "capacity": null}], "tracks": [{"name": "Community, Education, and Outreach", "slug": "5541-community-education-and-outreach", "color": "#665500"}, {"name": "Computational Tools and Scientific Python Infrastructure", "slug": "5542-computational-tools-and-scientific-python-infrastructure", "color": "#010101"}, {"name": "Interdisciplinary Frontiers and other Scientific Python Applications", "slug": "5569-interdisciplinary-frontiers-and-other-scientific-python-applications", "color": "#116633"}, {"name": "Physical Sciences and Engineering", "slug": "5543-physical-sciences-and-engineering", "color": "#990099"}, {"name": "Life Sciences and Biomedicine", "slug": "5567-life-sciences-and-biomedicine", "color": "#662222"}, {"name": "Environmental and Earth Sciences", "slug": "5568-environmental-and-earth-sciences", "color": "#AA2222"}, {"name": "Large Language Models (LLMs), Neural Networks and AI Development", "slug": "5544-large-language-models-llms-neural-networks-and-ai-development", "color": "#5533AA"}, {"name": "Applied AI & LLM Technologies and Use Cases", "slug": "5545-applied-ai-llm-technologies-and-use-cases", "color": "#006622"}], "days": [{"index": 1, "date": "2025-08-18", "day_start": "2025-08-18T04:00:00+02:00", "day_end": "2025-08-19T03:59:00+02:00", "rooms": {"Room 1.38 (Ground Floor)": [{"guid": "3a0b73d5-761b-594e-8098-6310f2c230a5", "code": "Q3FERF", "id": 69319, "logo": null, "date": "2025-08-18T08:30:00+02:00", "start": "08:30", "end": "2025-08-18T10:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-69319-guardians-of-science-a-python-tutorial-on-a-rag-powered-compliance-plug-in-and-ethical-ai-tools", "url": "https://pretalx.com/euroscipy-2025/talk/Q3FERF/", "title": "Guardians of Science: A Python Tutorial on a RAG-Powered Compliance Plug-In and Ethical AI tools", "subtitle": "", "track": "Applied AI & LLM Technologies and Use Cases", "type": "Tutorial", "language": "en", "abstract": "As AI adoption accelerates across industries, ensuring ethical integrity and reproducibility has become increasingly critical for enterprises and developers. This tutorial presents a Retrieval-Augmented Generation (RAG)-based compliance plug-in designed to promote responsible AI practices. Through a hands-on session, participants will learn how to integrate external compliance knowledge bases with generative models to automate ethical checks, document decision-making processes, and enhance the reproducibility of AI outputs. The session will cover system architecture, implementation using popular frameworks, and practical use cases, equipping attendees with tools to embed trust and accountability into AI workflows from the outset.\nOver the course of 90 minutes, we will introduce the core concepts behind the Python-based plug-in, including RAG architecture and vector-based retrieval techniques. Participants will engage with live demonstrations on querying regulatory standards such as the European Union Artificial Intelligence Act and FAIR (Findable, Accessible, Interoperable, Reusable) principles. The tutorial will also showcase bias auditing and model transparency features, using a healthcare case study to illustrate real-world application and highlight model tracking and reproducibility capabilities.", "description": "## Background\nThe growing integration of AI in research and everyday applications brings significant challenges related to ethics, compliance, and reproducibility, which are key pillars for maintaining our trust in AI's capabilities.  Compliance challenges in AI applications arise from the need to navigate evolving regulatory standards, ensure fairness and transparency, and maintain data privacy and accountability across diverse and complex systems. Bias related issues , for example bias across demographic groups pose serious risks, while reproducibility issues, such as incomplete experiment documentation or unstable software environments, further erode confidence in AI-driven applications. To tackle these problems, we present a Retrieval-Augmented Generation (RAG) framework that combines vector-based retrieval methods (e.g., FAISS for fast data access) with transformer-based language models (e.g., Mistral) to deliver transparent, standards-compliant recommendations. We also familiarize participants with complementary tools like IBM\u2019s AI Fairness 360. that support bias detection and mitigation through metrics such as disparate impact and reweighing techniques. \n\n##  Significance\nAs AI becomes central to research across disciplines, maintaining ethical standards and reproducibility is essential. Compliance with frameworks like the EU Artificial Intelligence Act and FAIR principles helps prevent biased outcomes and irreproducible results that can damage scientific credibility. In fields such as biomedicine, social sciences, and environmental science, biased or unreliable models can have serious consequences. To address these challenges, this tutorial offers hands-on exercises with a Retrieval-Augmented Generation (RAG) compliance plugin and the IBM AI Fairness 360 toolkit. These tools help researchers detect bias, improve transparency, and ensure reproducibility, supporting the creation of trustworthy, accountable AI systems across diverse domains.\n\n## Objectives\nThe tutorial aims to teach participants about the concepts like ethical compliance, RAG capabilities and tools for estimating and mitigating bias in AI workflows. We will have focused demos using the python RAG plug-in and Fairness 360 that will show how these tools solve compliance issues, using a healthcare case study. Participants will gain skills in ethical AI checks and reproducible methods, preparing them to meet global standards in their research.\n\n## Tutorial Breakdown\n* Introduction (5 min): Describe AI research challenges, like bias and reproducibility, introduce RAG, Fairness360, noting links to standards like the European Union Artificial Intelligence Act and FAIR principles.\n\n* Setup and Data Preparation (15 min): Look at setting up a Jupyter environment (Python 3.8+, FAISS, Transformers, Fairness360, MLflow, Docker, Plotly, Gradio) and review a synthetic healthcare dataset (10,000+ records, World Health Organization-aligned, with age, gender, ethnicity, and ICD-10 codes) and a pre-built compliance knowledge base (EU AI Act, FAIR, GDPR). \n\n* Demonstration 1: Retrieval-Augmented Generation (35 min): Explore RAG\u2019s system, showing vector-based retrieval (e.g., FAISS searching EU AI Act rules on data use) and LLM generation (e.g., Mistral creating compliance tips). Demonstrate the plug-in\u2019s process for finding standards and making checks in the healthcare case study, like ensuring GDPR-compliant data use for diagnostic models, with MLflow tracking results. \n\n* Demonstration 2:  Fairness360 (35 min): Study Fairness360\u2019s bias-checking tools, calculating measures like disparate impact and statistical parity for the healthcare diagnostic model (e.g., comparing accuracy for gender and ethnicity groups). Show how to fix bias (e.g., reweighing to balance groups), using Plotly to display bias measures (e.g., bar charts of disparity) and Gradio to interact with audit reports, focusing on fair results.  \n\n* Q&A and Wrap-Up (5 min): Talk about uses in biomedicine (e.g., fair diagnostics), social sciences (e.g., unbiased data analysis), and environmental science (e.g., repeatable climate models), and answer questions to clarify concepts.\n\n## Outcomes\nParticipants will deeply understand Retrieval-Augmented Generation and Fairness360, and see how they work in a compliance plug-in. They will build skills in ethical AI checks and reproducible methods, ready to use in biomedicine, social sciences, and environmental science, meeting standards like the European Union Artificial Intelligence Act and FAIR principles.", "recording_license": "", "do_not_record": false, "persons": [{"code": "Z9BZMS", "name": "Anuradha Kar, PhD", "avatar": null, "biography": null, "public_name": "Anuradha Kar, PhD", "guid": "8c5b1a5e-dd70-542d-bfc2-93fdd900c535", "url": "https://pretalx.com/euroscipy-2025/speaker/Z9BZMS/"}, {"code": "3U3KUU", "name": "Anuradha KAR", "avatar": null, "biography": "I am an Associate Professor in AI and Robotics at Aivancity based in Paris, France.  I got my PhD from the University of Galway in Ireland in Electrical and Electronic Engineering. I then worked at ENS Lyon in collaboration with Inria and Inrae on deep learning for 3D biological image analysis, then joined the Paris Brain Institute with Inria on deep learning for data analysis of Alzheimer's patients, and the Pasteur Institute in Paris on applications of deep learning in the field of drug discovery. My research and teaching interests focus on applications of deep learning in computer vision, computational biology and health, as well as human-machine interactions and intelligent systems.", "public_name": "Anuradha KAR", "guid": "99ec0ca9-078b-5d59-b8bd-251f265f0bda", "url": "https://pretalx.com/euroscipy-2025/speaker/3U3KUU/"}, {"code": "GWQHEL", "name": "Likhita Yerra", "avatar": null, "biography": "Likhita Yerra, a Master\u2019s student in AI and Data Science, specializes in Python, computer vision, and large language models. I develop innovative machine learning solutions with PyTorch, TensorFlow, Docker, and Streamlit, passionate about advancing AI and scientific computing for real-world impact.", "public_name": "Likhita Yerra", "guid": "02a22e80-297b-5d2d-886b-0bc3c9438354", "url": "https://pretalx.com/euroscipy-2025/speaker/GWQHEL/"}], "links": [{"title": "Compliance library and code snippets", "url": "https://drive.google.com/drive/folders/1K5x2eKrvVtC9ecLg-L9RT6srnU_CG0sh?usp=sharing", "type": "related"}], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/Q3FERF/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/Q3FERF/", "attachments": []}, {"guid": "40d31c79-8589-53e9-99d7-e936e577b62e", "code": "8KK8UC", "id": 67325, "logo": null, "date": "2025-08-18T10:30:00+02:00", "start": "10:30", "end": "2025-08-18T12:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67325-skrub-machine-learning-for-dataframes", "url": "https://pretalx.com/euroscipy-2025/talk/8KK8UC/", "title": "Skrub: machine learning for dataframes", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "Machine-learning algorithms expect a numeric array with one row per observation. Typically, creating this table requires \"wrangling\" with Pandas or Polars (aggregations, selections, joins, ...), and to extract numeric features from structured data types such as datetimes. These transformations must be applied consistently when making predictions for unseen inputs, and choices must be informed by performance measured on a validation dataset, while preventing data leakage. This preprocessing is the most difficult and time-consuming part of many data-science projects.\n\nSkrub bridges the gap between complex tabular data stored in Pandas or Polars dataframes, and machine-learning algorithms implemented by scikit-learn estimators. It provides scikit-learn transformers to extract features from datetimes, (fuzzy) categories and text, and to perform data-wrangling such as joins and aggregations in a learning pipeline. Its pre-built, flexible learners offer very robust performance on many tabular datasets without manual tweaking. It can create complex pipelines that handle multiple tables, while easily describing and searching rich hyperparameter spaces. As interactivity and visualization are essential for preprocessing, Skrub also provides an interactive report to explore a dataframe, and its pipelines can be built incrementally while inspecting intermediate results.\n\nWe will give an overview of Skrub and demonstrate its features on realistic and challenging tabular learning scenarios", "description": "In the tutorial we will teach how to use skrub to easily tackle datasets that would be challenging to analyze using only scikit-learn. In this regards, we show how skrub can be combined with scikit-learn to address some time series forecasting use case.\n\nFirst, we give a short introduction regarding the scope of the skrub library. We show that some tedious tasks around machine learning can be reduce with a couple of out of the shelve functionalities.\n\nThen, we focus on the skrub DataOps that allows to combine data wrangling operations, using commonly tools such as pandas or polars, with common machine learning pipeline, using scikit-learn. We focus on time series forecasting. First, we show how to build some common time series preprocessing using polars. Then, we show that we can record the set of such transformation into a graph allowing us to replay the same transformation in the future on a new set of data. Then, we combine this preprocessing stage together with a classic scikit-learn regressor to predict the desired target. Finally, we show how to evaluate this pipeline with cross-validation as well as how to perform hyperparameter search.\n\nWe conclude with a brief summary of ongoing development and future enhancements to skrub.\n\nThe material and instructions for the tutorial will be available here: \n- [static website](http://skrub-data.org/EuroSciPy2025/)\n- [git repository](https://github.com/skrub-data/EuroSciPy2025)\n\nYou can find an extended version [here](https://github.com/probabl-ai/forecasting)", "recording_license": "", "do_not_record": false, "persons": [{"code": "KMDJAL", "name": "Guillaume Lemaitre", "avatar": null, "biography": "I'm chief machine learning officer and open source software engineer at :probabl. I'm a core developer of scikit-learn and imbalanced-learn.", "public_name": "Guillaume Lemaitre", "guid": "41faba07-5db9-5480-8bd8-f8de3b4d4146", "url": "https://pretalx.com/euroscipy-2025/speaker/KMDJAL/"}, {"code": "ZHUVWQ", "name": "J\u00e9r\u00f4me Dock\u00e8s", "avatar": null, "biography": "J\u00e9r\u00f4me Dock\u00e8s is a research engineer at Inria and one of the developers of the Skrub and Nilearn python packages.", "public_name": "J\u00e9r\u00f4me Dock\u00e8s", "guid": "e7e77891-0f46-51e0-bd21-4167304c59e2", "url": "https://pretalx.com/euroscipy-2025/speaker/ZHUVWQ/"}, {"code": "E3S7GV", "name": "Riccardo Cappuzzo", "avatar": null, "biography": null, "public_name": "Riccardo Cappuzzo", "guid": "0fff9c7d-65a5-522f-bad3-daf94f65b29a", "url": "https://pretalx.com/euroscipy-2025/speaker/E3S7GV/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/8KK8UC/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/8KK8UC/", "attachments": []}, {"guid": "f46eb06d-4345-53d8-a30e-36a8d6533a49", "code": "PTLGMW", "id": 67391, "logo": null, "date": "2025-08-18T13:30:00+02:00", "start": "13:30", "end": "2025-08-18T15:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67391-use-napari-for-easier-interactive-extraction-of-knowledge-from-images-and-other-spatial-data", "url": "https://pretalx.com/euroscipy-2025/talk/PTLGMW/", "title": "Use napari for easier interactive extraction of knowledge from images and other spatial data", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "With cameras in everything from microscopes to telescopes to satellites, scientists produce image data in countless formats, shapes, sizes, and dimensions. Python provides a rich ecosystem of libraries to make sense of them. napari is a Python library for interactive multidimensional image visualization, but it does double duty as a standalone application that can be easily extended with GUI tools for analysis, visualization, and annotation. In this tutorial, we'll start with the basics of interacting with the napari interface. Then we will show how to extend napari, from script, with your own functions and widgets. At the end, we will describe how to convert such custom modifications into a plugin that can be easily shared with other people as a Python package.", "description": "As we collect more and more images and other spatial information, we need to improve tooling to be able to process all the data that we gather from microscopes, telescopes, satellites, MRI machines and a myriad of other sensors. \nFor the phase of data exploration, we need a tool that allows smooth comparison of results from various knowledge extraction methods, in order to choose the best method of processing our data.\n\nThis tutorial is aimed at people who have some experience in scientific computing with Python. To get the most out of it, you should be familiar with NumPy arrays, Jupyter notebooks, and Python scripts. Ideally, you should have some idea of how images can be represented as arrays of numbers, and the types of analyses that might be performed on these arrays, e.g. filtering and segmentation. You don\u2019t necessarily need to be familiar with how these tools and methods work - it\u2019s enough to know that they are out there! \n\nThis tutorial will be split into three parts:\n\nPart 1: Introduction: using napari, exploring the interface, using sample plugins to perform basic data manipulation \nIn this section, we will introduce participants to the napari interface and show how to perform basic operations. It will also ensure that participants have properly created the virtual environment. \nPart 2: Extending napari with custom functionalities: custom widgets and mouse callbacks, from a Python script or Jupyter notebook. \nIn this section, we will teach: How to allow trigger custom functions from napari GUI. How to create a simple widget from a function and how to prepare a more complex widget to fit better into workflow. How to integrate the napari viewer with an interactive session in jupyter. \nPart 3: How to convert your custom extension of napari into a plugin, Python package, that can be easily shared with other people. \nIn this section, we will show how to pack custom widgets into plugins and share them as Python packages.\n\n## Installation instruction\n\nIn this tutorial we assume usage of [`uv`](https://docs.astral.sh/uv/) for environment management. \nIf you prefer to use `conda` or `pip`, then you may use our [installation instruction](https://napari.org/stable/tutorials/fundamentals/installation.html#napari-installation) \n\nTo setup your workspace:\n\n1. Install `uv` (here instruction https://docs.astral.sh/uv/#installation) \n2. Clone (`git clone https://github.com/brisvag/napari-tutorial-euroscipy2025.git`) or [download](https://github.com/brisvag/napari-tutorial-euroscipy2025/archive/refs/heads/main.zip) the repository\n3. Go into the project directory\n4. Execute `uv sync`\n5. Check if everything works by executing `uv run napari`. If the application starts your environment is ready!\n\nYou may activate the environment by typing \n* [Linux/MacOs] `source .venv/bin/activate`\n* [Windows] `venv\\Scripts\\activate.bat` (or `venv\\Scripts\\Activate.ps1` if using PowerShell)", "recording_license": "", "do_not_record": false, "persons": [{"code": "FGEUGZ", "name": "Grzegorz Bokota", "avatar": null, "biography": "I have joined to napari project while working on PhD project, as I understand that great visualization significantly improves data understanding, so improves the quality of research. Now I'm shifting into full-time open-source contributor. I'm mainly focusing now on improving tooling to lower entry level. \nOn university, I teach students about Python.", "public_name": "Grzegorz Bokota", "guid": "0408dba1-0163-5e43-9c22-deada65e8fd2", "url": "https://pretalx.com/euroscipy-2025/speaker/FGEUGZ/"}, {"code": "Z9XNXN", "name": "Lorenzo", "avatar": null, "biography": null, "public_name": "Lorenzo", "guid": "08eac9ea-41bf-5bc5-b566-eba723432868", "url": "https://pretalx.com/euroscipy-2025/speaker/Z9XNXN/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/PTLGMW/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/PTLGMW/", "attachments": []}, {"guid": "1aedcaae-c847-5684-bab4-68c69458774f", "code": "FPYRSB", "id": 67300, "logo": null, "date": "2025-08-18T15:30:00+02:00", "start": "15:30", "end": "2025-08-18T17:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67300-compress-compute-and-conquer-python-blosc2-for-efficient-data-analysis", "url": "https://pretalx.com/euroscipy-2025/talk/FPYRSB/", "title": "Compress, Compute, and Conquer: Python-Blosc2 for Efficient Data Analysis", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "Have you ever experienced the frustration of not being able to analyze a dataset because it's too large to fit in memory? Or perhaps you've encountered the memory wall, where computation is hindered by slow memory access? In this hands-on tutorial, you'll learn how to overcome these common challenges using Python-Blosc2.\n\nPython-Blosc2 (https://www.blosc.org/python-blosc2/) is a high-performance, multi-threaded, multi-codec array container, with an integrated compute engine that allows you to compress *and compute* on large datasets efficiently. You'll gain practical experience with Python-Blosc2's latest features, including its seamless integration with NumPy and the broader Python data ecosystem. Through guided exercises, you'll discover how to tackle data challenges that exceed your available RAM while maintaining high performance.\n\nBy the end of this tutorial, you'll be able to implement Python-Blosc2 in your own workflows, dramatically increasing your ability to process large datasets on standard hardware. Participants should have basic familiarity with NumPy and Python data processing.", "description": "Blosc and Blosc2 are well-known and widely used libraries for high-performance data compression. They are particularly effective for compressing large datasets, such as those encountered in data science and high-performance computing. The Blosc library has been around for more than a decade, and its design has always prioritized speed, with a focus on achieving compression and decompression speeds that are close to or even exceed memory bandwidth limits.\n\nWith the introduction of a new compute engine in Python-Blosc2 3.0, the guiding principle has evolved to \"Compress Better, Compute Bigger.\" This enhancement enables computations on datasets that are over 100 times larger than the available RAM, all while maintaining high performance.\n\nIn this hands-on tutorial, participants will learn how to effectively use Python-Blosc2 through practical exercises divided into three sections:\n\n**Section 1: Getting Started with Python-Blosc2 (20 minutes)**\n- Introduction to compression concepts and Blosc2 architecture\n- Setting up your environment and installing Python-Blosc2\n- Basic compression/decompression operations with various codecs\n- Hands-on: Creating your first compressed arrays\n\n**Section 2: The Compute Engine (30 minutes)**\n- Understanding the Blosc2 compute engine architecture\n- Processing data larger than available RAM\n- Hands-on: Implementing calculations on out-of-memory datasets\n\n**Section 3: Advanced Usage and Remote Access (20 minutes)**\n- Caterva2: serving Blosc2 files remotely\n- Hands-on: Solving a complex data analysis challenge\n\nThroughout the tutorial, we'll work with practical examples demonstrating how to analyze datasets that exceed available RAM without specialized hardware. By the end, participants will have hands-on experience implementing Python-Blosc2 in data workflows and will understand how to compress data while maintaining computational efficiency.\n\nThis tutorial will help you expand your capabilities for scientific computing and data analysis while reducing memory footprint and improving processing speed. Attendees should bring laptops with Python installed.\n\nTutorial setup instructions are accessible at: https://github.com/Blosc/EuroSciPy2025-CCC-Tutorial", "recording_license": "", "do_not_record": false, "persons": [{"code": "BMFCA3", "name": "Francesc Alted", "avatar": null, "biography": "I am a curious person who studied Physics and Applied Maths. I spent over a year at [CERN](https://home.cern) for my MSc in High Energy Physics. However, I found maths and computer sciences equally fascinating, so I left academia to pursue these fields. Over the years, I developed a passion for handling large datasets and using compression to enable their analysis on commodity hardware accessible to everyone.\n\nI am the CEO of [ironArray SLU](https://ironarray.io) and also leading the [Blosc Development Team](https://blosc.org). I am very excited in working in providing a way for sharing Blosc2 datasets in the network in an easy and effective way via [Caterva2](https://ironarray.io/caterva2-doc/index.html), and [Cat2Cloud](https://ironarray.io/cat2cloud), a software as a service that we are introducing.\n\nAs an Open Source believer, I started the [PyTables project more than 20 years ago](https://www.blosc.org/posts/pytables-20years/).  After 25 years in this business, I started several other useful open source projects like Blosc, Caterva2 and [Btune](https://github.com/ironArray/Blosc2-Btune); those efforts won me two prizes that mean a lot to me:\n\n* 2023: [NumFOCUS Project Sustainability Award](https://www.blosc.org/docs/NumFOCUS-Sustainability-Award.jpg)\n* 2017: [Google\u2019s Open Source Peer Bonus](https://opensource.googleblog.com/2017/10/more-open-source-peer-bonus-winners.html)\n\nYou can know more on what I am working on by reading my [latest blogs](https://www.blosc.org/authors/francesc-alted).", "public_name": "Francesc Alted", "guid": "a43fdfe0-a25c-5192-b01a-430acecab6a3", "url": "https://pretalx.com/euroscipy-2025/speaker/BMFCA3/"}, {"code": "WFFNSW", "name": "Luke Shaw", "avatar": null, "biography": "2019 BS in Physics (Princeton University), cum laude\n2020 MSc in Applied Mathematics (University of Edinburgh), with distinction\n2024 PhD in Applied Mathematics (Universitat Jaume I), sobresaliente cum laude", "public_name": "Luke Shaw", "guid": "80f66ad5-8bf8-5d53-9b33-b96ae0eb92be", "url": "https://pretalx.com/euroscipy-2025/speaker/WFFNSW/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/FPYRSB/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/FPYRSB/", "attachments": []}], "Room 1.20 (Ground Floor, Shannon)": [{"guid": "83d82566-569c-5013-8d3f-ba6ad91706e7", "code": "URGTCT", "id": 75462, "logo": null, "date": "2025-08-18T08:30:00+02:00", "start": "08:30", "end": "2025-08-18T10:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-75462-introduction-to-python-and-jupyterlab", "url": "https://pretalx.com/euroscipy-2025/talk/URGTCT/", "title": "Introduction to Python and JupyterLab", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "This tutorial provides a whirlwind introduction to the basic of the Python language and how to use JupyterLab. All other tutorials require some command of Python and will use Jupyter Notebooks for teaching. So, if you are new to Python and/or Jupyter, you should definitely attend this tutorial. I will adjust the topics to the needs of attendees. Prepare for 90 intensive minutes. You will learn something new and useful.", "description": "Please install JupyterLab **before** the tutorial. Depending on the way you install Python packages you chose on of these options:\n\n     pip install jupyterlab\n\nor \n\n     conda install jupyterlab\n\nor \n\n     mamba install jupyterlab\n\nor \n\n     pixi add jupyterlab\n\nor \n\n     uv add jupyterlab\nor\n\nYour own way.\n\nI use [Pixi](https://pixi.sh/latest/). If you like to try it, please [install](https://pixi.sh/latest/#installation) and create an environment:\n\n    pixi init jupyterlab_tutorial\n    cd jupyterlab_tutorial\n    pixi add jupyterlab python=3.13\n    pixi shell\n\nNo matter what installation method you use, you can start JupyterLab with:\n\n    jupyter-lab\n\nor\n\n    python -m jupyter-lab", "recording_license": "", "do_not_record": false, "persons": [{"code": "9KSJ3K", "name": "Mike M\u00fcller", "avatar": null, "biography": "I've been a Python user since 1999, teaching Python professionally since 2004. I am also active in the community, organizing Python conferences such as PyCon DE, EuroSciPy, and BarCamps. I am a PSF Fellow, PSF Community Service Award winner, and chair of the German Python Software Verband.", "public_name": "Mike M\u00fcller", "guid": "83509971-e18d-5ad6-843b-373fc98d3359", "url": "https://pretalx.com/euroscipy-2025/speaker/9KSJ3K/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/URGTCT/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/URGTCT/", "attachments": []}, {"guid": "974f008c-4cfb-55eb-acaa-c758ebe537ff", "code": "UWMH7B", "id": 75456, "logo": null, "date": "2025-08-18T10:30:00+02:00", "start": "10:30", "end": "2025-08-18T12:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-75456-introduction-to-numpy-and-dataframes", "url": "https://pretalx.com/euroscipy-2025/talk/UWMH7B/", "title": "Introduction to NumPy and DataFrames", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "This 90-minute hands-on tutorial introduces the fundamentals of NumPy and explain the basics and usage of DataFrames using the Pandas and Polars libraries. This tutorial is aimed at Python beginners and covers essential techniques for working with numerical and tabular data.\n\nParticipants will learn how to create and manipulate arrays with NumPy, and perform common data analysis tasks using Pandas DataFrames\u2014such as filtering, grouping, and summarizing data. The session will also provide a brief look at Polars, a high-performance alternative to Pandas. Through live coding and exercises, attendees will gain practical skills for efficient data wrangling and analysis.", "description": "## **Title: Introduction to NumPy and DataFrames (Pandas & Polars)**\n\nThis tutorial is targeted for beginners with basic Python knowledge and will give an understand of the basics of NumPy arrays and DataFrames, as well as perform simple data analysis tasks.\n\n### Welcome and Setup (~ 10 min)\n\n* Quick introduction to the topic and objectives\n* Ensure environments are setup\n* Overview of what NumPy and DataFrames are used for\n\n### Introduction to NumPy (~25 min)\n\n* What is NumPy and why use it?\n* Creating arrays:\n  * `np.array`, `np.zeros`, `np.ones`, `np.arange`, `np.linspace`\n* Array shapes and reshaping: `.shape`, `.reshape()`\n* Indexing and slicing\n* Vectorized operations vs Python loops (brief performance motivation)\n* Basic operations:\n  * Arithmetic, broadcasting, `.mean()`, `.sum()`, `.axis`\n* Hands-on exercises:\n  * Create a 2D array and compute row-wise and column-wise means\n  * Element-wise multiplication of arrays\n\n### Introduction to Pandas DataFrames (~25 min)\n\n* What is a DataFrame?\n* Creating a DataFrame (from dicts, CSV, etc.)\n* Exploring data:\n  * `.head()`, `.info()`, `.describe()`\n  * Accessing columns and rows: `df['col']`, `.loc`, `.iloc`\n* Filtering and boolean indexing\n* Common operations:\n  * Sorting (`.sort_values()`), grouping (`.groupby()`), aggregation\n  * Handling missing values: `.isna()`, `.fillna()`, `.dropna()`\n* Simple data visualization with `.plot()` (optional if time)\n* Hands-on exercises:\n  * Load a small CSV\n  * Filter rows by condition\n  * Group by a column and compute summary stats\n\n### Polars (~25 min)\n\n* Why Polars? Performance and parallelism\n* Quick comparison with Pandas (syntax similarities/differences)\n* Lazy vs eager evaluation\n* Basic usage:\n  * `pl.read_csv`, `df.select`, `df.filter`, `df.groupby`\n* Hands-on mini demo (load and filter data)\n\n###  Recap, Tips & Q\\&A (~ 5 min)\n\n* Summary of key concepts\n* When to use what (NumPy vs Pandas vs Polars)\n* Tips for continued learning\n* Q\\&A", "recording_license": "", "do_not_record": false, "persons": [{"code": "F7VUE9", "name": "Umut Nefta Kanilmaz", "avatar": null, "biography": "PhD researcher at LMU Munich and MCML with a background in software engineering and a M.Sc. degree in physics.", "public_name": "Umut Nefta Kanilmaz", "guid": "787e1d0c-5246-5956-a030-c7963562aae3", "url": "https://pretalx.com/euroscipy-2025/speaker/F7VUE9/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/UWMH7B/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/UWMH7B/", "attachments": []}, {"guid": "14b1fb6a-6404-5312-8894-72b30ebaea67", "code": "LMDYUQ", "id": 75464, "logo": null, "date": "2025-08-18T13:30:00+02:00", "start": "13:30", "end": "2025-08-18T15:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-75464-introduction-to-scikit-learn", "url": "https://pretalx.com/euroscipy-2025/talk/LMDYUQ/", "title": "Introduction to Scikit-learn", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "Scikit-learn is a free and open-source machine learning library for Python. It provides multiple machine learning algorithms as well as various tools for model fitting, data preprocessing, model selection, model evaluation, and many other utilities. \nIn this beginner tutorial, you will learn the basics of machine learning development with scikit-learn - from creating a machine learning model to validating it using available tools.", "description": "This beginner tutorial will include:\n1. Brief introduction to machine learning\n2. Why Python?\n3. Where to get the data?\n4. Introduction to scikit-learn - basic machine learning algorithms\n5. Hands-on tutorial on how to create your own machine learning model\n6. Instructions on how and why to validate your machine learning model\n7. Where, when, and why use machine learning?\n\nAll the code will be provided to you in a GitHub repository. There will also be time prepared for additional questions regarding the topic.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PEVP8Q", "name": "Justyna Szyd\u0142owska-Samsel", "avatar": null, "biography": "Magister of engineering in Computer Science, currently research assistant at University of Szczecin, Institute of Management.", "public_name": "Justyna Szyd\u0142owska-Samsel", "guid": "9d511946-d767-5bfc-a538-769ce67e8ce7", "url": "https://pretalx.com/euroscipy-2025/speaker/PEVP8Q/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/LMDYUQ/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/LMDYUQ/", "attachments": []}, {"guid": "ef9f807b-17a3-5850-9e57-2a418417a125", "code": "GYBLDL", "id": 67202, "logo": null, "date": "2025-08-18T15:30:00+02:00", "start": "15:30", "end": "2025-08-18T17:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67202-beyond-the-basics-data-visualization-in-python", "url": "https://pretalx.com/euroscipy-2025/talk/GYBLDL/", "title": "Beyond the Basics: Data Visualization in Python", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "The human brain excels at finding patterns in visual representations, which is why data visualizations are essential to any analysis. Done right, they bridge the gap between those analyzing the data and those consuming the analysis. However, learning to create impactful, aesthetically-pleasing visualizations can often be challenging. This session will equip you with the skills to make customized visualizations for your data using Python.\n\nWhile there are many plotting libraries to choose from, the prolific Matplotlib library is always a great place to start. Since various Python data science libraries utilize Matplotlib under the hood, familiarity with Matplotlib itself gives you the flexibility to fine tune the resulting visualizations (e.g., add annotations, animate, etc.). This session will also introduce interactive visualizations using HoloViz, which provides a higher-level plotting API capable of using Matplotlib and Bokeh (a Python library for generating interactive, JavaScript-powered visualizations) under the hood.", "description": "#### Section 1: Getting Started With Matplotlib\n\nWhile there are many plotting libraries to choose from, the prolific Matplotlib library is always a great place to start. Since various Python data science libraries utilize Matplotlib under the hood, familiarity with Matplotlib itself gives you the flexibility to fine tune the resulting visualizations (e.g., add annotations, animate, etc.). Moving beyond the default options, we will explore how to customize various aspects of our visualizations. Afterward, you will be able to generate plots using the Matplotlib API directly, as well as customize the plots that other libraries create for you.\n\n#### Section 2: Moving Beyond Static Visualizations\n\nWhile static visualizations are limited in how much information they can show, animations make it possible for our visualizations to tell a story through movement of the plot components (e.g., bars, points, lines), which can encode another dimension of the data. In this section, we will focus on creating animated visualizations before moving on to create interactive visualizations in the next section.\n\n#### Section 3: Building Interactive Visualizations for Data Exploration\n\nWhen exploring our data, interactive visualizations can provide the most value. Without having to create multiple iterations of the same plot, we can use mouse actions (e.g., click, hover, zoom, etc.) to explore different aspects and subsets of the data. In this section, we will learn how to use HoloViz to create interactive visualizations for exploring our data utilizing the Bokeh backend.\n\n## Setup instructions\nPlease set up your laptop beforehand by following these [setup instructions](https://github.com/stefmolin/python-data-viz-workshop?tab=readme-ov-file#setup-instructions).", "recording_license": "", "do_not_record": true, "persons": [{"code": "9WJJPL", "name": "Stefanie Molin", "avatar": null, "biography": "[Stefanie Molin](https://stefaniemolin.com) is a software engineer at Bloomberg in New York City, where she tackles tough problems in information security, particularly those revolving around data wrangling/visualization, building tools for gathering data, and knowledge sharing. She is also a core developer of [numpydoc](https://github.com/numpy/numpydoc) and the author of \u201c[Hands-On Data Analysis with Pandas: A Python data science handbook for data collection, wrangling, analysis, and visualization](https://www.amazon.com/Hands-Data-Analysis-Pandas-visualization/dp/1800563450),\u201d which is currently in its second edition and has been translated into Korean and Chinese. She holds a bachelor\u2019s of science degree in operations research from Columbia University's Fu Foundation School of Engineering and Applied Science, as well as a master\u2019s degree in computer science, with a specialization in machine learning, from Georgia Tech. In her free time, she enjoys traveling the world, inventing new recipes, and learning new languages spoken among both people and computers.", "public_name": "Stefanie Molin", "guid": "5bf07136-7050-522e-af80-e59598a668c5", "url": "https://pretalx.com/euroscipy-2025/speaker/9WJJPL/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/GYBLDL/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/GYBLDL/", "attachments": []}]}}, {"index": 2, "date": "2025-08-19", "day_start": "2025-08-19T04:00:00+02:00", "day_end": "2025-08-20T03:59:00+02:00", "rooms": {"Room 1.38 (Ground Floor)": [{"guid": "77a6a18b-c122-5f79-8ef7-13dcd0062491", "code": "ASR3XL", "id": 67402, "logo": null, "date": "2025-08-19T08:30:00+02:00", "start": "08:30", "end": "2025-08-19T10:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67402-predictive-modeling-for-imbalanced-classification-using-scikit-learn", "url": "https://pretalx.com/euroscipy-2025/talk/ASR3XL/", "title": "Predictive modeling for imbalanced classification using scikit-learn", "subtitle": "", "track": "Applied AI & LLM Technologies and Use Cases", "type": "Tutorial", "language": "en", "abstract": "Real-world applications use machine learning to aid decision-making and planning. Data scientists employ probabilistic models to connect input data with outcome predictions that guide operational decisions. A common challenge is working with \"imbalanced\" datasets, where the outcome of interest occurs rarely compared to total observations. Examples include disease detection in medical screening, fraud identification in transactions, and discovery of rare physical phenomena like the Higgs boson.\n\nThis tutorial examines methodological considerations for handling imbalanced datasets. We focus on resampling techniques that adjust the ratio between positive and negative outcomes. The tutorial explores: (i) how imbalanced data affects probability outcomes and classifier calibration; (ii) resampling's impact on model overfitting/underfitting and its connection to regularization; and (iii) the tradeoffs between computational and statistical performance when implementing resampling strategies.\n\nHands-on programmatic notebooks provide practical insights into these concepts.\n\nThe material and instructions to follow the tutorial will be available here:\nhttps://github.com/probabl-ai/calibration-cost-sensitive-learning", "description": "Real-world applications utilize machine learning (or artificial intelligence) to assist in decision-making or planning. In this context, probabilistic models represent the standard approach for data scientists to link input data with probabilistic predictions for possible outcomes, which serve as the foundation for subsequent operational decisions or actions. An additional challenge encountered in real-world applications is that the outcome of interest to be predicted often occurs rarely compared to the total number of observations. This scenario is commonly referred to as an \"imbalanced\" dataset. Several examples illustrate such applications: (i) medical screening where detecting a specific disease represents a rare outcome compared to the general population, (ii) fraud detection where fraudulent events constitute a small fraction of total transactions, and (iii) detection of physical phenomena such as the Higgs boson where observations confirming its existence represent rare events compared to all observations.\n\nThis tutorial addresses this particular problem and examines specific methodological considerations when approaching imbalanced datasets. One important consideration relates to resampling and its various effects: with numerous negative outcomes compared to positive outcomes, existing literature supports reducing the ratio between these event types. With these techniques in mind, we examine and study the following aspects: (i) the impact of imbalanced datasets on probability outcomes and classifier calibration; (ii) the effect of resampling on model overfitting and underfitting and its relationship to model regularization; and (iii) the impact of resampling on computational performance versus statistical performance.\n\nThis tutorial provides a hands-on approach through programmatic notebooks to offer insights into each of these concepts.\n\nThe material and instructions to follow the tutorial is available here:\n\n[https://github.com/probabl-ai/calibration-cost-sensitive-learning](https://github.com/probabl-ai/calibration-cost-sensitive-learning)", "recording_license": "", "do_not_record": false, "persons": [{"code": "KMDJAL", "name": "Guillaume Lemaitre", "avatar": null, "biography": "I'm chief machine learning officer and open source software engineer at :probabl. I'm a core developer of scikit-learn and imbalanced-learn.", "public_name": "Guillaume Lemaitre", "guid": "41faba07-5db9-5480-8bd8-f8de3b4d4146", "url": "https://pretalx.com/euroscipy-2025/speaker/KMDJAL/"}, {"code": "NEUMLP", "name": "Olivier Grisel", "avatar": null, "biography": "Olivier Grisel is a machine learning engineer at Probabl and a contributor to the scikit-learn library.", "public_name": "Olivier Grisel", "guid": "20888933-e3d6-5580-8ff2-1b072174f0f2", "url": "https://pretalx.com/euroscipy-2025/speaker/NEUMLP/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/ASR3XL/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/ASR3XL/", "attachments": []}, {"guid": "e152b3c5-6441-52a7-9fed-01f914a0a8e4", "code": "D78ZJP", "id": 67353, "logo": null, "date": "2025-08-19T10:30:00+02:00", "start": "10:30", "end": "2025-08-19T12:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67353-using-cython-and-c-kernels-to-speed-up-python-libraries", "url": "https://pretalx.com/euroscipy-2025/talk/D78ZJP/", "title": "Using Cython and C++ kernels to speed up Python libraries", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "Many high-performance Python frameworks, such as NumPy, scikit-learn, and PyTorch, rely on primitives implemented in Cython and C++ to achieve optimal performance.  \n\nIn this tutorial, we will explore how to implement custom kernels in Cython and C++ and integrate them into Python projects. Using Linear Regression model trained with Normal Equations method as an example, we will demonstrate how to accelerate numerical computations by writing efficient kernels in Cython and C++. We will also discuss when implementing custom kernels is beneficial and when existing optimized libraries offer the best performance.  \n\nThis tutorial is aimed at intermediate Python users. At the same time C++ knowledge is advantageous but not mandatory.", "description": "The main goal of this tutorial is to give a broader audience an overview of how high-performance libraries in Python are developed. Attendees will work with ready-made code templates and fill in missing parts to learn by doing.\n\n### **Session Outline**  \n- **(5 min) Motivation:** Problems with performance in Python and what to do with them  \n- **(10 min) Understanding Linear Regression & Normal Equations:** A brief introduction to the mathematical background, deriving the formulas that would be used for training  \n- **(10 min) Implementing a Python Baseline:** Writing a reference implementation on Python  \n- **(20 min) Optimizing with Cython:** Implementing a fast Cython-based kernel  \n- **(20 min) Example of pybind11 use:** Example of pybind11 usage for integrating kernels implemented in C++ \n- **(15 min) Performance Comparison:** Benchmarking Python vs. Cython vs. C++ & pybind11 implementations\n- **(10 min) Q&A and Discussion**  \n\n\nBy the end of this session, attendees will:\n- Understand how Python libraries achieve high performance using Cython and C++  \n- Learn how to write and integrate custom Cython or C++ kernels  \n- Know when to optimize Python code and when to rely on existing libraries  \n\nWe also hope that this tutorial will inspire more people to contribute to open-source high-performance libraries such as scikit-learn-intelex https://github.com/uxlfoundation/scikit-learn-intelex", "recording_license": "", "do_not_record": false, "persons": [{"code": "98HJFS", "name": "Anatoly Volkov", "avatar": null, "biography": "I am the developer of the open-source libraries https://github.com/uxlfoundation/oneDAL and https://github.com/uxlfoundation/scikit-learn-intelex , which provide optimized implementations of classical machine learning algorithms.", "public_name": "Anatoly Volkov", "guid": "0b3461a6-36a2-51b2-ba3b-09bb2ae96c9c", "url": "https://pretalx.com/euroscipy-2025/speaker/98HJFS/"}, {"code": "37CLM9", "name": "David Cortes", "avatar": null, "biography": null, "public_name": "David Cortes", "guid": "8d0419a7-4bf4-5c70-8c64-dc68b2de14ed", "url": "https://pretalx.com/euroscipy-2025/speaker/37CLM9/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/D78ZJP/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/D78ZJP/", "attachments": []}, {"guid": "eeb7a0cd-f990-59a0-9327-adff4dbf105d", "code": "CBPMEK", "id": 67341, "logo": null, "date": "2025-08-19T13:30:00+02:00", "start": "13:30", "end": "2025-08-19T15:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67341-gpu-python-for-the-real-world-practical-gpu-accelerated-python-with-rapids", "url": "https://pretalx.com/euroscipy-2025/talk/CBPMEK/", "title": "GPU Python for the Real World: Practical GPU-Accelerated Python with RAPIDS", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "NVIDIA GPUs offer unmatched speed and efficiency for data processing and model training, significantly reducing the time and cost associated with these tasks. Using GPUs is even more tempting when you use zero-code-change plugins and libraries. You can use PyData libraries including pandas, polars and networkx without needing to rewrite your code to get the benefits of GPU acceleration. We can also mix in GPU native libraries like Numba, CuPy and pytorch to accelerate our workflows from end-to-end.\n\nHowever, integrating GPUs into our workflow can be a new challenge where we need to learn about installation, dependency management, and deployment in the Python ecosystem. When writing code, we also need to monitor performance, leverage hardware effectively, and debug when things go wrong\n\nThis is where RAPIDS and its tooling ecosystem comes to the rescue. RAPIDS, is a collection of open source software libraries to execute end-to-end data pipelines on NVIDIA GPUs using familiar PyData APIs.", "description": "In this tutorial we will cover:\n- Introduction to cuDF, cuML and more that showcases a simple example of data processing and model training on GPUs.\n- Answers to questions like: \u201cWhere do I get a GPU?\u201d, \u201cHow do I run a container on a VM with a GPU?\u201d, \u201cHow do I install GPU packages into an existing environment?\u201d, as well as follow along examples to get a GPU up and running.\n- Troubleshooting and monitoring:  Examples of performance analysis, diagnostics, and debugging.\n\nThis is a hands-on tutorial, with multiple examples to get familiarized with the RAPIDS ecosystem. Participants should ideally have some experience using Python, pandas and sci-kit learn. We'll use cloud-based VMs, so familiarity with the cloud and resource creation is helpful but not required. No prior GPU knowledge is needed.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EE7H7J", "name": "Jacob Tomlinson", "avatar": null, "biography": "Jacob Tomlinson is a senior software engineer at NVIDIA. His work involves maintaining open source projects including RAPIDS and Dask. He also tinkers with kr8s in his spare time. He lives in Exeter, UK.", "public_name": "Jacob Tomlinson", "guid": "7d5794a8-e43e-58a6-9a19-8751d101fde1", "url": "https://pretalx.com/euroscipy-2025/speaker/EE7H7J/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/CBPMEK/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/CBPMEK/", "attachments": []}, {"guid": "b51d8f54-13bf-5421-9550-0f3b1246adff", "code": "MU9HAJ", "id": 67323, "logo": null, "date": "2025-08-19T15:30:00+02:00", "start": "15:30", "end": "2025-08-19T17:00:00+02:00", "duration": "01:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67323-beyond-likelihoods-bayesian-parameter-inference-for-black-box-simulators-with-sbi", "url": "https://pretalx.com/euroscipy-2025/talk/MU9HAJ/", "title": "Beyond Likelihoods: Bayesian Parameter Inference for Black-Box Simulators with sbi", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "Do you spend time tuning parameters for complex scientific simulators? Perhaps you use grid search or optimization to match parameters to data. These find a best-fit set, but often don't reveal your confidence or if other parameters also fit. This uncertainty is crucial for reliable conclusions.\nThis tutorial introduces Simulation-Based Inference (SBI), a modern technique tackling this challenge. Unlike traditional Bayesian inference methods (like MCMC) that require mathematical likelihood functions, SBI works directly with your simulator's outputs. Using recent advances in probabilistic ML, it estimates the probability distribution of parameter values consistent with your observations, even for complex \"black-box\" simulators. It provides not just a single best guess, but full parameter distributions representing parameter uncertainties and potential interactions.\nIn this hands-on tutorial using the `sbi` Python package, you'll learn the practical steps: setting up the problem, running SBI for parameter distributions, and checking result reliability. We will cover different SBI techniques and how to apply them.\nIf you are a scientist or engineer using Python for simulations, or just interested in probabilistic inference methods, this session is for you. You will learn to obtain more reliable and interpretable results by quantifying uncertainty and understanding how parameters interact within your model.\n[Link to material](https://github.com/janfb/euroscipy-2025-sbi-tutorial)", "description": "Material for preparation is now available at: [https://github.com/janfb/euroscipy-2025-sbi-tutorial](https://github.com/janfb/euroscipy-2025-sbi-tutorial)\n\nMany scientific and engineering fields rely on complex computer simulations \u2013 for example, in particle physics, epidemiology, or computational neuroscience \u2013 to understand complex phenomena. A common challenge is finding the right input parameter settings for these simulators so that their output matches real-world observations. Determining these parameters accurately can be difficult, especially when the simulator is intricate or stochastic.\n\nTraditional methods like grid search or numerical optimization algorithms can find a single 'best' set of parameters. However, they often struggle when there are many parameters, and more importantly, they usually don't quantify the uncertainty associated with the result. Is this the only good parameter set? How much could the parameters change and still produce similar results? Answering these questions is vital for robust scientific understanding.\n\nSimulation-Based Inference (SBI) is a modern approach, drawing on machine learning, designed specifically for this problem. SBI methods learn a statistical relationship directly from running your simulator multiple times with different inputs. Their key advantage is the ability to estimate the range of parameter values (and their probabilities) that are consistent with your observed data, providing a measure of uncertainty. This works even for complex 'black-box' simulators where the internal equations might be unknown or intractable. For instance, when modeling disease spread like COVID-19, knowing the uncertainty around estimated infection rates is crucial for making informed decisions \u2013 SBI provides exactly this, but for any kind of simulator as long as we can simulate enough data.\n\nThis tutorial provides a comprehensive, practical introduction to SBI using the `sbi` [Python package](https://sbi.readthedocs.io/en/latest/). `sbi` implements state-of-the-art SBI algorithms, often using neural networks, and is actively developed by a large community (it's a NumFOCUS affiliated project with over 70 contributors and yearly collaborative hackathons). We will guide you through the entire practical workflow:\n\n- A-prior checks: Defining parameter ranges of interest and running initial simulations to check if the model can plausibly generate data similar to observations.\n- Choosing and applying SBI methods: Learning about different SBI strategies (like those that directly estimate parameter probabilities, approximate likelihoods, or work with probability ratios) and selecting one suitable for your specific problem.\n- A-posteriori checks: Evaluating how accurately the underlying machine learning models have learned to infer parameters.\n- Interpretation: understanding and drawing scientific conclusions from SBI results. \n\nThe tutorial combines accessible explanations of the concepts with hands-on coding exercises using `sbi`, enabling you to apply these techniques to your own research problems.\n\n**Target Audience:** This tutorial is aimed at individuals comfortable with Python programming who work with computational simulation models in science or engineering and need to estimate parameters from data. Researchers and practitioners looking for practical methods to quantify parameter uncertainty in complex systems will find this useful.\n\n**Prerequisites:**\n- Proficiency in Python programming.\n- No prior knowledge of Bayesian statistics is required. \n\n**Learning Objectives:** Upon completion, participants will be able to:\n- Understand the concept of Simulation-Based Inference (SBI) and its advantages for parameter estimation in complex simulators.\n- Apply the `sbi` Python package to estimate parameter ranges and uncertainty from simulation outputs.\n- Become familiar with common neural network-based SBI techniques and their use cases.\n- Evaluate the results of an SBI analysis to ensure reliability.\n- Perform the complete SBI workflow using the `sbi` package on their own problems.\n\nThis tutorial will equip participants with the practical skills to effectively use the sbi package for more reliable parameter estimation and uncertainty quantification in their simulation-based models.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YZAGH8", "name": "Jan Boelts (Teusen)", "avatar": null, "biography": "Jan initially immersed himself in the realms of cognitive science and computational neuroscience. However, he couldn\u2019t resist the siren call of Bayesian machine learning, and his PhD evolved into a mission to enhance the user-friendliness of this complex field. He set out to bridge cutting-edge methods with user-friendly software, making the world of simulation-based inference more accessible for practitioners. In 2024, he joined the TransferLab, ready to continue his journey of making advanced methodologies approachable and transformative.", "public_name": "Jan Boelts (Teusen)", "guid": "b2af9c25-f29e-51b9-afa3-2f6baacd9dea", "url": "https://pretalx.com/euroscipy-2025/speaker/YZAGH8/"}, {"code": "ZDDWRW", "name": "Maternus Herold", "avatar": null, "biography": "Applied AI Researcher focussing on uncertainty quantification and Bayesian inference in various industrial settings.", "public_name": "Maternus Herold", "guid": "068020c6-73a1-5705-a6bf-e07cc7428154", "url": "https://pretalx.com/euroscipy-2025/speaker/ZDDWRW/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/MU9HAJ/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/MU9HAJ/", "attachments": []}], "Room 1.20 (Ground Floor, Shannon)": [{"guid": "7d9e9f45-8abf-5fa4-a8f1-d1e4f487603f", "code": "DASHT7", "id": 73697, "logo": null, "date": "2025-08-19T08:30:00+02:00", "start": "08:30", "end": "2025-08-19T10:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-73697-annotating-the-dynamic-type-annotation-for-dataframes", "url": "https://pretalx.com/euroscipy-2025/talk/DASHT7/", "title": "Annotating the dynamic: Type Annotation for DataFrames", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Tutorial", "language": "en", "abstract": "While type annotation has significantly improved the readability and structure of general application code, its applicability to DataFrames\u2014a fundamental component in data science\u2014has yet to be fully realized. The dynamic and runtime-defined nature of DataFrames contrasts the development-time nature of type annotation. As a DataFrame schema is often only known at runtime, e.g., after reading an input file, utilizing type annotations to enhance schema validation and code readability presents a challenge.\n\nThe tutorial is intended for hands-on Python enthusiasts who work with DataFrames. The tutorial introduces type annotation and presents its advantages regarding readability, maintainability, tooling, and static code analysis. The tutorial explores libraries and tools to leverage the advantages of type annotation at development-time and libraries to enforce runtime validation. The tutorial dives into the benefits of type annotations of DataFrames and highlights the limitations of type annotations specific to the dynamic nature of DataFrames. Therefore, the tutorial will present best practices for leveraging type annotations with DataFrames.", "description": "The introduction of type annotation in Python has sparked debates, but it is now widely accepted as a best practice in modern development. In Python, type annotation is used primarily during development and is typically ignored during runtime. Development tools use type annotation to validate code. Type annotation offers numerous benefits, such as enhancing suggestions provided by Integrated Development Environments (IDEs), improving the maintainability of existing code bases, and enabling features like dependency injection.\n\nWhile type annotation has significantly improved the readability and structure of general application code, its applicability to DataFrames\u2014a fundamental component in data science\u2014has yet to be fully realized. The dynamic and runtime-defined nature of DataFrames contrasts the development-time nature of type annotation. As a DataFrame schema is often only known at runtime, e.g., after reading an input file, utilizing type annotations to enhance schema validation and code readability presents a challenge.\n\nThe tutorial is intended for hands-on Python enthusiasts who work with DataFrames. The tutorial introduces type annotation and presents its advantages regarding readability, maintainability, tooling, and static code analysis. The tutorial explores libraries and tools to leverage the advantages of type annotation at development-time and libraries to enforce runtime validation. The tutorial dives into the benefits of type annotations of DataFrames and highlights the limitations of type annotations specific to the dynamic nature of DataFrames. Therefore, the tutorial will present best practices for leveraging type annotations with DataFrames.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZAGTCK", "name": "Frank Sauerburger", "avatar": null, "biography": "Frank became a self-employed software developer and consultant while studying Physics in Freiburg, contributing to open-source projects. During his Master's, he specialized in data analysis for particle physics at CERN and obtained a doctoral degree in 2022, working with the ATLAS collaboration. Since 2023, he has been AI Technical Leader and AI Engineer Lead at MDPI, one of the largest open-access publishers.", "public_name": "Frank Sauerburger", "guid": "d241323a-77c8-5526-a082-e2798c043dde", "url": "https://pretalx.com/euroscipy-2025/speaker/ZAGTCK/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/DASHT7/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/DASHT7/", "attachments": []}, {"guid": "40b9e3be-081f-5637-bbd9-5bc168d8a4a1", "code": "Z83QKH", "id": 67333, "logo": null, "date": "2025-08-19T10:30:00+02:00", "start": "10:30", "end": "2025-08-19T12:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67333-deploy-your-machine-learning-model-with-fast-api", "url": "https://pretalx.com/euroscipy-2025/talk/Z83QKH/", "title": "Deploy your Machine Learning model with Fast API", "subtitle": "", "track": "Applied AI & LLM Technologies and Use Cases", "type": "Tutorial", "language": "en", "abstract": "One of the challenges for a machine learning project is to deploy it. Fast API provides a fast and easy way to deploy a prototype with less software development expertise and yet allow it to be developed into a professional web service. We will look at how to do it.", "description": "In this workshop, we will go deeper into how to prototype a machine-learning project with Fast API. Fast API allows the creation API server with very little effort, it is easy to deploy a pre-trained model, but for models that require re-training, the challenge of when and how to retrain a model and update for a service in use becomes complicated. We will cover the aspect of delivering a pre-trained model and the design of re-training the model. This workshop will also provide suggestions for deploying the machine learning project so it can migrate from a prototype to a functional service in production.\n\n## Goal\n\nThe workshop aims to equip a data science team capability to convert their machine learning project into a prototype service using Fast API, at the end of the workshop, they will not just be able to deliver API calls to a pre-trained model, but they will also be able to design when to re-train and update the model and be ready to migrate the prototype into production.\n\n## Target audience\n\nData scientists who have little or no experience using Fast API or putting a machine learning model into production. This workshop will assume the audience already knows how to build and train a basic machine learning model (e.g. using Sci-kit learn). \n\n## Outline\n\nPart 1 - Introduction to Fast APi and prediction on demand\n\n- Understand the basics of Fast API\n- Using a pre-trained model for prediction with API calls\n- Validating the query parameters\n\nPart 2 - Re-train and update models\n\n- Problem with updating model: Race conditions\n- Scheduled re-training\n- Re-training on demand with Fast API\n\nPart 3 - Machine learning model in production\n\n- Fast API in docker containers\n- Fast API on the cloud", "recording_license": "", "do_not_record": false, "persons": [{"code": "8EGVC9", "name": "Cheuk Ting Ho", "avatar": null, "biography": "After having a career as a Data Scientist and Developer Advocate, Cheuk dedicated her work to the open-source community. Currently, she is working as an AI developer advocate for JetBrains. She has co-founded Humble Data, a beginner Python workshop that has been happening around the world. She has served the EuroPython Society board for two years and is now a fellow and director of the Python Software Foundation.", "public_name": "Cheuk Ting Ho", "guid": "6acb0b45-07a8-5f1c-a3fa-45ae8f0a9858", "url": "https://pretalx.com/euroscipy-2025/speaker/8EGVC9/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/Z83QKH/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/Z83QKH/", "attachments": []}, {"guid": "69e053a3-0f2a-570a-8604-800be341b5b8", "code": "CHDNML", "id": 67114, "logo": null, "date": "2025-08-19T13:30:00+02:00", "start": "13:30", "end": "2025-08-19T15:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67114-how-to-become-a-software-detective-and-perform-security-research", "url": "https://pretalx.com/euroscipy-2025/talk/CHDNML/", "title": "How to become a software detective and perform security research", "subtitle": "", "track": "Community, Education, and Outreach", "type": "Tutorial", "language": "en", "abstract": "Security research is crucial in IT - considering the fast-paced growth of cybercrime, the prevalence of nation-state attacks, or the 40k CVEs reported last year. Yet, performing one\u2019s own security research is challenging. This talk explores fundamental approaches and techniques to discover vulnerabilities in software. Participants will exercise static analysis on a vulnerable Python application to apply new knowledge. The goal is to understand how to perform security research.", "description": "Participants of this tutorial will gain a solid foundation in software analysis, with a strong emphasis on security. We will explore the significance of security research in software development and consider various resources and tools to discover vulnerabilities.\n\nTo illustrate these concepts, we\u2019ll perform static analysis with Bandit on a vulnerable Python library as a case study. Additionally, we\u2019ll understand different approaches and techniques to security-oriented analysis. Participants will gain essential knowledge to identify vulnerabilities, find potential targets for analysis, and apply research methodology. \n\nThis tutorial will cover\n* Introduction to security research\n* Automated software analysis - SAST vs DAST\n* Research methodologies and resources\n* Basics of static code analysis\n* Practical examples using vulnerable software to test acquired skills\n\nKey takeaways \n* Basic concepts related to vulnerability research\n* Software analysis fundamentals \n* Security analysis tools", "recording_license": "", "do_not_record": false, "persons": [{"code": "WQZFDC", "name": "Przemek", "avatar": null, "biography": "Web & mobile security researcher with a few years of experience. MSc in computer sciences. Currently working on network security, including kubernetes infrastructure. In free time doing hackthebox, sharing knowledge and analysing applications in Apple ecosystem.", "public_name": "Przemek", "guid": "c3ccc858-3c14-5e8c-888b-c60d12dd8692", "url": "https://pretalx.com/euroscipy-2025/speaker/WQZFDC/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/CHDNML/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/CHDNML/", "attachments": []}, {"guid": "c97781c6-e468-5414-a9e7-943de4cf7fd0", "code": "HUTEDK", "id": 69293, "logo": null, "date": "2025-08-19T15:30:00+02:00", "start": "15:30", "end": "2025-08-19T17:00:00+02:00", "duration": "01:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69293-managing-scientific-data-and-workflows-with-datalad", "url": "https://pretalx.com/euroscipy-2025/talk/HUTEDK/", "title": "Managing Scientific Data and Workflows with DataLad", "subtitle": "", "track": "Interdisciplinary Frontiers and other Scientific Python Applications", "type": "Tutorial", "language": "en", "abstract": "The flourishing of open science has created an unprecedented opportunity for scientific discovery through the global exchange of data and collaboration between researchers. DataLad (datalad.org) supports this by providing the tools to develop flexible and decentralized collaborative workflows while upholding scientific rigor. It is free and open source data management software, built on top of the version control systems Git and git-annex. Among its major features are version control for files of any size or type, data transport logistics, and digital process provenance capture for reproducible digital transformations. \nIn this hands-on workshop, we will start by exploring DataLad\u2019s basic functionality and learn how to run and re-run analyses while versioning and keeping track of your data. Following this, we will explore DataLad\u2019s collaborative features and learn how to install and work with existing datasets and how to share and distribute your work online. After completing this tutorial, you will be equipped to start using DataLad to manage your own research projects and share them with the world.", "description": "## Installation\n\nTo set up your environment, follow the description on the [tutorial website](https://olebialas.github.io/DataLad-EuroScipy25/)\n\n## Description\n\nThe tutorial will begin with a short introduction to DataLad, describe typical use-cases and explain how DataLad uses the version control systems git and git-annex to manage, track and transport data. \nAfter this short introduction, we will start with the first hands-on block where participants will explore the core concepts of DataLad that enable reproducible research, such as version control and digital provenance. We will learn how to create and configure a DataLad data set (datalad create), how to add and modify data (datalad [status, save, unlock]) and how to see changes in the data set's history (git log). We will see how DataLad can be used to run a Python script while keeping track of the input and output of that script (datalad run). The record of running the script that DataLad produced can then be used to conveniently re-run parts of the analysis pipeline after making changes to the script (datalad rerun). After this hand-on session, participants will understand the basic DataLad functionalities required to manage their data analysis project on their local machines.\nNext, we will present how DataLad can be used to install existing datasets and collaborate with others, how it supports the FAIR (Findable, Accessible, Interoperable, and Reusable) principles for data sharing and discover and how it integrates with open-science platforms like the Open Science Framework (OSF).\nThis is followed by another hand-on session where participants will learn how to install existing online datasets (datalad [clone, get]) and check the identity and availability of files (git-annex [info, whereis]). We will also explore how DataLad can create and manage siblings of a data set, allowing the user to back up and share their data (datalad [create-sibling-*, push, update]). After this session, participants will have the tools for working with existing data sets provided by open-science platforms and for creating collaborative workflows.\n\nParticipants are expected to bring their own computer. Before the tutorial, we will provide installation instructions and be available for potential troubleshooting to ensure that every participant is able to follow the exercises. Prior knowledge of Git or Git-annex is not required, but participants who are familiar with these tools may get a deeper understanding of the inner workings of DataLad. Familiarity with a Unix-like terminal is also an advantage.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8YYMWZ", "name": "Ole Bialas", "avatar": null, "biography": "I studied Biology at the University of T\u00fcbingen, where I first learned how to code using Matlab. Then, I moved to Leipzig, where I did a master\u2019s degree and later a PhD in neurobiology. In my research, I studied how the brain processes sound location using electroencephalography (EEG) and custom experimental setups for spatial audio. During that time, I started using Python and eventually co-authored \u201cslab\u201d, a Python toolbox for psychoacoustic experiments. After my PhD, I moved to the University of Rochester in New York, where I studied how the brain processes naturalistic speech by modeling EEG that was recorded while the participants listened to audiobooks. For this research I published another toolbox, originally written in Matlab, called \u201cmTRFpy\u201d. As my postdoc was coming to an end, I was looking for a position where I could combine my interest in neuroscience with my passion for programming. I found such a position at the University Clinic Bonn where I currently work as a research software consultant. In this position, I develop and teach workshops where neuroscience researchers can improve their software skills. I also do one-on-one consulting to help neuroscientists deal with the computational challenges they are faced in their research.", "public_name": "Ole Bialas", "guid": "b37a735f-c573-530a-9906-3e12ccb3e131", "url": "https://pretalx.com/euroscipy-2025/speaker/8YYMWZ/"}, {"code": "CERHSS", "name": "Micha\u0142 Szczepanik", "avatar": null, "biography": "My background is in neuroinformatics and cognitive neuroscience. I currently work in research data management and research software development. I am a DataLad contributor.", "public_name": "Micha\u0142 Szczepanik", "guid": "98d2fa12-2a3d-531a-aac2-73976eb727c3", "url": "https://pretalx.com/euroscipy-2025/speaker/CERHSS/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/HUTEDK/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/HUTEDK/", "attachments": []}]}}, {"index": 3, "date": "2025-08-20", "day_start": "2025-08-20T04:00:00+02:00", "day_end": "2025-08-21T03:59:00+02:00", "rooms": {"Room 1.38 (Ground Floor)": [{"guid": "09664a70-7bec-517f-b221-d42acee3603f", "code": "BTXXNU", "id": 73194, "logo": null, "date": "2025-08-20T09:00:00+02:00", "start": "09:00", "end": "2025-08-20T10:00:00+02:00", "duration": "01:00", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-73194-women-in-hpc-breaking-barriers-and-shaping-the-future", "url": "https://pretalx.com/euroscipy-2025/talk/BTXXNU/", "title": "Women in HPC \u2013 Breaking Barriers and Shaping the Future", "subtitle": "", "track": "Community, Education, and Outreach", "type": "Keynote", "language": "en", "abstract": "Why aren\u2019t there more women in the High-Performance Computing (HPC) community? This simple question led to the creation of the international organisation Women in High Performance Computing (WHPC). The members of this network are committed to greater equality, diversity and integration in the HPC community. The initiative is active at major HPC conferences, offers workshops and mentoring programmes, and aims to raise awareness in the HPC community with the slogan \u201cDiversity creates a stronger community\u201d.\nThree years ago a group at J\u00fclich Computing Centre decided that it is time to establish a local group of WHPC \u2013 J\u00fclich Women in HPC (JuWinHPC) \u2013 to strengthen the community of women in HPC at Forschungszentrum J\u00fclich and to promote diversity. This talk presents the activities of JuWinHPC, from casual lunch meetings to the organisation of conference sessions, and summarises experiences gained and lessons learned striving to establish a local network of women in HPC and to increase diversity, inclusion and female visibility within the community.", "description": "Why aren\u2019t there more women in the High-Performance Computing (HPC) community? This simple question led to the creation of the international organisation Women in High Performance Computing (WHPC). The members of this network are committed to greater equality, diversity and integration in the HPC community. The initiative is active at major HPC conferences, offers workshops and mentoring programmes, and aims to raise awareness in the HPC community with the slogan \u201cDiversity creates a stronger community\u201d.\nThree years ago a group at J\u00fclich Computing Centre decided that it is time to establish a local group of WHPC \u2013 J\u00fclich Women in HPC (JuWinHPC) \u2013 to strengthen the community of women in HPC at Forschungszentrum J\u00fclich and to promote diversity. This talk presents the activities of JuWinHPC, from casual lunch meetings to the organisation of conference sessions, and summarises experiences gained and lessons learned striving to establish a local network of women in HPC and to increase diversity, inclusion and female visibility within the community.", "recording_license": "", "do_not_record": false, "persons": [{"code": "XBBD7M", "name": "Anna L\u00fchrs", "avatar": null, "biography": "After obtaining her master degree in technomathematics in 2013, Anna L\u00fchrs joined the (former) division HPC in Neuroscience at J\u00fclich Supercomputing Centre (JSC), for which she also acted as deputy lead, initially as research associate focusing on image segmentation on GPU clusters. She shifted her focus towards project management, research coordination and science communication for her department and the Human Brain Project, an EU-funded project with more than 100 project partners and a total duration of 10 years. Anna now works in and is deputy lead of the Office for (Inter)national Coordination and Networking at the JSC, which she joined 2023.", "public_name": "Anna L\u00fchrs", "guid": "b2180a08-b6b0-5fde-bcd7-b1481946f802", "url": "https://pretalx.com/euroscipy-2025/speaker/XBBD7M/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/BTXXNU/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/BTXXNU/", "attachments": []}, {"guid": "bf0b5bc4-04eb-5598-82fa-55ac66b563c0", "code": "X9TUZ8", "id": 66923, "logo": null, "date": "2025-08-20T10:30:00+02:00", "start": "10:30", "end": "2025-08-20T11:00:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-66923-a-hitchhiker-s-guide-to-the-array-api-standard-ecosystem", "url": "https://pretalx.com/euroscipy-2025/talk/X9TUZ8/", "title": "A Hitchhiker's Guide to the Array API Standard Ecosystem", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "The array API standard is unifying the ecosystem of Python array computing, facilitating greater interoperability between code written for different array libraries, including NumPy, CuPy, PyTorch, JAX, and Dask.\n\nBut what are all of these \"array-api-*\" libraries for? How can you use these libraries to 'future-proof' *your* libraries, and provide support for GPU and distributed arrays to your users? Find out in this talk, where I'll guide you through every corner of the array API standard ecosystem, explaining how SciPy and scikit-learn are using all of these tools to adopt the standard. I'll also be sharing progress updates from the past year, to give you a clear picture of where we are now, and what the future holds.", "description": "Support for alternative array libraries is one of the most common requests put to libraries written on top of NumPy. Users are often interested in boosting their performance by using libraries which can make the most of the hardware available to them, as well as techniques like Just-In-Time compilation. Unfortunately, supporting multiple array libraries is not simple due to API differences, so such support has historically meant heavy duplication of work, with a whole new implementation for each alternative array library. This duplication of work is at best inefficient, and at worst infeasible for maintainers of many libraries.\n\nThe Python array API standard aims to standardise functionality which exists in most array libraries. It specifies an API which 'array-consumer' libraries can use to write 'array-agnostic' code, where the same codebase can support many array libraries at once.\n\nIn this talk, I give a brief introduction to the standard, before taking you on a tour of the standard's ecosystem, explaining how each library built around the standard fits into the bigger picture. I'll explain what the standard enables for SciPy and scikit-learn, and what else may be needed in the future.\n\nAfter this talk, you'll be well-acquainted with the following libraries from the data-apis org:\n- array-api\n- array-api-tests\n- array-api-compat\n- array-api-strict\n- array-api-extra\n\nI'll also be mentioning some exciting new tools like MArray.\n\nRough talk outline:\n- 5 mins \u2014 what is the array API standard, and what problem is it addressing?\n- 10 mins \u2014 a tour of the ecosystem: what do all of these libraries do, and how can you use them?\n- 10 mins \u2014 updates from the past year, status of where we are now, what is coming in the future?\n- Any spare time \u2014 try some live coding!\n\nSlides: https://lucascolley.github.io/talks/euroscipy-25-array-api/", "recording_license": "", "do_not_record": false, "persons": [{"code": "L3QKJA", "name": "Lucas Colley", "avatar": null, "biography": "I am a maintainer of SciPy, Pixi, and array-api-extra, alongside other projects. I am also an undergraduate studying Computer Science & Philosophy at the University of Oxford, currently working @ prefix.dev for European Summer of Code.", "public_name": "Lucas Colley", "guid": "970eabe7-7be2-5b31-ab0a-a0a6808b9a90", "url": "https://pretalx.com/euroscipy-2025/speaker/L3QKJA/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/X9TUZ8/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/X9TUZ8/", "attachments": []}, {"guid": "3036044b-2971-5c7e-93d3-1175c6cc2157", "code": "L9JPZE", "id": 67973, "logo": null, "date": "2025-08-20T11:05:00+02:00", "start": "11:05", "end": "2025-08-20T11:35:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67973-accelerate-your-scientific-python-code-with-rust", "url": "https://pretalx.com/euroscipy-2025/talk/L9JPZE/", "title": "Accelerate your scientific Python code with Rust", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Combining Python with compiled languages for speed is far from novel - the scientific Python ecosystem has been doing it for around 25 years! Specifically, Rust has proven to be a particularly solid companion for Python in recent times, thanks in large part to the great tooling available. The impact on scientific Python code can be huge. And yet, the language has a reputation of having a steep learning curve.\n\nCreating your first Rust extension for Python can be done in 5 minutes thanks to uv and maturin (no exaggeration), but of course that's just the beginning. In this talk you will learn everything else you need to make your numerical code blazing fast with Rust.", "description": "The outline will be roughly as follows:\n\n1. Python is slow, you say? (3 min)\n2. Python + Rust = \ud83e\udd1c\ud83e\udd1b (5 min)\n3. Gentle introduction to PyO3 (5 min)\n4. Passing NumPy arrays in and out with ndarray (5 min)\n5. Your first Rust extension (live demo) (5 min)\n6. Conclusions (2 min)\n\nThe demo will showcase some simple numerical algorithms that benefit from having a Rust implementation. Light performance benchmarks will be shown.\n\nFamiliarity with Python is required. No prior exposure to Rust is needed.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PLJAZV", "name": "Juan Luis Cano Rodr\u00edguez", "avatar": null, "biography": "Juan Luis (he/him/\u00e9l) is an Aerospace Engineer with a passion for tech communities and sustainability. He works at QuantumBlack, AI by McKinsey, as Product Manager for Kedro, an open source Python framework for reproducible, maintainable and modular data science code. He has worked as Developer Advocate at Read the Docs, as software engineer in the space, consulting, and banking industries, and as a Python trainer for several private and public entities.\n\nApart from being a long-time user and contributor to many projects in the scientific Python stack (NumPy, SciPy, Astropy) he has published several open-source packages, the most important one being poliastro, an open-source Python library for interactive astrodynamics used in academia and industry.\n\nFinally, Juan Luis is the founder and former chair of the Python Espa\u00f1a association, the point of contact for the Spanish Python community, former organizer of PyCon Spain, and current organizer of the PyData Madrid monthly meetups.", "public_name": "Juan Luis Cano Rodr\u00edguez", "guid": "8bc87632-a84e-540e-9fdb-23f3e4943b83", "url": "https://pretalx.com/euroscipy-2025/speaker/PLJAZV/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/L9JPZE/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/L9JPZE/", "attachments": []}, {"guid": "526c4138-6ec3-5b54-85d3-0c6cd8ffcca9", "code": "KCYYTF", "id": 67329, "logo": null, "date": "2025-08-20T11:40:00+02:00", "start": "11:40", "end": "2025-08-20T12:00:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67329-pyro-meets-sbi-unlocking-hierarchical-bayesian-inference-for-complex-simulators", "url": "https://pretalx.com/euroscipy-2025/talk/KCYYTF/", "title": "Pyro Meets SBI: Unlocking Hierarchical Bayesian Inference for Complex Simulators", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "This talk introduces a novel approach that bridges Simulation-Based Inference (SBI) and probabilistic programming languages like Pyro to enable simulation-based hierarchical Bayesian inference. SBI is used to perform parameter inference for intractable simulation models, while Pyro facilitates efficient Bayesian inference with complex hierarchical structures. We demonstrate how to integrate SBI-learned likelihoods into Pyro models, allowing for hierarchical Bayesian analysis of simulation-based models. Using the drift-diffusion model from decision-making research as an example, we showcase the potential of this combined approach for tackling real-world problems with complex simulation models and hierarchical data. Presentation by Jan Teusen, implementation in the `sbi` package by Seth Axen. \n\nSlides and Code are available at [github.com/janfb/pyro-meets-sbi](https://github.com/janfb/pyro-meets-sbi).", "description": "Hierarchical Bayesian inference is a powerful framework for analyzing structured data common in complex experimental settings, like multi-subject decision-making research. Probabilistic programming languages (PPLs) such as [Pyro](https://pyro.ai/) provide excellent tools for defining and inferring these hierarchical models, leveraging features like plate notation for concisely representing repeated structures and managing dependencies.\nHowever, a significant challenge arises when the underlying scientific model is a complex simulator with an intractable likelihood function, rendering standard PPL-based inference inapplicable. While Simulation-Based Inference (SBI) techniques can handle such simulators by learning likelihood (or posterior) approximations from simulations, they often lack native support for easily specifying and inferring complex hierarchical dependencies.\nThis talk introduces a novel approach that bridges the SBI package [sbi](https://sbi.readthedocs.io/en/latest/) and `pyro`, enabling effective simulation-based hierarchical Bayesian inference. We demonstrate how likelihood approximations learned via `sbi` can be seamlessly integrated as custom components within `pyro` models. This synergistic approach combines the strengths of both methodologies: SBI's ability to perform inference on intractable simulators and Pyro's expressive power and efficiency in handling complex hierarchical structures.\nWe will illustrate the potential and practicality of this integrated methodology using a key example from cognitive science: fitting a hierarchical drift-diffusion model (DDM) to choice data. The focus will be on how this combined \"Pyro meets SBI\" approach successfully allows for Bayesian inference over the parameters of the hierarchical model, effectively combining the information across multiple simulated subjects while handling the intractable DDM likelihood.\nThis integration significantly expands the scope of rigorous Bayesian inference, opening new possibilities for analyzing complex, simulation-based models across various scientific disciplines. We will also briefly highlight how recent developments in the `sbi` package facilitate this powerful workflow, making advanced hierarchical modeling accessible for simulator-based research.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YZAGH8", "name": "Jan Boelts (Teusen)", "avatar": null, "biography": "Jan initially immersed himself in the realms of cognitive science and computational neuroscience. However, he couldn\u2019t resist the siren call of Bayesian machine learning, and his PhD evolved into a mission to enhance the user-friendliness of this complex field. He set out to bridge cutting-edge methods with user-friendly software, making the world of simulation-based inference more accessible for practitioners. In 2024, he joined the TransferLab, ready to continue his journey of making advanced methodologies approachable and transformative.", "public_name": "Jan Boelts (Teusen)", "guid": "b2af9c25-f29e-51b9-afa3-2f6baacd9dea", "url": "https://pretalx.com/euroscipy-2025/speaker/YZAGH8/"}], "links": [{"title": "Slides and Code", "url": "https://github.com/janfb/pyro-meets-sbi", "type": "related"}], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/KCYYTF/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/KCYYTF/", "attachments": []}, {"guid": "bfbbbb9b-7585-5950-9cda-c53c02531402", "code": "LR7S8P", "id": 67224, "logo": null, "date": "2025-08-20T13:30:00+02:00", "start": "13:30", "end": "2025-08-20T14:00:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67224-recent-developments-in-pytensor-the-successor-package-to-theano", "url": "https://pretalx.com/euroscipy-2025/talk/LR7S8P/", "title": "Recent Developments in Pytensor, the Successor Package to Theano", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "We present the latest developments in Pytensor, the successor package to Theano. Pytensor is a package for defining, manipulating, optimizing, and compiling static computational graphs. We especially focus on full graph-to-graph transformations relevant to the goals of a Bayesian/ML workflow. These allow the user to define a single computational graph, which can then be reused in multiple contexts. In the Bayesian workflow, we are able to extract exact expressions for probabilistic inference from a generative sampling model, or automatically marginalize discrete random variables. In a deep-learning workflow, we can automatically remove dropout and normalization layers when compiling a prediction function from a training graph, or replace expensive operations, such as transformers, with specialized forms at compile time. Finally, we show how the same machinery leads naturally to transpilation into compiled languages, via packages like Numba, Jax, and Pytorch", "description": "After MILA offically stopped development of Theano in 2018, the PyMC project forked the project and continued developing the package under a series of names: Theano-PyMC, Aesara, and now Pytensor. This choice was motivated by Theano's decision to put static computational graphs directly in front of the user.  This choice turned out to be ideal for Bayesian inference, because it allows for powerful graph-to-graph transformations. For example, a graph that defines a data generating process via draws from random variables can be automatically translated into a backwards process describing the log probability of observed data, conditioned on draws from prior distributions. This is precisely the same logic that underpins reverse-mode automatic differentiation. It turns out this idea of graph transformation is extremely powerful, and development of Pytensor has focused on fully leveraging this power.\n\nRecently, new features have been added to Pytensor, making it a powerful tool for workflows in statistics, machine learning, and Bayesian modeling. One of the most powerful features of Theano was it's use of graph rewrites to optimize computation beyond what a compiler is willing or able to do. A canonical example is to rewrite the express `log(1 + x)` to `log1p(x)`, a version of the computation that remains numerically stable for small values of `x`. Pytensor has fully embraced the system of graph rewrites, and has expanded it to include many new cases, including: \n\n- Op fusion: finding sub-graphs that are re-used multiple times on different inputs. These are fused into a single composite Op, compiled once, and re-used.\n- Aggressive inplacing: identifying all cases where intermediate computations can performed destructively \"in-place\", alleviated the need for expensive memory allocations\n- Pre-gradient stabilization: maintain a library of mathematically \"non-destructive\" rewrites that simplify arbitrary user expressions into simpler forms, leading to cleaner gradient graphs after applying autodiff\n- Linear algebra optimization: reason about the types of matrices in a graph, and automatically apply specializations to expensive operations. For example, `det(diag(x))` is rewritten to `prod(diag(x))`, and `inv(kron(a, b))` to `kron(inv(a), inv(b))`.\n\nThese rewrites are possible because as a user writes Pytensor code, a static graph is constructed. At any time, the user can inspect the graph, or directly intervene on it. These interventions include extracting sub-graphs, replacing or removing inputs or functions, or applying entire graph-to-graph transformations. The majority of our talk will focus on this last operation, which represents one of the most unique and powerful features of Pytensor. This capability was first used in Theano to perform automatic differentiation. Given a forward graph of a scalar loss function, a gradient graph can be created by walking backwards from the loss in topological order, applying the chain rule. Graph-to-graph transformations can go far beyond this application. We present the following examples:\n\n- *Vectorization*. Pytensor can replace an n-dimensional input with an (n+k) dimensional input, then propagate the consequences through the graph. For example, `dot(matrix, vector)` can be replaced with `dot(tensor3, vector)`, and Pytensor will automatically apply a batched dot product across the left-most dimension of the `tensor3` input. The new output shape will also be propagated to any down-stream computations.\n\n-  *Automatic probability derivation*. The PyMC package uses to Pytensor to transform a user-defined generative graph, which produces samples of data from priors and inputs, to a graph that gives the probability of observing an output sample, given parameters. In this way, a single model declaration is reused for both inference via Bayes' Law, and for pre- and post-estimation tasks that require forward sampling    \n\n- *Automatic marginalization*. Similarly, having access to the full graph lets Pytensor reason about non-trivial graph replacements, such as automatic marginalization of random variables. This can remove nuisance parameters from a model and significantly speed up inference algorithms. In addition, because pytensor can graphically verify that batch dimensions remain independent, the algorithm is bounded by the size of the domain of the random variables, rather than by their actual input size. When marginalizing a hidden markov chain, for example, this means we only have to do `states * steps` computations, instead of `states ^ steps` (this is the celebrated \"forward algorithm\"). \n\nWe also give several examples where Pytensor offers advantages in deep learning contexts, including:\n\n- *Training to prediction transformation*: A common source of errors when working with deep learning models is forgetting to manually remove training-only Ops like dropout and batch norm. Pytensor can automate these tasks using rewrites, which can be automatically applied by a deep learning API built on top of pytensor\n\n-*Op Specialization*: Certain extremely expensive layers used in deep learning, including convolutions and transformers, have specialized forms that can be used when the right conditions are met. Examples include FFT-convolution and FlashAttention. Pytensor can recognize Op sequences of the form `matmul-mask-softmax-dropout-matmul` and replace them with a single `FlashAttention` Op. Similarly, convolution Ops can be replaced with FFT convolutions when the kernels are sufficiently large. Both of these optimizations can be done automatically, without users necessarily having to know the intricacies of when and how these specialized versions should be used.\n\nWe conclude with a short description of planned features for our upcoming Pytensor 3.0 release, and an invitation for interested audience members to try the package and submit issues/PRs.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LR7MWP", "name": "Jesse Grabowski", "avatar": null, "biography": "Jesse Grabowski is a PhD candidate at Paris 1 Pantheon-Sorbonne. He is also a principal data scientist at PyMC labs, and a core developer of PyMC, Pytensor, and related packages. His area of research includes time series modeling, macroeconomics, and finance.", "public_name": "Jesse Grabowski", "guid": "45802679-1569-505f-818a-836923b60826", "url": "https://pretalx.com/euroscipy-2025/speaker/LR7MWP/"}, {"code": "C9GEJ3", "name": "Ricardo Vieira", "avatar": null, "biography": null, "public_name": "Ricardo Vieira", "guid": "f655b9e4-eb1b-52de-a026-4e8e67505ab9", "url": "https://pretalx.com/euroscipy-2025/speaker/C9GEJ3/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/LR7S8P/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/LR7S8P/", "attachments": []}, {"guid": "1e328b62-c994-559e-a456-471303e1dfa5", "code": "NKLD7R", "id": 69191, "logo": null, "date": "2025-08-20T14:05:00+02:00", "start": "14:05", "end": "2025-08-20T14:35:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-69191-let-s-rewrite-optimagic-from-scratch-in-half-an-hour-and-see-what-we-can-learn", "url": "https://pretalx.com/euroscipy-2025/talk/NKLD7R/", "title": "Let's rewrite optimagic from scratch in half an hour and see what we can learn", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Optimagic provides a unified interface to optimization algorithms from various packages while adding convenience features like optimizer histories, error handling, and flexible parameter formats \u2014 all  in a relatively small code base and without modifying the source code of optimizers. In this talk, we'll build a simplified version of optimagic to demonstrate the core architectural principles that make this possible. By exploring these ideas, we'll show how they can be applied beyond optimization to simplify and enhance other scientific Python projects.", "description": "Optimagic provides a unified interface to optimizers from SciPy, NlOpt, Pygmo and many other packages. In a relatively small code base, we add many convenience features to the algorithms we wrap.  Collecting and plotting optimizer histories, error handling, and flexible parameter formats are just a few examples. All of this is done without accessing or modifying the source code of the original optimizers, which makes it very simple to add more optimizers to optimagic. \n\nThis is made possible by a few simple architectural ideas that could also be applied in other scientific packages or research code. In this talk we create a super-simplified educational rewrite of optimagic that illustrates the core ideas and explains how we use them to implement powerful features. We finish by collecting a few examples where the same ideas could be applied to create simple, robust and user-friendly code in other open-source packages or research projects. \n\nThe talk is meant for users and maintainers of scientific packages alike. No previous experience or interest in numerical optimization is required.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DMPC8P", "name": "Janos Gabler", "avatar": null, "biography": "Author of optimagic | Head of TransferLab at appliedAI | Expert in numerical optimization | Building Bandsaws, Pizza Ovens and Furniture", "public_name": "Janos Gabler", "guid": "9bdc4450-f10f-5b47-aefe-30f32329df0d", "url": "https://pretalx.com/euroscipy-2025/speaker/DMPC8P/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/NKLD7R/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/NKLD7R/", "attachments": []}, {"guid": "258e88e0-6e71-5857-8b90-0b18813a0e83", "code": "EAAE9B", "id": 67334, "logo": null, "date": "2025-08-20T14:40:00+02:00", "start": "14:40", "end": "2025-08-20T15:00:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67334-enhancing-sympy-algorithms-with-matchpy-s-efficient-pattern-matching", "url": "https://pretalx.com/euroscipy-2025/talk/EAAE9B/", "title": "Enhancing SymPy Algorithms with MatchPy's Efficient Pattern Matching", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "This presentation explores an experimental integration between SymPy (symbolic mathematics) and MatchPy (associative-commutative pattern matching), both open-source Python libraries. By leveraging MatchPy's efficient pattern matching, which allows for multiple matches with a single expression tree visit, the combined system enhances SymPy's ability to solve equations, compute derivatives and integrals, and handle differential equations. An experimental RUBI formula integration algorithm implementation demonstrates the practical benefits.", "description": "SymPy and MatchPy are powerful, open-source Python libraries for symbolic mathematics and pattern matching, respectively.\n\nWhile SymPy excels in symbolic manipulation, its built-in pattern matching can be limiting for complex tasks. MatchPy, designed for associative-commutative (AC) pattern matching, offers a unique advantage: its data structures enable the simultaneous matching of multiple patterns against a symbolic expression with only a single tree traversal, significantly boosting efficiency.\n\nThis talk presents an experimental module that integrates these libraries, demonstrating how MatchPy's capabilities can enhance SymPy's algorithms. We will explore practical applications, including improved equation solving, derivative and integral computations, and differential equation solutions. Notably, we will showcase an experimental implementation of the RUBI integration algorithm, illustrating how MatchPy simplifies the application of intricate integration rules.\n\nThis work highlights the benefits of combining these tools, fostering the development of more robust and efficient symbolic computation workflows.\n\nSymPy website:\nhttps://sympy.org/\n\nMatchPy documentation:\nhttps://matchpy.readthedocs.io/en/latest\n\nSymPy paper:\nhttps://peerj.com/articles/cs-103/\n\nMatchPy paper:\nhttps://arxiv.org/abs/1710.06915", "recording_license": "", "do_not_record": false, "persons": [{"code": "NYVKBG", "name": "Francesco Bonazzi", "avatar": null, "biography": "Highly skilled Software Engineer and Data Scientist at Intesa Sanpaolo Bank, based in Milan, Italy. With a strong foundation in computational subjects, I hold a PhD in Physics with a specialization in computational modelling of biophysical processes. Having transitioned to the banking sector, I have applied my expertise to drive innovation in financial-related projects for numerous years. Additionally, I contribute to the open-source community as a maintainer and developer of the SymPy library, a widely-used computer algebra system.", "public_name": "Francesco Bonazzi", "guid": "b41d86a5-a6fa-5bbe-8f82-96b4d2b124d9", "url": "https://pretalx.com/euroscipy-2025/speaker/NYVKBG/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/EAAE9B/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/EAAE9B/", "attachments": []}], "Room 1.20 (Ground Floor, Shannon)": [{"guid": "9d1878da-8e39-5644-ad89-a74dc930f866", "code": "T88GQE", "id": 66900, "logo": null, "date": "2025-08-20T10:30:00+02:00", "start": "10:30", "end": "2025-08-20T11:00:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-66900-machine-learning-for-ecotoxicology-and-bee-pesticide-toxicity-prediction", "url": "https://pretalx.com/euroscipy-2025/talk/T88GQE/", "title": "Machine learning for ecotoxicology and bee pesticide toxicity prediction", "subtitle": "", "track": "Environmental and Earth Sciences", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Machine learning (ML) is widely applied in medicinal chemistry and pharmaceutical industry. Chemoinformatics and molecular ML have been used for decades for safer, faster drug design. However, the important area of agrochemistry has been relatively neglected. New regulations, with strong focus on ecotoxicology, necessitate creation of novel, safer pesticides.\n\nIn this talk, I will describe how and why we can apply ML in predictive ecotoxicology, and how those models can be applied in agrochemistry. In particular, I will present ApisTox, a novel dataset about pesticide bee toxicity, how we can construct such datasets from publicly available data sources, and what are the challenges.\n\nThen, we will cover predictive ML applications in ecotoxicology, and how to apply data science tools for agrochemical data. Examples include molecular fingerprints, graph kernels, and graph neural networks. We will also discuss quantitative measures for describing differences between medicinal chemistry and agrochemistry, and how it impacts practical results.", "description": "Agrochemistry, in contrast to medicinal chemistry, is a relatively unexplored area in terms of rational drug design and molecular ML. Data science techniques and predictive ML models, exemplified by ADMET QSAR models, have long been used in pharmaceutical industry. Pesticides are the largest, and most economically important, group of agrochemicals. They need to pass multiple regulatory requirements in order to be used, showing safety not only to humans (toxicology), but also to a variety of wildlife organisms, such as honey bees, earthworms, birds, and fish (ecotoxicology). This is in many ways much more challenging, due to a wide variety of properties that need to be analyzed and predicted. At the same time, we actually require strong toxicity from pesticides, but highly selective, killing preferably only target organisms, e.g. weeds in case of herbicides.\n\nRecently created ApisTox (https://doi.org/10.1038/s41597-024-04232-w) is the largest dataset in the literature concerning toxicity of pesticides to honey bees (Apis mellifera). It allows broad analyses of agrochemicals and building ML models for predicting toxicity of pesticides to honey bees. This required creating a complex data processing workflow, which utilized freely available data sources, like ECOTOX database. In this talk, we will go over tools and techniques used, so that attendees will understand challenges related to such tasks, and how to create other similar datasets for practical usage.\n\nApisTox paper was followed up by additional molecular datasets' analyzes and building ML models (currently under review). In this talk, we will also explore initial results of pesticide toxicity classification and how we can approach building molecular ML models for agrochemistry, e.g. molecular fingerprints, graph kernels, and graph neural networks. Results are highly distinct from those on molecular chemistry datasets, indicating a lot of unexplored potential.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RCGPHK", "name": "Jakub Adamczyk", "avatar": null, "biography": "I am a PhD candidate in Computer Science at AGH University of Krakow, and a member of Graph ML and Chemoinformatics Lab at Faculty of Computer Science. My research concerns fair evaluation, graph representation learning, graph classification, chemoinformatics, and molecular property prediction. I'm also interested in time series, NLP, and MLOps, and I'm also teaching all of those things at AGH. I also work at Placewise as Data Science Engineer, focusing on various ML problems in tabular learning, CV and NLP, and their end-to-end MLOps. Beside my professional work, I train Historical European Martial Arts (HEMA) with messer and longsword, and like reading and tabletop RPGs.", "public_name": "Jakub Adamczyk", "guid": "cc95e89f-fc94-58f4-bc71-9dc4839ae17c", "url": "https://pretalx.com/euroscipy-2025/speaker/RCGPHK/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/T88GQE/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/T88GQE/", "attachments": []}, {"guid": "829eb03d-1531-5572-8f16-239e2c499ed9", "code": "9F88K8", "id": 67276, "logo": null, "date": "2025-08-20T11:05:00+02:00", "start": "11:05", "end": "2025-08-20T11:35:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67276-python-for-subsea-engineering-a-case-study-on-seabed-object-detection-using-ai-ml", "url": "https://pretalx.com/euroscipy-2025/talk/9F88K8/", "title": "Python for subsea engineering: A case study on seabed object detection using AI/ML", "subtitle": "", "track": "Environmental and Earth Sciences", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "This talk explores the application of deep learning in automating object detection using high-resolution seabed images. I will discuss the challenges of working with seabed datasets, strategies for training AI models with limited labelled data, and key considerations when choosing a deep learning framework for geospatial analysis. Using offshore wind farm site assessments as a case study, I will provide practical insights on image pre-processing, model selection, and workflow integration to enhance efficiency in marine geospatial data analysis.", "description": "Recent advancements in artificial intelligence are transforming seabed imaging and geospatial data analysis, enabling more efficient and accurate engineering hazard assessments. Traditionally, seabed object detection relied on manual interpretation of sonar and bathymetric datasets, a time-intensive and subjective process. By leveraging Convolutional Neural Networks (CNNs), we can now automate feature extraction, reducing processing time while improving consistency and scalability in offshore wind farm installations, oil and gas site assessments, and carbon sequestration projects.\n\nObjectives:\nThis talk will outline our experience in developing an AI-assisted seabed object detection workflow, addressing the unique challenges of underwater imagery. Unlike terrestrial datasets, subsea images suffer from noise, inconsistent lighting, and varying sensor resolutions, making deep learning adaptation non-trivial. I will share insights on choosing an appropriate deep learning framework,  based on usability, flexibility, and performance. Pre-processing underwater imagery is a critical step, requiring techniques to mitigate noise, distortion, and lighting variations in seabed survey data.\n\nTalk Structure:\n1. Introduction: Importance of seabed object detection and AI's role in offshore wind, marine, and geospatial analysis (3 Minutes)\n2. Data Acquisition & Preprocessing: Handling high-resolution seabed survey data and potential applications across other remote sensing using Python libraries (NumPy, Rasterio, GDAL, OpenCV, Scikit-Image) (5 Minutes)\n3. Deep Learning Approach: Model selection, training process, and feature extraction using TensorFlow, PyTorch, Scikit-learn, and XGBoost (6 Minutes)\n4. Validation & Accuracy Assessment: Comparing AI predictions with expert-labelled datasets (4 Minutes)\n5. Results & Visualization: Mapping classified seabed features with Geopandas and Matplotlib (5 Minutes)\n6. Applications & Future Scope: Expanding AI use in geospatial workflows, including aerial imaging, LiDAR, sonar analysis, and real-time object detection in underwater robotics (2 Minutes)", "recording_license": "", "do_not_record": false, "persons": [{"code": "HYA9JW", "name": "Samarth Bachkheti", "avatar": null, "biography": "Samarth Bachkheti is a geophysicist and AI practitioner specializing in seismic imaging, quantitative interpretation, and geomechanical assessment for offshore energy projects. With expertise in machine learning applications for geoscience, he leads the development of deep-learning tools for seabed imaging and offshore site assessments. His recent work focuses on deep learning for underwater object detection, integrating AI into geophysical workflows to enhance efficiency and accuracy in offshore engineering. He has presented at industry conferences and actively collaborate with research institutions to advance AI adoption in geoscience.", "public_name": "Samarth Bachkheti", "guid": "05dfd9de-7afb-5767-95b5-1aa67e006896", "url": "https://pretalx.com/euroscipy-2025/speaker/HYA9JW/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/9F88K8/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/9F88K8/", "attachments": []}, {"guid": "d92a9d65-3860-5b56-a5d8-e33f390325ee", "code": "ELXEN7", "id": 67311, "logo": null, "date": "2025-08-20T11:40:00+02:00", "start": "11:40", "end": "2025-08-20T12:00:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67311-python-framework-for-large-scale-radar-data-generation-and-visualization", "url": "https://pretalx.com/euroscipy-2025/talk/ELXEN7/", "title": "Python Framework for Large-Scale Radar Data Generation and Visualization", "subtitle": "", "track": "Physical Sciences and Engineering", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "The application of machine learning in automotive radar systems presents severe challenges, particularly due to the limited availability of raw radar data tailored to specific radar configurations and annotated datasets. In this presentation, we introduce a novel Python-based framework designed to address these challenges by enabling large-scale radar data generation and visualization.\n\nOur framework leverages existing radar detections from production systems, accumulating radar detections over multiple cycles to enhance resolution and minimize feature fluctuation. These accumulated features, referred to as pseudo scatter points, are treated as scatter centers to generate raw spectra for virtual radar systems with arbitrary antenna arrangements. This approach incorporates clutter in the simulation to achieve more representative results.\n\nKey features of our framework include:\n\n- GPU Acceleration: Utilizes GPU acceleration to handle the computational demands of large-scale radar data generation efficiently.\n- Inbuilt Visualizer: Provides an inbuilt visualizer for radar data, facilitating real-time analysis and debugging.\n- Specialized Data class: Implements a specialized data class to streamline the process of radar data generation and processing.", "description": "The advancement of machine learning in automotive radar systems is significantly impeded by the limited availability of annotated raw radar data, specifically tailored to distinct radar sensor configurations. To overcome these limitations, we present a robust Python-based computational framework specifically designed to facilitate efficient large-scale radar data generation and comprehensive visualization.\n\nOur framework leverages radar point cloud data, which is stored in the HDF5 format and collected directly from automotive radar sensors deployed in real-world environments. The point cloud data undergoes sophisticated preprocessing where radar detections are accumulated over multiple measurement cycles. This accumulation process is carefully corrected for both ego-vehicle velocity and the velocities of detected objects, ensuring spatial and temporal consistency. Through this preprocessing, our method reliably identifies dominant scatter centers within the radar's operational environment, creating high-quality datasets, termed \"pseudo scatter points,\" that effectively represent persistent environmental features.\n\nThese pseudo scatter points serve as a foundation for generating synthetic raw radar data suitable for virtual radar systems with arbitrary antenna arrangements and configurations within the widely used 77 GHz automotive radar band. The framework implements advanced radar signal processing algorithms including multi-dimensional Fast Fourier Transforms (FFTs), digital beamforming, Constant False Alarm Rate (CFAR) detection algorithms in range-Doppler domains, specialized peak-finding algorithms in azimuth and elevation dimensions, and interpolation methods to enhance angular resolution. Additionally, synthetic clutter generation methods are integrated to further improve the realism of the generated radar datasets.\n\nA key strength of our framework is its adaptability and flexibility, achieved through the utilization of a specialized and extensible Python data class structure. This structure simplifies the step-by-step management of radar data processing pipelines, facilitating customization, scalability, and straightforward integration of additional processing steps or alternative radar parameter configurations.\n\nTo address the computational demands of generating radar data at scale, the framework employs GPU acceleration via CuPy, a CUDA-enabled implementation of NumPy, enabling significant performance improvements. Currently, it achieves processing rates of approximately 10,000 radar frames per day, depending on radar resolution, thus offering practical scalability for both research and commercial development scenarios.\n\nVisualization capabilities are seamlessly integrated, leveraging PyQt5 combined with OpenGL to deliver a powerful inbuilt visualization tool. This visualizer provides detailed, interactive representations of radar cubes in real time, significantly aiding debugging, data exploration, and deeper insight into radar signal characteristics and potential anomalies.\n\nPractical applications of our framework include the generation of extensive radar datasets to support the training and validation of advanced deep neural networks for automotive radar perception tasks, as well as early-stage validation and benchmarking against reference radar sensor systems. Validation experiments, conducted through direct comparison with evaluation radar sensor data collected under identical conditions, have demonstrated the framework's capability to reliably reproduce realistic radar spectra, highlighting its value as a cost-effective alternative or complementary solution to expensive field-testing campaigns or high-fidelity ray tracing methods.\n\nFrom a scientific research perspective, our framework directly addresses a critical bottleneck in deep learning-based radar applications\u2014the scalability and availability of data needed to train sophisticated machine learning models. Its flexibility, ease of use, and high computational efficiency make it an attractive tool for researchers and developers aiming to push the boundaries of radar-based perception in automotive safety systems and advanced driver assistance systems (ADAS).\n\nWe welcome feedback and collaboration from the scientific community at EuroSciPy 2025 to further refine and extend the capabilities of our framework, exploring its broader applicability in scientific computing and automotive research domains.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CLXJRK", "name": "Manuel J\u00fcrgensen", "avatar": null, "biography": "Engineer and PhD student at BMW Group in cooperation with FAU Erlangen-Nuremberg, specializing in radar signal processing and perception with a focus on deep learning. Currently developing a Python framework for large-scale radar data generation.", "public_name": "Manuel J\u00fcrgensen", "guid": "2b13de69-84e9-5950-ab3c-e4e9d06cffa4", "url": "https://pretalx.com/euroscipy-2025/speaker/CLXJRK/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/ELXEN7/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/ELXEN7/", "attachments": []}, {"guid": "720207c3-ac1d-54f6-9172-f9abbaf8f2fe", "code": "TAXVPC", "id": 69338, "logo": null, "date": "2025-08-20T13:30:00+02:00", "start": "13:30", "end": "2025-08-20T14:00:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69338-sensor-data-processing-on-microcontrollers-with-micropython", "url": "https://pretalx.com/euroscipy-2025/talk/TAXVPC/", "title": "Sensor data processing on microcontrollers with MicroPython", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Being able to sense physical phenomena is critical to many areas of science;\nfrom detecting particles in physics, to measuring pollution in public health, to monitoring bio-diversity in ecology. Over the last decades, the capabilities and costs of sensor system has become much better,\ndriven by improvements in microprocessors, MEMS sensor technology, and low-energy wireless communication. Thanks to this, Wireless Sensor Networks and \"Internet of Things\" (IoT) sensor systems are becoming common.\n\nTypically sensor nodes use microcontroller-based hardware, and the firmware developed primarily using C (or C++). However, it is now becoming feasible to write microcontroller firmware using Python.\nThis is thanks to the MicroPython project, combined with affordable and powerful hardware from the last couple of years. Using the familiar and high-level Python programming language makes the process of creating sensor nodes more accessible to an engineer or scientist.\n\nIn this talk, we will discuss developing microcontroller-based sensors using MicroPython. This includes a brief introduction to MicroPython, how to do efficient data processing, and share our experience applying this to process accelerometer and microphone data, using both Digital Signal Processing and Machine Learning techniques.", "description": "Here is an overview of the topics you can learn about in this presentation.\n\n#### Sensor nodes and Wireless Sensor Networks\n\nA sensor node is a combined hardware + software system that can sense things in the physical world.\nIt uses sensor elements such as camera, microphone, accelerometer, radar, temperature et.c.\nA node has a microcontroller that does data aquition and processing, and also some way of storing data,\nor transmitting it to another system for further processing and storage.\nThe typical functional blocks of firmware for a sensor node are:\n\n- Data readout. Fetching data from each of the attached sensors.\n- Processing. Extracting useful information from the data.\n- Data storage. Storing either for long term, or as a transmission buffer.\n- Data transmission. Sending the extracted information to external systems.\n- Power management. Transitioning between sleep and aware as needed.\n\nFor low cost installation and operation,\nmany sensor nodes are battery-powered and use wireless connectivity.\nAnd they are often deployed together as part of larger Wireless Sensor Networks.\n\n### About MicroPython\nMicroPython is an implementation of Python that runs on practically all microcontrollers with 16kB+ RAM.\nIt provides access to the microcontroller hardware, functions for interacting with sensors and external pheripherals,\nas well as connectivity options such as WiFi, Ethernet, Bluetooth Low Energy, etc.\n\nWhile MicroPython (and the emlearn library) can target a very wide range of hardware,\nwe will focus on the Espressif ESP32 family of devices.\nThese are very powerful and affordable, with good WiFi+BLE connectivity support,\ngpod open-source toolchains, are very popular both among hobbyist and companies,\nand have many good ready-to-use hardware development kits.\n\n#### Challenges and constraints of microcontroller-based sensor nodes\nWhile microcontrollers are getting more powerful year by year,\nit is still important to fit within the limited RAM, program size and CPU time available.\nFor sensors with low datarates (like accelerometers) this is rather doable,\nbut for higher datarates such as audio or images good practices can be critical.\nFurthermore we may wish to operate on low-power with long battery life.\nIn that case it is critical to maximize sleeping, which means to reduce device wakeups,\nand to quickly return back to sleep.\nEnsuring that we stay within the resource budgets requires some care (in any programming language),\nand a high-level language like Python poses some particular challenges.\n\n#### Tools and practices for efficient sensor data processing in MicroPython\nWe will go through the tools which MicroPython provides for efficient sensor data processing.\nThis includes:\n\n- Ways of writing (Micro)Python code that are faster. For example reducing allocations\n- Optimizing subsets of Python using the @native and @viper code emitters\n- The built-in Python-based assembler for ARM Cortex M chip\n- Dynamic native C modules. Can be installed at runtime\n- User C modules. Can be baked into a custom MicroPython image\n\nWe will compare these approaches on a few algorithms that are often used of typical sensor data processing.\nThis includes algorithms from the world of Digital Signal Processing as well as Machine Learning.\nCandidates include Fast Fourier Transform (FFT), Root Mean Square (RMS),\nConvolutional Neural Network (CNN), and Random Forest (RF).\n\nThe emlearn-micropython packages provided a set of MicroPython modules\nthat can be installed onto a device, without having to recompile any C code.\nThis preserves the ease-of-use that Python developers are used to on a desktop system.\nCompared to pure-Python approaches, the emlearn-micropython modules are typically 10-100x faster.\n\n#### Intended audience and expected background\n\nAny developer or data scientist curious about sensor data processing, IoT,\nand how Python scales down to the smallest of devices.\n\nThe audience is expected to have a basic literacy in Python, proficiency in programming,\nand know the basics of data processing.\nSome familiarity in time-series processing, Digital Signal Processing or \nMachine Learning, will make the talk much more relevant to you.\nFamiliarity with microcontrollers and embedded systems is of course an advantage\n- but the talk should be approachable to those who are new to this area.\n\n#### Focus and scope of the talk\nThe main part of the talk will be how to built sensor-nodes for scientific applications with MicroPython,\n\nThe general introduction to MicroPython will be kept rather brief, as there are many resources for this available already.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CVFFNV", "name": "Jon Nordby", "avatar": null, "biography": "Jon is a Machine Learning Engineer specialized in IoT systems. He has a Master in Data Science and a Bachelor in Electronics Engineering, and has published several papers on applied Machine Learning.\nHe has been contributing to open-source software since 2010.\n\nThese days Jon is co-founder and Head of Data Science at Soundsensing, a leading provider of condition monitoring solutions for commercial buildings and HVAC systems.\nHe is also the creator and maintainer of emlearn, an open-source Machine Learning library for microcontrollers and embedded systems.", "public_name": "Jon Nordby", "guid": "cba066a6-9301-5981-8b37-222f32db4126", "url": "https://pretalx.com/euroscipy-2025/speaker/CVFFNV/"}], "links": [{"title": "emlearn-micropython - Machine Learning and Digital Signal Processing modules for MicroPython", "url": "https://github.com/emlearn/emlearn-micropython", "type": "related"}], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/TAXVPC/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/TAXVPC/", "attachments": []}, {"guid": "a367067d-405c-5204-bce2-a585afc6ea3a", "code": "LNU8UV", "id": 68620, "logo": null, "date": "2025-08-20T14:05:00+02:00", "start": "14:05", "end": "2025-08-20T14:35:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-68620-pypi-in-the-face-running-jokes-that-pypi-download-stats-can-play-on-you", "url": "https://pretalx.com/euroscipy-2025/talk/LNU8UV/", "title": "PyPI in the face: running jokes that PyPI download stats can play on you", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "We all love to tell stories with data and we all love to listen to them. Wouldn't it be great if we could also draw actionable insights from these nice stories?\n\nAs scikit-learn maintainers, we would love to use PyPI download stats and other proxy metrics (website analytics, github repository statistics, etc ...) to help inform some of our decisions like:\n- how do we increase user awareness of best practices (please use Pipeline and cross-validation)?\n- how do we advertise our recent improvements (use HistGradientBoosting rather than GradientBoosting, TunedThresholdClassifier, PCA and a few other models can run on GPU) ?\n- do users care more about new features from recent releases or consolidation of what already exists?\n- how long should we support older versions of Python, numpy or scipy ?\n\nIn this talk we will highlight a number of lessons learned while trying to understand the complex reality behind these seemingly simple metrics.\n\nTelling nice stories is not always hard, trying to grasp the reality behind these metrics is often tricky.", "description": "We all love to tell stories with data and we all love to listen to them. Wouldn't it be great if we could also draw actionable insights from these nice stories?\n\nAs scikit-learn maintainers, we would love to use PyPI download stats and other proxy metrics (website analytics, github repository statistics, etc ...) to help inform some of our decisions like:\n- how do we increase user awareness of best practices (please use Pipeline and cross-validation)?\n- how do we advertise our recent improvements (use HistGradientBoosting rather than GradientBoosting, TunedThresholdClassifier, PCA and a few other models can run on GPU) ?\n- do users care more about new features from recent releases or consolidation of what already exists?\n- how long should we support older versions of Python, numpy or scipy ?\n\nIn the context of scikit-learn, we will present the kind of surprises and caveats we discovered when trying to make sense of the PyPI download stats.\n\nHighlights include:\n- the most downloaded scikit-learn release is from 5 years ago, maybe people actually don't care about our latest developments?\n- how on earth can a package that errors on install be downloaded 50k a day?\n- is there any hope to differentiate \"real users\" vs \"automation users\" (e.g. Continuous Integration)?\n\nWe will then zoom out a bit and talk about other metrics we looked at, for example scikit-learn.org website analytics, GitHub stars and \"Used by\" stats. After presenting all the inherent biases of these data, we will see present the kind of insights we gained by combining them.\n\nDuring the presentation, we will also highlight a few tools and websites we used along the journey to make it easier to look at PyPI download stats numbers in more details.\n\nWe will conclude with some thoughts about how to use this kind of metrics to inform some of our decisions, while at the same time not falling in love too much with the stories we tell with them.", "recording_license": "", "do_not_record": false, "persons": [{"code": "N7TBEV", "name": "Lo\u00efc Est\u00e8ve", "avatar": null, "biography": "Lo\u00efc has a Particle Physics background, which is how he discovered Python towards the end of his PhD.\n\nHe is a scikit-learn and joblib core contributor and has been involved in a number of Python open-source projects in the past 10 years, amongst which Pyodide, dask-jobqueue, sphinx-gallery and nilearn.", "public_name": "Lo\u00efc Est\u00e8ve", "guid": "5a240d0e-b13d-549e-943e-a62354ea50ac", "url": "https://pretalx.com/euroscipy-2025/speaker/N7TBEV/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/LNU8UV/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/LNU8UV/", "attachments": []}, {"guid": "a74b4332-de69-514d-9eb2-cfa28a14edd7", "code": "SNPKGF", "id": 66782, "logo": null, "date": "2025-08-20T14:40:00+02:00", "start": "14:40", "end": "2025-08-20T15:00:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-66782-industrial-level-documentation-for-scientific-projects", "url": "https://pretalx.com/euroscipy-2025/talk/SNPKGF/", "title": "Industrial-Level Documentation for Scientific Projects", "subtitle": "", "track": "Community, Education, and Outreach", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "**Tools Used:**\n \n- Sphinx\n- Sphinx AutoAPI\n- Fuse.js\n- Towncrier\n- Sphinx Design\n- Google Search Console\n \n## Abstract\n \nMaintaining high-quality documentation in large-scale open-source organizations is a complex and time-consuming challenge, despite significant advancements in documentation tools. This talk presents a collection of strategies, tools, and workflows designed to optimize the documentation process for scientific projects, improving both efficiency and user experience.\n \nWe will explore techniques for building dynamic, user-friendly documentation using Sphinx, including:\n \n- Auto-generating API documentation\n- Implementing fast, client-side search\n- Enhancing SEO for better discoverability\n- Streamlining CI/CD workflows for seamless documentation deployment\n \nAttendees will gain insights into evolving existing documentation themes or creating new ones tailored for scalable, modern scientific projects.", "description": "This talk focuses on making documentation effortless by centralizing key updates and methodologies, ensuring consistency across multiple libraries. By automating documentation workflows, organizations can reduce manual effort while maintaining high standards of clarity and usability.\n \nKey topics covered include:\n \n- **Automated API Documentation with AutoAPI:** Using Sphinx AutoAPI, Jinja, and Sphinx Design to create dynamic, auto-generated documentation that communicates all methods, classes, attributes, and imports depending on the module. Proper structuring and a solid table of contents ensure clarity and navigability.\n \n- **Changelog Generation with Towncrier:** Implementing automatic changelog generation that creates a dynamic \"What's New\" section, clearly displaying issues and links in tabs for concise, understandable release notes.\n \n- **Real-Time search with Fuse.js:** The importance of real-time search results as users type. We use Fuse.js to integrate live search into the documentation with minimal configuration. The search is browser-based, ensuring it works efficiently, even when servers or third-party libraries are not available.\n \n- **SEO for Better Discoverability:** Understanding the key steps to improve SEO for documentation, ensuring that the content is easily discoverable on Google. We will discuss techniques to enhance the visibility of your docs and increase search clicks using Google Search Console (GSC).\n \n- **Accessibility and UX Enhancements:** The importance of ensuring documentation is accessible to everyone, regardless of ability. We will explore how to implement dark/light themes, improve visual elements like icons, fonts, and snippets, and ensure the overall UI/UX design promotes inclusivity.\n \nThese approaches are applicable to organizations of all sizes, offering scalable solutions that not only streamline documentation processes but also enhance the overall user experience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BKUYND", "name": "Revathy Venugopal", "avatar": null, "biography": null, "public_name": "Revathy Venugopal", "guid": "27c6a009-c126-5e2f-b7c7-7c84658814f4", "url": "https://pretalx.com/euroscipy-2025/speaker/BKUYND/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/SNPKGF/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/SNPKGF/", "attachments": []}], "Room 2.41 (First Floor, Turing)": [{"guid": "cf5149f3-2c2d-566a-9d3e-911111fac82b", "code": "DN7SMP", "id": 73592, "logo": null, "date": "2025-08-20T11:05:00+02:00", "start": "11:05", "end": "2025-08-20T11:50:00+02:00", "duration": "00:45", "room": "Room 2.41 (First Floor, Turing)", "slug": "euroscipy-2025-73592-array-api-and-library-dispatching", "url": "https://pretalx.com/euroscipy-2025/talk/DN7SMP/", "title": "Array API and library dispatching", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Maintainer track", "language": "en", "abstract": "There has been much progress in SciPy, scikit-learn and interesting efforts around Array API as well as some progress in dispatching similar to the NetworkX dispatching.\nThis session is to discuss d future plans and pain points for libraries to further adopt these patterns.", "description": "This session will be split in two parts.  First we wish discuss Array API adoption into libraries, how to continue this work and what needs to be done. \nThere has been a lot of progress in adoption across several libraries and interesting efforts like https://github.com/mdhaber/marray.\nWhat are patterns that work well or need improvement in the future?\n\nIn the second part, we want to discuss adoption of dispatching and backend selection across libraries.  NetworkX has this for a long time and scikit-image has experimented with it in the past year.\nWe plan on showing the spatch design, but wish to focus discussion on what the missing pieces are for libraries to adopt spatch or similar patterns.", "recording_license": "", "do_not_record": false, "persons": [{"code": "G9FDBT", "name": "Tim Head", "avatar": null, "biography": "I am a scikit-learn core maintainer and work at NVIDIA.\n\nBefore working on scikit-learn I helped build mybinder.org and worked on JupyterHub.\n\nMany years ago I was a particle physicist at CERN in Geneva.", "public_name": "Tim Head", "guid": "a842e352-3541-5265-b38b-7a11de096c71", "url": "https://pretalx.com/euroscipy-2025/speaker/G9FDBT/"}, {"code": "QKVYNA", "name": "Sebastian Berg", "avatar": null, "biography": "Sebastian has been a NumPy developer for about 10 years now.  After a PhD in phsyics he worked at as a postdoc at the Berkeley Institute for Datascience on NumPy as grants byt the Alfred P. Sloan Foundation and the Gordon and Betty Moore Foundation.  Since 2022 he has been a software engineer at NVIDIA where he continues to contribute to NumPy.", "public_name": "Sebastian Berg", "guid": "64adfc7b-6413-522a-b9f4-bb4f812cc25c", "url": "https://pretalx.com/euroscipy-2025/speaker/QKVYNA/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/DN7SMP/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/DN7SMP/", "attachments": []}, {"guid": "cbbf3b6d-e9cf-5436-83e8-54b07e712160", "code": "QPF9N7", "id": 70515, "logo": null, "date": "2025-08-20T13:30:00+02:00", "start": "13:30", "end": "2025-08-20T15:00:00+02:00", "duration": "01:30", "room": "Room 2.41 (First Floor, Turing)", "slug": "euroscipy-2025-70515-maintaining-people-not-just-projects-attracting-and-retaining-talent-in-foss", "url": "https://pretalx.com/euroscipy-2025/talk/QPF9N7/", "title": "Maintaining People, Not Just Projects: Attracting and Retaining Talent in FOSS", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Maintainer track long", "language": "en", "abstract": "The scientific Python ecosystem powers research, education, and innovation across disciplines from physics and biology to finance and AI. However, the long-term sustainability of this ecosystem depends on the people behind it. While the Scientific Python ecosystem continues to attract new contributors, retaining them remains a challenge with factors such as unclear career pathways, emotional labor, burnout, funding limitations, and project governance can discourage continued involvement. \n\nThis discussion is about the human side of open source: mentorship, collaboration, recognition, and belonging. The discussion will aim to surface practical ideas we can take back to our respective projects, as well as identify shared challenges we may be able to address together across the ecosystem.", "description": "The scientific Python ecosystem powers research, education, and innovation across disciplines from physics and biology to finance and AI. But its long-term sustainability doesn\u2019t just depend on code, it depends on people!\n\nAs maintainers, we often focus on the technical infrastructure of our projects: CI pipelines, packaging, release cycles. Yet the more enduring challenge is sustaining the human infrastructure that makes open source possible in the first place. While new contributors continue to find their way into the ecosystem, many don\u2019t stay. Unclear career pathways, emotional labor, burnout, limited funding, and governance challenges all play a role in attrition.\n\nThis round table is an opportunity for maintainers to step back from triage and talk candidly with peers about the human side of open source: mentorship, collaboration, recognition, and belonging. We\u2019ll explore the shared challenges we face in attracting and retaining contributors and the practical strategies that have helped us build healthier, more resilient communities.\n\nThis session is designed as a participatory, peer-to-peer discussion. However some topics that we could explore are:\n\n* Why contributors join\u2014and why they leave\n* Mentorship models that actually scale\n* Recognition and credit (in academia and beyond)\n* Balancing paid and volunteer contributions\n* Avoiding burnout (yours and others\u2019)", "recording_license": "", "do_not_record": true, "persons": [{"code": "EQJWS9", "name": "Kai Striega", "avatar": null, "biography": "Kai is a senior software engineer and open source contributor with a focus on scientific computing and mathematical optimization. He currently works at Cartesian Software in Sydney, Australia, where he develops high-performance tools for solving large-scale linear programming problems. With a background in both software engineering and applied mathematics, his work bridges the gap between research-grade algorithms and production-ready systems.\n\nHe is an active member of the scientific Python ecosystem and a passionate advocate for sustainable open source development. His contributions span core libraries, tooling, and infrastructure that support numerical analysis, data workflows, and optimization.", "public_name": "Kai Striega", "guid": "f37116a1-3af9-5e16-a142-ef2934478d53", "url": "https://pretalx.com/euroscipy-2025/speaker/EQJWS9/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/QPF9N7/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/QPF9N7/", "attachments": []}]}}, {"index": 4, "date": "2025-08-21", "day_start": "2025-08-21T04:00:00+02:00", "day_end": "2025-08-22T03:59:00+02:00", "rooms": {"Room 1.38 (Ground Floor)": [{"guid": "4b26f27e-a806-5733-9c2d-eceb420c0139", "code": "VCLRCU", "id": 78528, "logo": null, "date": "2025-08-21T09:00:00+02:00", "start": "09:00", "end": "2025-08-21T10:00:00+02:00", "duration": "01:00", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-78528-the-fellowship-of-the-stack-scientific-discovery-in-python", "url": "https://pretalx.com/euroscipy-2025/talk/VCLRCU/", "title": "The Fellowship of the Stack: Scientific Discovery in Python", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Keynote", "language": "en", "abstract": "In the vast realm of scientific discovery, a lone notebook awakens with its first incantation: import numpy as np. What begins modestly\u2014a few calculations, some basic plots\u2014soon evolves into an epic quest for knowledge. Our protagonist gathers companions along the way: pandas for data alchemy, matplotlib for visual storytelling, scikit-learn for predictive magic. But the path to enlightenment is treacherous, filled with the ancient curses of dependency hell, the shape-shifting demons of version conflicts, and the dreaded specter of irreproducible results that haunts laboratories worldwide.", "description": "Transformed from humble beginnings into a catalyst for breakthrough science\u2014decoding cosmic mysteries, healing human diseases, predicting planetary futures\u2014our hero joins millions of computational explorers pushing the boundaries of human understanding. Every scientific revolution starts with a single spark of code. What epic will you write?\n\nIn this keynote we'll take a narrative approach to the evolution of scientific experimentation, the daunting challenges that await and how we as the protagonists can find refuge with each other in the Python ecosystem.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LDQPN9", "name": "Dawn Wages", "avatar": null, "biography": "Dawn Wages is a community-centered technologist, open source advocate, and software engineer whose work bridges scientific computing, ethical technology, and inclusive community building. She currently serves as Lead of Community & Developer Relations at Anaconda, where she supports the Python ecosystem through education, outreach, and infrastructure advocacy.", "public_name": "Dawn Wages", "guid": "bd4b11b3-af13-5f96-b46a-d213c46bcf65", "url": "https://pretalx.com/euroscipy-2025/speaker/LDQPN9/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/VCLRCU/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/VCLRCU/", "attachments": []}, {"guid": "a26b2384-d841-551e-bbe0-a3548d21ecb2", "code": "K9L3VH", "id": 69345, "logo": null, "date": "2025-08-21T10:30:00+02:00", "start": "10:30", "end": "2025-08-21T11:00:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-69345-units-next-to-your-data-arrays-with-scipp", "url": "https://pretalx.com/euroscipy-2025/talk/K9L3VH/", "title": "Units next to your Data: Arrays with Scipp", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Inspired by xarray, Scipp enriches raw NumPy-like multi-dimensional data arrays by adding named dimensions and associated coordinates. For an even more intuitive and less error-prone user experience, Scipp adds physical units to arrays and their coordinates. There are multiple ways of working with units in the Scientific Python world, and there are even new initiatives like the Units/Quantity API and in this talk we will look at Scipp (which wraps around llnl-units).\n\nBut units are just one part of working with scientific data. Scipp also has a powerful non-destructive binning method to sort record-based \"tabular\"/\"event\" data into arrays of bins which could be useful if you are dealing with lots of data which needs to analyzed quickly. Scipp can also natively propagate uncertainties through your computations. Stop by this talk if you would like to see how Scipp can power scientific data analysis.", "description": "This talk will introduce the Scipp library, originally developed for neutron science experiments, and how it can be useful for record-based \"tabular\"/\"event\" data in general.\n\nOne of Scipp's key features is the possibility of binning to sort record-based data into arrays of bins. This provides fast and flexible binning, rebinning, and filtering operations, all while preserving the original individual records.\n\nIf your use case requires one or several of the items on the following list, using Scipp may be worth considering:\n- Physical units are stored with each data or coord array and are handled in arithmetic operations.\n- Histograms, i.e., bin-edge axes, which are by 1 longer than the data extent.\n- Support for non-regular or scattered data and non-destructive binning.\n- Support for masks stored with data.\n- Propagation of uncertainties.\n- Internals written in C++ for better performance (for certain applications), in combination with Python bindings.\n\nIn the talk we will cover:\n- Why units are important? What's the current landscape? (5 mins)\n- Labeled dimensions, Units (in Scipp) and data structures in scipp (5 mins)\n- Bins, Histograms and Uncertainties in Scipp (10 mins)\n- Tips and tricks of multi dimensional data handling (5 mins)\n- Buffer and Q/A (5 mins)", "recording_license": "", "do_not_record": false, "persons": [{"code": "WTK33D", "name": "Mridul Seth", "avatar": null, "biography": null, "public_name": "Mridul Seth", "guid": "9c705f77-9bb1-5b39-b7b5-228c85d21aa0", "url": "https://pretalx.com/euroscipy-2025/speaker/WTK33D/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/K9L3VH/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/K9L3VH/", "attachments": []}, {"guid": "a7460169-b549-574d-a2d0-a8b5a5bfd01c", "code": "G3WXJM", "id": 79913, "logo": null, "date": "2025-08-21T11:05:00+02:00", "start": "11:05", "end": "2025-08-21T11:35:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-79913-routing-strategies-for-heterogeneous-genai-systems-lessons-from-real-world-practice", "url": "https://pretalx.com/euroscipy-2025/talk/G3WXJM/", "title": "Routing Strategies for Heterogeneous GenAI Systems: Lessons from Real-World Practice", "subtitle": "", "track": "Large Language Models (LLMs), Neural Networks and AI Development", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Techniker Krankenkasse employs multiple specialized generative AI (GenAI) systems tailored to specific tasks, domains, costs, and latency needs. This multi-system strategy boosts robustness and efficiency but poses the operational challenge of routing queries to the most suitable GenAI model. \n\nThe talk describes practical experiences with developing dynamic routing pipelines using techniques such as regular-expression filters, Named Entity Recognition (NER), few-shot intent classifiers, lightweight generative models for economical context-aware routing, and selective escalation to advanced models only when necessary. Insights and best practices from real-world implementation are shared.", "description": "Modern Generative AI (GenAI) systems combine prompts, language models, inference servers, and specialized hardware into sophisticated stacks. As no single large GenAI system excels at all tasks, we at Techniker Krankenkasse are increasingly adopting a multi-system approach, employing different models tailored to specific tasks, domains, cost, or latency requirements. While this approach enhances robustness and efficiency, it introduces a critical operational challenge: effectively routing each incoming query to the most suitable GenAI system.\n\nIn this talk, we present our real-world experiences developing dynamic routing pipelines for selecting the optimal GenAI system based on input content and task specificity. We detail the evolution and refinement of our routing strategies, including:\n\n- Regular-expression filters to quickly capture clear-cut topics and enforce guardrails;\n- Off-the-shelf Named Entity Recognition (NER) modules to integrate domain-specific contextual signals;\n- Few-shot fine-tuning intent classifiers capable of generalizing beyond simple keyword matching\n- Lightweight generative LLMs that enable cost-effective, context-aware decision-making;\n- Selective escalation strategies employing state-of-the-art LLMs exclusively when more economical routes provide insufficient confidence.\n\nWe share insights and best practices from our real-world implementation experience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "KNHXU9", "name": "Oliver Zeigemann", "avatar": null, "biography": "Oliver Zeigermann has been developing software for 40 years, progressing from assembly language to C, then Python, and ultimately to machine learning. He currently works as a machine learning engineer at Techniker Krankenkasse.", "public_name": "Oliver Zeigemann", "guid": "593d3e95-9a36-56b3-952f-a0b4f4a1218b", "url": "https://pretalx.com/euroscipy-2025/speaker/KNHXU9/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/G3WXJM/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/G3WXJM/", "attachments": []}, {"guid": "e7bc07bf-428b-542d-b1df-b1ded9d905da", "code": "7BXY7G", "id": 67163, "logo": null, "date": "2025-08-21T11:40:00+02:00", "start": "11:40", "end": "2025-08-21T12:00:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67163-breaking-the-constraints-of-linear-notebook-environments", "url": "https://pretalx.com/euroscipy-2025/talk/7BXY7G/", "title": "Breaking the Constraints of Linear Notebook Environments", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "The talk will explore the limitations of current interactive notebook paradigms and introduce TwinSong, an experimental alternative to Jupyter that reimagines interactive programming for scientific computing. The talk will explore the design philosophy, technical implementation, and potential impact on scientific computing workflows. TwinSong is an open source and available at: github.com/spirali/twinsong.", "description": "The talk will explore the limitations of current interactive notebook paradigms and introduce Twinsong, an experimental alternative to Jupyter that reimagines interactive programming for scientific computing. The talk will explore the design philosophy, technical implementation, and potential impact on scientific computing workflows.\n\nUnlike linear notebooks, TwinSong decouples code execution from outputs. This approach preserves execution history, allows multiple kernel instances, and provides a cleaner, more manageable computational environment. Users can also organize code hierarchically, enabling: batch subtree evaluation, hierarchically scoped memory spaces that prevent variable leakage, and more intuitive code structuring for complex scientific workflows. TwinSong offers visibility into computational states, including detailed variable inspection and chronological output tracking.\n\nTwinSong also provides Git-friendly notebook formats that minimize collaboration friction. Rust-based backend ensures performance and reliability and clean Python kernel implementation without loading Python modules and starting new Python threads.\n\nTwinSong is an open source and available at: github.com/spirali/twinsong.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AHZXBV", "name": "Ada B\u00f6hm", "avatar": null, "biography": "Ada is a Rust and Python developer. She is a tool builder in various areas, including schedulers for clusters, tools to support AI experiments, or a tool to create slides . She is an active contributor to several open source projects. Ada has a PhD in Computer Science.", "public_name": "Ada B\u00f6hm", "guid": "125b6e0f-70dc-5bf0-9f21-49c94340a7b2", "url": "https://pretalx.com/euroscipy-2025/speaker/AHZXBV/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/7BXY7G/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/7BXY7G/", "attachments": []}, {"guid": "e4f050ef-7d64-5c89-8d4b-e1fa995742f4", "code": "9LAVJW", "id": 67292, "logo": null, "date": "2025-08-21T13:30:00+02:00", "start": "13:30", "end": "2025-08-21T14:00:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67292-understanding-dispatching-approaches-in-the-scientific-python-ecosystem", "url": "https://pretalx.com/euroscipy-2025/talk/9LAVJW/", "title": "Understanding Dispatching Approaches in the Scientific Python Ecosystem", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "In recent years, many specialised libraries have emerged, implementing optimised subsets of algorithms from larger Scientific Python libraries-- supporting GPUs for acceleration, parallel processing, or distributed computing, or written in a lower-level programming language like Rust or C. These implementations offer significant performance improvements\u2014but integrating them smoothly into existing workflows can be challenging. This talk explores different dispatching approaches that enable seamless integration of these faster implementations without breaking APIs or requiring users to switch libraries. We'll focus on the following two approaches:\n\n- **Backend library-based dispatching** : allowing existing library function calls to be routed to a faster backend implementation present in a separate backend library written for GPUs or in a different language, etc. , as adopted by projects like NetworkX and scikit-image.\n\n- **Array API standardization and adoption** : more specific to dispatching in array libraries. Based on the type of array that is passed into a numpy function, the call is dispatched to the appropriate array library such as Tensorflow, PyTorch, Dask, JAX, CuPy, Xarray, etc. This allows for the array consuming libraries like SciPy and Sklearn to be used in workflows that are using these other array libraries.\n\nThen we will go over how these approaches are different from each other and when to use which approach based on different use cases and requirements.", "description": "# Description\n\nIn the first few minutes we will go over what dispatching is, why it's needed, what kind of projects may benefit from it, and the kinds of dispatching i.e the user decides which backend to use explicitly or the library implicitly dispatch to the \"right\" implementation for the user or implicitly dispatch based on the input type(s).\n\n## Array API standard and NumPy predecessors (10-12 mins)\n\nIn this section we will start with NumPy's old dispatching, briefly explaining how it works, and also showing what it can do, such as allowing to use a NumPy function with cupy.\n\nWe will then continue with the Array API which has momentum as it is being used by libraries such as SciPy and sklearn and with existing support for numpy, pytorch, JAX, CuPy, Xarray, etc.\nWe will highlight it's use by briefly show-casing the speed-up when a user switches e.g. from NumPy to pytorch. \n\nThese examples will help us expose key difference in type dispatching approaches both for it's users and for the implementation.\nA main difference being that the Array API is library orientated while the NumPy dispatching was user-orientated.\n\n## Backend-library based dispatching (10-12 mins)\n\nWe will then continue with the more general backend-library based dispatching approach that is implemented in libraries like NetworkX and scikit-image.\n\nThis approach is more general and opens up additional possibilities as it is based on Python [`entry_point`](https://packaging.python.org/en/latest/specifications/entry-points), which are generally used to extend the functionality of a package. We will understand this `entry-point` based dispatching through a quick demo.\n\nThen we will see a demo of how NetworkX speeds-up with [nx-parallel](https://github.com/networkx/nx-parallel) and [nx-cugraph](https://github.com/rapidsai/nx-cugraph) backends, and the different user APIs in NetworkX to dispatch a call: based on backend-specific graph's type, `backend=` kwarg, environment variables, global configurations, context manager.\n\nThen we will go over some of the learnings gathered while integrating this mechanism in [scikit-image](https://github.com/scikit-image/scikit-image) and challenges faced with dispatching arrays inputs.\n\n## Summary and Comparison\n\nWe will end with a summary of how dispatching approaches differ and when to use which ones, both as a developer and a user of a project. In this summary we wish to expand beyond the previous examples and also mention for example [DataFrame API standards](https://data-apis.org/dataframe-api/draft/) and [narwhals](https://github.com/narwhals-dev/narwhals). \n\n\n## Intended audience:\n\n- Contributors/Maintainers of Python libraries who are interested in providing faster algorithms without changing much of their codebase and user-API\n- People who work with large graph, image and array datasets\n- Anyone interested in API dispatching or any of the above stuff :)\n\nSome basic knowledge of Python is expected; should know what objects and classes are.\n\n\nThank you :)", "recording_license": "", "do_not_record": false, "persons": [{"code": "QKVYNA", "name": "Sebastian Berg", "avatar": null, "biography": "Sebastian has been a NumPy developer for about 10 years now.  After a PhD in phsyics he worked at as a postdoc at the Berkeley Institute for Datascience on NumPy as grants byt the Alfred P. Sloan Foundation and the Gordon and Betty Moore Foundation.  Since 2022 he has been a software engineer at NVIDIA where he continues to contribute to NumPy.", "public_name": "Sebastian Berg", "guid": "64adfc7b-6413-522a-b9f4-bb4f812cc25c", "url": "https://pretalx.com/euroscipy-2025/speaker/QKVYNA/"}, {"code": "RMNGAJ", "name": "Aditi Juneja", "avatar": null, "biography": "Hi, I am Aditi. I mostly work around API dispatching things in the scientific python ecosystem, mostly in NetworkX, nx-parallel backend and scikit-image.\n\nGitHub: https://github.com/Schefflera-Arboricola\nPrevious talks: https://github.com/Schefflera-Arboricola/blogs/tree/main/archive", "public_name": "Aditi Juneja", "guid": "d496b77d-758e-59f1-94ba-72cefc1ed596", "url": "https://pretalx.com/euroscipy-2025/speaker/RMNGAJ/"}], "links": [{"title": "Previous demo on NetworkX's dispatching with nx-parallel and nx-cugraph backends", "url": "https://colab.research.google.com/drive/1WQ5nW-fHNYI9cwVqnRiXV5-V3Sss98DK?usp=sharing", "type": "related"}, {"title": "Array API standards", "url": "https://data-apis.org/array-api/latest/", "type": "related"}, {"title": "Slides", "url": "https://docs.google.com/presentation/d/1273fvdvMtgnteE8xGDU0LLHWB7SMo3GIRFcqjxDrKrA/edit?usp=sharing", "type": "related"}, {"title": "SciPy's support for Array API standard", "url": "https://docs.scipy.org/doc/scipy/dev/api-dev/array_api.html", "type": "related"}, {"title": "Previous demo of how entry-points work with a dummy library coco", "url": "https://github.com/Schefflera-Arboricola/coco", "type": "related"}, {"title": "NetworkX's Backend docs", "url": "https://networkx.org/documentation/latest/reference/backends.html", "type": "related"}, {"title": "NEP 18", "url": "https://numpy.org/neps/nep-0018-array-function-protocol.html", "type": "related"}, {"title": "NEP 37", "url": "https://numpy.org/neps/nep-0037-array-module.html", "type": "related"}, {"title": "NEP 47", "url": "https://numpy.org/neps/nep-0047-array-api-standard.html", "type": "related"}, {"title": "NEP 56", "url": "https://numpy.org/neps/nep-0056-array-api-main-namespace.html", "type": "related"}, {"title": "Python `entry_points`", "url": "https://packaging.python.org/en/latest/specifications/entry-points", "type": "related"}, {"title": "scikit-image's experimental dispatching", "url": "https://scikit-image.org/docs/dev/development/dispatching.html", "type": "related"}, {"title": "Sklearn's support for Array API standard", "url": "https://scikit-learn.org/stable/modules/array_api.html", "type": "related"}], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/9LAVJW/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/9LAVJW/", "attachments": []}, {"guid": "cd6b3197-9663-5468-8346-5af8e3139dcf", "code": "ZXQJVQ", "id": 79959, "logo": null, "date": "2025-08-21T14:05:00+02:00", "start": "14:05", "end": "2025-08-21T14:35:00+02:00", "duration": "00:30", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-79959-numba-mpi-pympdata-jit-compilation-and-multi-threading-for-high-performance-computing-in-python", "url": "https://pretalx.com/euroscipy-2025/talk/ZXQJVQ/", "title": "Numba-MPI & PyMPDATA: JIT-compilation and multi-threading for high performance computing in Python", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Numba-MPI is a pure Python package providing wrappers for C MPI (Message Parsing Interface) API that can be used from Numba JIT (Just In Time)-compiled code. This allows large computational tasks to benefit from multi-threading, JIT-compilation and workload scaling on large computer clusters. Futhermore, numba-MPI implements both synchronous and asynchronous transfer functions from C MPI API. By embedding MPI communication in JIT-compiled code blocks, many algorithms are able to gain a susbtantial speedup. \nPyMPDATA-MPI is a package providing multi-threading with MPI-based domain decomposition for PyMPDATA, a package implementing Multidimensional Positive Definite Advection Transport Algorithm (MPDATA) for solving advection-diffusion PDEs. Thanks to those features, PyMPDATA-MPI allows for flexibility in parallelization strategies. This gives the ability to specify the dimensions over which multi-threading and multi-processing are employed and to keep the performance benefits of JIT-compiled code.  Both of those packages are actively developed on AGH University of Krakow.", "description": "Message Parsing Interface (MPI) is a communication standard allowing for universal, portable high performance computing in distributed systems. Written for C, C++ and Fortran users it has since been  incorporated into many pararell programming libraries, including implementations in Python.\n\nNumba-MPI is a pure Python package that allows to bring low-level high performance computing on processor clusters to high-level Python simulations by the combined use of Numba JIT compilation and multi-threading. \n\nPyMPDATA-MPI is an extension to PyMPDATA, that allows for high performance computation using the Multidimensional Positive Defined Advection Transport Algorithm (MPDATA) for solving advection-diffusion PDEs. Thanks to being based on Numba-MPI,  this package allows the user to precisely control domain decomposition in calculations and gain the advantage of hybrid shared- and distributed-memory parallelism using multi-threading and MPI.\n\nIn this talk I will explain the basic concepts behind JIT compilation and distributed-memory calculations. Then I will outline the features and architecture of aforementioned packages, followed by usage examples of Numba-MPI coupled with PyMPDATA.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MRSW9T", "name": "Micha\u0142 Wro\u0144ski", "avatar": null, "biography": "I am an undergraduate student at AGH University of Krakow on the Faculty of Physics and Applied Computer Science working on developing open-source MPI applications in physical simulations along with open-atmos contributors and developers.", "public_name": "Micha\u0142 Wro\u0144ski", "guid": "edfa8f14-989d-5ee6-8eb7-0bcc53012300", "url": "https://pretalx.com/euroscipy-2025/speaker/MRSW9T/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/ZXQJVQ/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/ZXQJVQ/", "attachments": []}, {"guid": "d15adeac-c312-55b1-9090-97985e6eb364", "code": "TP8ZB7", "id": 67293, "logo": null, "date": "2025-08-21T14:40:00+02:00", "start": "14:40", "end": "2025-08-21T15:00:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67293-python-blosc2-compress-better-compute-bigger", "url": "https://pretalx.com/euroscipy-2025/talk/TP8ZB7/", "title": "Python-Blosc2: Compress Better, Compute Bigger!", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "Have you ever experienced the frustration of not being able to analyze a dataset because it's too large to fit in memory? Or perhaps you've encountered the memory wall, where computation is hindered by slow memory access? These are common challenges in data science and high-performance computing.\n\nPython-Blosc2 (https://www.blosc.org/python-blosc2/) is a high-performance, multi-threaded, multi-codec array container, with an integrated compute engine that allows you to compress *and compute* on large datasets efficiently. In this talk, we will explore the latest features of Python-Blosc2, including its seamless integration with NumPy, and the Python Data ecosystem in general, and how it can help you tackle data challenges that exceed the limits of your available RAM, all while maintaining high performance.", "description": "Blosc and Blosc2 are well-known and widely used libraries for high-performance data compression. They are particularly effective for compressing large datasets, such as those encountered in data science and high-performance computing. The Blosc library has been around for over a decade, and its design has always prioritized speed, with a focus on achieving compression and decompression speeds that are close to or even exceed memory bandwidth limits.\n\nWith the introduction of a new compute engine in Python-Blosc2 3.0, the guiding principle has evolved to \"Compress Better, Compute Bigger.\" This enhancement enables computations on datasets that are over 100 times larger than the available RAM, all while maintaining high performance.\n\nDuring our talk, we will delve into the latest features of Python-Blosc2, including:\n\n* Seamless integration with NumPy and the Python Data ecosystem\n* High-performance compression and decompression\n* The new compute engine and its capabilities\n* A JIT (Just-In-Time) compiler for Python functions including almost all NumPy functions\n* The ability to perform computations on datasets that exceed available RAM\n\nTo illustrate this, we will present an example of using Python-Blosc2 to analyze a dataset that largely exceeds the capacity of the available RAM. We will demonstrate how to leverage the new compute engine to perform computations efficiently, without the need for specialized hardware or infrastructure.\n\nBy the end of this talk, attendees will understand how Python-Blosc2 can help overcome memory constraints in their data workflows. Whether you're working with medium-sized datasets on modest hardware or large datasets on high-performance systems, you'll learn practical techniques to compress data while maintaining computational efficiency.\n\nJoin us to explore how this powerful library can expand your capabilities for scientific computing and data analysis while reducing memory footprint and improving processing speed.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BMFCA3", "name": "Francesc Alted", "avatar": null, "biography": "I am a curious person who studied Physics and Applied Maths. I spent over a year at [CERN](https://home.cern) for my MSc in High Energy Physics. However, I found maths and computer sciences equally fascinating, so I left academia to pursue these fields. Over the years, I developed a passion for handling large datasets and using compression to enable their analysis on commodity hardware accessible to everyone.\n\nI am the CEO of [ironArray SLU](https://ironarray.io) and also leading the [Blosc Development Team](https://blosc.org). I am very excited in working in providing a way for sharing Blosc2 datasets in the network in an easy and effective way via [Caterva2](https://ironarray.io/caterva2-doc/index.html), and [Cat2Cloud](https://ironarray.io/cat2cloud), a software as a service that we are introducing.\n\nAs an Open Source believer, I started the [PyTables project more than 20 years ago](https://www.blosc.org/posts/pytables-20years/).  After 25 years in this business, I started several other useful open source projects like Blosc, Caterva2 and [Btune](https://github.com/ironArray/Blosc2-Btune); those efforts won me two prizes that mean a lot to me:\n\n* 2023: [NumFOCUS Project Sustainability Award](https://www.blosc.org/docs/NumFOCUS-Sustainability-Award.jpg)\n* 2017: [Google\u2019s Open Source Peer Bonus](https://opensource.googleblog.com/2017/10/more-open-source-peer-bonus-winners.html)\n\nYou can know more on what I am working on by reading my [latest blogs](https://www.blosc.org/authors/francesc-alted).", "public_name": "Francesc Alted", "guid": "a43fdfe0-a25c-5192-b01a-430acecab6a3", "url": "https://pretalx.com/euroscipy-2025/speaker/BMFCA3/"}, {"code": "WFFNSW", "name": "Luke Shaw", "avatar": null, "biography": "2019 BS in Physics (Princeton University), cum laude\n2020 MSc in Applied Mathematics (University of Edinburgh), with distinction\n2024 PhD in Applied Mathematics (Universitat Jaume I), sobresaliente cum laude", "public_name": "Luke Shaw", "guid": "80f66ad5-8bf8-5d53-9b33-b96ae0eb92be", "url": "https://pretalx.com/euroscipy-2025/speaker/WFFNSW/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/TP8ZB7/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/TP8ZB7/", "attachments": []}, {"guid": "7471125f-9087-589b-9eb3-8c4ac59e6701", "code": "7XUYKH", "id": 67287, "logo": null, "date": "2025-08-21T15:30:00+02:00", "start": "15:30", "end": "2025-08-21T15:50:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-67287-python-profiling-and-optimisation-a-training-course-for-researchers", "url": "https://pretalx.com/euroscipy-2025/talk/7XUYKH/", "title": "Python Profiling and Optimisation\u2014A Training Course for Researchers", "subtitle": "", "track": "Community, Education, and Outreach", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "Most researchers writing software are not classically trained programmers. Instead, they learn Python organically, often developing unpythonic habits that negatively impact their software\u2018s performance.\n\nIn this talk, we present a new course on Python profiling and optimisation. We give an overview of the course contents, report on feedback from researchers at multiple universities who attended early versions of the course, and discuss our plans for developing the course further. Finally, we share how you can run the course at your own institution and contribute to it via the Software Carpentry Incubator program.", "description": "Most researchers writing software are not classically trained programmers. Instead, they learn Python organically, often developing unpythonic habits that negatively impact their software\u2018s performance. As research software engineers working with researchers from different areas, we decided to develop training on Python profiling and optimisation to share best practices.\n\nIn the first part of that course, we introduce learners to different profiling approaches such as function-level profiling (using `cProfile` and `snakeviz`) or line-level profiling (using `line_profiler`) to identify which parts of a program run slowest. In the second part, we introduce a wide range of optimisations to speed up those sections of the program. Optimisations described in the course include effective usage of language features and the standard library, choosing suitable data structures, using NumPy and other scientific Python packages, and more. Using these optimisations in real-life workloads, we have observed significant performance improvements, sometimes by more than an order of magnitude.\n\nWe ran early versions of the course at multiple universities for audiences consisting of students, researchers and research software engineers, using feedback we have received from learners to guide further development of the course.\nAll course materials are available online via the [Carpentries Incubator](https://carpentries-incubator.org). We welcome contributions to the course materials and encourage attendees to run the course at their own institutions.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CSFTCQ", "name": "Jost Migenda", "avatar": null, "biography": "Jost is a Senior Research Software Engineer at King\u2019s College London, where they work on software projects ranging from astrophysics to Trusted Research Environments for analysing medical data. They are a certified Carpentries instructor and regularly develop and deliver training courses.\nJost received a PhD in astroparticle physics from the University of Sheffield and is a maintainer of several widely used supernova neutrino codes, including [SNEWPY](https://joss.theoj.org/papers/10.21105/joss.03772) and [sntools](https://joss.theoj.org/papers/10.21105/joss.02877).", "public_name": "Jost Migenda", "guid": "4b93456e-2c58-5586-8891-31652f58a0a4", "url": "https://pretalx.com/euroscipy-2025/speaker/CSFTCQ/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/7XUYKH/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/7XUYKH/", "attachments": []}, {"guid": "728a805b-0fbf-5379-98da-91e571ff40e5", "code": "ZRA3GV", "id": 66241, "logo": null, "date": "2025-08-21T16:00:00+02:00", "start": "16:00", "end": "2025-08-21T16:20:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-66241-solving-hard-optimization-problems-with-pyomo-and-highs-a-practical-introduction", "url": "https://pretalx.com/euroscipy-2025/talk/ZRA3GV/", "title": "Solving Hard Optimization Problems with Pyomo and HiGHS: A Practical Introduction", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "Mixed-Integer Programming (MIP) is a fundamental technique for solving complex real-world optimization problems in logistics, scheduling, and resource allocation. However, these problems are combinatorially hard, requiring specialized solvers to find optimal solutions efficiently. This talk introduces Pyomo, a Python-based modeling language, and HiGHS, a state-of-the-art open-source solver. We will first explore the class of problems that MIP can solve, discuss why they are computationally challenging, and then explain how modern solvers like HiGHS tackle these challenges. Using conference scheduling as a real-world example, we demonstrate how Pyomo and HiGHS work together to model and solve an optimization problem. Attendees will leave with a clear understanding of how to leverage these tools for scientific and industrial optimization tasks.", "description": "### **1. Introduction (3 min) \u2013 What Kind of Problems Can MIP Solve?**\n- MIP is widely used in scheduling, logistics, and operations research.\n- Examples of real-world problems: workforce scheduling, vehicle routing, and conference scheduling.\n- Why are these problems hard? The explosion of possible solutions in combinatorial optimization.\n\n### **2. Why Are These Problems Difficult? (2 min) \u2013 The Challenge of Combinatorial Optimization**\n- Theoretical complexity: Why brute-force search is infeasible.\n- How solvers like **HiGHS** approach the problem efficiently:\n  - **Branch-and-Bound**: How it systematically narrows down the search space.\n  - **Cutting Planes & Presolve Techniques**: Reducing problem size before solving.\n  - **Heuristics vs. Exact Solutions**: Trade-offs in computation time.\n\n### **3. Introduction to Pyomo & HiGHS (4 min) \u2013 The Optimization Toolkit**\n- **Pyomo**: A structured way to define optimization models in Python.\n- **HiGHS**: A high-performance solver for linear and mixed-integer problems.\n- How they work together: Model in Pyomo \u2192 Solve with HiGHS \u2192 Interpret results.\n\n### **4. Conference Scheduling (5 min) \u2013 A Practical Example**\n- Formulating the problem as a **MIP model**:\n  - Decision variables: Assigning talks to rooms and time slots.\n  - Constraints: Speaker availability, room capacities, topic grouping.\n  - Objective function: Maximizing session coherence and fairness.\n- Broad overview of the **Python implementation**:\n  - Writing the model in Pyomo.\n  - Solving it using HiGHS.\n  - Evaluating the solution.\n\n### **5. Conclusion & Wrap-up (1 min) \u2013 Key Takeaways**\n- Why Pyomo and HiGHS? Flexibility, efficiency, and scalability.\n- Where to go next: Learning resources and real-world applications beyond scheduling.\n\n**Slides**: [https://florianwilhelm.info/documents/euro_scipy_talk_2025.pdf](https://florianwilhelm.info/documents/euro_scipy_talk_2025.pdf)", "recording_license": "", "do_not_record": false, "persons": [{"code": "8LQU9C", "name": "Florian Wilhelm", "avatar": null, "biography": "Florian is Head of Data Science & Mathematical Modeling at inovex GmbH, an IT project center driven by innovation and quality, focusing its services on \u2018Digital Transformation\u2019. He holds a PhD in mathematics, has more than 10 years of experience in predictive & prescriptive analytics use-cases and likes everything math \ud83e\udd2f", "public_name": "Florian Wilhelm", "guid": "57127497-53e8-5705-b197-b21e82eeb3d9", "url": "https://pretalx.com/euroscipy-2025/speaker/8LQU9C/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/ZRA3GV/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/ZRA3GV/", "attachments": []}, {"guid": "4043d0e0-df2b-511c-b02f-5604a408be36", "code": "MLCQQL", "id": 69309, "logo": null, "date": "2025-08-21T16:30:00+02:00", "start": "16:30", "end": "2025-08-21T16:50:00+02:00", "duration": "00:20", "room": "Room 1.38 (Ground Floor)", "slug": "euroscipy-2025-69309-automated-chess-analysis-real-time-move-detection-and-game-narration-using-computer-vision-and-large-language-models", "url": "https://pretalx.com/euroscipy-2025/talk/MLCQQL/", "title": "Automated Chess Analysis: Real-Time Move Detection and Game Narration Using Computer Vision and Large Language Models", "subtitle": "", "track": "Large Language Models (LLMs), Neural Networks and AI Development", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "This talk presents a python-Streamlit application which has been developed based on integration of deep learning based automatic chess move detection and LLM-generated chess game commentary and is designed to be a powerful tool for enhancing chess learning and viewer engagement. Automatic move detection based on a high accuracy computer vision model allows chess players, learners and general viewers to accurately track the games, identify mistakes, and review tactics without the need for manual notation. Beginners gain a clearer understanding of gameplay flow, while enthusiasts can easily annotate and revisit key moments. By combining move detection with real-time, LLM-driven commentary, the system provides context-aware explanations that highlight strategic ideas, tactical patterns, and player intentions. This creates an interactive and educational experience that enriches both learning and viewing.", "description": "This talk presents the development of a python application for the detection and interpretation of chess moves from video footage, blending deep learning based computer vision, motion tracking, and LLM based sequence analysis. The system is designed to identify all 12 chess piece types\u2014pawn, rook, knight, bishop, queen, and king in both black and white\u2014on an 8\u00d78 board, track their movements across frames. It then converts these actions into standard algebraic notation (e.g., \"e4\", \"Nf3\", \"Qxd5\"). A key feature of this application is the ability to distinguish between valid moves and incidental adjustments, like nudging a piece. In addition, based on the chess moves an LLM is used to generate an educational commentary on the game which adds an engaging narrative dimension for users, making it suitable for learners and casual viewers alike.\n\nThe application workflow begins with object detection using a YOLOv8 model trained on a labeled chess dataset, which outputs bounding boxes and class probabilities for each chess piece. The centroids of these detected bounding boxes are then mapped to corresponding chessboard squares (e.g., \"a1\" to \"h8\"). By comparing piece positions across consecutive video frames, the system infers potential moves, which are subsequently validated using the python-chess library to ensure legality\u2014such as preventing illegal pawn movements. Once a move is confirmed, it is passed to OpenAI\u2019s GPT-4, which generates educational and context-aware commentary. This commentary is then converted to audio using Google Text-to-Speech (gTTS), creating an engaging and informative user experience.\nFinally this application is packaged within a Streamlit app that provides an interactive platform, allowing users to upload videos, view annotated outputs, and download commentary audio. This pipeline combines YOLOv8\u2019s speed, chess-specific logic, and AI-driven narration into a cohesive system.\n\nThe computer vision and LLM based workflow successfully automates move detection in chess games by leveraging a YOLOv8s model to process user-submitted videos, accurately generating legal move sequences and producing annotated output videos. Building on this, the Streamlit application seamlessly combines visual move annotations, structured move lists, and GPT-4-generated audio commentary, delivering a rich and interactive user experience. This integrated pipeline highlights the powerful synergy between computer vision and large language models, demonstrating a practical, real-world application where automated visual recognition and natural language generation come together to create dynamic and educational chess commentary. Furthermore, integrating large language models for commentary generation opens new possibilities for smart chess boards, coaching applications, live-streamed matches with narration, and automated game archiving for tournaments and classrooms. Overall, this fusion of computer vision and natural language generation bridges the gap between physical and digital chess, fostering greater inclusivity, deeper engagement, and accelerated learning across the chess community.\nAdvancements in this work may include expanding to multi-player support by incorporating hand tracking or multi-camera systems to accurately detect player turns and interactions, as well as enhancing analysis capabilities to assess move quality, providing detailed feedback on mistakes and exceptional plays. \n\nThis is an open source project and the GitHub repository details and steps for installation/running this application will be shared during the talk. \n\nGithub: https://github.com/LikhitaYerra/Chess-Vision-Narrator\nPresentation: https://docs.google.com/presentation/d/1ZkafIz_0lOLsXR2Ct11pox1E1HZLYi_NkxoVaz5UF_I/edit?usp=sharing\nMagazine:https://drive.google.com/file/d/1bZJJ5V2K_a6TVgSa2sDLqR-9hy1T7Be1/view?usp=sharing", "recording_license": "", "do_not_record": false, "persons": [{"code": "Z9BZMS", "name": "Anuradha Kar, PhD", "avatar": null, "biography": null, "public_name": "Anuradha Kar, PhD", "guid": "8c5b1a5e-dd70-542d-bfc2-93fdd900c535", "url": "https://pretalx.com/euroscipy-2025/speaker/Z9BZMS/"}, {"code": "3U3KUU", "name": "Anuradha KAR", "avatar": null, "biography": "I am an Associate Professor in AI and Robotics at Aivancity based in Paris, France.  I got my PhD from the University of Galway in Ireland in Electrical and Electronic Engineering. I then worked at ENS Lyon in collaboration with Inria and Inrae on deep learning for 3D biological image analysis, then joined the Paris Brain Institute with Inria on deep learning for data analysis of Alzheimer's patients, and the Pasteur Institute in Paris on applications of deep learning in the field of drug discovery. My research and teaching interests focus on applications of deep learning in computer vision, computational biology and health, as well as human-machine interactions and intelligent systems.", "public_name": "Anuradha KAR", "guid": "99ec0ca9-078b-5d59-b8bd-251f265f0bda", "url": "https://pretalx.com/euroscipy-2025/speaker/3U3KUU/"}, {"code": "GWQHEL", "name": "Likhita Yerra", "avatar": null, "biography": "Likhita Yerra, a Master\u2019s student in AI and Data Science, specializes in Python, computer vision, and large language models. I develop innovative machine learning solutions with PyTorch, TensorFlow, Docker, and Streamlit, passionate about advancing AI and scientific computing for real-world impact.", "public_name": "Likhita Yerra", "guid": "02a22e80-297b-5d2d-886b-0bc3c9438354", "url": "https://pretalx.com/euroscipy-2025/speaker/GWQHEL/"}], "links": [{"title": "Presentation", "url": "https://docs.google.com/presentation/d/1ZkafIz_0lOLsXR2Ct11pox1E1HZLYi_NkxoVaz5UF_I/edit?usp=sharing", "type": "related"}, {"title": "Github repo", "url": "https://github.com/LikhitaYerra/Chess-Vision-Narrator", "type": "related"}], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/MLCQQL/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/MLCQQL/", "attachments": []}], "Room 1.20 (Ground Floor, Shannon)": [{"guid": "8522360f-2088-5ebf-a0b4-4530355dcdab", "code": "CTCYRB", "id": 67091, "logo": null, "date": "2025-08-21T10:30:00+02:00", "start": "10:30", "end": "2025-08-21T11:00:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67091-efficient-and-accurate-models-for-peptide-function-prediction", "url": "https://pretalx.com/euroscipy-2025/talk/CTCYRB/", "title": "Efficient and accurate models for peptide function prediction", "subtitle": "", "track": "Life Sciences and Biomedicine", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "Peptides are small proteins, regularing many important biological processes. They have significant therapeutic potential, thanks to their properties, e.g. microbial, antiviral, or anticancer. \nIn particular, they offer a promising alternative to traditional antibiotics, addressing the growing crisis of drug resistance.\nAccurately predicting peptide properties is essential for drug discovery, and recent research has explored deep learning approaches such as graph neural networks, protein language models, and multimodal ensembles.\nHowever, these methods are often overly complex and lack scalability. They are also brittle and their performance breaks down on new datasets or tasks.\nWe propose to use molecular fingerprints for this task. They are established feature extraction algorithms from chemoinformatics, primarily applied on small molecules. \nWe show that they obtain state-of-the-art results on peptide function prediction and can efficiently vectorize larger biomolecules.\nThis approach is simple, fast, and accurate. We comprehensively measure its robustness on 6 benchmarks and 126 datasets. This unlocks a novel venue in chemoinformatics-based approaches for peptide-based drug design.", "description": "Peptides, as small proteins, play crucial roles in biological processes and offer immense therapeutic potential in areas such as antimicrobial resistance, cancer treatment, and antiviral therapies. While deep learning methods like graph neural networks (GNNs) and protein language models (PLMs) have been widely explored for peptide function prediction, they often face scalability challenges and require significant computational resources.\n\nWe present methods and results from our paper (https://arxiv.org/abs/2501.17901), introducing an alternative approach that leverages molecular fingerprints\u2014well-established chemoinformatics techniques primarily used with smaller molecules\u2014to predict peptide properties efficiently and accurately. Our research demonstrates that count-based variants of hashed molecular fingerprints, when paired with tree-based classifiers like LightGBM, outperform deep learning methods. We validate our approach across six benchmarks and 126 datasets, achieving state-of-the-art results in peptide function prediction. Our findings challenge the assumed necessity of long-range dependencies in peptides, showing that short-range molecular substructures capture information sufficient for accurate function prediction.\n\nAdditionally, we will present performance optimizations that enhance computational efficiency, including parallel implementation and sparse representations. Our work is encapsulated in an open-source Python library, scikit-fingerprints, providing a practical tool for researchers in machine learning and computational chemistry.\n\nThis presentation will offer insights into the broader applications of peptide-based drug discovery and highlight the importance of using molecular fingerprints in chemoinformatics with scalable machine learning frameworks. Attendees will gain an understanding of current chemoinformatics research on peptides and familiarize with graph vectorization methods. They will see how combining domain-specific feature extraction with tree ensembles can yield superior results compared to complex models, all at a fraction of the computational cost.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EVNBNX", "name": "Piotr Ludynia", "avatar": null, "biography": "I am a data science and computer science student at AGH University of Krak\u00f3w. My primary interests include machine learning and chemoinformatics.", "public_name": "Piotr Ludynia", "guid": "18f3ff81-fa6d-55ec-94df-fdc2ab4b1396", "url": "https://pretalx.com/euroscipy-2025/speaker/EVNBNX/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/CTCYRB/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/CTCYRB/", "attachments": []}, {"guid": "d86d194c-7381-52a4-bf2d-b9c7418ff18b", "code": "RMGD73", "id": 69351, "logo": null, "date": "2025-08-21T11:05:00+02:00", "start": "11:05", "end": "2025-08-21T11:35:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69351-efficient-processing-pipelines-for-large-scale-molecular-datasets-in-python", "url": "https://pretalx.com/euroscipy-2025/talk/RMGD73/", "title": "Efficient processing pipelines for large scale molecular datasets in Python", "subtitle": "", "track": "Life Sciences and Biomedicine", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "We introduce an extensible Python framework for automated generation and preprocessing of large-scale chemical datasets. It is based on parallelized and distributed Dask processing for building molecular pipelines. RDKit, written in C++ with Python interface, is leveraged for molecular processing and computation of structural properties. This allows us to process hundreds of millions of molecules on regular-size server units. We also included a suite of analysis scripts for comparing dataset cardinality, scaffold diversity, and chemical space metrics. Created software enables efficient pretraining and benchmarking of molecular foundation models, applicable for varying applications in chemoinformatics.", "description": "Problem Statement\nPublic molecular collections are fragmented across multiple repositories, e.g. PubChem, UniChem, or COCONUT. Each has a distinct data representation, inclusion criteria, and other idiosyncrasies. This makes it difficult to assemble a single, high-quality dataset, e.g. for pretraining molecular foundation models, aimed at varied chemoinformatics applications.\n\nSoftware\nOur framework accepts one or more raw chemical datasets as inputs which are then delegated into their respective pipelines (described below). The output is a single, cleaned master dataset.\n\nPipeline Overview\nPipeline consumes raw data from each source and executes a sequence of steps:\n1. Download: fetch original files\n2. Preprocess: parse and normalize input formats\n3. Standardize: sanitize and canonicalize SMILES via RDKit\n4. Deduplicate: remove duplicates using InChI keys (per source, then globally)\nThe final output is a merged \u201cmaster\u201d dataset ready for downstream analysis or modeling.\n\nTechnologies & Tools\n- Dask - distributed and parallel computing framework. Pipelines require significant use of Python libraries, hence we need a tool which handles parallel Python interpreters very well.\n- RDKit - for chemical operations. Thanks to its core written in C++,the operations are high-performance.\n- scikit-fingerprints - for molecular filters\n\nIntended Uses\nThis software enables users to:\n- Pretrain large ML models on unified chemical space\n- Compare dataset cardinality, functional-group distributions, Bemis\u2013Murcko scaffolds, and Circles metrics\n- Benchmark self-supervised architectures (e.g., Mol2Vec, MolFormer) across varied dataset sizes and chemical domains\n- Integrate new data sources or custom filters as requirements evolve", "recording_license": "", "do_not_record": false, "persons": [{"code": "EQSZFK", "name": "Franciszek Job", "avatar": null, "biography": "Software engineer at Software Mansion\nComputer Science engineering undergraduate (3rd year)\nMainly used technologies: Python, Rust", "public_name": "Franciszek Job", "guid": "26c6147d-44ad-5a9b-a5b7-2bcbbfad3624", "url": "https://pretalx.com/euroscipy-2025/speaker/EQSZFK/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/RMGD73/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/RMGD73/", "attachments": []}, {"guid": "9410dce5-fe32-516a-acf3-eec9a82ead8f", "code": "7SLETG", "id": 67345, "logo": null, "date": "2025-08-21T11:40:00+02:00", "start": "11:40", "end": "2025-08-21T12:00:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67345-effver-versioning-code-by-the-effort-required-to-upgrade", "url": "https://pretalx.com/euroscipy-2025/talk/7SLETG/", "title": "EffVer: Versioning code by the effort required to upgrade", "subtitle": "", "track": "Community, Education, and Outreach", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "Version numbers are hard to get right. Maintainers want to communicate to users what the impact of adopting a new version will be, but poor communication can lead to a lot of frustration. There are a few popular version schemes in use today including Semantic Versioning (SemVer) and Calendar Versioning (CalVer). However, projects in the Python community often don\u2019t strictly conform to these standards which leads to confusion. \n\nIn this talk we will discuss Intended Effort Versioning (EffVer), a new scheme that captures the reality of what many Python projects do today. This formalisation has been officially adopted by projects including Jupyter Hub, Matplotlib, JAX and many more.", "description": "Version numbers are hard to get right. Maintainers want to communicate to users what the impact of adopting a new version will be, but poor communication can lead to a lot of frustration. There are a few popular version schemes in use today including Semantic Versioning (SemVer) and Calendar Versioning (CalVer). However, projects in the Python community often don\u2019t strictly conform to these standards which leads to confusion. \n\nIn this talk we will discuss Intended Effort Versioning (EffVer), a new scheme that captures the reality of what many Python projects do today. This formalisation has been officially adopted by projects including Jupyter Hub, Matplotlib, JAX and many more. \n\nIt\u2019s very common for projects in the Python ecosystem to try to follow Semantic Versioning (SemVer), a scheme that adds specific meanings to each version segment and guarantees backward compatibility in all but major releases. In practice many projects violate the semantics laid out in SemVer because often reality is more complex than the scheme allows for.\n\nSome projects go another route and use Calendar Versioning (CalVer), a scheme that intentionally gives no meaning in the segments other than the date the software was released. This information causes challenges in other ways, such as not communicating how much effort it will be to adopt the new version or misleading users to believe that releases of different projects from the same time period will be compatible.\n\nEffVer is forward and backward compatible with SemVer, making it easy to adopt for projects already loosely following SemVer. However, instead of communicating specific semantics about what a release contains, it communicates the magnitude of the effort required to adopt those changes. This is already what many Python packages do today, but by formalising things it makes it easy for maintainers to reason about what the next version of a project should be, and allows users to more clearly understand how much effort they need to spend to adopt a new version.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EE7H7J", "name": "Jacob Tomlinson", "avatar": null, "biography": "Jacob Tomlinson is a senior software engineer at NVIDIA. His work involves maintaining open source projects including RAPIDS and Dask. He also tinkers with kr8s in his spare time. He lives in Exeter, UK.", "public_name": "Jacob Tomlinson", "guid": "7d5794a8-e43e-58a6-9a19-8751d101fde1", "url": "https://pretalx.com/euroscipy-2025/speaker/EE7H7J/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/7SLETG/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/7SLETG/", "attachments": []}, {"guid": "6e681810-d7e3-5cd3-a067-47b28a9116a6", "code": "GQBY9V", "id": 69331, "logo": null, "date": "2025-08-21T13:30:00+02:00", "start": "13:30", "end": "2025-08-21T14:00:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69331-voila-meta-dashboards-for-streamlined-geospatial-data-visualization", "url": "https://pretalx.com/euroscipy-2025/talk/GQBY9V/", "title": "Voil\u00e0 Meta-Dashboards for Streamlined Geospatial Data Visualization", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "The Joint Research Centre has cultivated significant expertise in developing Voil\u00e0 dashboards using Python for scientific data visualization, resulting in the design and deployment of many real-world web applications. This presentation will highlight our commitment to building a robust Voil\u00e0 developer community through dedicated training and resource libraries. We will introduce and demonstrate our innovative meta-dashboards, which streamline the creation of complex, multi-page dashboards by automating framework and code generation. A live demonstration will illustrate the ease of building a geospatial application using this tool. We will conclude with a showcase of recently developed Voil\u00e0 dashboards in areas such as agricultural/biodiversity surveys and air quality monitoring, demonstrating their effectiveness in data exploration and validation.", "description": "This presentation delves into the Joint Research Centre's (JRC) extensive experience in leveraging Voil\u00e0 dashboards, widget libraries, and geospatial web applications for scientific data visualization. Over the past several years, the JRC has cultivated a robust ecosystem around Voil\u00e0 and Python, resulting in the design and deployment of numerous real-world web applications across diverse scientific domains, including agricultural/biodiversity surveys and air quality monitoring. This effort has been accompanied by a strong commitment to building a thriving developer community, supported by dedicated training and comprehensive resource libraries, like for example the vois Python library, available as open source at https://code.europa.eu/jrc-bdap/vois.\n\nA key focus of this talk is the introduction and demonstration of our innovative meta-dashboards. These are Voil\u00e0-powered applications designed to streamline the creation of complex, multi-page dashboards by automating framework and code generation. We will showcase how meta-dashboards, such as the tool accessible at https://vois.azurewebsites.net/, can significantly accelerate the development of complex geospatial web applications. Through a live demonstration, attendees will witness the ease with which a fully functional geospatial application can be built using these visual tools.\n\nThe presentation will demonstrate Voil\u00e0's efficacy in developing real-world web applications that transform complex datasets into actionable insights. Participants will gain a clear understanding of how Voil\u00e0 is used at the JRC to create powerful data visualization tools, supporting comprehensive data assessment and informed decision-making across various scientific fields. The applications showcased will highlight the ability of Voil\u00e0 to handle large and complex datasets, and to create interactive environments that are easy to use and understand (see https://www.daigio.it/EuroSciPy2025/ for some screenshots of the Voil\u00e0 dashboards that will be presented).", "recording_license": "", "do_not_record": false, "persons": [{"code": "SA7KZA", "name": "Davide De Marchi", "avatar": null, "biography": "Davide De Marchi is a researcher and software engineer specializing in geospatial big data. He has significant experience in Big Data, Cloud Computing, GIS, Remote Sensing,  and Data Visualization.  His career includes contributions to the design and implementation of interactive visualization tools, notably at the European Commission - Joint Research Centre where he has been a key developer of the BDAP platform.  Earlier in his career, he gained substantial experience in the development of geospatial data processing software and served as an adjunct professor at the University of Urbino", "public_name": "Davide De Marchi", "guid": "dc587b58-79a5-5961-a17f-c1b8caf87054", "url": "https://pretalx.com/euroscipy-2025/speaker/SA7KZA/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/GQBY9V/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/GQBY9V/", "attachments": []}, {"guid": "098729e2-44e1-5f53-8c9d-2a07fa0f636d", "code": "SVTWWE", "id": 67117, "logo": null, "date": "2025-08-21T14:05:00+02:00", "start": "14:05", "end": "2025-08-21T14:35:00+02:00", "duration": "00:30", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67117-processing-cloud-optimized-data-in-python-dataplug", "url": "https://pretalx.com/euroscipy-2025/talk/SVTWWE/", "title": "Processing Cloud-optimized data in Python (Dataplug)", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Talk (25 mins + Q&A)", "language": "en", "abstract": "The elasticity of the Cloud is very appealing for processing large scientific data. However, enormous volumes of unstructured research data, totaling petabytes, remain untapped in data repositories due to the lack of efficient parallel data access. Even-sized partitioning of these data to enable its parallel processing requires a complete re-write to storage, becoming prohibitively expensive for high volumes. In this article we present Dataplug, an extensible framework that enables fine-grained parallel data access to unstructured scientific data in object storage. Dataplug employs read-only, format-aware indexing, allowing to define dynamically-sized partitions using various partitioning strategies. This approach avoids writing the partitioned dataset back to storage, enabling distributed workers to fetch data partitions on-the-fly directly from large data blobs, efficiently leveraging the high bandwidth capability of object storage. Validations on genomic (FASTQGZip) and geospatial (LiDAR) data formats demonstrate that Dataplug considerably lowers pre-processing compute costs (between 65.5% \u2014 71.31% less) without imposing significant overheads.", "description": "Cloud-optimized (CO) data formats are designed to efficiently store and access data directly from cloud object storage without needing to download the entire dataset. \nThese formats enable faster data retrieval, scalability, and cost-effectiveness by allowing users to fetch only the necessary subsets of data.\n\nThey also allow for efficient parallel data processing using on-the-fly partitioning, which can considerably accelerate data management operations. For example, Dask can efficiently read data in parallel from Object Storage in CO formats like ZARR.\n\nCloud-optimized formats are now widely used in geospatial settings with entire datasets available in the AWS Registry for Open Data like [Sentinel-2 Cloud Optimized GeoTIFFs](https://registry.opendata.aws/sentinel-2-l2a-cogs/). In this line, COPC (Cloud Optimized Point Cloud) was developed to overcome the limitations of LIDAR. Likewise, Cloud Optimized GeoTIFF (COG) was developed to facilitate cloud processing of GeoTIFF files. \n\nNevertheless, there are no cloud optimized versions of widely used formats in genomics (FASTA, FASTQ, VCF, FASTQGZIP) and metabolomics (imzML). Furthermore, a costly preprocessing from legacy formats is required (from GeoTIFF to COG, from LIDAR to COPC). In this talk, we will present a novel data processing library called [Dataplug](https://github.com/CLOUDLAB-URV/dataplug) that enables Cloud-optimized access to legacy formats without a costly preprocessing and also avoiding huge data movements. Dataplug covers legacy formats like LIDAR but also major data formats found in bioinformatics (genomics, metabolomics) that lack appropriate Cloud Optimized alternatives.\n\n\nIn this talk, you will learn how to process scientific data formats in Python using the [Dataplug library](https://github.com/CLOUDLAB-URV/dataplug) from any Python data analytics platform like Dask or Ray.  We will show different data processing pipelines in the Cloud that demonstrate the benefits of cloud-optimized data management.\n\n## Objectives\n\nBy the end of this talk, you will be able to:\n\n1. Understand Cloud-Optimized data formats and their benefits for data processing in the Cloud\n2. Learn how to process Cloud Optimized Data from Object Storage in Python using Dask\n3. Use Dataplug library to enable on-the-fly partitioning of Cloud Optimized data (COG, ZARR, COPC).\n4. Use Dataplug library to enable on-the-fly partitioning of non-Cloud Optimized formats (LIDAR, FASTQGZIP, FASTA, FASTQ, VCF,imzML, MS)\n\n\n\n## Outline\n\nIntroduction (10 minutes) \n\n  1. About Us\n  2. Understanding Cloud-Optimized data formats and Cloud Object storage\n  4. Processing Cloud-Optimized data in Dask\n\nProcessing Cloud-optimized data in the Cloud with Python (15 minutes)\n\n1. Processing COG (Cloud-Optimized  GeoTIFFs) in Python in the [NDVI pipeline](https://github.com/cloudbutton/geospatial-usecase/tree/main/ndvi-diff) \n2. On-the-fly processing of compressed genomic data (FASTQGZIP) with [Dataplug](https://github.com/CLOUDLAB-URV/dataplug/blob/master/examples/fastqgz_example.py) \n3. On-the-fly processing of metabolomics data (imzML) with [Dataplug](https://github.com/CLOUDLAB-URV/dataplug/blob/master/examples/imzml_processed_example.py)\n3. Commparing LIDAR and COPC processing with Dataplug library in Dask ([code](https://github.com/CLOUDLAB-URV/dataplug/blob/master/examples/lidar_example.py))\n\nConclusions (2 minutes)\n\n\n\n## Audience\n\nThe talk is aimed at Python developers interested in processing data in the Cloud. In particular, it may be of interest in the following domains:\ngeospatial data (COG, COPC, LIDAR, ZARR, Kerchunk), genomics data (FASTA, FASTQ, VCF, FASTQGZIP), astronomics (MS), and metabolomics data (imzML).\nThis talk requires basic understanding of Cloud Object Storage.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RX7GCN", "name": "Universitat Rovira i Virgili (Pedro Garcia Lopez)", "avatar": null, "biography": "Pedro Garcia is professor of the Computer Engineering and Mathematics Department at the University Rovira i Virgili (Spain). He leads he \u201cCloud and Distributed Systems Lab\u201d research group and coordinates large research european projects. In particular, he leads CloudStars (2023-2027), NearData (2023-2025), CloudSkin (2023-2025),  and he participates as partner in EXTRACT (2023-2025). He also coordinated FP7 CloudSpaces (2013-1015), H2020 IOStack (2015-2017) and H2020 CloudButton (2019-2022).\n\nDuring 2019-2020 he worked as visiting scientist in IBM Watson Research in the Hybrid Clouds group focused on serverless technologies. His research topics are distributed systems, cloud computing, data analytics, software architectures and middleware. He has published more than 100 papers on journals and prestigious conferences (ACM Middleware, IEEE ICDCS, USENIX FAST, ICDE, IMC). He has participated in scientific committees of different conferences like Middleware, CCGRID, CloudCom, CIC, P2P, CLOSER, or WETICE among others. He is currenlty co-organizing the International Workshop on Serverless Computing (WoSC).", "public_name": "Universitat Rovira i Virgili (Pedro Garcia Lopez)", "guid": "24ebc8ca-df9c-5b92-9f18-0b8f0318fbea", "url": "https://pretalx.com/euroscipy-2025/speaker/RX7GCN/"}, {"code": "TVZK37", "name": "Daniel Alejandro Coll Tejeda", "avatar": null, "biography": "Daniel Alejandro Coll Tejeda is a dedicated researcher of Cloud and Distributed Systems Lab at the University Rovira i Virgili (URV), Tarragona. Specializing in cloud computing, his current research involves intensive data analysis and the creation of sophisticated tools designed to optimize the management of diverse cloud infrastructures, encompassing Kubernetes orchestration, serverless computing paradigms (such as AWS Lambda and Lithops), and virtual machine environments.", "public_name": "Daniel Alejandro Coll Tejeda", "guid": "f6ae0551-8658-5503-aac3-c19367eb448c", "url": "https://pretalx.com/euroscipy-2025/speaker/TVZK37/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/SVTWWE/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/SVTWWE/", "attachments": []}, {"guid": "3521ce7c-da09-5a61-8022-0808c8ba2873", "code": "VELXWA", "id": 69328, "logo": null, "date": "2025-08-21T14:40:00+02:00", "start": "14:40", "end": "2025-08-21T15:00:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69328-can-your-research-notebook-survive-a-code-update-on-maintaining-reproducibility-with-continuous-integration", "url": "https://pretalx.com/euroscipy-2025/talk/VELXWA/", "title": "Can Your Research Notebook Survive a Code Update? On maintaining Reproducibility with Continuous Integration", "subtitle": "", "track": "Environmental and Earth Sciences", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "The maintenance of research-result reproducibility can support rather than be a challenge of ongoing project development. The integration of research notebooks with automated software testing workflows is an essential prerequisite for this. \nWe present reusable tools and solutions engineered in the development and maintenance of the PySDM and PyMPDATA  atmospheric modeling projects (maintained at AGH). Both packages are developed entirely in Python, using just-in-time compilation tools (Numba \\& NVRTC) to enable a single-language HPC tech stack that covers simulation, analysis, and visualization codes. \nWe will discuss the perspectives of both user and developer on reproducibility.", "description": "From the user's perspective, maintenance of notebooks that reproduce paper results using up-to-date project codebase serves the purpose of documenting and exemplifying project features and applications. \nIt enables exploratory usage with little-to-no effort needed to set up a working environment.\nHowever, this is contingent on a design embracing modularity and inversion of control - it is not uncommon in atmospheric modelling for papers to use different simulation flow control or different parameterisations.\nWe present the inversion of control solutions from PySDM that enable the choice of formulae and constants from user code, without trade-offs in: \n(i) performance, \n(ii) ability to switch between CPU and GPU backends, and \n(iii) dimensional analysis of physics-relevant routines for testing unit correctness.\nThe maintenance of notebooks within code repositories also poses challenges in terms of handling embedded visuals. The jupyter-utils project helps with embedding GitHub-renderable and Jupyter-book-compatible vector graphics and animations. \n\nFrom the developer's perspective, notebooks within the code repository are a source of test scenarios and constraints for the assertions that constitute a robust regression-test suite. We present the notebook_vars() function from the jupyter-utils package, designed to be used in concert with the fixture logic of the pytest framework. It enables the execution of the notebook code once in a test session, allowing us of  the final notebook state in multiple automated tests. This occurs without modifications to the notebooks themselves.\nIn notebooks pertaining to specific research studies, a direct link from test code up to subject literature is provided. Overall, we achieve an improvement in code readability and refactoring capability.\n\nThe presented solutions, along with the availability of platforms such as Google Colab, mybinder.org or institutional Jupyter hubs, ensure single-click reproducibility of research-paper results, and a structure for retaining this through future releases of the code base. In addition to the benefits for software users and developers, this satisfies the scientific-method and research-journal reproducibility requirements.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SLCLAM", "name": "Agnieszka \u017baba", "avatar": null, "biography": "I am a PhD student in the Environmental Physics Group (zfs.agh.edu.pl/en) at the Faculty of Physics and Applied Computer Science, AGH University of Krakow. My research interests lie at the intersection between cloud microphysics and climate-science applications of water isotopes. I am a member of the github.com/open-atmos community and the maintainer of PySDM project.", "public_name": "Agnieszka \u017baba", "guid": "a0523766-150d-5466-9c85-900fccfb584f", "url": "https://pretalx.com/euroscipy-2025/speaker/SLCLAM/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/VELXWA/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/VELXWA/", "attachments": []}, {"guid": "d37335d4-1024-5fcc-8371-1517dff6e5b1", "code": "MDVAHD", "id": 69286, "logo": null, "date": "2025-08-21T15:30:00+02:00", "start": "15:30", "end": "2025-08-21T15:50:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69286-elva-local-first-real-time-collaboration-apps-in-your-terminal", "url": "https://pretalx.com/euroscipy-2025/talk/MDVAHD/", "title": "ELVA - Local-First Real-Time Collaboration Apps in Your Terminal", "subtitle": "", "track": "Interdisciplinary Frontiers and other Scientific Python Applications", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "Science evolves and flourishes through close team work and smooth information exchange.\nDespite the plethora of digital collaboration platforms a tool that allows for seamless collaboration does not exist, yet.\n\nWe present `ELVA`, a command-line tool and suite of terminal applications which are able to synchronize arbitrary data structures in real-time without conflicts in a peer-to-peer setup.\nFrom a simple text file to an IDE session, a chat, a directory's content ... All of this can be modeled with a combination of *conflict-free replicating data types* (CRDTs) provided by the [`Yrs`](https://github.com/y-crdt/y-crdt) library and its Python bindings in [`pycrdt`](https://github.com/y-crdt/pycrdt).\nThereby, merge conflicts as a main pain point of version control systems and file based synchronization services are mitigated or even completely avoided.\nIn addition, `ELVA` apps are written to be local-first: they run locally on your machine, also when you are offline, and store your data on your disk.\nThe local state is synchronized with remote-peers automatically when you are back online.\nA central server is not needed, but it can work as a relay or broker between peers to overcome restrictive firewalls.", "description": "### Our Motivation\n\nAs scientists working with distributed groups all over the world, we have high and numerous expectations for a digital collaboration tool:\n\n- platform-independent\n- secure\n- reliable synchronization of any kind of data\n- works seamlessly offline\n- private, no remote cloud services involved\n- no central servers required, peer-to-peer\n- access to the local filesystem\n- easily adaptable and extensible\n- easily accessible\n- stable and lightweight\n- open-source\n\nSeveral tools already exist that can fulfill a subset of these requirements, but they come with all sort of restrictions.\n\nSome examples:\n\n- Git is great for keeping track of text files, but it requires you to manually save the current state by committing and lacks efficient native support for binary files.\n  Also, the user has to manually deal with merge conflicts when multiple people work on the same files.\n  While powerful extensions such as Git-LFS and git-annex do a great job with binary data, Git is still unsuitable as general purpose collaboration platform.\n- Cloud-based software such as Nextcloud, Seafile or the corresponding commercial alternatives are able to sync any type of data out of the box, but they implement\n  versioning only in a rudimentary fashion, if at all.\n  Furthermore, a central server is a vital part of the architecture.\n  Since their synchronization is file-based, merge conflicts still arise and need to be resolved by hand.\n- Browser-based editors like Visual Studio Code, HedgeDoc or Etherpad feature real-time synchronization of content, but cannot sync binary data, and when they are implemented as in-browser apps, they cannot always access the local filesystem.\n\n`ELVA` aims to close these gaps.\n\n\n### Our Ideas\n\nIn short, we want to have the comfortable real-time synchronization of in-browser apps but in a software that runs locally for proper access to the filesystem on every operating system.\n\nConflict-free replicating data types (CRDTs) are the backbone of `ELVA`.\nThey provide the fundamental logic for proper integration of shared data fragments.\n\nThe suite shall be written in Python, as it is relatively easy to learn and widely used in scientific research.\nIf users of `ELVA` feel the need for special functionality, they should be able to add it by themselves without much effort.\n\nAlso, as we intend `ELVA` to be also usable by non-technical people, we need to have a good user interface (UI).\nWe decided to settle on text-based terminal apps, which are lightweight and work consistently across platforms, but graphical interfaces are likewise implementable.\n\nVersioning could still be realized with a Git integration and synchronizing bulk storage is a question of app and protocol design.\n\n\n### Our Prototype\n\nWe are proud to present our prototype of `ELVA` with a working text editor and a chat app.\n\nCurrently, we use the [`pycrdt`](https://github.com/y-crdt/pycrdt) package providing Python bindings to the [`Yrs`](https://github.com/y-crdt/y-crdt) library, which holds the Rust implementation of CRDTs originating from the [`Yjs`](https://github.com/yjs/yjs) library.\n`Yjs` is used in a variety of popular software: [JupyterLab](https://jupyter.org/), Facebook's [Lexical](https://lexical.dev/) editor, [Nextcloud](https://nextcloud.com/) and [many other projects](https://github.com/yjs/yjs?tab=readme-ov-file#who-is-using-yjs).\n\nThe text-UI is powered by the [`Textual`](https://github.com/Textualize/textual) framework.\nWe intentionally kept the UI minimal to also allow pure keyboard usage.\nA builtin REPL widget provides the needed configuration flexibility.\n\nThe project's design concept stands: We provide apps to be directly used and library code for writing own features and apps.\nThe configuration specification as well as the synchronization protocol are also defined.\n\nWe publish comprehensive documentation under [https://elva.mintgruen.tu-berlin.de](https://elva.mintgruen.tu-berlin.de) alongside a few guides and a blog.\nCode management with versioning and changelog has been properly set up for ease in long-term maintenance. \n\nThe source code of `ELVA` is published under the AGPL-3.0 license on [https://github.com/innocampus/elva](https://github.com/innocampus/elva).\n\n\n### Our Vision\n\nWe hope to build up a community around this project by showing it to and improving it with other people.\nAs a part of that, we plan to introduce `ELVA` to our students in programming classes.\n\nA dedicated app for bulk synchronization is being developed.\nAdditionally, we would like to explore networking without a central server and implement easy to setup peer-to-peer communication protocols to also allow for \nspontaneous collaboration in meetings or at conferences.\nOther apps and integrations might be written in other languages than Python thanks to `ELVA`'s integrated networking and the `Yrs` bindings available in several other languages.\n\nAnother important point is integrating Git into `ELVA` for proper versioning and publishing with services such as [GIN](https://gin.g-node.org/).\n\n\n### Contact Information\n\nJakob Zahn\nHead of Software Development\nProjekt `ELVA`\nPronouns: he/his\nAddress: Mr.\n\nTechnische Universit\u00e4t Berlin\ninnoCampus\nRoom E116\nEinsteinufer 19\n10587 Berlin\nGermany\n\nPhone: +49 30 314 77006\nMobile: +49 152 06370569\nE-Mail: [jakob.zahn@tu-berlin.de](mailto:jakob.zahn@tu-berlin.de)\n\n[https://elva.mintgruen.tu-berlin.de](https://elva.mintgruen.tu-berlin.de)\n[https://www.tu.berlin](https://www.tu.berlin)", "recording_license": "", "do_not_record": false, "persons": [{"code": "VEXNNV", "name": "Jakob Zahn", "avatar": null, "biography": "I studied Physics at Technische Universit\u00e4t Dresden and Freie Universit\u00e4t Berlin.\nAfter achieving my master's degree in 2021, I started working at Technische Universit\u00e4t Berlin in the ELVA project as technical lead and software developer.", "public_name": "Jakob Zahn", "guid": "bb10340d-7d1e-5028-97b4-656c9eb3c50f", "url": "https://pretalx.com/euroscipy-2025/speaker/VEXNNV/"}, {"code": "NQ9HEX", "name": "Tiziano Zito", "avatar": null, "biography": null, "public_name": "Tiziano Zito", "guid": "5721072a-fae0-54f5-96a7-60a6912464cf", "url": "https://pretalx.com/euroscipy-2025/speaker/NQ9HEX/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/MDVAHD/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/MDVAHD/", "attachments": []}, {"guid": "1db32868-7fe7-5695-a88a-84b3c8972287", "code": "8U3PB3", "id": 67338, "logo": null, "date": "2025-08-21T16:00:00+02:00", "start": "16:00", "end": "2025-08-21T16:20:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-67338-how-to-accelerate-molecular-insights-efficient-distance-calculations-in-python", "url": "https://pretalx.com/euroscipy-2025/talk/8U3PB3/", "title": "How To Accelerate Molecular Insights - Efficient Distance Calculations In Python", "subtitle": "", "track": "Life Sciences and Biomedicine", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "In the rapidly evolving field of chemo- and bioinformatics, the efficient computation of molecular distances plays a crucial role in applications such as drug discovery, molecular clustering, and structure-activity relationship modeling. The ability to accurately and efficiently measure molecular similarity is essential for tasks ranging from virtual screening to predictive modeling. As molecular datasets continue to grow in size and complexity, scalable and computationally efficient distance metrics become increasingly necessary to facilitate large-scale analysis.\n\nIn this work, we explore how Python\u2019s numerical computing capabilities can be leveraged to implement a diverse range of molecular distance metrics. We focus on optimizing computations for vectorized molecular representations, ensuring that performance remains competitive with highly optimized C++-based solutions. By utilizing efficient numerical libraries, we demonstrate that Python can achieve substantial execution speed while maintaining the flexibility and ease of implementation that make it a preferred choice for many researchers.\n\nBeyond implementation, we conduct a comprehensive performance evaluation by comparing our Python-based methods against state-of-the-art libraries written in C++. Our benchmarking includes assessments of computational efficiency, memory usage, and scalability on large molecular datasets. The results illustrate that, with appropriate optimizations, Python-based approaches can serve as", "description": "The ability to efficiently compute distances between vectorized molecular representations is a backbone of both cheminformatics and bioinformatics. Molecular distance metrics serve as the foundation for a wide range of applications across these fields, with one of their most critical roles being in clustering tasks. Clustering is an essential method in molecular analysis, enabling researchers to identify structural similarities, predict biological activity, and facilitate virtual screening in drug discovery. As the volume of available molecular data continues to grow exponentially, the demand for scalable and computationally efficient methods to process and analyze these vast datasets has never been greater.\n\nTraditional approaches to molecular similarity computations often rely on highly optimized, low-level implementations written in languages such as  C++ to achieve maximum performance. These solutions leverage hardware-efficient operations and fine-tuned memory management to deliver exceptional computational speeds. However, despite their efficiency, such implementations can pose significant challenges for researchers who lack a strong background in computer science or software development. The complexity of writing and maintaining low-level code can create barriers to entry, making it difficult for scientists to experiment with or customize molecular analysis workflows.\n\nIn contrast, Python has emerged as a dominant force in the landscape of scientific computing, offering an extensive ecosystem of numerical and data-processing libraries, such as NumPy, SciPy, and scikit-learn. The language\u2019s simplicity, readability, and rich functionality make it an attractive alternative for researchers seeking to implement computational methods without delving into the intricacies of low-level programming. Despite historical concerns about Python\u2019s execution speed compared to compiled languages, recent advancements in just-in-time (JIT) compilation, vectorized operations, and parallel computing have significantly narrowed the performance gap.\n\nIn this work, we explore how Python\u2019s modern computational capabilities can be harnessed to efficiently compute molecular distances while maintaining accessibility and usability. We focus on vectorized molecular representations, such as binary and count fingerprints, and incorporate sparse matrix representations to handle large molecular datasets efficiently. Sparse matrices enable us to store and process only the non-zero elements in molecular representations, dramatically reducing memory consumption and improving computation times for large-scale analyses. By leveraging bulk calculations and optimized numerical routines, we demonstrate that Python-based implementations can achieve near-C++ performance. Through careful optimization strategies, including the use of NumPy\u2019s broadcasting, we show that  Python can handle the challenges of large molecular datasets effectively, maintaining a balance between performance and accessibility.\n\nBeyond implementation, we conduct a benchmarking study to evaluate the performance of our optimized Python-based methods. We compare them against state-of-the-art C++ libraries specifically designed for molecular similarity computations, assessing key factors such as computational efficiency, memory consumption, and scalability when applied to large molecular datasets. Our results indicate that, with appropriate optimizations, Python-based approaches can serve as practical alternatives, achieving a balance between performance, usability, and accessibility. We highlight the trade-offs involved, demonstrating how Python\u2019s versatility enables efficient molecular distance computations without sacrificing interpretability or ease of integration within broader data analysis pipelines.\n\nBy showcasing the feasibility of high-performance molecular similarity computations in Python, our work lowers the barrier to entry for researchers and practitioners who may not have extensive experience with lower-level programming languages. This contribution enhances the accessibility of advanced molecular informatics tools, fostering broader adoption and enabling a wider range of scientists to leverage these computational techniques in their research. Ultimately, this work paves the way for more inclusive and reproducible computational chemistry and bioinformatics, empowering researchers across disciplines to engage with large-scale molecular data analysis using modern, user-friendly methodologies.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BZSA9C", "name": "Adam Staniszewski", "avatar": null, "biography": "I am a fifth-year computer science student at AGH University of Science and Technology (AGH UST) in Krak\u00f3w, Poland, where I am currently conducting research in the fields of Natural Language Processing (NLP) and Chemoinformatics. My academic work is focused on developing innovative solutions that leverage computational techniques to analyze language data and chemical information. In addition to my studies, I am professionally working as a backend engineer, where I develop, and maintain server-side applications, ensuring scalability, efficiency, and reliability of systems. This combination of research and industry experience allows me to stay on the cutting edge of technology while applying practical solutions to real-world problems.", "public_name": "Adam Staniszewski", "guid": "6a8a4875-f5f0-53b0-9e66-f8d90045aa8b", "url": "https://pretalx.com/euroscipy-2025/speaker/BZSA9C/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/8U3PB3/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/8U3PB3/", "attachments": []}, {"guid": "b08a96cc-8cf2-57c1-b397-43dbb7ec0029", "code": "JACK7B", "id": 69354, "logo": null, "date": "2025-08-21T16:30:00+02:00", "start": "16:30", "end": "2025-08-21T16:50:00+02:00", "duration": "00:20", "room": "Room 1.20 (Ground Floor, Shannon)", "slug": "euroscipy-2025-69354-the-brainglobe-initiative-image-analysis-in-a-common-coordinate-space", "url": "https://pretalx.com/euroscipy-2025/talk/JACK7B/", "title": "The BrainGlobe initiative - image analysis in a common coordinate space.", "subtitle": "", "track": "Life Sciences and Biomedicine", "type": "Talk (15 mins + Q&A)", "language": "en", "abstract": "The BrainGlobe initiative provides open-source tools for analysis and visualisation of brain microscopy imaging data. Neuroanatomy is key to understanding the brain. However, current tools are often specialised for a single model species or image modality and lack sustained support post-publication. BrainGlobe provides a generalised framework for representing multiple anatomical atlases within and across species, allowing our tools to be uniquely interoperable. Registration tools allow the outputs of BrainGlobe packages to be placed within the broader context of a neuroanatomical atlas. This enables unique downstream analyses that would otherwise be extremely time consuming. Our goal is to empower users with easily accessible analysis and visualisation tools that can be ready for use within minutes on a standard laptop.", "description": "The [BrainGlobe](https://brainglobe.info) initiative has three main goals: providing specific tools for analysis and visualisation, cultivating core tools to facilitate development of interoperable tools in Python, and fostering a community of neuroscientists and developers to share knowledge, build software, and engage with the scientific and open source community. The development of BrainGlobe builds upon and relies heavily on established packages from the broader scientific Python ecosystem ensuring compatibility and interoperability with other tools. Our initiative addresses the crucial need for interoperability in neuroscience research by offering a comprehensive suite of tools accessible to users across different platforms. With a focus on ease of installation and usability, our goal is to empower researchers to analyse neuroanatomical data efficiently and introduce them to the broader scientific python ecosystem. \n\nIn this talk I plan to discuss the benefits of working in a common coordinate space for image analysis and visualisation. I will begin by introducing the concept of a BrainGlobe atlas and the associated [brainglobe-atlasapi](https://github.com/brainglobe/brainglobe-atlasapi) package. This standard access point has enabled the emergence of an ecosystem of BrainGlobe tools, developed both internally by the core BrainGlobe team, and externally by outside contributors. Abstracting the concept of an atlas and standardising access allows the downstream tools to be species agnostic, widening the potential user pool. I will then describe [brainreg](https://github.com/brainglobe/brainreg) and [brainglobe-registration](https://github.com/brainglobe/brainglobe-registration), the tools we use to register data into a BrainGlobe atlas. I will provide two examples of how our tools utilise BrainGlobe atlases to provide valuable context, based on the annotations of the atlas. The first example will be [brainmapper](https://github.com/brainglobe/brainglobe-workflows), a pipeline that utilises [brainreg](https://github.com/brainglobe/brainreg) and [cellfinder](https://github.com/brainglobe/cellfinder) to detect cells in large 3D volumes and output counts per anatomical region. The second example involves [brainglobe-segmentation](https://github.com/brainglobe/brainglobe-segmentation) which can be used to segment objects, and transform segmentations into sample or atlas space. Lastly, I will demonstrate visualising registered multi-modal data in 3D using [brainrender](https://github.com/brainglobe/brainrender).\n\nAt present, the BrainGlobe team maintains 17 packages which have 100+ code contributors.  The [BrainGlobe Atlas API](https://github.com/brainglobe/brainglobe-atlasapi) serves as a standardised framework for working with anatomical reference atlases, facilitating comparison across samples [1]. Using [brainreg](https://github.com/brainglobe/brainreg), 3D whole-brain imaging data can be registered to any BrainGlobe atlas [2]. [Cellfinder](https://github.com/brainglobe/cellfinder) automates cell detection in large 3D images in a computationally efficient manner [3], while common neuroanatomical segmentation issues are tackled with [brainglobe-segmentation](https://github.com/brainglobe/brainglobe-segmentation) [2]. [Brainrender](https://github.com/brainglobe/brainrender) uses [vedo](https://github.com/marcomusy/vedo) to enable visualisation of 3D neuroanatomical data from both public sources and user-generated data [4, 5].\n\nOur team is continually working on addressing the needs of the community. Currently, efforts are underway to broaden the types of microscopy data registrable into the BrainGlobe ecosystem with [brainglobe-registration](https://github.com/brainglobe/brainglobe-registration), using elastix to register 2D slices, 3D sub-volumes, and whole brain data. Additionally, we are developing [brainglobe-stitch](https://github.com/brainglobe/brainglobe-stitch), a package for fusing large tiled 3D imaging datasets (300+ GB). This package will be available as a napari plugin to allow efficient previewing of the fused dataset. Lastly, we are porting the functionality of brainrender to a napari plugin, [brainrender-napari](https://github.com/brainglobe/brainrender-napari), to provide a cohesive analysis and visualisation environment for all BrainGlobe tools.  \n\nConcurrently, we are streamlining and enhancing the developer experience. This involves consolidating related repositories within the BrainGlobe codebase and extracting duplicated code to [brainglobe-utils](https://github.com/brainglobe/brainglobe-utils), a shared library. We are also intensifying efforts to improve docstring coverage and providing introductory guides for new developers, along with a development roadmap outlining planned future work.\n\nCitations:\n[1]\tF. Claudi, L. Petrucco, A. Tyson, T. Branco, T. Margrie, and R. Portugues, \u2018BrainGlobe Atlas API: a common interface for neuroanatomical atlases\u2019, J. Open Source Softw., vol. 5, no. 54, p. 2668, Oct. 2020, doi: 10.21105/joss.02668.\n[2]\tA. L. Tyson et al., \u2018Accurate determination of marker location within whole-brain microscopy images\u2019, Sci. Rep., vol. 12, no. 1, p. 867, Dec. 2022, doi: 10.1038/s41598-021-04676-9.\n[3]\tA. L. Tyson et al., \u2018A deep learning algorithm for 3D cell detection in whole mouse brain image datasets\u2019, PLOS Comput. Biol., vol. 17, no. 5, p. e1009074, May 2021, doi: 10.1371/journal.pcbi.1009074.\n[4]\tF. Claudi, A. L. Tyson, L. Petrucco, T. W. Margrie, R. Portugues, and T. Branco, \u2018Visualizing anatomically registered data with brainrender\u2019, eLife, vol. 10, p. e65751, Mar. 2021, doi: 10.7554/eLife.65751.\n[5]\tM. Musy et al., \"vedo, a python module for scientific analysis and visualization of 3D objects and point clouds\", Zenodo, 2021, doi: 10.5281/zenodo.7019968.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZVRV3Y", "name": "Igor Tatarnikov", "avatar": null, "biography": "Igor Tatarnikov is a Research Software Engineer at University College London\u2019s Sainsbury Wellcome Centre, where he aspires to create easy to use software tools for neuroscientists with a focus on image analysis.\n \nIgor holds a BSc in Microbiology and Immunology and an MSc in Neuroscience from the University of British Columbia (Vancouver, Canada), as well as a Bachelor in Computer Science from Dalhousie University (Halifax, Canada). For his MSc, Igor explored the electrophysiological characteristics of genetic mouse models of Parkinson\u2019s disease. Igor\u2019s multidisciplinary background is particularly useful for his current work, where he creates open-source tools for neuroanatomical image analysis.", "public_name": "Igor Tatarnikov", "guid": "ac380430-2b9b-556a-b188-d0f8b8133167", "url": "https://pretalx.com/euroscipy-2025/speaker/ZVRV3Y/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/JACK7B/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/JACK7B/", "attachments": []}], "Room 2.41 (First Floor, Turing)": [{"guid": "4b1fa7c5-70db-594d-8f90-27c3efe0023d", "code": "NHKMDP", "id": 69618, "logo": null, "date": "2025-08-21T16:00:00+02:00", "start": "16:00", "end": "2025-08-21T16:45:00+02:00", "duration": "00:45", "room": "Room 2.41 (First Floor, Turing)", "slug": "euroscipy-2025-69618-standardised-quantity-unit-apis-discussion", "url": "https://pretalx.com/euroscipy-2025/talk/NHKMDP/", "title": "Standardised Quantity/Unit APIs discussion", "subtitle": "", "track": "Computational Tools and Scientific Python Infrastructure", "type": "Maintainer track", "language": "en", "abstract": "Work with quantities (values with units) in Python? Come and help brainstorm ideas and voice your opinions for standardised APIs!\n\nDiscussion session for https://github.com/quantity-dev/metrology-apis and related efforts.", "description": "https://github.com/quantity-dev/metrology-apis is a cross-ecosystem effort to standardise APIs for Metrology in Python. The vision is to have libraries like Pint, `astropy.units`, and Unyt all adopt common APIs which consumers can then use in a \u2018backend-agnostic\u2019 fashion.\n\nCome along to learn about the current design prototypes and proposals, and voice your ideas for what these APIs should look like!", "recording_license": "", "do_not_record": false, "persons": [{"code": "L3QKJA", "name": "Lucas Colley", "avatar": null, "biography": "I am a maintainer of SciPy, Pixi, and array-api-extra, alongside other projects. I am also an undergraduate studying Computer Science & Philosophy at the University of Oxford, currently working @ prefix.dev for European Summer of Code.", "public_name": "Lucas Colley", "guid": "970eabe7-7be2-5b31-ab0a-a0a6808b9a90", "url": "https://pretalx.com/euroscipy-2025/speaker/L3QKJA/"}], "links": [], "feedback_url": "https://pretalx.com/euroscipy-2025/talk/NHKMDP/feedback/", "origin_url": "https://pretalx.com/euroscipy-2025/talk/NHKMDP/", "attachments": []}]}}, {"index": 5, "date": "2025-08-22", "day_start": "2025-08-22T04:00:00+02:00", "day_end": "2025-08-23T03:59:00+02:00", "rooms": {}}]}}}