vendredi 22 février 2013

Amusons-nous avec l'évolution humaine et la pilule

[caption id="attachment_817" align="aligncenter" width="144"]time Cliquez sur l'image, c'est pas le plus drole mais c'est très pertinent[/caption]

Il y a quelques temps j'avais parlé d'articles sérieux sur l'évolution humaine présente, à savoir que nous sommes bien sur encore soumis à la sélection naturelle (voir aussi cet article en anglais dans Wired). (Voir aussi Deviendrons-nous débiles et La suite par Tom Roud.)

Pour s'amuser un peu, je propose de réfléchir à quelles autres pressions sélectives peuvent affecter les humains modernes, dans le contexte de la contraception hormonale.

D'abord il faut préciser un point important : la sélection naturelle, pour fonctionner, n'a pas besoin d'être aussi dramatique qu'on l'imagine souvent. Un avantage de 1% (donc 1,01 fois plus de chances d'avoir des descendants qui survivent et ont des descendants) est considéré énorme et généralement peu vraisemblable en contexte naturel. La plupart du temps quand on peut calculer un avantage sélectif on est dans le 1,001 fois plus de chances de reproduction et de survie, voire beaucoup moins. Et plus la population est grande, plus un avantage petit reste significatif. On ne peut pas dire que la population humaine diminue depuis quelques millénaires.

Alors d'abord la pilule marche pas de manière égale chez toutes les femmes. S'il y a un composant génétique à ce que la pilule marche mal chez certaines femmes, ces femmes auront un peu plus d'enfants en moyenne, et les gènes de "résistance" à la pilule vont se propager. Donc ma première prédiction est que la pilule sera de moins en moins efficace en moyenne au bout de quelques centaines de générations d'usage (on se revoit pour en parler, OK ?). Un genre d'analogue à la résistance aux antibiotiques...

Ensuite, une conséquence évidente de la contraception c'est qu'on peut choisir si on a un autre enfant après en avoir eu un premier. Or il y a des bébés et des enfants faciles, qui dorment tout de suite beaucoup, sont calmes, mangent ce qu'on leur donne, etc. Et y a les petits monstres qui ne dorment pas et dont il faut s'occuper tout le temps. Je ne serais pas très surpris si les parents d'enfants faciles avaient un petit plus tendance à avoir un deuxième, voire un troisième, enfant, et si les parents d'enfants difficiles avaient un petit plus tendance à s'arréter là parce que ça va bien. Donc ma deuxième prédiction : des enfants de plus en plus faciles, surtout en tant que bébés. On se réjouit de voir ça.

D'autres idées ?

mardi 12 février 2013

Un petit débat scientifique pour #DarwinDay : fossiles contre ADN chez les mammifères

[caption id="attachment_797" align="aligncenter" width="300"]pterobear Cliquez sur le dessin. Darwin Day plus St Valentin d'un coup.[/caption]

Le 12 février c'est Darwin Day. Youpii !

Chaque fois qu'un groupement d'intérêts bizarre oppose de la pseudo-science aux résultats scientifiques, ils disent qu'il y a "débat". Genre débat créationisme - évolution, débat homéopathie - traitement avec des médicaments qui contiennent quelque chose. Quand nous les scientifiques disons qu'il n'y a pas débat en l'occurence, nous avons l'air de vouloir supprimer un débat à l'apparence légitime. Et comme les vrais débats scientifiques sont souvent abscons et se produisent entre spécialistes qui se balancent des détails méthodologiques à la figure sur des questions qui n'intéressent personne, bin la plupart des gens n'ont aucune référence pour voir à quoi ça devrait ressembler un débat scientifique légitime.

On peut proposer une heuristique (une solution imparfaite mais qui marche souvent ; la page Wikipedia francophone est bizarre, voyez plutôt l'anglophone) : un débat scientifique légitime est chiant. ;-) Mais ça n'est pas vraiment une solution.

Donc parlons d'un vrai débat, qui entre bien dans le cadre du Darwin Day. Molécules contre morphologie !

Il y a de cela plus d'un an j'avais publié un ralage contre la phylogénie obsolète des mammifères présentée au Musée d'histoire naturelle de Paris. Dans un commentaire long et bien argumenté, Nicobola avait défendu l'approche du Musée, haut lieu de la phylogénie à base morphologique. J'avais promis de répondre un jour. Ze Day 'Az Come!

Mais de quoi il cause phylogénie morphologique moléculaire ? Pourquoi ça nous intéresse maintenant ? Il n'y a pas longtemps j'ai parlé d'un article que je trouvais très cool, dans lequel les auteurs ont reconstruit l'état ancestral du génome des mammifères placentaires (nous, et les baleines gentilles, et les chiens mignons, mais pas les kangourous qui puent ni les ornithorynques qui piquent), et en ont déduit que notre ancêtre à tous qui vivait du temps des dinosaures était nettement plus gros qu'on ne le pensait habituellement. On le pense habituellement sur la base de fossiles. Cette étude-ci était basée sur les données moléculaires (analyse de l'ADN).

Et cette semaine vient de sortir avec grand tintamarre un article dans Science qui montre que l'ancêtre commun des placentaires a vécu beaucoup plus récemment que l'on ne le pensait ces dernières années, en fait après la disparition des dinosaures, et ils ont reconstruit l'ancêtre, et il est tout petit et très conforme à l'idée qu'on se fait habituellement d'un genre d'insectivore discret à doigts de souris. Dans cette étude-ci, ils ont combiné de l'information morphologique d'espèces vivantes (40), d'espèces fossiles (46), et de l'information moléculaire (mais pas trop : 27 gènes, soit 1/1000ème du génome codant, qui est 1% du génome).

Donc deux articles sérieux, par de bons chercheurs, appuyés sur des données solides, qui obtiennent des résultats contradictoires. La dernière manche en date d'un combat qui se livre depuis le début des années 1990 ; avantage aux morphologistes (à savoir qu'ils ont publié dans une plus grosse revue et ils ont eu davantage de couverture dans la presse).

Déclaration de conflit d'intérêts : je fais de l'évolution moléculaire ; je connais le chef de l'article moléculaire cité ci-dessus depuis plus de 20 ans ; j'ai travaillé sur la phylogénie moléculaire des mammifères dans ma thèse et postdoc. Mais j'ai des arguments !

Qu'ont-ils fait dans l'article morphologique récent ? Y a plus de 100 pages de matériel supplémentaire que je n'ai pas lu, donc je n'irais pas dans le détail, mais en gros ils ont rassemblé la plus énorme collection de caractères morphologiques jamais analysée à ma connaissance : 4541 caractères. Pour comprendre de quoi il retourne, il faut savoir qu'en analyse morphologique on ne peut pas mettre des cranes et des poils direcement dans le logiciel, donc il faut recoder la morphologie. Etape super importante, avec plusieurs problèmes potentiels : le risque de subjectivité, si vous codez plutôt ce qui vous arrange ; le risque de ne pas suffisamment détailler, et donc perdre de l'information ; le risque de trop détailler, et donc faire apparaître comme plusieurs caractères ce qui n'est en fait que plusieurs aspects du même. Kesako caractère ? Par exemple le poids de la bête, ou la forme du sperme (si si c'est dans le papier). Ensuite ils ont construit une phylogénie, à savoir les relations évolutives entre les espèces (vache plus proche de mouton que de chien etc). Permettez-moi de persifler un peu : j'ai l'impression que les 27 gènes sont là pour empécher que les données morphologiques toutes seules échouent trop fort à récuperer ce que l'on connaît très bien maintenant de l'arbre des mammifères, et que l'on connaît grace au signal des données moléculaires. 40% des branchements seulement sont cohérents quand ils séparent les données.

Etape suivante et c'est ce qui fait le scoop du papier, ils ont reconstruit l'age et la tronche de l'ancêtre. Pour l'age, vous vous rappelez que des fossiles étaient inclus dans l'analyse ? Les fossiles ça a cela de bien que c'est ancien, et on connaît son âge (avec une certaine précision). Or ces fossiles pas très vieux se placent tout en bas de l'arbre. Donc l'origine de l'arbre n'est pas très vieille. Donc les mammifères placentaires modernes se seraient diversifiés après la disparition des dinosaures. Ensuite pour reconstruire l'ancêtre ils utilisent la parcimonie, à savoir que si deux espèces partagent un trait, leur ancêtre l'avait (en gros).

Un reproche fait même dans le commentaire par ailleurs normalement positif dans Science, c'est qu'ils n'ont pas pris en compte la quantité d'évolution mesurée par les gènes dans l'analyse. Alors là je suis ambigu, parce que je n'ai jamais eu trop confiance dans les mesures dites "d'horloge moléculaire", qui comptent le nombre de changements dans l'ADN et divisent par le taux de mutations fixées dans l'évolution pour trouver la date. Il y a tellement de facteurs qui peuvent faire varier ces taux de mutation ou de fixation. Ceci dit, je doit bien reconnaître que les méthodes pour faire cela ont énormément progressé, et il est probablement en effet abusif de ne pas prendre en compte cette information du tout.

Un problème un peu plus grave à mon sens est que toute cette analyse morphologique se base sur une analyse de parcimonie de caractères morphologique. Or la parcimonie est une approche relativement simple qui n'inclut pas d'étape de modélisation de l'évolution. Quelque part la modélisation est implicite dans le choix des caractères à coder. Mais tout-de-même, il a été montré plusieurs fois que la parcimonie peut se tromper très fortement lorsque l'évolution suit des chemins biscornus, par exemple avec certaines espèces qui évoluent beaucoup plus vite que d'autres, ou une divergence très forte dans les fréquences des caractères entre espèces, ou des changements dans l'état d'équilibre (vers quoi tend le système évolutif) dans le temps. Et donc avec plein plein de données mais une méthode que je qualifierais quand même de naive au sens méthodologique (je ne veux pas dire que les collègues soient naifs, mais plutôt que la méthode ne peut pas être élaborée de par sa nature même), j'ai peur qu'on trouve un résultat quelque part évident, un espèce d'image moyenne de tous les mammifères, qui est donc ce petit insectivore déjà prédit intuitivement par Simpson dans les années 1940.

Alors que les données moléculaires, qui ont le désavantage de ne pas avoir de fossiles, ont deux avantages pas utilisés du tout ici, mais dans l'étude discutée précédemment si : il y en a beaucoup beaucoup, donc puissance statistique même avec modèle complexe, et comme l'ADN c'est relativement simple et répétitif (les 4541 caractères morphologiques incluent des tailles, des formes, des présence-absence, etc ; l'ADN inclut quatre variants chimiques : A, C, G, T), on peut légitimement construire des modèles basés sur une abstraction du nucléotide. Avec ces modèles, on peut prendre en compte les vitesses d'évolution très différentes ou les changements d'état d'équilibre, et donc par exemple trouver que l'ancêtre commun était différent de la moyenne des espèces modernes (jolie démonstration ici).

Donc si l'évolution a inclus un ancêtre common gros rustre, puis une évolution générale vers le plus petit avec perte des caractères morphologiques correspondant (genre survivire au monde Mad Maxien post-météorite géante), puis des opportunités pour re-grossir, un modèle suffisamment complexe nourri de suffisamment de données pourra retrouver cela avec du bol, mais une reconstuction parcimonieuse, non.

Et l'age pas si ancien ? Comme je le disais, je n'ai pas tout regardé en détail, mais il semble qu'ils utilisent les fossiles comme dates absolues, alors qu'un fossile ne donne que l'age minimum d'une espèce : s'il y a un fossile de 50 millions d'années, l'espèce devait exister il y a 50 millions d'années, mais elle pouvait exister plus tôt et on n'a pas de fossiles. Si je me trompe corrigez-moi (discussion intéressante en anglais sur le blog WhyEvolutionIsTrue; voir aussi ce commentaire). Mais surtout, ces fossiles ont été placés dans l'arbre (de parcimonie) par parcimonie. Ergo, tous les problèmes ci-dessus s'appliquent.

Ne me faites pas dire ce que je n'ai pas dit : j'adore les fossiles et les paléontologues. C'est uniquement de cette manière que l'on peut connaître énormément de points du passé. Mais il me semble que parfois les morphologistes ont tendance à se comporter comme les personnes du mythe de la caverne : ils commentent à l'envi les formes qui sont des produits du matériel héréditaire, quand ils veulent connaître l'histoire du matériel héréditaire. Ouvrez les yeux ! Sortez ! Depuis plus de 20 ans, on a accès directement au matériel héréditaire ! Donc quand on veut connaître cette histoire-là, faisons-le directement. Je maintiens que la phylogénie moléculaire est largement supérieure à la phylogénie morphologique, pour les raisons méthodologiqus citées ci-dessus, et parce que l'on mesure directement ce qui nous intéresse. Maintenant pour ce qui est de l'évolution de la forme, c'est l'inverse. Dans les gènes on ne voit que des indices, et c'est la forme des fossiles qui nous informe réellement sur à quoi qu'ils ressemblaient nos beaux ancêtres. Pas beau ça ?

vendredi 8 février 2013

Doit-on montrer le code informatique des scientifiques même s'il est moche ?

[caption id="attachment_631" align="aligncenter" width="103"] cliquez sur l'image (puis laissez la souris au-dessus de l'image pour voir le texte alternatif) (et si vous riez, vous êtes un affreux geek)[/caption]

En science on écrit beaucoup de code informatique. On écrit de gros programmes pour traiter plein de données (génomique, résultats du CERN), d'autres gros programmes pour simuler de gros modèles pour quand la réalité est complexe (le climat, les populations humaines), encore des gros programmes pour traiter des données compliquées (des structures cristallographiques). Et on écrit des petits programmes tout le temps : pour lier les gros entre eux, pour mettre les données au bon format, pour faire un petit calcul pas standard dans le logiciel, pour répéter une opération simple plein de fois, etc. (Je précise qu'il existe aussi des scientifiques qui ne programment pas. Il n'est pas question d'eux aujourd'hui.)

Au bilan, la qualité et la fiabilité de nos résultats scientifiques dépendent pas mal de tout ce code.

Et qu'est qu'on en fait, le plus souvent ? On l'écrit vite et mal, on le teste à peine, on ne le commente pas, et on le paume quelque part dans un sous-dossier de notre disque dur. La honte.

Une excellente analogie que j'ai trouvée récemment (document PDF) : peut-on imaginer que les mathématiciens publient leurs théorèmes sans montrer les preuves, parce que c'est du boulot de les mettre en forme, parce que chaque preuve est particulière à un problème et pas très utile ailleurs, c'est plus rentable de travailler sur un nouveau problème que de polir cette preuve pour publication, en fait ma preuve ne marche pas dans tous les cas mais dans le cas qui m'intéresse ça marchait, en fait c'est mon étudiant qui a fait la preuve et je ne l'ai plus, la preuve va me re-servir pour d'autres théorèmes alors je ne vais pas la donner à mes compétiteurs, les papiers avec des preuves seraient trop longs et les experts ne vont pas s'embéter à lire tout ça, ma preuve s'appuie sur un logiciel commercial (genre MatLab), vous pourrez pas vous en servir, etc.

Pour de vrai, les mathématicens publient leurs preuves, mais les scientifiques ne publient pas leur (notre) code, et nos arguments sont à-peu-près ceux ci-dessus.

Le point qui fait le plus débat est le compromis entre le travail nécessaire à rendre son code informatique présentable, et la pertinence de publier du code "sale". Ca fait longtemps que j'ai ce billet en brouillon et je veux le publier et je ne vais pas réussir à écrire tout ce que je voudrais, alors je vais mettre quelques liens intéressants avec des résumés :

  • Iddo Friedberg a fait un excellent bilan sur son blog Byte Size Biology, avec une analogie très drôle au film "Piranha 3D", et conclut qu'en l'état il n'a pas les moyens de faire du code propre, et ne veut pas partager du code pas propre, mais propose une nouvelle initiative, le Bioinformatic Testing Consortium,

  • Dans Nature, un article Publish your computer code: it is good enough argue que même si le code n'est pas beau ni propre ni aux règles, il faut le publier, ça fait partie de la démarche scientifique.

  • Un autre article dans Nature, Computational science: ...Error, prends plus ou moins l'angle inverse, et dit qu'il faut former tous les scientifiques au génie logiciel propre.

  • Un blog anonyme réagit à Iddo en disant que le but de la science n'est pas des logiciels, et donc des tests systématiques ne sont pas justifiés.

  • Un autre bloguer, Titus Brown, donne de bonnes raisons pour écrire du code proprement en respectant les règles, et donne de bons conseils pour le faire efficacement. Super citation de Darwin :
    "Ignorance more frequently begets confidence than does knowledge"


  • Sur le forum Biostar, un bioinformaticien anonyme dit que de documenter et publier son code est du même ordre de grandeur que de noter ses procédures expérimentales : indispensable. (LOLcat si vous suivez le lien)

  • John Graham-Cumming note que le problème se pose avec encore plus de force dans l'étude du climat, où l'obscurité des méthodes devient un argument politique.


Un gros problème est qu'en science on doit souvent écrire du code pour des projets qui se développent au fur et à mesure, sans savoir où on sera demain, et quel bout de code finira inutile et lequel produira le résultat critique pour la suite, voire lequel servira de base à une nouvelle méthode utilisée par ses collègues. Le fait est que dans la plupart des cas le code est vite fait - mal fait.

Il s'ajoute un autre problème : on a beau vous expliquer que si vous programmez proprement vous gagnerez du temps sur le long terme gnagnagna, vous souci premier est toujours d'obtenir le résultat. Alors on revient à #overlyhonestmethods, on fait souvent ce qu'il faut pour avancer, à coups de rubban adhésif. Mais publier son code, c'est pas un peu mettre #overlyhonestmethods dans ses articles officiels ?

A quoi je répondrais qu'il faut qu'on y passe. Trop de nos résultats sont dépendants de notre code pour le cacher. Et l'effort fait aujourd'hui payera demain, avec un code mieux débuggé et plus efficace même pour nous, avec plus de facilité à retrouver ce qu'on a fait dans 5 ans quand on aura tout oublié mais que l'article sera toujours là avec son code à-peu-près propre. Oui à-peu-près parce que je pense que pour que ça marche il faut accepter qu'on ne va généralement pas avoir du code informatique de qualité professionnelle.

Alors en pratique que faire ? Demander aux journaux scientifiques de demander le code, le demander en tant qu'expert ; publier son propre code (un peu tard pour moi, je fous plus rien en programmation) ; demander à ses collègues et étudiants de publier le leur (grosse résistance en vue) ; former les étudiants a minima à la programmation propre ; participer à des initiatives comme celle d'Iddo. Et espérer que les attitudes vont changer.

Mise à jour : @JeanFred nous signale l'existence du Science code manifesto, par le Climate Code Foundation, qui traite de ces mêmes questions.