Почему Perl используется так экстенсивно в исследовании биологии? [закрытый]

29
задан Peter Mortensen 16 January 2016 в 15:55
поделиться

8 ответов

Линкольн Штайн в своей статье: Как Perl спас проект генома человека .

Из его анализа:

Я думаю, что это связано с несколькими факторами:

  1. Perl замечательно хорош для нарезки, нарезания кубиками, скручивания, скручивания, сглаживания, резюмирования и иного искажения текста. Хотя в настоящее время биологические науки включают в себя значительный объем числового анализа, большинство первичных данных по-прежнему представляют собой текст: имена клонов, аннотации, комментарии, библиографические ссылки. Даже последовательности ДНК похожи на текст. Преобразование несовместимых форматов данных - это вопрос искажения текста в сочетании с некоторыми творческими догадками. Мощные операторы сопоставления регулярных выражений и манипуляции со строками Perl упрощают эту работу способом, которого нет в любом другом современном языке.

  2. Perl прощает. Биологические данные часто бывают неполными, поля могут отсутствовать, или поле, которое, как ожидается, будет присутствовать один раз, встречается несколько раз (например, потому, что эксперимент проводился в двух экземплярах), или данные были введены вручную и не совсем соответствуют ожидаемому формату. Perl не особо возражает, если значение пустое или содержит нечетные символы. Регулярные выражения могут быть написаны для выявления и исправления множества распространенных ошибок при вводе данных. Конечно, такая гибкость тоже может быть проклятием. Подробнее о проблемах с Perl я расскажу ниже.

  3. Perl ориентирован на компоненты. Perl поощряет людей писать свое программное обеспечение в виде небольших модулей, либо с использованием модулей библиотеки Perl, либо с использованием классического инструментально-ориентированного подхода Unix. Внешние программы можно легко включить в сценарий Perl с помощью канала, системного вызова или сокета.Динамический загрузчик, представленный в Perl5, позволяет людям расширять язык Perl с помощью подпрограмм C или делать целые скомпилированные библиотеки доступными для интерпретатора Perl. В настоящее время предпринимаются попытки собрать всю собранную в мире информацию о биологических данных в набор модулей под названием «bioPerl» (подробно обсуждаемый в статье, которая будет опубликована позже в Perl Journal).

  4. Perl легко писать и быстро разрабатывать. Интерпретатор не требует, чтобы вы заранее объявляли все свои прототипы функций и типы данных, новые переменные появляются по мере необходимости, вызовы неопределенных функций вызывают ошибку только тогда, когда функция нужна. Отладчик хорошо работает с Emacs и обеспечивает удобный интерактивный стиль разработки.

  5. Perl - хороший язык для создания прототипов. Поскольку Perl быстр и грязен, часто имеет смысл прототипировать новые алгоритмы на Perl, прежде чем переносить их на быстро компилируемый язык. Иногда оказывается, что Perl достаточно быстр, так что портировать алгоритм не нужно; чаще можно написать небольшое ядро ​​алгоритма на C, скомпилировать его как динамически загружаемый модуль или внешний исполняемый файл, а остальную часть приложения оставить на Perl (для примера сложного приложения сопоставления генома, реализованного таким образом, см. http://waldo.wi.mit.edu/ftp/distribution/software/rhmapper/ ).

  6. Perl - хороший язык для создания сценариев Web CGI, и его важность становится все более важной, поскольку все больше лабораторий обращаются к Интернету для публикации своих данных.

47
ответ дан 28 November 2019 в 00:40
поделиться

Perl очень мощный инструмент, когда дело касается текста, и он присутствует почти в каждом дистрибутиве Linux / Unix. В биоинформатике не только данными последовательностей очень легко манипулировать с помощью Perl, но также и большинство алгоритмов бионформатики выводят какие-то текстовые результаты.

Затем в крупнейших центрах биоинформатики, таких как EBI , был замечательный парень, Эван Бирни, который руководил проектом BioPerl . В этой библиотеке есть множество синтаксических анализаторов для всех видов результатов популярных алгоритмов биоинформатики, а также для управления различными форматами последовательностей, используемыми в основных базах данных последовательностей.

Однако в настоящее время Perl - не единственный язык, используемый биоинформатиками: наряду с данными о последовательностях лаборатории создают все больше и больше различных типов данных, и в этих областях все чаще используются другие языки.

Например, язык программирования статистики R широко используется для статистического анализа данных микрочипов и количественной ПЦР (среди прочего). Опять же, почему мы так часто его используем? Потому что у него есть отличные библиотеки для такого рода данных (см. Проект bioconductor ).

Когда дело доходит до веб-разработки, CGI на самом деле не является современным, но люди, знающие Perl, могут придерживаться его. В моей компании он больше не используется ...

Надеюсь, это поможет.

5
ответ дан 28 November 2019 в 00:40
поделиться

Вероятно, потому что Perl хорош в манипулировании строками, а многие исследования в области генетики включают манипуляции с очень длинными строками "ACTGCATG ...". Просто догадываюсь ...

12
ответ дан 28 November 2019 в 00:40
поделиться

Perl кажется предпочтительным языком для биоинформатики - есть даже заголовок O'Reilly только по этой теме: Начало Perl для биоинформатики .

7
ответ дан 28 November 2019 в 00:40
поделиться

Настоящий ответ, вероятно, меньше связан с Perl, чем вы думаете. Многие из происходящих событий являются историческими случайностями.В то время, когда Perl был довольно популярен, Java становилась все более популярной, не так много людей обращали внимание на Python, а Ruby только начинал.

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

Сегодня такой эволюции может и не произойти. Я бы сказал, что Perl, Python и Ruby полностью соответствуют поставленной задаче. Все, что цитирует Линкольна Стейна , сегодня может быть применимо к любому из этих трех. Если бы сегодня всем приходилось начинать с нуля, любой из этих языков мог бы быть тем, который все используют.

Я заметил, что из моей собственной клиентской базы (очень небольшой и нерепрезентативный образец биотехнологии), что люди, продвигающие программирование для многих биологических вещей, похоже, были, по крайней мере, сисадминами, работающими неполный рабочий день, которые поддерживали ученые. Ученые беспокоились о науке и занимались легким программированием, но специалисты по ИТ-поддержке выполняли большую часть тяжелой работы по ненаучным частям. Perl очень хорошо позиционируется как инструмент системного администратора, поскольку это скотч в Интернете.

16
ответ дан 28 November 2019 в 00:40
поделиться

Perl в основном требует очень коротких циклов разработки. Это тот вид разработки, который позволяет добиваться цели.

Этого достаточно, чтобы перевесить недостатки Perl.

3
ответ дан 28 November 2019 в 00:40
поделиться

Биоинформатика занимается в первую очередь анализом текста и Perl - лучший язык программирования для этой работы, поскольку он предназначен для синтаксического анализа строк. Как говорится в книге О'Рейли (Beginning Perl for Bioinformatics), «Благодаря высокоразвитой способности [Perl] обнаруживать закономерности в данных Perl стал одним из самых популярных языков для анализа биологических данных».

{{1 }}
2
ответ дан 28 November 2019 в 00:40
поделиться

Я использую много Perl для работы с качественными и количественными данными в исследованиях в области социальных наук. С точки зрения быстрого выполнения задач (в основном с текстом), поиска библиотек на CPAN (хорошее центральное место) и вообще просто быстрого выполнения задач, его нельзя превзойти.

Perl также является отличным клеем, так что если у вас есть инструментальные записи, и вам нужно склеить их с процедурами анализа данных, то Perl - это ваш язык.

9
ответ дан 28 November 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: