Constitution d'un tableau

Flo -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je suis un débutant en python, notre prof nous a donné un exercice où il faut écrire un script permettant de générer un fichier correspondant à un tableau dans lequel seront reportés :
• colonne 1 : l’identifiant du gène,
• colonne 2 : la valeur d’expression,
• colonne 3 : l’identifiant de l’orthologue chez Arabidopsis,
• colonne 4 : les informations concernant la fonction.
Les délivrables attendus pour cette tache sont : un script python et le fichier reprenant les information des gènes et les valeurs d’expression.

Mais les informations sont contenues dans 2 tableaux au format .txt
J'ai écrit une partie d'un script, je n'arrive pas à faire l'association de la valeur d'expression contenue dans un fichier (count) avec les 3 autres colonnes contenues dans un autre fichier (annotation).

output=open("delivrable4.txt", "w")
annotation=open("annotation.txt").readlines()
for line in annotation:
tab=line.split('\t')
pacid=tab[0]
locusname=tab[1]
besthit=tab[2]
arabidefline=tab[3]

count=open("read-count.tab.txt").readlines()
for lines in count:
nb=lines.split('\t')
locus=nb[0]
expression=nb[1]

for name in locusname :
for loc in locus :
if name == loc :
output.write(name + '\t' + expression + '\t' + besthit + '\t' + arabidefline + '\n')

Merci d'avance pour votre aide
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
tu écris "je n'arrive pas": as-tu une idée de comment y arriver, ou as-tu une question?
par ailleurs, merci d'utiliser la coloration syntaxique quand tu partages du code.
0
Flo
 
output=open("delivrable4.txt", "w")

annotation=open("annotation.txt").readlines()
for line in annotation:
 tab=line.split('\t')
 pacid=tab[0]
 locusname=tab[1]
 besthit=tab[2]
 arabidefline=tab[3]

count=open("read-count.tab.txt").readlines()
for lines in count:
 nb=lines.split('\t')
 locus=nb[0]
 expression=nb[1]

for name in locusname :
 for loc in locus :
  if name == loc :
   output.write(name + '\t' + expression + '\t' + besthit + '\t' + arabidefline + '\n')
0
Flo
 
J'ai essayé avec la fonction If mais il n'y a rien qui s'écrit dans le fichier de sortie
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Flo
 
que penses-tu qui se passe à la ligne 7?
0
Flo
 
On définit la deuxième colonne comme locusname
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Flo
 
plus précisément, on mémorise dans la variable locusname la valeur de la deuxième colonne de la ligne en cours, et cela remplace ce qui avait été précédemment mémorisé dans locusname.
et donc, arrivé en ligne 10, que contient la variable locusname?
avant de programmer, il est nécessaire de réfléchir à ce que fait le programme: peux-tu prendre le temps d'écrire cela?
0