Bonjour,
Je suis confronté à un problème bête mais pour lequel je ne trouve pas de solution.
[contexte]
J'ai crée un programme python tournant avec mpi pour tester plusieurs logiciels dans le domaine de la bioinfo. Concrètement, il lance plusieurs logiciels avec différents paramètres et fichiers en entrée.
[Problème]
Et donc le problème est la création des fichiers d'entrée. Je dois créer 156408 fichiers "couples" qui contiennent à chaque fois la concaténation de deux autres fichiers.
donc c'est très bêtes en utilisant 2 "cat " on peut créer un fichier. Mais c'est très long.
Donc j'ai essayé de paralléliser les choses pour profiter d'un nas avec une partition de type lustre [URL="http://en.wikipedia.org/wiki/Lustre_%28file_system%29"] que j'ai à disposition mais il n'y a pas de gains.
J'ai essayé de n'utiliser que du code python comme ce qui suit :
Voilà, donc j'aimerais bien trouver une solution qui me permette de créer instantanément ces fichiers et ne pas passez plusieurs heures sur cette étape (que je dois répéter en plus assez régulièrement).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 def createCouple(self, sRNA, mRNA): """ Create the couple @param sRNA: name of the sRNA file @param mRNA: name of the mRNA file """ #Definition du fichier out=self.sRNA_out+"couple_"+sRNA+"_"+mRNA+".fasta" try: #Creation du fichier et copie du contenu du premier fichier shutil.copy(self.sRNA_out+sRNA+".fasta",out) #Ajout du contenu du deuxieme fichier outfile=open(out,"a") outfile.write(open(self.mRNA_out+mRNA+".fasta","r").read()) outfile.close() except IOError: sys.exit("Execution failed with %s"%out) except: sys.exit("There is something wrong with the copy of %s"%out)
Voici le contenu typique d'un seul fichier :
>NC_000913_CyaR
gctgaaaaacataacccataaaatgctagctgtaccaggaaccacctccttagcctgtgtaatctcccttacacgggcttatttttt
donc chaque fichier contient très peu de données. Et bien sûr, je ne peux pas faire un seul fichier qui contient toutes les données.
Partager