Sie befinden sich in der Kategorie: "SASfit"

Ein Programm zum Anpassen von Streukurven aus Experimenten mit Kleinwinkelstreuung (SAXS, SANS und DLS) in Analytischer Chemie und Bio-Chemie. Es bietet über 200 Partikelmodelle verschiedener Anwendungsgebiete und kann mehrere Datensätze gleichzeitig anpassen.

Ursprung

Das Projekt wurde von Dr. Joachim Kohlbrecher in den 1990er Jahren während seiner Promotion am Helmholtz-Zentrum Berlin für Materialien und Energie (ehemals Hahn-Meitner-Institut) begonnen.

Beschreibung

Das Programm berechnet integrale strukturelle Parameter wie zum Beispiel den Streumassenradius, die Streuungs-Invariante und die Porod-Konstante. Weiterhin kann ein Modell aus Formfaktoren, Größenverteilungen und Strukturfaktoren zusammengestellt und angepasst werden. Außerdem wurde ein Algorithmus implementiert, der es erlaubt mehrere Streukurven mit einem gemeinsamen Satz an globalen Parametern anzupassen. Dies ist besonders für Messungen mit Kontrastvariation oder polarisierten Neutronen wichtig. Diese globale Anpassung erlaubt es Modellparameter eindeutig zu bestimmen, die mit nur einer Streukurve sehr stark korreliert sind und somit nicht bestimmbar.

SASfit globalfit

Screenshot vom simultanen Anpassen mehrerer Streukurven

Das Programm wurde hauptsächlich entwickelt, um die Nutzer der Neutronen-Klein­winkel­streuungs­anlage am Paul Scherrer Institut zu unterstützen. Die numerischen Funktionen sind überwiegend in der Programmiersprache C geschrieben, während die grafische Oberfläche in Tcl/Tk umgesetzt wurde.

Programmpakete gibt es für Windows, Linux und MacOS. Mehr Informationen dazu und der Quellcode des Programms sind auf der Projektseite zu finden.

Beiträge

Motiviert durch eine Stellenausschreibung von Sylvain Prévost an der TU Berlin, kam ich im März 2008 mit Dr. Joachim Kohlbrecher zusammen, um die weitere Entwicklung zu unterstützen. Die ersten Schritte betrafen:

  • Überführen des gesamten Quellcodes von CVS in ein aktuelleres Versions-Kontrollsystem: zunächst Subversion, später Mercurial
  • Automatisieren der Kompilierung und der Erzeugung eines Pro­gramm­pakets mit CMake. Dieser Prozess ist komplex, da aus dem Quellcode verschiedener Programmier­sprachen und Lauf­zeit­um­ge­bungen für jede Platt­form individuell ein eigen­ständiges Programm erzeugt werden muss
  • Einführen von Doxygen zur Quellcode-Dokumentation
  • Umstrukturieren des Quellcodes und Vereinheitlichung der Schnittstellen für Partikelmodelle
  • Entwickeln eines Plugin-Systems für Modell-Funktionen um Nutzern die Verwendung eigener Partikel­modelle zu erlauben ohne tiefere Kenntnis des Programm-Quellcodes
  • Work-flow Verbesserungen in Zusammenarbeit mit Benutzern im Wissenschaftsbetrieb
  • Videoanleitungen zur Benutzerunterstützung bei bestimmten Aufgaben, wie zum Beispiel beim Erstellen eigener Modellfunktionen-Plugins über einen YouTube Kanal
Getagged mit