Digispec : numérisation d'électrophorèses (spectres électrophorétiques)

Soyez le premier à donner votre avis sur cette source.

Vue 12 660 fois - Téléchargée 912 fois

Description

L'électrophorèse est une technique d'analyse chimique qui repose sur la séparation des constituants d'un mélange par un courant électrique. La séparation se fait sur un support plat (genre feuille de cellophane, mais bien sur le support est adapté au mélange à étudier). Les produits, une fois séparés, sont colorés et on voit apparaître des bandes dont l'intensité de coloration renseigne sur la quantité de chaque composant du mélange.
Le logiciel DigiSpec permet d'obtenir une suite de valeur numériques correspondant aux différentes bandes, ces valeurs, une fois traitées, permettent de calculer la composition du mélange analysé.
Principe:
- à l'aide d'un scanner ou d'un appareil photo, il faut créer un fichier image (format BMP)
- l'image est chargée dans DigiSpec
- l'expérimentateur définit le profil à analyser à l'aide de la souris (capture d'écran)
- DigiSpec crée un fichier texte qui peut alors être importé dans un tableur grapheur pour traitement.

Source / Exemple :


Le code est dans le ZIP.
Dans le ZIP, il y a aussi des images exemples :
- 2EL-OEF1.bmp : exemple pris sur le site de Didier Pol
- 2EL-OEF1.txt : fichier obtenu avec digispec
- 2EL-OEF1.xls : le même fichier importé dans Excel
et Ô sacrilège, j'ai aussi mis l'exe... totu simplement parce que certains peuvent vouloir seulement utiliser l'outil sans avoir à recompiler ou à laisser tomber parce qu'ils n'ont pas la bonne version de Delphi (combien de sources ai-je en vain tenté de faire tourner avec mon Delphi 5 et du renoncer parce qu'elles avaient été écrites avec une version plus récnte ou faisaient appel à des composants exotiques !).
Pour ceux (et je les espère nombreux) qui voudront savoir comment ça marche, j'ai essayé de commenter, mais...
En fait la seule ligne vraiment utile est 
                            "Couleur := GetPixel(Form1.Image1.canvas.Handle, X,Y);"
dans la boucle de numérisation de la fiche principale, mais que de code à écrire tout autour pour la rendre utilisable!

Conclusion :


Ce logiciel a été réalisé très rapidement pour des besoins purement didactiques, il auait pu être perfectionné pour intégrer toutes les fonctions du scan jusqu'au traitement, mais ça prenait du temps et nécessitait de réécrire des fontions qui existent déjà dans des logiciels qui font ça très bien. J'aurais pu aussi intégrer un transfert direct (par OLE) dans le tableur, mais je n'ai pas réussi à comprendre comment ça marchait.
- je réalise les scans à l'aide de Paint Shop Pro (la version 4 a été offerte par une revue... et en cherchant bien on peut encore la télécharger librement sur le Web)
- les calculs sont faits avec Excel, mais Open Office Calc doit très bien le faire aussi.
Maintenant, si vous voulez l'outil qui fait tout ça, rendez-vous sur le site de l'académie d'Amiens et téléchargez Mesurim, l'excellent logiciel de mon honorable collègue Jean-François MADRE. Il a eu la patience de tout coder et de tout intégrer et en plus il fait de nouvelles versions. Mais si vous voulez des modificatiopns ou savoir comment il marche, voyez avec l'auteur; par contre, ici vous êtes sur CodeS-SourceS.com: il n'y a rien à demander, tout est donné !

Au fait: je l'ai fait pour numériser des électrophorèses, mais on peut numériser n'importe quelle image présentant des bandes style "code barre" (genre empreintes génétiques par exemple) ou encore chromatographie, spectre d'émission ou d'absorption...

J'adresse mes remerciements à Didier Pol qui m'a demandé de faire ce programme... et donc donné l'idée d'un truc simple et utile, et qui a mis un lien sur son site.

Codes Sources

Ajouter un commentaire Commentaires
PhilLU Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
28 août 2007 à 19:05
Merci Globus56!
J'utilise Delphi7 pro,
je teste ça ce soir et te dis quoi,
encore merci,
PhilLu
Globus56 Messages postés 7 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 27 août 2007
27 août 2007 à 23:25
Bonsoir,

Je compile avec Delphi5, les erreurs signalées viennent sans doute de modifications faites par Borland dans les versions suivantes... OleAuto est une unité fournie en standard avec Delphi5, si tu as une autre version de Delphi... soit elle n'existait pas dans les versions antérieures, soit elle a changé de nom dans les versions suivantes... Il faudrait donc reprendre la doc de votre version de Delphi pour voir, mais j'ai bien écrit "il faudrait" car en fait je n'ai jamais pris le tmeps de mettre au point la liaison OLE destinée à envoyer les données directement dane Excel (nécessité de se taper la doc Microsoft, pas vraiment accessible), vous pouvez donc supprimer le code correspondant, soit
- l'item du menu "Exporter dans Excel"
- la procédure correspondante: "TForm1.Exporter1Click" qui de toutes façons ne marche pas.
Pour la seconde erreur, là je ne vois vraiment pas car TAction est un type énuméré déclaré dans l'interface de l'unité principale... si maintenant on n'a plus le droit de déclarer des types en Delphi, où va le monde? Bon, évidemment, le type est utilisé pour déclarer une variable globale ce qui n'est pas joli-joli, mais c'est quand même permis! Pour avancer, il faudrait savoir à quel endroit du code se trouve l'erreur (normalement, le compilateur affiche la ligne fautive) et essayer de comprendre là où ça coince. Attention, la variable globale s'appelle Action_ vérifiez que le "_" se trouve bien partout sauf dans la ligne "procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);" où justement Action (sans "_") est d'un type descendant de TBasicAction.

Merci de vos messages et n'hésitez pas à y revenir si ça ne marche toujours pas. Bon courage pour la programmation Delphi.

F.Borie (Globus56)
PhilLU Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
27 août 2007 à 18:33
... ensuite la compil me retourne l'erreur:
Incompatible types: TBasicAction and TAction
???
Merci pour votre aide!
A+
Phil.
PhilLU Messages postés 251 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 11 mai 2021
27 août 2007 à 18:19
Bonjour,
j'essaie de compiler digispec, mais je reçois le code d'erreur :
File not found: OleAuto.dcu
qui peux m'aider?
A+
PhilLu.
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
22 févr. 2007 à 11:44
c'est les programmes originaux qui sont rare ... alors la moindre des choses c'est d'aller saluer l'auteur :)

sincerement pour les constantes, je ne les utilises meme plus, sauf quand il faut definir des parametres.

les constantes typées affectable, c'est carrement obsolete de les utiliser ... ça sert a rien sauf a faire galerer le compilo.
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.