LINUX.ORG.RU

Моя программа для обработки данных фрагментного анализа ДНК

 , , ,


1

2

По ходу написания PhD, задолбался GeneMapper-ом, его прибитостью гвоздями к венде, чуть меньшую прибитость гвоздями к Ораклу (GeneMapper ID-X 1.7 уже PostgreSQL использует), жручестью, непереносимостью, сильно платностью (16 килобаксов лицензия на 1 человекоместо!). Ну и подумал, что надо посмотреть, а что есть свободного. Нашёл NCBI OSIRIS, но он только для венды и макоси. Есть fatools, есть что-то для R, но не интерактивное ни разу. А у fatools, как по мне, ещё весьма путанный и слабо комментированный код с однобуквенными или около того именами переменных и прочими подобными прелестями.

По итогу, взял я в зубы BioPython, pyqtgraph, SciPy и начал писать свою программу.

Пока что получается неплохо: добился корректной работы с файлами, где реализовано лишь ограниченное подмножество ABIF, с файлами, полученными до стандартизации ABIF (другие смещения, другие названия полей данных...), с файлами HID (получаются на криминалистических капиллярниках ABI 3500 HID, немного отличаются от стандартных ABIF, не особо описаны), определение размера фрагментов с помощью степенных сплайнов или методом наименьших квадратов (мне эту часть математики не преподавали вообще, тип нафига это химикам или биологам. А вот надо! И тем, и другим! Чтоб не заниматься мазохизмом с вычислением площади пиков распечаткой, вырезанием и взвешиванием, а положения измерением линейкой - да, мы так в универе делали в 2013-2014...).

В планах прикрутить автоматическое определение аллелей (биннинг) и импорт STR панелей из CSV файлов.

Собственно, на скрине видны данные для аллельного маркера GlobalFiler - рассчитанные размеры в окне программы и предполагаемые с допустимыми отклонениями - в LibreOffice (взято из данных панели GlobalFiler для капиллярника SeqStudio HID). Лицензия программы - AGPL v3. Дистрибутив на скрине openSuSE Tumbleweed, машина - Cisco UCS C240 M3, видеокарта встроенная Matrox с 8Мб видеопамяти, поэтому да, ШГ во все поля.

Ссылка на репозиторий: https://github.com/Dorif/fragalyseqt

И да: кастую DNA_Seq - давно не видел, может обрадую, что не помер и даже что-то ещё развиваю.)

>>> Просмотр (1024x768, 178 Kb)

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от dataman

Ну… наверное, не совсем «не тот». Родственник, если я правильно понимаю, что в этой новости было написано:

Для платформы Android существуют сторонние порты:
Порт Stellarium Mobile (форк с компактным интерфейсом)
Порт оригинального Stellarium (форк с десктопным интерфейсом)

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

В основе Stellarium Mobile Plus лежит проект с открытым исходным кодом Stellarium Web Engine. Это приложение разработано двумя братьями: Фабьеном Шеро, первоначальным создателем Stellarium, и Гийомом Шеро, активным участником проекта Stellarium.

Их же нет на ЛОРе? :)

dataman ★★★★★
()
Ответ на: комментарий от hateyoufeel

Бывает хуже. На ноуте вмэсё гораздо лучше и там я делаю большую часть работы. А тут я не прям долго работаю, так что похер.

Dorif ★★★
() автор топика

Ради поддержки отечественного производителя кошкодевочек запилил ебилд прямо в репу (+pybaselines). Оно запустилось и даже показало картинки из тестовых файлов, но на этом мои полномочия всё.

vaxxabait
()
Ответ на: комментарий от vaxxabait

Эт, поделись ссылкой на ебилд, а?) А то Генту тоже иногда щупаю, чтоб не терять квалификации и свежесть мозга. И вообще - не стесняемся слать пулл-реквесты в том числе со всякими скриптами для опакечивания.)

Про полномочия: ничего страшного, не все молекулярные биологи.)

П.С.: а я ещё гадал, что за ваххабит у меня репу форкнул.)

Dorif ★★★
() автор топика

В биоинформатике не разбираюсь, но судя по исходникам на полноценную софтину как то не тянет.

P.S. Сгенерированные формы нужно хранить в отдельном файле и подключать к основной реализации через наследование.

Rodegast ★★★★★
()
Ответ на: комментарий от Dorif

Так я ж говорю - пулреквест в твой гитхаб послал с ебилдом. Ебилд конечно наколеночный, но работает вроде. Если нет - спрашивай в любое время.

ПС не один, а целых 8 - байт жи есть !

vaxxabait
()
Последнее исправление: vaxxabait (всего исправлений: 2)
Ответ на: комментарий от Rodegast

Ну, по возможностям до GeneMapper ясен красен, пока не дотягивает, а вот как альтернатива Peak Scanner ( https://www.thermofisher.com/md/en/home/life-science/sequencing/fragment-analysis/fragment-analysis-fundamentals/fragment-analysis-software-data-analysis.html ), только не зависящая от оборудования - вполне тянет.

А почему формы надо хранить отдельно и как это делать? Мне не очевидно, возможно потому что я таки исходно не 100% ИТ-шник.

П.С.: ну и я в принципе говорил, что в математике и многих других вещах всё ещё с разной степенью объективности считаю себя зоговым сквигом.

Dorif ★★★
() автор топика
Ответ на: комментарий от vaxxabait

О, всё, увидел! Спасибо! Но есть несколько вопросов. Можно с тобой в ЛС списаться? В принципе, я есть в Телеграмме ( t.me/nurgle ) и ВК ( vk.com/dorif11 ). Напиши, а?

Dorif ★★★
() автор топика
Ответ на: комментарий от Dorif

почему формы надо хранить отдельно и как это делать?

Примерно так:

$ pyside6-uic form.ui > form.py # создаём отдельный файл с формой
from PySide6 import QtWidgets
from form import Ui_Form

class MainWindow(QtWidgets.QMainWindow, Ui_Form):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.setupUi(self)
        # дальше реализация логики формы
Это позволит безболезненно править форму в дизайнере т.к. для её обновления будет достаточно обновить файл через команду pyside6-uic.

Rodegast ★★★★★
()
Ответ на: комментарий от Dorif

Кстати, обрати внимание на патч и pyproject.toml в contrib/gentoo/sci-biology/fragalyserqt/files, и на содержимое src_prepare(). Всё это вместе подгоняет код под стандарт новых питонячьих пакетов (PEP517 - тех, что pip install blabla). Я бы посоветовал втащить эти изменения прямо в твой код - и ебилд сократится, и прогу можно будет опакетить и положить в PyPI. Тогда любой питоновод (питоновед ?) в любой оси сможет сказать pip install fragalyseqt несмотря на отсутствие или наличие в родном репозитории.

Местным питоноэкспертам (@Rodegast ?)- прокомментируйте содержимое плз, я этот pyproject.toml сегодня первый раз увидел.

vaxxabait
()
Последнее исправление: vaxxabait (всего исправлений: 1)
Ответ на: комментарий от vaxxabait

За pyproject.toml отдельное спасибо - от головняка избавили. Но желание поговорить в ЛС таки же только возросло.

Dorif ★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.