Подтвердить что ты не робот

Почему Perl широко используется в исследованиях в области биологии?

Я работаю в качестве вспомогательного персонала в исследовательском институте биологии в качестве студента, и Perl, кажется, используется повсюду. Не для каждого проекта, но кажется, что более половины людей здесь имеют несколько книг Perl в/на их офисе/столе.

Почему Perl так много использует в биологии?

4b9b3361

Ответ 1

Линкольн Штайн выделил некоторые из сохранившихся достоинств Perl для биоинформатики в своей статье: Как Perl сохранил проект генома человека.

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

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

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

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

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

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 6

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

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

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

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

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

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

Ответ 7

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

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

Ответ 8

Bioinformatics занимается главным образом в разборе текста, и Perl - лучший язык программирования для задания, поскольку он предназначен для синтаксического анализа строк. Как пишет книга O'Reilly ( "Perl for Bioinformatics" ), "с высокой способностью Perl обнаруживать шаблоны в данных, Perl стал одним из самых популярных языков для анализа биологических данных".

Ответ 9

Это, кажется, довольно всеобъемлющий ответ. Возможно, одна вещь отсутствует, однако, что большинство биологов (до недавнего времени, возможно) не имеют большого опыта программирования вообще. Кривая обучения для Perl намного ниже, чем для скомпилированных языков (например, C или Java), и все же Perl по-прежнему предоставляет массу возможностей, когда дело доходит до обработки текста. Так что, если потребуется больше времени для запуска? Биологи могут определенно справиться с этим. Лабораторные эксперименты обычно занимают один час или больше, поэтому ждать нескольких дополнительных минут для завершения обработки данных не удастся их убить!

Просто помните, что я говорю здесь о биологи, которые программируют по необходимости. Я понимаю, что есть некоторые очень опытные программисты и компьютерные ученые, которые также используют Perl, и эти комментарии могут не относиться к ним.

Ответ 10

Люди пропустили DBI, интерфейс абстрактной базы данных Perl, который делает его очень легким для работы с биоинформационными базами данных.

Существует также one-liner угол. Вы можете написать что-то для переформатирования данных в одной строке в Perl и просто использовать флаг -pe, чтобы вставить это в командной строке. Многие люди, использующие AWK и sed, переместились в Perl. Даже в полных программах ввод-вывод файлов невероятно прост и быстр, а текстовое преобразование является выразительным на высоком уровне по сравнению с любым инженерным языком. Люди, которые используют Java или даже Python для однократного преобразования текста, просто слишком ленивы, чтобы изучать другой язык. Java особенно сильно зависит от реализации JVM и ее производительности ввода/вывода.

По крайней мере, вы знаете, как быстро или медленно Perl будет везде, немного медленнее, чем C I/O. Не узнайте grep, cut, sed, или AWK; просто изучите Perl как инструмент командной строки, даже если вы не создаете с ним большие программы. Что касается CGI, Perl имеет множество лучших веб-фреймворков, таких как Catalyst и Mojolicious, но mindshare определенно пришел из CGI и биоинформатики, являющейся одним из самых ранних тяжелых пользователей Интернета.

Ответ 11

Perl очень легко учиться по сравнению с другими языками. Он может полностью использовать биологические данные, которые становятся большими данными. Он может манипулировать большими данными и эффективно выполнять манипулирование данными и все типы программирования ДНК, автоматизация биологии стала легкой благодаря таким языкам, как Perl, Python и Ruby. Это очень легко для тех, кто знает биологию, но не знает, как программировать это на других языках программирования.

Ответ 12

Лично я знаю, что это датирует меня, но это потому, что я сначала изучил Perl. Меня попросили взять FASTA файлы и смешать с другими файлами FASTA. Perl был рекомендованным инструментом, когда я спросил.

В то время, когда я проходил несколько классов компьютерной науки, но я не очень хорошо знал программирование.

Perl оказалось достаточно простым в освоении. Как только я получил регулярные выражения в голове, я разбирал и создавал новые файлы FASTA в течение дня.

Как было предложено, я не был программистом. Я был выпускником биохимии, работая в лаборатории, и я допустил ошибку в создании сервера Linux, где меня все могли видеть. Это было в тот день, когда это был проект на весь день.

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

Итак, чтобы сократить его, Perl легко учиться, гибко и прощать, и он сделал то, что мне нужно.

Как только я действительно попал в биоинформатику, я взял R, Python и даже Java. Perl не очень помогает в создании поддерживаемого кода, в основном потому, что он настолько гибкий. Теперь я просто использую язык для работы, но Perl по-прежнему остается одним из моих любимых языков, как первый поцелуй или что-то в этом роде.

Повторяю, большинство людей, изучающих биоинформатику, изучили кодирование, просто объединив материал, и большую часть времени вы просто пытаетесь получить ответ для главного исследователя (PI), поэтому вы не можете потратить дни на разработку кода. Perl превосходно подходит для получения ответа, вероятно, он не будет работать второй раз, и вы ничего не поймете в своем собственном коде, если увидите его через шесть месяцев; НО, если вам что-то нужно сейчас, тогда это хороший выбор, хотя я в основном использую Python сейчас.

Надеюсь, это даст вам ответ от того, кто его прожил.