Constitution d'un tableau

Fermé
Flo - 4 janv. 2019 à 15:33
yg_be Messages postés 23236 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2024 - 5 janv. 2019 à 18:23
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

1 réponse

yg_be Messages postés 23236 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2024 Ambassadeur 1 539
4 janv. 2019 à 21:11
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
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
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 23236 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2024 1 539 > Flo
5 janv. 2019 à 13:47
que penses-tu qui se passe à la ligne 7?
0
On définit la deuxième colonne comme locusname
0
yg_be Messages postés 23236 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2024 1 539 > Flo
5 janv. 2019 à 14:38
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