Frequently Asked Questions

Applications bioinformatiques (0)

Compilation d'un ensemble de liens et FAQ sur les principales applications bioinformatiques de la plateforme migale.

Format de fichiers de séquences (3)

Une séquence au format FASTA commence par une ligne de titre (nom, définition ...), suivie par les lignes de la séquence. La ligne de titre se distingue de la séquence par un symbole plus grand que (">") en début de ligne. La longueur de cette ligne ne doit pas excéder 200 caractères. Il est recommandé de mettre la séquence sous forme de lignes de 80 caractères maximum. Un exemple de séquence au format fasta :


>gi|532319|pir|TVFV2E|TVFV2E envelope protein
ELRLRYCAPAGFALLKCNDADYDGFKTNCSNVSVVHCTNLMNTTVTTGLLLNGSYSENRT
QIWQKHRTSNDSALILLNKHYNLTVTCKRPGNKTVLPVTIMAGLVFHSQKYNLRLRQAWC
HFPSNWKGAWKEVKEEIVNLPKERYRGTNDPKRIFFQRQWGDPETANLWFNCHGEFFYCK
MDWFLNYLNNLTVDADHNECKNTSGTKSGNKRAPGPCVQRTYVACHIRSVIIWLETISKK
TYAPPREGHLECTSTVTGMTVELNYIPKNRTNVTLSPQIESIWAAELDRYKLVEITPIGF
APTEVRRYTGGHERQKRVPFVXXXXXXXXXXXXXXXXXXXXXXVQSQHLLAGILQQQKNL
LAAVEAQQQMLKLTIWGVK

Le format GFF est un format de fichier pour stocker des features génomiques dans un fichier texte. GFF signifie Generic Feature Format.
Les fichiers GFF sont des fichiers tabulés de 9 colonnes contenant du texte simple.
Les bases de données GFF existent aussi. Elles utilisent un schéma construit pour représenter les données GFF.
GFF est fréquemment utilisé dans GMOD pour l' échange de données et la représentation de données génomiques.

Voici un exemple de fichier GFF3 miniature :


##gff-version 3
ctg123 . exon 1300 1500 . + . ID=exon00001
ctg123 . exon 1050 1500 . + . ID=exon00002
ctg123 . exon 3000 3902 . + . ID=exon00003
ctg123 . exon 5000 5500 . + . ID=exon00004
ctg123 . exon 7000 9000 . + . ID=exon00005

Le format GenBank contient des mots clés et des sous clés et une table de caractéristique optionnelle, la fiche d’information se termine toujours par //.
A titre d’exemple le mot clé LOCUS introduit une étiquette, ainsi que des informations concernant la longueur de la séquence donnée en bp (base pair), le type de la séquence, la division, sa date d`émission.

Voici un exemple du format Genbank:

LOCUS HSIGVH221 682 bp DNA linear PRI 30-OCT-1995
DEFINITION H.sapiens germline immunoglobulin heavy chain, variable region,
(22-1).
ACCESSION X92210
VERSION X92210.1 GI:1045093
KEYWORDS germ line; immunoglobulin.
SOURCE Homo sapiens (human)
ORGANISM Homo sapiens
Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
Mammalia; Eutheria; Primates; Catarrhini; Hominidae; Homo.
REFERENCE 1 (bases 1 to 682)
AUTHORS Berman,J.E., Mellis,S.J., Pollock,R., Smith,C.L., Suh,H.,
Heinke,B., Kowal,C., Surti,U., Chess,L., Cantor,C.R. and Alt,F.W.
TITLE Content and organization of the human Ig VH locus: definition of
three new VH families and linkage to the Ig CH locus
JOURNAL EMBO J. 7 (3), 727-738 (1988)
MEDLINE 88283641
PUBMED 3396540
FEATURES Location/Qualifiers
source 1..682
/organism="Homo sapiens"
/db_xref="taxon:9606"
BASE COUNT 178 a 156 c 147 g 198 t 3 others
ORIGIN
1 cgaccgtctg catctcactc ttgttaggct gatgtgtcat ttatcttccc tttcttatca
61 tggattgggc tttgagctaa gaaaggcttt gtctctatga atatgcaaat atactgatat
121 ccactgaggt aaatatgttc tgtgccctga gagaatcacc tgagagaatc ccctgagagc
181 acatctcctc atgggctgga cctgcaagnt cctcttcttg gtggcagcag ccacaggtaa
241 gcagttccca ggtccaagta atgaggaggg gattgagtcc agtcaagggg gctttcatcc
301 actcctgtgt cctccccaca ggtgcccact cccaggtgca gctggtgcaa tctggggctg
361 aggtgaagaa gcctggggcc tcagtgaagg tctcctgcaa ggcttctgga tacaccttca
421 cctactgcta cttgcactgg gtacgacagg cccttggana agggcttgaa tggacaggan
481 tttagttatt tgagagattt ttcatacaac atttattctg taagcaaatt tcagggattg
541 tagaatgaat cacattaaca aatctgacac agaacttcct ctgaatcaat ctttgtaaac
601 atcaatttcc gaatcaatgt tgtaaatatt tcagaacaca agcacaaatt cacattttaa
661 ctctactttt atctctattt aa
//

Applications et Suites logicielles (0)

BLAST (3)

Cette FAQ regroupe les principales questions sur BLAST.

Cela se fait en deux étapes.

Étape 1 :Construire un index des séquences avec la commande formatdb

Sur le fichier contenant toutes les séquences de votre banque au format FASTA (disons : mes_sequences_banque.fasta)

formatdb -i mes_sequences_banque.fasta

Si tout se passe bien, trois fichiers sont générés : mes_sequences_banque.fasta.phr, mes_sequences_banque.fasta.pin et mes_sequences_banque.fasta.psq.

Étape 2 :Utilisation de cette nouvelle banque avec la commande blastpgp

Sur le fichier contenant toutes vos séquences requêtes au format FASTA (disons : mes_sequences_requetes.fasta)

blastpgp -d mes_sequences_banque.fasta -i mes_sequences_requetes.fasta

Note : dans cette dernière commande, le nom "mes_sequences_banque.fasta" ne correspond pas au fichier lui-même, mais au nom commun aux 3 fichiers générés dans l'étape 1. Le fichier banque au format fasta n'est pas utilisé par BLAST.

Vous trouverez l'explication de l'erreur dans le fichier

blastpgp.log
ou
rpsblast.log

qui se trouve dans le repertoire à partir duquel vous avez lancé la commande.

Cf. la réponse à la question "Comment utiliser BLAST sur ma propre banque de données ?".

EMBOSS (5)

Cette FAQ regroupe les principales question liées à l'application EMBOSS.

Créer une liste comme l'exemple ci-dessous :

emacs maliste

genpept:41387648


genpept:10180754

uniprot_trembl:Q782P5_9ALPH

Pour utiliser la liste ajouter @ devant le nom de la liste :

fuzzpro @maliste -pattern GRGSTLGLDIETATRA

Voici un extrait d'un échange sur la liste emboss qui peut nous être utile :

Subject: Re: [EMBOSS] question about 'fuzznuc'and 'fuzzpro'
> I know I can give a pattern like 'ACCGGT' and search against a file which contains multiple sequences. Is there a way I can specify 
> a 'pattern file' which contains multiple patterns that I want to search for instead of just one pattern each time? For example, I have
> a fileA which contains multiple DNA sequences. I want to create a fileB which contains 20 patterns that I want to seach each of them
> against the sequences in the fileA. We are in the transition from GCG to EMBOSS. And the program 'findpatterns' in GCG can do this.
> But I couldn't find corresponding emboss program that does the same thing.

New in EMBOSS 4.0.0, contributed by Henrikki Almusa of Medicel in Helsinki.

fuzznuc (and fuzzpro and fuzztran) now can read in a file of patterns with the commandline syntax:
fuzznuc @patternfile

You can also use @patternfile in response to the prompt for a pattern.
Here is an example pattern file with FASTA-style IDs and mismatch counts for each pattern:
>pat1
cggccctaaccctagcccta
>pat2 <mismatch=1>
cg(2)c(3)taac
cctagc(3)ta
>pat3
cggc{2,4}taac{2,5}

Here is a file with just the second pattern, and no name (it will default to pattern1
cg(2)c(3)taac
cctagc(3)ta

You can set a default name with -pname and a default mismatch with -pmismatch
I note we could document this better in the fuzz* program manual entries. We will do for the 4.1 release.

seqret uniprot:Q12345 -osdbname UNIPROT

seqret uniprot:Q12345 seqret uniprot:Q12345 -osdbname UNIPROT
>IES3_YEAST Q12345 Ino eighty subunit 3.
MKFEDLLATNKQVQFAHAATQHYKSVKTPDFLE...
>UNIPROT:IES3_YEAST Q12345 Ino eighty subunit 3.
MKFEDLLATNKQVQFAHAATQHYKSVKTPDFLE...

Il faut utiliser le programme whichdb.
Exemple ci-dessous avec comme numéro d'accession AC188948 :

whichdb

AC188948
Output file [outfile.whichdb]:
Warning: Cannot open division file '' for database 'gb_env'
Warning: seqCdQry failed
Warning: Cannot open division file '' for database 'PROSITE'
Warning: seqCdQry failed
Warning: Cannot open division file '' for database 'REBASE'
Warning: seqCdQry failed


Vous obtenez ainsi le fichier outfile.whichdb :
more outfile.whichdb
gb_vrt:AC188948
genbank:AC188948
nt:AC188948

Avec la version 3.0.0 je pouvais exécuter cette commande : CODERET

coderet -translation -nocds -nomrna -seqall mes_sequences.seq -outseq mes_sequences.fastap -outfile toto

maintenant avec la version 4.0.0 j'obtiens le message d'erreur suivant :
Died: Unknown qualifier -outseq

Attention la commande coderet ne possède plus tout à fait les mêmes arguments. La nouvelle commande est :

coderet -seqall mes_sequences.seq -translationoutseq mes_sequences.fastap -nocds -nomrna -outfile toto

Rappel : pour avoir de l'aide en ligne de commande, coderet -help ou coderet -help -verbose ou bien sur le site http://genome.jouy.inra.fr/doc/genome/suite-logicielle/emboss-4.0.0/html/emboss/apps/

Outils statistiques (2)

En lancant la commande d'aide comme indiqué help.start() on obtient le message d'erreur suivant, ainsi qu'une fenêtre indiquant que votre navigateur est deja ouvert :

> help.start()
Making links in per-session dir ...
If '/usr/local/public/bin/firefox' is already running, it is *not* restarted, and
you must switch to its window.
Otherwise, be patient...> Error: No running window found

Une solution possible est de taper cette commande afin d'ouvrir un autre navigateur que celui que vous utilisez habituellement, comme par exemple :

> help.start(browser="mozilla")

Ci dessous, une remarque supplémentaire apportée par un utilisateur.

"Si le navigateur demandé ne se lance pas alors qu'aucun n'est ouvert, de vérifier la présence sous l'arborescence du user ~/.mozilla/firefox/repd'indentification/, si les fichiers lock et .parentlock, le .point étant important, existent ou pas, auquel cas les supprimer."

Lancer la commande suivante (attention les majuscules sont nécessaires) :

[topaze] R CMD BATCH votre_programme_R

Galaxy (0)

Authentification (1)

Le portail Galaxy de la plateforme Migale est accessible à l'URL suivante : http://migale.jouy.inra.fr/galaxy.

Afin de vous y connecter, il est nécessaire d'avoir un compte sur la plateforme Migale. Si vous n'en avez pas, il est possible d'en faire la demande via le formulaire mis à votre disposition à l'URL suivante : http://migale.jouy.inra.fr/?q=demande-compte.

Si vous rencontrez un problème, vous pouvez nous contacter via galaxy-help@jouy.inra.fr.

Scripting & Développement (0)

Langage Python (1)

Ici, on cherche la version du module optparse.

 #python
 Python 2.3.3 (#1, Feb 6 2004, 18:12:49)
 [GCC 3.2.2] on sunos5
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import optparse
 >>> optparse.__version__
 '1.4.1+'

Langage Perl (3)

Les fichiers seront sauvegardés avec l'extension .bak, ce qui permet de revenir en arrière.

 #perl -pi.bak -e 's#ATTCTT#GGTAT#g' *.seq

Il existe à minima 2 modules permettant d'éxécuter du code R sans passer par des appels de type system() depuis un programme PERL. Le premier RSperl n'est pas encore installé sur migale. Le second, Statistics::R, dont on trouvera un exemple ci-desous permet de répondre à certains besoins.

 #!/usr/bin/perl -w
 
 #CALCUL DE LA BINOMIALE SOUS R A PARTIR DE PERL
 use strict;
 use Statistics::R;
 
 my ($R, $var, @out);
 $R=Statistics::R->new();
 $R->startR;
 
 # taper q pour 1 commande, et qq pour deux commandes,
 # bien noter les guillemets à l'envers,
 # faire le print dans R si on veut récupérer la sortie
 $R->send(qq`x=pbinom(4, 9, 0.5) \n print(x)`);
 
 # read récupère la dernière sortie de R
 @out=split(/ /,$R->read);

 # dans mon cas la ligne R commence par [1],
 # d'où le besoin du splitprint "ici $out[1] \n";
 # et on peut même passer des variables en arguments dans R
 $var=9;
 $R->send(qq`x=pbinom(5, $var, 0.5) \n print(x)`);
 @out=split(/ /,$R->read);
 print "la $out[1] \n";
 $R->stopR();

Commandes Shell (1)

La chaîne adm3 sera substituée à la chaîne adm dans tous les fichiers *.html depuis le répertoire courant.

 #find . -name \*.html -exec perl -pi -e 's/adm/adm3/' \{} \;

Migale (0)

Archivage de données (2)

La commande "tar" permet d'archiver plusieurs fichiers ou tout le contenu d'un dossier (répertoire), en un seul fichier unique.

Exemple :

tar zvcf mon_archive.tar.gz mon_dossier_a_archiver

Dans cet exemple l'archive est également compressée (gzip). Par convention on note .tar pour signaler qu'il s'agit d'une archive et .gz pour indiquer que le fichier a été compressé avec gzip.

Ensuite vous pouvez supprimer le dossier mon_dossier_a_archiver.

Pour décompresser cette archive, il suffit de taper la commande suivante :

tar vxfz mon_archive.tar.gz

ainsi on retrouve l'intégralité du dossier mon_dossier_a_archiver que l'on avait précédemment (le dossier est recréé).

Usage

tar <operation> [options]

Operations :

-c = create -x = extract

Options :

-v = verbose -f = file -z = gzip

Et pour obtenir plus d'informations

man tar

L'augmentation constante de la volumétrie des données déposées sur la plateforme entraine une charge de plus en plus importante de la gestion des sauvegardes. Par conséquent dans un délai relativement court, il ne va plus être possible de sauvegarder l'ensemble de vos données. C'est pourquoi nous vous conseillons dans un premier temps d'archiver autant que possible vos répertoires.

Citation (1)

Les services de la plateforme MIGALE sont ouverts et accessibles sans compensation financière. Dans le cas où certains travaux utilisant des ressources de la plateforme (calcul, stockage, ressources humaines...) mèneraient à une publication scientifique, nous vous demandons en contrepartie de citer ou de remercier la plateforme dans les remerciements.

Nous proposons trois modèles de citations en fonction du contexte :

Citation générique


"We are grateful to the INRA MIGALE bioinformatics platform (http://migale.jouy.inra.fr) for providing help and support"

Utilisation des ressources de calcul


"We are grateful to the INRA MIGALE bioinformatics platform (http://migale.jouy.inra.fr) for providing computational resources"

Exemple pour un projet associant plus directement un ou des membres de la plateforme (mini-projet...)


"We are grateful to Martin V., Xxxxx Y. from the INRA MIGALE bioinformatics platform (http://migale.jouy.inra.fr) for providing help and support."

Généralités (2)

L'espace sur lequel vous essayez d'écrire est saturé. Voici la commande à utiliser pour vérifier ce point précis dans la plupart des cas de figures.

# df |grep 100%
diamant:/home/papha 61G 61G 145M 100% /home/papha diamant:/home/virim 81G 80G 137M 100% /home/virim

La seule solution consiste soit à supprimer des fichiers, soit à demander une augmentation de la volumétrie. Il faut noter qu'il s'agit d'un espace commun à l'ensemble de l'unité.

Migration Migale sous Linux (1)

Lors d'une connexion via le protocole SSH, un message d'erreur s'affiche au sujet d'un changement de clé SSH.
The RSA host key for topaze has changed, and the key for the according IP address 138.102.22.1
has a different value. This could either mean that DNS SPOOFING is happening
or the IP address for the host and its host key have changed at the same time.
Offending key for IP in
/home/urlga/meriem/.ssh/known_hosts:1


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
28:75:3b:84:3a:c3:d7:24:f7:a5:0f:e0:a2:a6:d7:79.
Please contact your system administrator.
Add correct host key in /Users/pierreboudinot/.ssh/known_hosts to get rid of this message.

Offending key in /Users/pierreboudinot/.ssh/known_hosts:2
RSA host key for 138.102.22.1 has changed and you have requested strict checking.
Host key verification failed.

Ce type de messages intervient le plus souvent après une mise à jour de la version de SSH sur le serveur. Il faut alors supprimer la ligne dont le numéro est indiqué dans le message d'erreur du fichier $HOME/.ssh/known_hosts
La suppression du fichier $HOME/.ssh/known_hosts peut aussi être une solution si l'on a pas accès à un éditeur de texte par exemple.
# rm -f $HOME/.ssh/known_hosts

Mot de passe (1)

Le changement s'opère en se connectant sur le serveur migale et en utilisant la commande "passwd" :

#> passwd

Entrez votre mot de passe actuel

#> Enter login(LDAP) password:

Taper votre nouveau mot de passe

#> New UNIX password:

Retaper votre nouveau mot de passe

#> Retype new UNIX password:

Le nouveau mot de passe est validé

#> passwd: all authentication tokens updated successfully.

Tutoriaux (1)

    • La dernière version installée sur la plateforme de BLAST 2.x


  • Logiciels pour se connecter à partir de Windows sur la plateforme
    • PUTTY : client Telnet/SSH en ligne de commande
    • CYGWIN : émulateur environnement complet Linux sous Windows

Gestionnaire de versions (1)

  • Introduction à CVS et un Mini HOWTO CVS en français rédigé par Antoine Marin.
  • Les nouveaux systèmes de gestion de version : CVS est en passe d'être remplacé par SubVersion bien sûr mais aussi par de nouveaux types de dépôts décentralisés. Cet exposé de S. Bortzmeyer dresse un état de l'art actuel des gestionnaires de versions.

Linux (3)

La commande sort permet de trier un fichier. L'option -n permet de trier des valeurs numériques. Pour prendre en compte les valeurs négatives il faut positionner la variable LC_ALL comme indiqué ci-dessous :

# export LC_ALL=C
# sort -n -r To_sort_forCC
0.3407
0.2838
0.1139
-0.0900
-0.2845

Le package Image Magick fournit des utilitaires de conversion, de visualisation, ... Il est nécessaire de disposer d'un serveur X comme CygWin si l'on travaille sous Windows :

 # display image.jpg

Vous trouverez ici un rappel des principales commandes Linux.

Bases de données (5)

Voici un lien vers la socumentation officielle : http://dev.mysql.com/doc/.

Voici quatre outils :

Vous trouverez une liste non exhaustive d'ouvrages intéressants à cette URL : http://migale.jouy.inra.fr/?q=ouvrages.

Vous trouverez des informations à ce sujet à l'URL suivante : http://www.postgresqlfr.org/temoignages:accueil.

Informations sur les versions de PostgreSQL :



Sortie le 15 mai 2014 de la version 9.4 beta1 Documentation, Download

Sortie le 9 septembre 2013 de la version 9.3 Annonce, Nouveautés , Release_Notes

La version 9.2 est disponible depuis Septembre 2012 Annonce, Notes de version

La version 9.1 beta2 est disponible depuis Juin 2011 Annonce, Documentation traduite

La version 9.0 est disponible depuis Septembre 2010 Annonce, Changements

La version 8.4 est disponible depuis Juillet 2009 Nouveautés --> arrêt du support Juillet 2014

Attention :Plus de support des versions 7.4 - 8.0 - 8.1 - 8.2 - 8.3

Pour des informations sur l'administration, le SQL, etc....Voir aussi le site http://wiki.inra.fr/wiki/bdtgv/ (identification avec login ldap national Inra).

Cluster (0)

Généralités (3)

Le cluster fonctionne avec un système de files d'attente basé sur la soumissions de jobs. Chaque file d'attente pointe sur une des ressources qui correspondent à des noeuds de calculs.

L'attribution des ressources se fait :
  - par slots (coeur dans un processeur ou core), si un utilisateur demande un job multithreadé, son quota sera aligné sur le nombre de slots demandé
  - par utilisation antérieure des ressources, c'est la politique de "Fair Share Policy" ou "politique de partage de tickets"

Comment sont définies les règles de priorités:
  - chaque utilisateur dispose du même crédit de ressources, l'ordre est calculé suivant ce qui a été consommé, sur une fenetre de temps de 7 jours
  - l'algorithme de calcul de planification "check" toutes les 15 secondes l'ensemble des jobs, qu'ils soient en "qwait" ou en "run"


Pour soumettre un job en mode batch, on utilise la commande qsub. Il suffit d'encapsuler la commande à lancer sur le cluster dans un un script.
  - Il faut préparer un fichier (script) contenant la (ou les) ligne(s) de commande
  - Vos fichiers de sortie doivent être impérativement dirigés vers l'espace disque de travail (migale:/projet/group/user)
  - Soumettre le job avec la commande de soumission (qsub)

En cliquant sur ce fichier sge_blast.sh, vous aurez un exemple de script commenté pour l'utilisation de BLAST. Un numéro apparaîtra après la soumission vous donnant le numéro que SGE lui a attribué. Cet identifiant peut vous servir pour supprimer votre job ou suivre son bon déroulement.

Il est également possible de se connecter en mode interactif via la commande qlogin , uniquement pour tester si sa configuration de lancement de job (librairies, script, environnement...) est correcte. Cela a pour avantage de ne pas devoir encapsuler le traitement dans un script. Vous ouvrez une session sur un des noeuds du cluster comme si vous étiez sur le serveur migale.

Voici quelques liens utiles :

C'est un moyen de paralléliser une application, cette méthode utilise uniquement les coeurs d'un noeud. Les communications entre processus sont rapides, mais on est limité en nombre de coeur utilisable. Les applications DOIVENT implémenter cette technologie pour fonctionner en mode thread.

Option pour utiliser l'environnement thread :

 -pe thread <nombre de coeur> -R y

Cette option va demander d'utiliser l'environnement thread avec un <nombre de coeur> déterminé sur un même noeud pour exécuter votre programme. L'option '-R y' réserve les coeurs au fur et a mesure qu'ils se libèrent.

La commande qhost vous permet de trouver le nombre de coeurs sur un noeud de calcul.

Programmes existant en thread (non exhaustif) : (en gras ceux disponibles sur la plateforme)

  • Blast : alignement de séquences
    Option : -a <nombre de coeurs>
    Remarque : il est plus efficace de découper en N jobs plutot que d'utiliser cette option.
  • TCoffee : alignement multiple de séquences
    Option : -n_core <nombre de coeurs>
    Remarque : contrairement aux autres logiciels il faut limiter TCOffee sinon par défaut il prend tous les coeurs disponibles sur la machine.
  • RepeatMasker : masquage de séquences répétées
    Option : -pa <nombre de coeurs>
  • Mira : assemblage de séquence
    Option : -GE:not=<nombre de coeurs>.
  • ProtTest : test de modèles statistiques pour les phylogénies a partir de séquences protéiques.

Batch (6)

Pour soumettre votre script.
qsub script.sh
Soumettre un job 10 fois.
qsub -t 1-10 job.sh
Soumettre des jobs sur la file par défaut. A charge pour SGE de soumettre le job sur un noeud de calcul disponible.
qsub -q long.q sge_blast.sh
Soumission sur un noeud particulier d'une file connue
qsub -q long.q@n46 sge_blast.sh
Soumettre un job sur un noeud particulier.
qsub -l hostname=n55 sge_clustal.sh
Dans un groupe de machines.
qsub -q "*@@allhosts" sge_blast.sh
Soumettre un job sur la file long.q mais sur les noeuds disposant du plus de mémoire. On utilise la ressource big_mem (ciblant les noeuds ayant plus de 8Go de mémoire RAM).
qsub -l big_mem -q long.q sge_blast.sh
Afficher les noeuds de calcul disponibles et leurs ressources.
qhost



Afficher les groupes de noeuds de calcul

qconf -shgrpl



Afficher l'état des files d'attente.

qstat
qstat -u "*"
qstat -f
qstat -g c


Afficher les jobs en attente pour l'utilisateur martin
qstat -u martin -s p



Afficher les jobs en cours de traitement pour l'utilisateur martin

qstat -u martin -s r


Afficher l'état d'un job en erreur (la ligne error peut indiquer la raison de non soumission si le job est en mode Eqw)
qstat -j 165432


Signification des flags sur l'état de la file issu de qstat -f.

a(larm), A(larm), C(alendar suspended), s(uspended), S(ubordinate), d(isabled), D(isabled), E(rror)
Supprimer le job numéro 12.
qdel 12
Supprimer tous les jobs de l'utilisateur dont le login est "martin".
qdel -u martin
Forcer la suppression du job numéro 12.
qdel -f 12

Par défaut tous les jobs ont la même priorité (0) dans une file. La
politique actuelle repose une modèle de partage (Fair Share Scheduling) qui équilibre la charge sur une fenêtre glissante de 7 jours.

Pour basculer les jobs d'un utilisateur de la file courante vers une nouvelle file (newshort.q)
qalter -u martin -q newshort.q 

Cannot execute binary file.

Vérifier que l'on a bien 
#! /bin/bash en première ligne du shell



Job XXXX (xxxx.sh) Aborted:
failed assumedly after job because:
job XXXX died through signal USR1 (10)
Vous avez soumis votre job à la queue short.q dont le temps d'execution est limitée à 4h. Celui-ci étant dépassé, le job a été tué par le gestionnaire de queue. 
Vous pouvez soumettre à nouveau votre job sur la queue long.q

Il y a 4 files principales sont : short.q, long.q, infinit.q, web.q


short.q
c'est la file par défaut si aucune option n'est demandée
elle doit être utilisée pour les jobs dont la durée d'exécution est inférieure à 12 h
limites : 43% des ressources totales soit 214 slots (coeurs, sur 496 actuels), 100 slots max par utilisateur.


long.q
elle est demandée par l'option -q long.q
elle doit être utilisée pour les jobs dont la durée d'exécution est inférieure à 5 jours
limites : 77% des ressources totales soit 362 slots, 150 slots max par utilisateur.


infinit.q
elle est demandée par l'option -q infinit.q
elle doit être utilisée pour les jobs dont la durée d'exécution est supérieure à 5 jours
limites : 23% des ressources totales soit 112 slots, 50 slots max par utilisateur.


web.q
elle est utilisée par les applications web demandant des ressources de calculs
limites : 7% des ressources totales soit 32 slots, elle est accessible uniquement à l'utilisateur apache

Qlogin (3)

Saisissez votre mot de passe MIGALE (compte étendu) après avoir lancé la commande qlogin.

 qlogin -q long.q
 Your job 1887417 ("QLOGIN") has been submitted
 waiting for interactive job to be scheduled ...
 Your interactive job 1887417 has been successfully scheduled.
 Establishing /opt/sge/qlog session to host n63 ...
 The authenticity of host 'n63 (192.168.1.63)' can't be established.
 RSA key fingerprint is 96:44:db:03:44:86:d7:fa:77:cd:59:99:99:d9:55:7c.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added 'n63,192.168.1.63' (RSA) to the list of known hosts.
 caron@n63's password:

Pour se déconnecter,

 exit
 Connection to n63 closed.
 /opt/sge/qlog exited with exit code 1

Avantages du mode interactif :

Simple, environnement identique à celui du serveur migale, performances améliorées par rapport à migale si ce dernier est chargé

Inconvénients du mode interactif :

Nécessité de laisser ouvert le terminal, utilisable que pour tester sa configuration avec quelques traitements simultanés (max ~ 3)

Utilisation du serveur Migale (3)

Une fois connecté sur le serveur migale, le changement de mot de passe s'effectue avec la commande passwd

Ce mot de passe doit être individuel, suffisamment complexe et d'une taille de 8 caractères minimum

bash$ passwd

Changing password for user stage01.

Changing password for stage01

(current) UNIX password:

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

 

Sous Windows, utilisez une application de transfert de fichiers comme WINSCP

Sous Linux, utilisez une des commandes suivantes:

Si XXX est votre identifiant 

la commande rsync pour un fichier:
rsync -av path_on_desktop/file.ext XXX@migale.jouy.inra.fr:/path_on_server/

la commande rsync pour un répertoire:
rsync -av path_on_desktop/directory XXX@migale.jouy.inra.fr:/path_on_server/

la commande scp pour un fichier:
scp path_on_desktop/file.ext XXX@migale.jouy.inra.fr:/path_on_server/

la commande scp pour un répertoire:
scp -r path_on_desktop/directory XXX@migale.jouy.inra.fr:/path_on_server/

 

La commande df (disk free) affiche des informations sur l’espace global sur un serveur à savoir la place utilisée et disponible

df -h /path_to_my_directory/

La commande du (disk usage) affiche les tailles des répertoires et sous-répertoires

du -sh /path_to_my_directory/
du -sh /path_to_my_directory/*

 

Utilisation du cluster de calcul (10)

1. Mode batch

Le mode batch permet de soumettre des jobs sur le cluster de calcul. Ils sont ainsi gérés par le scheduler qui va les dispatcher sur les noeuds en fonction des ressources demandées et des disponibilités. La commande qsub est dédiée à ce type de soumission.

2. Mode interactif

Le mode interactif permet de se connecter directement sur un noeud du cluster de calcul et de lancer le traitement sans passer par le scheduler. La commande qlogin est disponible pour se connecter sur un noeud. Par défaut, qlogin est paramétré pour se connecter sur un noeud de la file long.q. Pour spécifier un noeud particulier, il faut échapper la commande et spécifier le noeud souhaité de cette façon :

\qlogin -l hostname=n55

 

3. Pourquoi choisir l'un plus que l'autre ?

En utilisant le mode batch, c'est SGE qui prend en charge les jobs soumis. Vous pouvez alors vous déconnecter de migale, vos jobs tournent sur le cluster. Un job_id est attribué au job, facilitant le monitoring pendant ou après la fin de l'exécution du job.

Le mode interactif est pratique pour tester la configuration d'exécution de vos jobs. Cela permet de tester l'outil que vous allez utiliser, de vérifier les variables d'environnement... Par contre, une déconnexion de la session entraîne la fin des exécutions en cours. Ce mode n'est pas recommandé pour lancer des jobs complets car les ressources du noeud ne sont alors pas soumises à la réservation par SGE. Il se peut que les capacités en CPU ou en mémoire du noeud soient dépassées et provoquent un ralentissement voire un crash.

La commande qsub permet de lancer sur le cluster l'exécution de lignes de commande.

1. Première solution :

Il faut préparer un fichier (script) contenant la (ou les) ligne(s) de commande. En cliquant sur ce fichier sge_blast.sh, vous aurez un exemple de script commenté pour l'utilisation de BLAST. Un numéro apparaîtra après la soumission vous donnant le numéro que SGE lui a attribué. Cet identifiant peut vous servir pour supprimer votre job ou suivre son bon déroulement.

Pour soumettre le job, il suffit de lancer la commande :

qsub sge_blast.sh

De nombreuses options sont disponibles pour paramétrer la façon de soumettre un job (lien vers options). Si la commande est encapsulée dans un script, l'ajout de paramètres se fait en ajoutant une ligne de ce type :

# Export de toutes les variables d'environnement
#$ -V

2. Deuxième solution :

Il est également possible de lancer un job sans avoir besoin d'utiliser un script contenant la ligne de commande. Il s'agit de l'option -b y :

qsub -cwd -V -S /bin/bash -N myblast -b y "blastall -p blastp -i test_seq.fasta -o test_seq.blast -d /db/blast/nr80/nr80"

 

La commande qhost permet d'obtenir des informations sur les ressources disponibles :

Afficher les noeuds de calcul disponibles et leurs ressources.

qhost

Afficher les groupes de noeuds de calcul

qconf -shgrpl

Afficher l'état des files d'attente

qstat
qstat -u "*" 
qstat -f
qstat -g c

Voici quelques options de la commande qsub :

  • -b y <command> : permet de passer la commande à lancer directement dans la ligne de commande du qsub, sans utiliser un script
  • -N job_name : permet de donner un nom au job lancer
  • -o stdout : permet de spécifier le fichier de sortie standard du job
  • -e stderr : permet de spécifier le fichier de sortie d'erreur du job
  • -V : permet d'embarquer les variables d'environnement
  • -cwd : permet d'exécuter le job à partir du répertoire de lancement du job
  • -pe thread <int> : permet d'exécuter un processus sur 8 coeurs d'un même noeud
  • -R y : permet de réserver des ressources au fur et à mesure qu'elles se libèrent
  • -q <file> : permet de spécifier la file sur laquelle le job sera lancé
  • -t <int>-<int> : permet de lancer plusieurs fois un job (1-10 lancera 10 fois le job)

La commande qstat permet d'obtenir des informations sur les jobs en cours. Les informations de base disponibles sont :

  • le numéro du job (job-ID)
  • la priorité
  • le nom du job
  • l'utilisateur ayant lancé le job
  • l'état du job (r : running, t : ,qw : en attente, Eqw : en erreur...) Toutes les significations des codes ici
  • la date de soumission
  • la queue et le noeud utilisés
  • ...

 

Quelques options intéressantes :

  • -u user : permet de lister les jobs d'un user particulier
  • -u \* : permet de lister tous les jobs lancés sur le cluster
  • -j ID : permet d'obtenir des informations sur un job particulier

 

La commande qdel permet de supprimer des jobs soumis sur le cluster.

Pour supprimer un job particulier :

qdel job_id

Pour supprimer tous les jobs d'un user particulier :

qdel -u user

 

La commande qacct permet d'obtenir des informations sur un job en renseignant son identifiant.

qacct -j job_id

Vous obtenez des informations sur les ressources utilisées par le job, la file sur laquelle il a été soumis, le noeud, les dates de départ et de fin du job, le statut d'erreur...

Je lance actuellement un grand nombre de jobs simultanément, chacun à partir d'un répertoire différent.
 
Y aurait-il moyen de savoir dans qstat quel est le répertoire de travail du job (ou celui où il a été lancé) ?

 

Pour un job donné, dont vous connaissez le jobid avec un qstat, vous pouvez utiliser le paramètre -j pour obtenir toutes les informations le concernant. Le paramètre cwd vous donne le répertoire d’où il a été lancé.
 
Exemple :
 
qstat -u vloux
9532500 0.00006 qsub_job.s vloux       r     02/20/2017 17:05:57 infinit.q@n92                      1
9533286 0.00006 qsub_job.s vloux       r     02/20/2017 17:20:12 infinit.q@n43                      1
9536801 0.00006 qsub_job.s vloux       r     02/20/2017 18:42:12 infinit.q@n51                      1
9536804 0.00006 qsub_job.s vloux       r     02/20/2017 18:43:57 infinit.q@n92                      1
9536808 0.00006 qsub_job.s vloux       r     02/20/2017 18:48:42 infinit.q@n51                      1
9538412 0.00006 qsub_job.s vloux       r     02/22/2017 17:16:39 infinit.q@n46                      1
9538413 0.00006 qsub_job.s vloux       r     02/22/2017 17:16:54 infinit.q@n77                      1
 
 
 qstat -j 9532500|grep cwd
cwd:                        /projet/versailles/work/vloux/cartoeure/outputs/20170220-170551TIntZoneDateGausSplitIntZoneDist
 
Et pour systématiser sur l’ensemble de vos jobs :
qstat -u vloux|awk '{print $1}'|xargs -t -n 1  qstat -j |grep cwd

Un environnement parallèle est un moyen de paralléliser une application. Cette méthode utilise uniquement les coeurs d'un noeud. Les communications entre processus sont rapides, mais on est limité en nombre de coeur utilisable. Les applications DOIVENT implémenter cette technologie pour fonctionner en mode thread.

Exemple d'exécution sur 8 threads :

 -pe thread 8 -R y

Cette option va demander d'utiliser l'environnement thread avec un <nombre de coeur> déterminé sur un même noeud pour exécuter votre programme. L'option '-R y' réserve les coeurs au fur et a mesure qu'ils se libèrent.

La commande qhost vous permet de trouver le nombre de coeurs sur un noeud de calcul.

Les différentes queues disponibles et leurs spécificités sont détaillées ici.

Soumettre sur une queue particulière :

qsub -q long.q

Soumettre sur un noeud particulier d'une file connue :

qsub -q long.q@n46

Soumettre sur un noeud particulier :

qsub -l hostname=n55

Soumettre sur un groupe de machines :

qsub -q "*@@allhosts"

Soumettre sur des noeuds de la file long.q disposant de plus de 8 Go de mémoire :

qsub -l big_mem -q long.q

Utilisation du portail Galaxy (6)

Le portail Galaxy de la plateforme Migale est accessible à l'URL suivante : http://migale.jouy.inra.fr/galaxy.

Afin de vous y connecter, il est nécessaire d'avoir un compte sur la plateforme Migale. Si vous n'en avez pas, il est possible d'en faire la demande via le formulaire mis à votre disposition à l'URL suivante : http://migale.jouy.inra.fr/?q=demande-compte.

Si vous rencontrez un problème, vous pouvez nous contacter via galaxy-help@jouy.inra.fr.

L'interface Galaxy ne permet pas de télécharger des fichiers de taille supérieure à 2Go via l'upload traditionnel (outil "Upload File from your computer").

Plusieurs possibilités s'offrent donc à vous :

  • vos données sont accessibles via une URL : il vous suffit de mettre l'URL dans l'encadré "URL/Text:",
  • vos données sont accessibles via un serveur FTP : il vous suffit de mettre l'URL FTP dans l'encadré "URL/Text:".

Si ce sont des données personnelles non accessibles par le web, il faut les transférer sur notre serveur Migale dans votre espace de travail (exemple : /projet/ville/identifiant/).

Différents outils vous permettent de faire ceci facilement selon votre environnement :

Pour faire votre upload, vous n'utiliserez donc plus l'outil "Upload File from your computer" mais "Upload local File" où il faudra renseigner le chemin vers votre fichier dans "Path to file:" (exemple : /projet/ville/identifiant/file.fastq).

Remarques importantes :

  • les répertoires où se trouvent vos fichiers doivent être accessibles en lecture et exécution,
  • vos fichiers doivent être accessibles en lecture.

Pour toutes questions supplémentaires, veuillez contacter galaxy-help@jouy.inra.fr.

En premier lieu, il faut que votre fichier d'intérêt se trouve sur le serveur Migale. Si ce n'est pas le cas, différents outils vous permettent de faire ceci facilement selon votre environnement :

Remarques importantes :

  • les répertoires où se trouvent vos fichiers doivent être accessibles en lecture et exécution,
  • vos fichiers doivent être accessibles en lecture.

Voici deux manières de procéder pour vérifier et modifier les droits d'un fichier/d'un répertoire :

  • sous Linux :
    • la commande ls -l permet de voir les droits sur votre fichier/répertoire.
    • la commande chmod 755 fichier/répertoire permet de modifier les droits de manière correcte sur le fichier/répertoire. La commande chmod -R 755 répertoire permet de modifier les droits de manière correcte sur le répertoire ainsi que tous les sous-répertoires et fichiers contenus.
  • sous Windows via WinSCP
    • un clique droit sur votre fichier/répertoire ainsi que sur le menu Propriétés vous donne accès aux permissions attribuées sur celui-ci. Afin de les modifier, il vous suffit de cocher les cases nécessaires (propriétaire : RWX, groupe : RX, autre : RX). Si vous souhaitez appliquer le récursif, cochez la case Appliquer récursivement le groupe, le propriétaire et les permissions.

Une fois votre fichier présent sur le serveur Migale avec les droits nécessaires, l'outil Upload file from Migale disponible dans la section Get Data de Galaxy va vous permettre de l'intégrer au sein de l'interface. Voici un exemple pour le fichier test.fasta présent dans le répertoire /projet/mig/galaxy/ :

  • Galaxy File Name : ce champ facultatif vous permet de nommer votre fichier au sein de l'interface Galaxy. Pour notre exemple, on laissera ce champ vide.
  • File type : ce champ obligatoire permet de définir le format de votre fichier (exemple : fasta, fastq, ...). Pour notre exemple, on choisira fasta.
  • Path to file in the Migale server : ce champ obligatoire permet de donner le chemin absolu vers votre fichier (remarque : nom du fichier et extension compris). Pour notre exemple, on saisira /projet/mig/galaxy/test.fasta
  • Genome : ce champ facultatif vous permet de choisir un génome de référence. Pour notre exemple, on laissera ce champ vide.

Si vous avez supprimé des données de votre historique mais que la taille de ce dernier n'a pas changé, voici la procédure à suivre :

  • cliquez sur le symbole représentant une roue dentelée en haut à droite de votre historique,
  • dans le menu, choisissez l'option Purge Deleted Datasets.

La taille de votre historique est alors modifiée.

L'espace de travail dédié par défaut est de 20 Go.

Il est possible de faire une demande auprès de galaxy-help@jouy.inra.fr afin d'augmenter la taille de cet espace.

Votre demande sera alors étudiée. Il est possible que la plateforme Migale prenne contact avec vous afin de connaître vos besoins.

Un formulaire de demande d'intégration d'outil au sein du portail Galaxy de la plateforme Migale est mis à votre disposition via cette URL : http://migale.jouy.inra.fr/?q=demande-galaxy.

Pour tous renseignements supplémentaires, veuillez contacter galaxy-help@jouy.inra.fr.

Traitement de données (2)

Voici quatre outils :

  • pgModeler est un outil (Open Source) en cours de développement dédié à la conception de base de données sous PostgreSQL. Celui ci est libre et multiplateforme. Site officiel : http://pgmodeler.com.br
  • DBdesigner 4 Outil (Open Source) de conception de bases de données sous windows et Linux. - Son interface graphique permet de créer un modèle relationnel puis de générer le fichier SQL de création des tables pour Oracle, MySQL et toute base ODBC et ADO ; - il génère automatiquement la documentation de la base de données ; - il permet également de charger des données dans une base existante à partir de fichiers en réalisant un mapping colonnes du fichier-champs de la table ; - il permet aussi de faire du reverse engineering. Il est disponible à l'URL : http://www.fabforce.net/dbdesigner4/
  • DRUID Outil (Open Source) de création de bases de données en mode grapique, développé en Java. Une fois la base créée il permet la génération de documentation en html ou pdf, de scripts sql, du dictionnaire de données, etc... Il est disponible à l'URL : http://druid.sourceforge.net
  • PowerAMC Outils (payant) de conception de bases de données sous Windows commercialisé par la Société Sybase. Informations à l'URL :  http://help.sap.com/poweramc?current=pd1655&show_children=false

Menu principal

by Dr. Radut