iBOTS · iBehave Open Technology Support
Gemeinsam zu besserer Forschung.
Offene Software. Offene Wissenschaft. Geteiltes Wissen.
Wir unterstützen Forschende in den Neurowissenschaften dabei, praktische Fähigkeiten zu entwickeln, wiederverwendbare Werkzeuge zu bauen und Herausforderungen in der Forschung gemeinsam zu lösen.
Unser Team kennenlernen →
Lehre nah an der Forschung
Unsere Workshops, Tutorien und Anschlussunterstuetzung orientieren sich an den echten rechnergestuetzten Fragen, die Forschende mitbringen. Wir vermitteln robuste Arbeitsweisen, denken konkrete Probleme gemeinsam durch und halten offene Wissenschaft im Zentrum.
Kollaborative Problemlösung
Lernende arbeiten in kleinen Gruppen, vergleichen Loesungswege und ueben, technische Entscheidungen zu erklaeren, damit neues Wissen im Labor geteilt werden kann.
Offene Materialien und Methoden
Wir unterrichten mit wiederverwendbaren Notebooks, Codebeispielen und Open-Source-Werkzeugen, damit Teilnehmende das Gelernte spaeter anpassen und weitergeben koennen.
Praktische Anschlussunterstuetzung
Nach einem Kurs bleiben wir fuer Tutorien, Projektgespraeche und behutsames Code-Feedback ansprechbar, damit aus Lerninhalten Forschungspraxis wird.
Fragen, mit denen Forschende zu uns kommen
Zwischen strukturierten Workshops und konkreter Projektarbeit beginnen viele Gespraeche mit einer sehr praktischen Frage. Solche Probleme denken wir gern gemeinsam durch.
Matlab-Skript refaktorieren
"Wir haben ein riesiges Skript mit allem darin. Wie koennen wir es in logische Module aufteilen?"
Ein langes Analyseskript in kleinere Funktionen mit klaren Ein- und Ausgaben sowie Tests ueberfuehren.
Python-Umgebungen fixieren
"Verschiedene Maschinen liefern verschiedene Ergebnisse. Koennen Sie uns helfen, unsere Python-Umgebung zu fixieren?"
Teilbare Umgebungen definieren, damit Kollaborierende dieselbe Analyse auf verschiedenen Rechnern ausfuehren koennen.
Testing in R starten
"Wir moechten alte Bugs nicht wieder einfuehren. Wie beginnen wir mit einfachen Tests in R?"
Eine erste praktische Testschicht um statistische Funktionen und Analyseschritte legen.
Langsamen Code profilieren
"Unser Code laeuft, ist aber unglaublich langsam. Koennen Sie uns helfen herauszufinden, was ihn ausbremst?"
Mit Profiling-Werkzeugen Engpaesse finden, bevor Optimierung oder Parallelisierung geplant wird.
Auseinanderlaufende Tools zusammenfuehren
"Wir haben drei verschiedene Forks mit widerspruechlichen Aenderungen. Wie bringen wir sie wieder zusammen?"
Eine saubere Merge-Strategie fuer Forks, duplizierte Skripte und gemeinsame Laborwerkzeuge planen.
Matlab nach Python uebersetzen
"Wir moechten zu Python wechseln. Koennen Sie uns helfen, unsere Matlab-Codebasis zu uebersetzen?"
Alten Analysecode auf offene Python-Werkzeuge abbilden, ohne wissenschaftliche Absicht und Outputs zu verlieren.
R-Datenaufbereitung debuggen
"Wir bekommen staendig NA-bezogene Fehler beim Umformen unserer Daten. Koennen Sie den Bug mit uns verfolgen?"
Missing Values, Faktorstufen, Indexfehler und Umformungsprobleme gemeinsam nachvollziehen.
Lokale Parallelverarbeitung nutzen
"Koennen wir diese Schleifen ueber Kerne auf einem normalen PC verteilen, oder brauchen wir einen Cluster?"
Desktop-Workflows mit Multiprocessing, joblib oder vektorisierten Bibliotheksfunktionen beschleunigen.
Alten Analysecode dockerisieren
"Wir verwenden noch Python 2.7. Koennen Sie uns helfen, es in Docker zu verpacken?"
Eine aeltere, aber weiterhin wichtige Codebasis auf modernen Systemen ausfuehrbar halten.
Automatische QA-Pruefungen ergaenzen
"Koennte ein naechtlicher Job verdächtige Laeufe markieren und grundlegende Datenintegritaet pruefen?"
Pruefungen erstellen, die fehlende Dateien, auffaellige Outputs oder gescheiterte Qualitaetsmetriken markieren.
Projektordner organisieren
"Unsere Dateistruktur ist chaotisch. Koennen Sie uns bei einem Layout helfen, das Mitarbeitende verstehen?"
Eine Ordnerstruktur entwerfen, die aktuelle Analysen und spaetere Uebergaben unterstuetzt.
Metadaten-Vorlagen definieren
"Wir brauchen Metadaten fuer unsere Aufnahmen, wissen aber nicht, wo wir anfangen sollen. Was ist minimal sinnvoll?"
Aufnahmeparameter, Probandeninformationen und Verarbeitungshinweise festhalten, solange sie frisch sind.
Datenveroeffentlichung vorbereiten
"Wir reichen bald ein Paper ein. Koennen Sie uns durch die Datenveroeffentlichung fuehren?"
Repository auswaehlen, Ordner bereinigen, Dokumentation ergaenzen und eine Datenfreigabe vorbereiten.
Code- und Datenlizenzen waehlen
"Wir sind uns nicht sicher, wie wir Code und Daten lizenzieren sollen. Koennen Sie uns bei der Auswahl helfen?"
Offene Lizenzen fuer Datensaetze, Skripte und abgeleitete Outputs in Kollaborationen diskutieren.
NWB-Dateien standardisieren
"Wir moechten NWB einfuehren, aber wie gehen wir mit unseren eigenen Metadaten um?"
Die Konvertierung alter proprietaerer Formate in wiederverwendbare, dokumentierte Datenstrukturen planen.
Neue Aufnahmen zusammenfuehren
"Wir bekommen taeglich neue Aufnahmen. Wie koennen wir Merges vereinfachen und Duplikate vermeiden?"
Neue Daten an einen Master-Datensatz anhaengen, ohne alte Eintraege zu duplizieren oder neu zu verarbeiten.
Reproduzierbare Abbildungen bauen
"Wir haben Random Seeds an verschiedenen Stellen. Wie machen wir finale Abbildungen reproduzierbar?"
Finale Plots mit versionierten Daten, stabilen Seeds und wiederholbaren Skripten verbinden.
Projekt-README entwerfen
"Wir sind bereit, unsere Daten zu veroeffentlichen, wissen aber nicht, was in die README gehoert."
Praktische Dokumentation schreiben, damit Kollaborierende und Gutachtende eine Freigabe verstehen.
Datenprovenienz verfolgen
"Wie verfolgen wir, welche Rohdatei welche finale Abbildung erzeugt hat?"
Manifeste erstellen, die Rohdateien, bereinigte Datensaetze, Parameter und finale Abbildungen verbinden.
Labor-Datenrichtlinie planen
"Wir brauchen eine Grundrichtlinie, damit alle im Labor Daten konsistent handhaben. Koennen Sie helfen?"
Leichtgewichtige Gruppenregeln fuer Speicherung, Benennung, Archivierung und Uebergabe entwickeln.
50-Hz-Rauschen beheben
"Wir sehen ein starkes 50-Hz-Artefakt in unseren Signalen. Wo sollten wir mit der Fehlersuche anfangen?"
Erdung, Abschirmung und Akquisitionsaufbau gemeinsam durchdenken, wenn Signalqualitaet leidet.
Kameras synchronisieren
"Wir moechten, dass alle Kameras Zeitstempel teilen, damit wir Aufnahmen verlaesslich zusammenfuehren koennen."
Zeitgestempelte Multi-Kamera-Setups entwerfen, die spaeter in der Analyse ausgerichtet werden koennen.
Echtzeit-Sensoren protokollieren
"Wir muessen Echtzeit-Sensor-Logs mit unserem Experiment verbinden. Was wuerden Sie ausprobieren?"
Mehrere Datenstroeme waehrend laufender Experimente mit einer gemeinsamen Zeitbasis integrieren.
Calcium-Imaging vorverarbeiten
"Was sind Best Practices fuer die Vorverarbeitung von Calcium-Imaging-Daten vor der Bewegungskorrektur?"
Dateikonvertierung, Downsampling, Filterung, Bewegungskorrektur und Segmentierungschecks planen.
Verhaltensdaten modellieren
"Wie koennen wir ein prädiktives Modell aus Trial-Daten fuer Mausverhalten aufbauen?"
Trial-Daten strukturieren, Signale glaetten und prädiktive Modelle mit verstaendlichen Diagnostiken validieren.
Periodische Antworten analysieren
"Welche alternativen statistischen Modelle koennen wir fuer asymmetrische periodische neuronale Daten nutzen?"
Modellentscheidungen fuer asymmetrische oder zirkulaere neuronale Antwortmuster vergleichen.
Most Exciting Images erzeugen
"Wie konstruieren wir eine Inception-Loop-Pipeline zur MEI-Erzeugung aus neuronalen Daten?"
Einen Deep-Learning-Workflow fuer neuronale Antwortvorhersage und MEI-Erzeugung strukturieren.
Studentischen Code reviewen
"Kann jemand unsere Skripte auf Lesbarkeit pruefen, bevor wir sie abgeben?"
Code-Review als Lernmoment fuer Klarheit, Struktur und Wartbarkeit nutzen.
Uebergabe-Checklisten erstellen
"Ich gehe bald. Koennen Sie mir helfen sicherzustellen, dass die naechste Person weitermachen kann?"
Skripte, Datennotizen und Projektkontext sichern, bevor Studierende oder Postdocs gehen.
Continuous Integration einrichten
"Koennen Sie uns helfen, automatische Tests einzurichten, damit wir Fehler vor dem Mergen finden?"
Tests automatisch ausfuehren, wenn sich ein gemeinsames Repository aendert.
Unsere kurzfristige Projektunterstuetzung
E-Mail-Anfrage
Schicken Sie eine kurze Nachricht an ein Teammitglied mit der Frage, dem Projekt oder dem Blocker, den Sie besprechen moechten. Wir helfen, die passende Person zu finden.
Online-Beratungsgespraech
Wir klaeren das Problem, Ihre Ziele und den aktuellen Projektstand und vereinbaren dann eine fokussierte Strategie und einen passenden Zeitplan.
Pair-Programming-Sitzungen
Meist treffen wir uns 1-2 Mal pro Woche, online oder vor Ort, und arbeiten direkt mit Ihnen an Code, Daten, Workflow oder Analyseentscheidung.
Projekt-Review
Am Ende pruefen wir gemeinsam, was sich geaendert hat, dokumentieren das Ergebnis und besprechen naechste Schritte, damit Ihr Team selbststaendig weiterkommt.