Bonjour Alban,

Merci pour le Tip !
Je suis passé rapidement dans le code et j'ai peut être raté quelque chose mais:

- Quand tu fais ton mv, je ne vois pas la création du directory. Il faut le créer pour l'utilisateur préalablement ou ça se fait tout seul ?

- Est ce qu'il n'y a pas un risque que les utilisateurs s'écrasent mutuellement leur liens symboliques et s'emmêlent les pinceaux si ils utilisent les mêmes paths ?

Clairement c'est très intéressant de pouvoir renommer les fichiers de datasets pour faciliter la relecture des analyses (history). Je n'ai pas essayé, mais est ce que la modif se répercute dans les fenêtres (info) (parent file etc...). ? Ca, ça serait vraiment génial. Encore plus si le nom choisi se répercute dans l'history sur le nom du dataset (au lieu d'avoir le nom de l'outil sur le dataset xx). En fait c'est surtout ça qui m'intéresse - il y a peut être une approche différente sur ce problème.

Par contre, je ne vois pas trop l'intérêt de créer des dossiers personnels qui créent une structuration qui fait doublon avec la base de donnée de galaxy. Ca me parait même générateur de boxon non ?

Chris

Le 12 sept. 2012 à 12:03, Alban Lermine <alermine@curie.fr> a écrit :

Bonjour à tous,

Pour notre instance locale de Galaxy, nous souhaitions que nos
utilisateurs puissent choisir l'emplacement ou écrire leurs résultats et
cela sans "casser" les liens dans la base de donnée.

Pour cela, nous avons ainsi mis en place une modification simple du xml
des outils existants:

Prenons l'exemple d'un outil simple dont le xml serait le suivant:

<tool id="example" name="Tool example">
 <description>Un exemple d'outil simple</description>
 <command interpreter="bash">example.sh -i $input -o $output</command>
 <inputs>
   <param name="input" type="text" label="Input"/>
 </inputs>
 <outputs>
   <data format="txt" name="output" label="outputExample"/>
 </ouputs>
</tool>

Dans cet exemple, le fichier de sortie portera le nom "dataset_xxx" et
sera écrit dans le répertoire par défaut
<INSTALL_GALAXY>/galaxy-dist/database/files/000/

La modification que nous allons apporter maintenant va nous permettre de
définir le répertoire d'écriture de l'output ainsi que le nom du fichier.

Après modification, le xml ressemble à ça:

<tool id="example" name="Tool example">
 <description>Un exemple d'outil simple</description>
 <command interpreter="bash">example.sh -i $input -o $output;mv $output
$output_dir/${file_name}.txt 2>/dev/null;ln -s
$output_dir/${file_name}.txt $output</command>
 <inputs>
   <param name="input" type="text" label="Input"/>

   <!-- Output directory-->

   <param name="file_name" type="text" size="150" label="File name
(without extension)">
      <validator type="empty_field" message="You must specify a file
name"/>
   </param>
   <param name="output_dir" type="text" size="150" label="Output
directory">
      <validator type="empty_field" message="You must specify an output
path"/>
   </param>

   <!---->

 </inputs>
 <outputs>
   <data format="txt" name="output" label="outputExample"/>
 </ouputs>
</tool>

Nous avons 2 champs input pour le path et le nom du fichier de sortie
(ainsi que les valideurs associés, l'outil ne s'execute pas si l'un de
ces champs est vide).
Puis dans la balise <command> , nous avons ajouter:

mv $output $output_dir/${file_name}.txt 2>/dev/null;ln -s
$output_dir/${file_name}.txt $output

qui correpond à un move de
<INSTALL_GALAXY>/galaxy-dist/database/files/000/dataset_xxx vers
<OUTPUT_CHOISIT>/<NOM_DE_FICHIER_CHOISIT>,
suivit de la création d'un lien symbolique
<INSTALL_GALAXY>/galaxy-dist/database/files/000/dataset_xxx qui pointe
vers <OUTPUT_CHOISIT>/<NOM_DE_FICHIER_CHOISIT>.

Cette modification fonctionne très bien quelque soit l'interpreteur
défini dans la balise <command>, et est surtout très rapide à mettre en
place.

Je suis très interressé de savoir si d'autres personnes ont implémentés
une solution pour le choix du répertoire de sortie, et si oui de quelle
manière?

Bonne journée à tous,

Alban

--

Alban Lermine
Unité 900 : Inserm - Mines ParisTech - Institut Curie
« Bioinformatics and Computational Systems Biology of Cancer »
11-13 rue Pierre et Marie Curie (1er étage) - 75005 Paris - France
Tel : +33 (0) 1 56 24 69 84

_______________________________________________
Galaxy-France mailing list
Galaxy-France@lists.bx.psu.edu
http://lists.bx.psu.edu/listinfo/galaxy-france


---
Christophe Antoniewski

Drosophila Genetics and Epigenetics
Laboratoire de Biologie du Développement – UMR7622
CNRS – Université Pierre & Marie Curie
5ème étage - pièce 517
Case 24, 9 quai Saint Bernard
75252 Paris cedex 05
France

Phone: +33 1 44 27 34 39
Fax:  +33 1 44 27 34 45
Mobile: +33 6 68 60 51 50
web site http://drosophile.org