Il existe pas mal de logiciel pour faire ça, notamment des interfaces graphiques disponibles sur internet mais les logiciels les plus performants fonctionnement généralement par lignes de commandes.
Je ne suis vraiment pas un expert en lignes de commandes, mais bon, généralement, je suis capables de suivre les instructions qu'on me dit, tout du moins refaire les exemples pour ensuite adapter ça à mon problème.
Sauf que voilà, un des logiciels que je souhaite utiliser s'appelle PriMux (disponible ici : http://sourceforge.net/projects/primux/). Le logiciel tourne en parti avec des ligne de commandes (des scripts Perl) et une partie sur un logiciel bioinformatique appelé R (qui tourne aussi en ligne de commande), et va lire des fichiers de types ".fasta" (un format habituel en bioinformatique qui contient des séquences et qui commence par un ">").
Sauf que voilà, quand j'essaie de refaire les exemples pour voir si le logiciel tourne, je me retrouve face à plusieurs obstacles. Le premier, pour l'installation, il est nécessaire dans un premier temps d'installer un autre logiciel qui s'appelle Vmatch et mkvtree (existant uniquement pour Linux et Windows, pour le télécharger, il faut envoyer un mail au créateur du logiciel pour le télécharger et obtenir une licence, ce que j'ai obtenu aujourd'hui) en les mettant dans le Path de PriMux, donc si je comprends bien, en mettant les fichiers qu'on obtient directement dans le dossier PriMux.
Il faut ensuite créer les variables d'environnement en exécutant les commandes suivantes :
Après recherche, la fonction setenv[/i} ne semble pas être disponible sur le terminal de Mac OS X. Tout du moins, un "man setenv, montre qu'il existe mais quand je fais la commande sur mon terminal, il me dit qu'elle n'existe pas. Par contre, avec export, je n'options pas d'erreur, donc il semblerait que ce soit bon. Mais en même temps, je n'ai pas de confirmation que la commande est bien passée, donc je n'ai pas non plus moyen de vérifié que c'est bon.setenv PRIMUX_DIR $HOME/primux
setenv LD_LIBRARY_PATH $PRIMUX_DIR/bin
setenv UNAFOLDDAT $PRIMUX_DIR/src/unafold_data
-- or --
export PRIMUX_DIR=$HOME/primux
export LD_LIBRARY_PATH=$PRIMUX_DIR/bin
export UNAFOLDDAT=$PRIMUX_DIR/src/unafold_data
Donc première question : Est-ce que jusqu'ici je fais quelque chose de mal ou pas ?
Disons que c'est bon et que je peux passer à la suite du programme, qu'on active comme ça :
$PRIMUX_DIR/run_Primux -d Results -f sequences.fasta -P options_primers -p options_probes -g 1 -c 1
où
-d <path_to_output_directory>
-f <path_to_fasta_input>
-P <path_to_primer_options_file> (capital P for primer options)
-p <path_to_probe_options_file> (lower case p for probe options)
-c <0|1>
-g <0|1>
Sauf que voilà, quand je reprends mot à mot l'exemple qu'ils donnent dans le readme
(la dernière partie | & tee log.stdout ne la comprenant pas je l'ai exclu de la commande et en donnant bien les bons chemins pour les -d Results, etc), j'obtiens ça :$PRIMUX_DIR/run_Primux -d Results -f sequences.fasta -P options_primers -p options_probes -g 1 -c 1 | & tee log.stdout
Near:Example_run_Primux Near$ /Users/Near/Desktop/primux/run_Primux -d /Users/Near/Desktop/primux/Example_run_Primux/Results -f /Users/Near/Desktop/primux/Example_run_Primux/sequences.fasta -P /Users/Near/Desktop/primux/Example_run_Primux/options_primers -p /Users/Near/Desktop/primux/Example_run_Primux/options_probes -g 1 -c 1
The home directory is /Users/Near/Desktop/primux/Example_run_Primux
/Users/Near/Desktop/primux/Example_run_Primux/sequences.fasta
run_Primux, calling: cd /Users/Near/Desktop/primux/Example_run_Primux/Results
/Users/Near/primux/bin/prep_fasta_file.pl: Command not found.
/Users/Near/primux/bin/runme2.py: Command not found.
result_dir=results
Finished finding primers with runme2.py
pre=
Done running find_amplicons.pl
/Users/Near/Desktop/primux/Example_run_Primux/Results/results
foreach: No match.
Pourtant, toutes les commandes non trouvées sont bien présentes dans le fichier bin.
Bref : Les questions sont les suivantes :
Le problème vient-il du faite que je tente de lancer les logiciels sur mac alors qu'ils sont spécifiques pour Linux et si non, où est-ce que je me plante ?
Un autre programme (celui que je veux vraiment lancer) fonctionne exactement de la même façon sauf que lui quand je tente de le lancer, il me dit qu'il y a une erreur dans le fichier perl (que je n'ai jamais modifié), mais déjà, si vous arrivez à voir où est le problème dans le premier logiciel, ce sera je pense déjà pas mal.
Je sais pas trop si j'ai été clair. J'ai essayé d'être le plus spécifique possible.