Warum wird Perl in der Bioinformatik so häufig eingesetzt? [geschlossen]

14

Was macht Perl für die Bioinformatik so nützlich? Warum ist C ++ oder Matlab oder Python nicht die große Sprache?

Adel
quelle

Antworten:

13

Was Perl für die Bioinformatik so nützlich macht, ist, dass 1) es eine relativ einfach zu erlernende Sprache ist, 2) es viele bereits vorhandene Skripte gibt, einschließlich bioPerl, und 3) das Labor, in dem Sie arbeiten, wahrscheinlich Hunderte von Skripten und Modulen enthält , bereits in Perl geschrieben.

Das Niveau des Programmierers hat weniger mit der Wahl der Sprache zu tun, als mit den von ihm gestellten Aufgaben. Alle erweiterten oder rechenintensiven Jobs werden normalerweise in Java oder C geschrieben und in einem Cluster ausgeführt.

Eine Sache, die man über Bioinformatik verstehen sollte, ist, dass es sich um ein abwechslungsreiches Gebiet handelt, in dem unterschiedliche Aufgaben an diejenigen gestellt werden, die es praktizieren. Es ist nicht ungewöhnlich, dass ich Perl, R und Java an einem Tag verwende. Perl für das Erstellen von Skripten, das Verschieben von Dateien, das Herunterladen von Dingen, einige grundlegende Datenanalysen usw., R für die Datenvisualisierung und Java für die algorithmische Berechnung / Bearbeitung und Änderung von Anwendungen. Abgesehen davon, dass die meisten Aufgaben, die ich erledige, die Verwendung von Perl erfordern, möchte ich jedoch zu Ruby wechseln, da es erweiterte Funktionen, Lambdas & Procs, hat, die zu prägnanterem Code führen können und vollständig objektorientiert sind.

wespiserA
quelle
1
ihr willkommen. Wenn Sie weitere Fragen haben oder darüber nachdenken, auf dem Gebiet tätig zu werden, finden Sie hier eine weitere Antwort, die Ihnen möglicherweise weiterhelfen kann.
WespiserA
24

Abgesehen von den inhärenten Tugenden von Perl ist ein Teil davon einfach Geschichte. Die Bioinformatik erfuhr um die Jahrhundertwende aufgrund des Humangenomprojekts eine bedeutende Expansion. Zu dieser Zeit war Perl die mit Abstand beliebteste Skriptsprache, die allgemein verwendet wurde . Ruby und Python waren sicherlich in der Nähe, hatten aber nicht annähernd die Unterstützung / Meinung, die sie heute haben. Dies gab Perl viel Schwung auf dem Gebiet.

Ich denke, die Verwendung von Perl in der Bioinformatik nimmt ab und R wird immer beliebter. Aber für jede Sprache, die Sie benennen möchten, finden Sie wahrscheinlich ein Bioinformatik-Labor, das sie verwendet.

Charles E. Grant
quelle
2
Einverstanden. Ich erinnere mich an einen Artikel, ich glaube an Dr. Dobbs oder so ähnlich Mitte der 90er Jahre mit dem Titel "Wie Perl das Humangenomprojekt rettete" oder etwas ziemlich Ähnliches. Ich arbeite jetzt seit ungefähr 10 Jahren im Bereich Bioinformatik und habe bisher noch niemanden getroffen, der Perl tatsächlich verwendet. Es ist meistens R mit einer geringeren Menge Matlab & Python.
Geoffjentry
6
Es ist nicht so, dass R Perl ersetzen wird. R wird zur Datenanalyse / -visualisierung für Explorationsdaten verwendet. Allgemeine Skriptaufgaben werden weiterhin mit Perl ausgeführt.
WespiserA
+1: Außerdem scheinen Japaner immer noch viel mehr Perl als Python oder Ruby zu verwenden (von einem japanischen Personalvermittler, mit dem ich chatte). Vielleicht hat dies einen großen Einfluss darauf, welche Technologien mit der japanischen Forschung in Verbindung gebracht wurden, z sie sind führend bei den USA?
Klaim
@geoffjentry: Ich habe in Perl ziemlich viel gesehen, obwohl ich noch keine 10 Jahre in diesem Bereich gearbeitet habe (2 bis jetzt, plus ein paar kurze Erfahrungen vor ein paar Jahren). R ist jedoch der König, wenn mathematische Berechnungen erwartet werden (statistische Analysen großer Datenmengen fallen ein) und gute Visualisierungen generiert werden sollen (in der Tat ziehen viele Lösungen die einfache Integration in die R-Engine vor, anstatt ihre eigenen zu implementieren).
Haylem
In den 8 Monaten, seit ich geschrieben habe, dass ich meine Aussage widerrufen muss, habe ich nun Perl benutzt gesehen :). In diesen Fällen scheint es jedoch immer noch historischer Natur zu sein - entweder alter Code oder jemand, der sich die Zähne mit Perl geschnitten hat und einfach dabei geblieben ist. Die meisten Computer-Biologen an meinem neuen Arbeitsplatz verwenden eine Mischung (abhängig von der Person) aus Python®, mit etwas Matlab und dem oben genannten Perl.
Geoffjentry
10

Ich werde hier eine Antwort hinzufügen, da ich denke, dass viele von ihnen einen wichtigen Punkt übersehen haben ...

Perl ist in der Bioinformatik beliebt, da es ursprünglich eine Textverarbeitungssprache ist .

Text ist König

Perl macht es einfach:

  • Implementierung von NLP- und Bioinformatik-Algorithmen,
  • Textdaten extrahieren,
  • Textdaten generieren.

Die Sprache ist nicht (halb) schlecht

Es hat auch die Vorteile:

  • eine anständige Ausdruckskraft ,
  • eine relativ niedrige Lernkurve (bis Sie alle seine Tricks und Hacks entdecken) ,
  • aber auch eine anständige Leistung .

Während es nicht möglich ist, Verarbeitungsprogramme zu erstellen, die so schnell wie ein C-Äquivalent sind, ist die Entwicklungszeit viel kürzer und es werden Batterien für die Textverarbeitung mitgeliefert ( leistungsfähige reguläre Ausdrücke , wer?), Was es einfacher macht in einem Laborkontext aufgreifen und verwenden, um diese Aufgaben zu lösen.

Portabilität und Erweiterbarkeit leicht gemacht

Auch ist es offensichtlich auch:

  • ist portabel auf vielen Plattformen ,
  • kommt mit einer sehr großen Bibliothek von Erweiterungen .

Der Grund, warum es für Perl so viele bioinformatische (und allgemein wissenschaftliche) Erweiterungen und Module gibt, liegt in den oben genannten Gründen. In vielen Fällen ist die Sprache aufgrund ihres Designs und ihrer Fähigkeiten nahezu perfekt für den Job geeignet (trotz vieler möglicher Widerwillen, die man dagegen hegen kann).


All dies macht Perl zu einem guten Anwärter auf wissenschaftliche Forschung, insbesondere in Bereichen, in denen die zu verarbeitenden Daten überwiegend im Textformat vorliegen.

Natürlich sind andere Sprachen aufgetaucht und beanspruchen aus anderen Gründen einen Marktanteil (gesteigerte Ausdruckskraft, bessere Lesbarkeit, explizite Vermeidung unklarer Hacks und guru-artiger Einzeiler ...), aber sie konkurrieren in bestimmten Aspekten immer noch mit Perl (Ruby ist es) so schnell zu lernen, wie es zum Beispiel langsam ist, Daten zu verarbeiten). Im Bereich der Bioinformatik (oder NLP), in dem Sie sich mit Textformaten, schnellen Forschungszyklen und immer größeren Datenmengen beschäftigen (danke, Genomik und NGS), ist Perl immer noch sehr relevant.


Tatsächlich sind gerade die Kommentare von maple_shaft , Charles und geoffjentry aufgefallen , in denen auch die Bedeutung regulärer Ausdrücke erwähnt wurde, sodass dies nicht von allen übersehen wurde. :)

Haylem
quelle
6

Einer der Hauptgründe für die Popularität von Perl in der Bioinformatik ist BioPerl , ein umfassender Satz von Modulen für die Arbeit mit relevanten Daten.

Es sieht so aus, als ob die meisten Module tatsächlich für die Arbeit mit Daten ausgelegt sind, die von anderen Programmen generiert wurden. Perl ist schließlich ein hervorragendes Klebeband für die Berichterstattung.

Charles
quelle
5

Die Auswahl der Tools hängt von den Fähigkeiten der Bediener und der Benutzerfreundlichkeit ab. Es dauert eine Weile, bis ein kompiliertes Programm oder eine kompilierte IDE eine einfach zu interpretierende Sprache überholt.

Perl hat einige ernstzunehmende Änderungen, ernstzunehmende Dokumentationen, ernstzunehmende Bibliotheken und eine breite freie Verfügbarkeit. Was ist daran nicht zu mögen?

bmike
quelle
2

Perl verfügt über dieselben Fähigkeiten, Datenkonstruktionen und Methoden anderer Sprachen und ist einfacher zu erlernen als die meisten anderen. Dies ist gut für Forscher und Wissenschaftler, die nicht sehr viel Erfahrung mit Programmieren haben, da sie Perl leicht aufgreifen und ihre gewünschte (n) Aufgabe (n) erledigen können

Zusätzlich:

Viele Online-Support und kostenlose Skripte sind verfügbar, was eindeutig von Vorteil ist! =)

In der Summe wollen die meisten Wissenschaftler und Forscher nur die Arbeit erledigen, und zwar so schnell wie möglich, und Perl ist die perfekte Lösung dafür

rrazd
quelle