Fityk — свободный анализатор пиков

Аватар пользователя zio

Fityk
В деятельности практически каждого химика периодически приходится сталкиваться с необходимостью проанализировать пики, аппроксимировать их какой-либо функцией. Кто-то использует для этого Origin — суперкомбайн под Windows, кто-то умудряется что-то даже в Екселе получить, но для регулярного использования, конечно необходимо нечто специализированное.

Сегодня мы вкратце рассмотрим Fityk

 — замечательный пакет для «фиттинга», разрабатываемый сообществом (лицензия GPL) при координации Марчина Войдыра (Marcin Wojdyr), аспиранта из Варшавы.

Fityk — это программа для нелинейной аппроксимации и анализа функций. Позволяет проводить визуализацию данных, а основное ее назначение — разделение перекрывающихся пиков, и подбор параметров методом наименьших квадратов с использованием стандартного алгоритма Левенберга-Марквардта, обычного алгоритма или симлексного метода Нелдера — Мида.
По умолчанию в программе имеются встроенные общие «колоколообразные» (bell-shaped) функции (Gaussian, Loretzian, Pearson 7, Voigt, Pseudo-Voigt) и полиномы. Любые же пользовательские функции могут быть легко добавлены. Поддерживается также фоновую замену переменных, калибровку данных и автоматизацию заданий с помощью простого скриптового языка программирования.

Упоминая о скриптовом языке «Фитыка» стоит остановиться подробнее о реализации программы. Она имеет [почти] интуитивно понятный графический интерфейс, позволяющий неопытным пользователям «мышетыканьем» убрать базовую линию, нарисовать приблизительные пики на экспериментальных данных и получить хороший результат. (Который потом можно удобно экспортировать в различных форматах). baseline correction

До последней версии некоторым неудобством в процессе графического «фиттинга» была невозможность «прокрутки» параметров пика с клавиатуры, но она была реализована буквально за пару дней после моего обращения к автору.
Из недостатков GUI сейчас можно отметить сложность (или даже невозможность) редактирования введенных экспериментальных данных с помощью визуальных средств.

Конечно, все эти недостатки меркнут при том, что программу можно использовать из командной строки без всякого GUI. Это может быть особенно удобно для пакетной обработки графиков и сопряжения с другими программами (что просто бесценно и является «хорошим тоном» для Линукс-программ).

Программа была разработана для анализа моделей дифракции пыли, но может быть использована для удовлетворения нужд в анализе любого вида данных. В частности, отмечено успешное ее использование в хроматографии, фотолюминесценции и фотоэлектронной спектроскопии, ИК и КР-спектроскопии, а автором сообщения, кроме того, использовалась при интерпретации данных измерений магнитной восприимчивости.

Естественно, как и большинство свободных программ, Fityk — может работать как под Линуксом, так и под FreeBSD, MS Windows и MacOS X.
Дружелюбное же сообщество поможет разобраться в этом продукте, улучшить или «заточить под себя».

Официальный сайт: http://www.unipress.waw.pl/fityk/

Комментарии

А как из других приложений туда перекидывать набор данных чтобы, скажем, изобразить хроматографический спектр?

Аватар пользователя zio

конечно, лучше всего через старый/добрый/лучший/надежный[и т.д.] текстовой файл со столбцами данных — вывод в него позволяет сделать любая нормальная программа, а обрабатывать можно тоже хоть в "блокноте".
(Не упоминаю здесь всякие изощренные способы ввода через скрипты, например, автоматически ПО хроматографа вызывает фитык, дает ему данные и параметры обработки, и т.д.)

Вот именно, что "любая нормальная", да кто ж на практике ими пользуется? Обычно с ПО у нас получается работа по принципу "как прибили, так и держится"!

Аватар пользователя zio

здесь под словом «нормальная» имелось в виду не столько «правильная», сколько «популярная»: даже ужасный Ексель кое-как выводит в «tabs separated ASCII», а среди программ, идущих к приборам, большинство тоже могут выводить ASCII. (Я только с одним старым PerkinElmer УФ-ом сталкивался, который пишет в свой какой-то формат, а его уже потом конвертировал другой программой. )