Pourquoi Perl est-il si largement utilisé dans la recherche en biologie? [fermé]

je travaille comme personnel de soutien dans un institut de recherche en biologie en tant qu'étudiant, et Perl semble être utilisé partout. Pas pour chaque projet, mais il semble que plus de la moitié des gens ici ont quelques livres Perl dans/sur leur bureau/bureau.

pourquoi Perl est-il si utilisé en biologie?

27
demandé sur Peter Mortensen 2010-03-27 01:27:28

12 réponses

Lincoln Stein a mis en évidence les vertus de Perl pour la bioinformatique dans son article: Comment Perl Enregistré le Projet du Génome Humain .

D'après son analyse:

Je pense que plusieurs facteurs sont responsables:

  1. Perl is remarquablement good for slicing, dicing, twisting, wringinging, smoothing, summarizing and autrement texte mangeant. Bien que les sciences biologiques comportent actuellement une bonne part d'analyse numérique, la plupart des données primaires sont encore sous forme de texte: noms de clones, annotations, commentaires, références bibliographiques. Même les séquences D'ADN ressemblent à des textos. Interconverter des formats de données incompatibles est une question de manglage de texte combiné avec quelques hypothèses créatives. Les puissants opérateurs d'appariement d'expressions régulières et de manipulation de chaînes de Perl simplifient ce travail d'une manière qui n'est pas égalée par les autres opérateurs modernes. langue.

  2. Perl pardonne. Les données biologiques sont souvent incomplètes, les champs peuvent être manquants, ou un champ qui devrait être présent se produit plusieurs fois (par exemple, une expérience a été exécutée en double), ou les données ont été saisies à la main et ne correspondent pas tout à fait au format prévu. Perl ne se soucie pas particulièrement si une valeur est vide ou contient des caractères impairs. Des expressions régulières peuvent être écrites pour prendre et corriger une variété de les erreurs courantes dans la saisie des données. Bien sûr, cette flexibilité peut également être une malédiction. Je parle plus sur les problèmes avec Perl ci-dessous.

  3. Perl est une composante axée sur les résultats. Perl encourage les gens à écrire leur logiciel dans de petits modules, en utilisant des modules de bibliothèque Perl ou avec L'approche classique Unix orientée outils. Les programmes externes peuvent facilement être incorporés dans un script Perl en utilisant un tube, un appel système ou une socket. Le chargeur dynamique introduit avec Perl5 permet aux gens d'étendre la langue Perl avec des routines C ou de mettre des bibliothèques compilées entières à la disposition de L'interpréteur Perl. Un effort est actuellement en cours pour rassembler toutes les connaissances accumulées dans le monde sur les données biologiques dans un ensemble de modules appelés "bioPerl" (discuté en détail dans un article qui sera publié plus tard dans le journal Perl).

  4. Perl est facile à écrire et rapide à développer. L'interprète n'exige pas que vous déclarez tous vos prototypes de fonction et types de données à l'avance, de nouvelles variables apparaissent au besoin, les appels à des fonctions non définies ne causent une erreur que lorsque la fonction est nécessaire. Le débogueur fonctionne bien avec Emacs et permet un style de développement interactif confortable.

  5. Perl est un bon langage de prototypage. Parce que Perl est rapide et sale, il est souvent logique de prototype de nouveaux algorithmes en Perl avant de les déplacer à un rapide langage compilé. Parfois, il s'avère que Perl est assez rapide de sorte que de l'algorithme ne doit pas être porté; plus fréquemment, on peut écrire un petit noyau de l'algorithme en C, Compiler comme un module chargé dynamiquement ou exécutable externe, et laisser le reste de L'application en Perl (pour un exemple d'application de cartographie génomique complexe mis en œuvre de cette façon, voir http://waldo.wi.mit.edu/ftp/distribution/software/rhmapper / ).

  6. Perl est un langage de qualité pour le Web, les scripts CGI, et de plus en plus d'importance en tant que plus de laboratoires tourner vers le Web pour la publication de leurs données.

46
répondu mob 2010-03-26 22:56:12

la vraie réponse a probablement moins à voir avec Perl que vous le pensez. Beaucoup de choses qui se produisent sont des accidents de l'histoire. À l'époque, quand Perl était très populaire, Java était de plus en plus populaire, peu de gens faisaient attention à Python, et Ruby commençait à peine.

les gens qui avaient besoin de travailler ont utilisé Perl et créé des bibliothèques à Perl, et d'autres personnes ont commencé à utiliser ces bibliothèques. Une fois que les gens commencent à utiliser quelque chose qui leur est modérément utile, ils ont tendance à ne pas changer (les économistes appellent ces "coûts de changement"). De là, encore plus de gens commencent à l'utiliser parce que beaucoup d'autres personnes l'utilisent.

la même évolution pourrait ne pas se produire aujourd'hui. Je dirais que Perl, Python et Ruby sont tout à fait adéquats et à la hauteur de la tâche. Toutes les choses que mobrule cite de Lincoln Stein pourrait s'appliquer à l'un des trois aujourd'hui. Si tout le monde devait commencer à partir de zéro aujourd'hui, l'un de ces langues pourrait être celui que tout le monde utilise.

j'ai remarqué, de ma propre clientèle cependant (un échantillon très petit et non représentatif de biotech), que les gens poussant la programmation pour une grande partie de la substance biologique semblaient être au moins à temps partiel administrateurs sys qui soutenaient les scientifiques. Les scientifiques se sont inquiétés de la science et ont fait de la programmation légère, mais les gens de soutien TI faisaient beaucoup de pour les parties non scientifiques. Perl est très bien positionné comme un outil sysadmin puisque c'est le ruban adhésif de l'internet.

15
répondu brian d foy 2017-05-23 12:18:17

probablement parce que Perl est bon à manipuler les cordes, et beaucoup de recherche en génétique implique la manipulation de veeery long "ACTGCATG..." chaîne. Juste deviner...

12
répondu Federico A. Ramponi 2010-03-26 22:35:24

j'utilise beaucoup de Perl pour traiter les données qualitatives et quantitatives dans la recherche en sciences sociales. En termes de faire les choses (en grande partie avec du texte) rapidement, trouver des bibliothèques sur CPAN (nice emplacement central), et généralement tout simplement faire les choses rapidement, il ne peut pas être surpassé.

Perl est aussi une excellente colle, donc si vous avez quelques enregistrements instrumentaux, et vous avez besoin de les coller aux routines d'analyse de données, alors Perl est votre langue.

9
répondu singingfish 2010-03-27 00:18:22

Perl semble être la langue de choix pour la bioinformatique - il y a même un titre O'Reilly sur ce sujet: Perl de début pour la bioinformatique .

7
répondu Paul R 2016-01-16 15:57:40

Perl est très puissant quand il s'agit de traiter du texte et il est présent dans presque toutes les distributions Linux/Unix. En bioinformatique, non seulement les données de séquence sont très faciles à manipuler avec Perl, mais aussi la plupart des algorithmes de Bioinformatique produira une sorte de résultats de texte.

puis, les plus grands centres de Bioinformatique comme le EBI avait ce grand gars, Ewan Birney, qui dirigeait le BioPerl projet. Cette bibliothèque dispose de nombreux analyseurs pour chaque type de résultats d'algorithmes bioinformatiques populaires, et pour manipuler les différents formats de séquence utilisés dans les principales bases de données de séquence.

de nos jours, Cependant, Perl n'est pas le seul langage utilisé par les bioinformaticiens: avec les données de séquence, les laboratoires produisent des types de données de plus en plus différents et d'autres langues sont plus souvent utilisées dans ces domaines.

Le R statistiques le langage de programmation, par exemple, est largement utilisé pour l'analyse statistique des microéchantillons et des données qPCR (entre autres). Encore une fois, pourquoi utilisons-nous autant? Parce qu'il a de grandes bibliothèques pour ce genre de données (voir bioconducteur projet).

maintenant quand il s'agit de développement web, CGI n'est pas vraiment l'état de l'art aujourd'hui, mais les gens qui connaissent Perl peuvent s'y tenir. Dans mon entreprise, bien qu'il ne soit plus utilisé...

j'espère que cela aidera.

5
répondu Philippe 2016-01-16 16:07:12

Perl force fondamentalement les cycles de développement très courts. C'est le genre de développement qui fait avancer les choses.

c'est assez pour compenser les désavantages de Perl.

3
répondu Andomar 2016-01-16 15:58:12

Bioinformatique traite principalement dans l'analyse de texte et Perl est le meilleur langage de programmation pour le travail comme il est fait pour l'analyse de chaîne. Comme le dit Le Livre D'O'Reilly (Beginning Perl for Bioinformatics): "avec la capacité très développée de [Perl]à détecter les tendances dans les données, Perl est devenu l'un des langages les plus populaires pour l'analyse des données biologiques."

2
répondu Kyra 2016-01-16 16:07:50

Cela semble être une jolie réponse globale. Peut-être qu'une chose manque, cependant, c'est que la plupart des biologistes (jusqu'à récemment, peut-être) n'ont pas beaucoup d'expérience de programmation du tout. La courbe D'apprentissage pour Perl est beaucoup plus bas que pour les langues compilées (comme C ou Java), et Perl fournit encore une tonne de fonctionnalités quand il s'agit de traitement de texte. Tant pis si cela prend plus de temps? Les biologistes peuvent certainement gérer cela. Laboratoire les expériences prennent habituellement une heure ou plus de fin, donc attendre quelques minutes de plus pour que le traitement des données se termine ne va pas les tuer!

il suffit de noter que je parle ici de biologistes qui programme par nécessité. Je comprends qu'il y a certains très qualifiés programmeurs et informaticiens qui utilisent Perl ainsi, ces commentaires peuvent ne pas s'appliquer à eux.

1
répondu Daniel Standage 2016-01-16 16:08:55

People missed out DBI , l'interface Perl abstract database Qui rend vraiment facile de travailler avec des bases de données bioinformatiques.

il y a aussi l'angle à une seule doublure . Vous pouvez écrire quelque chose pour reformater les données en une seule ligne dans Perl et juste utiliser le drapeau -pe pour intégrer cela à la ligne de commande. De nombreuses personnes utilisant AWK et sed ont déménagé à Perl. Même dans programmes complets, l'E/S des fichiers est incroyablement facile et rapide à écrire, et la transformation du texte est expressive à un niveau élevé par rapport à n'importe quel langage d'ingénierie autour. Les personnes qui utilisent Java ou même Python pour la transformation de texte unique sont tout simplement trop paresseux pour apprendre une autre langue. Java est particulièrement dépendant de l'implémentation JVM et de ses performances D'e/s.

au moins vous savez à quel point Perl sera rapide ou lent partout, légèrement plus lent que C I / O. ne pas apprendre grep , couper , sed , ou AWK ; juste apprendre Perl comme votre outil de ligne de commande, même si vous ne produisez pas de grands programmes avec elle. En ce qui concerne CGI, Perl a beaucoup de meilleurs cadres web tels que Catalyst et Mojolicious , mais le mindshare est certainement venu de CGI et la bioinformatique étant l'un des premiers gros utilisateurs de la Internet.

1
répondu Matt 2016-01-16 16:15:12

Perl est très facile à apprendre par rapport à d'autres langues. Il peut exploiter pleinement les données biologiques qui deviennent le big data. Il peut manipuler des big data et effectuer bon pour la conservation de données de manipulation et tout type de programmation D'ADN, l'automatisation de la biologie est devenue facile grâce à des langages comme Perl, Python et Ruby . C'est très facile pour ceux qui connaissent la biologie, mais ne savent pas programmer que dans d'autres langages de programmation.

0
répondu Pramod S. Deshmukh 2016-01-16 16:17:01

personnellement, et je sais que ça va sortir avec moi, mais c'est parce que J'ai appris Perl en premier. On m'a demandé de prendre des fichiers FASTA et de les mélanger avec d'autres fichiers FASTA. Perl était l'outil recommandé quand je me suis renseigné.

à l'époque, j'avais suivi quelques cours d'informatique, mais je ne savais pas si bien programmer.

Perl s'est avéré assez facile à apprendre. Une fois j'ai eu expressions régulières dans ma tête, je parsais et je faisais de nouveaux fichiers FASTA en un jour.

comme on l'a suggéré, je n'étais pas un programmeur. J'étais un diplômé en biochimie travaillant dans un laboratoire, et j'avais fait l'erreur de mettre en place un serveur Linux où tout le monde pouvait me voir. C'était à l'époque où c'était un projet de la journée.

de toute façon, Perl est devenu mon goto pour tout ce que je devais faire autour du laboratoire. C'était génial, facile à utiliser, super flexible, d'autres Les gars de Perl dans d'autres LABOS, on me ressemble beaucoup.

ainsi, pour couper court, Perl est facile à apprendre, souple et indulgente, et il a fait ce dont j'avais besoin.

une fois que j'ai vraiment fait de la bioinformatique, j'ai pris R, Python, et même Java. Perl n'est pas très doué pour aider à créer du code maintenable, surtout parce qu'il est très flexible. Maintenant j'utilise juste la langue pour le travail, mais Perl est toujours l'une de mes langues préférées, comme un premier baiser ou quelque chose.

pour réitérer, la plupart des gens bioinformatiques appris le codage par juste kluging stuff ensemble, et la plupart du temps vous êtes juste en train d'essayer d'obtenir une réponse pour le chercheur principal (PI), de sorte que vous ne pouvez pas passer des jours sur la conception de code. Perl est superbe à juste obtenir une réponse, il ne fonctionnera probablement pas une deuxième fois, et vous ne comprendrez rien dans votre propre code si vous le voyez six mois plus tard; mais si vous avez besoin de quelque chose maintenant, alors il est un bon choix, même si je utilise surtout Python maintenant.

j'espère que vous donne une réponse de quelqu'un qui l'a vécu.

0
répondu Mark Pitman 2016-01-16 16:23:10