parcourir et écrire dans une matrice
Bonjour à tous,
je me permets d'ouvrir cette discussion n'ayant pas trouvé de solution à mon problème (je débute en python).
Je cherche à générer ce type de matrice:
L vers C 10325CT 10405GA 10414GA 1057TC 10674CT
10325CT
10405GA
10414GA
1057TC
10674CT
et de la remplir comme suit:
10325CT 10405GA 10414GA 1057TC 10674CT
10325CT ind1_ind2 ind1_ind3
10405GA ind4
10414GA ind6_ind8
1057TC ind1_ind2
10674CT
L'idée est de regrouper les individus qui partagent les même mutations dans cette matrice: exemple l'individu 1 et 2 (ind1_ind2) partagent les mutations 10325CT-10405GA et 1057TC-10405GA pour ensuite générer un network:
En réalité cette matrice à 188 lignes et 188 colonnes et je cherche à la remplir automatiquement.
J'ai fais le script qui me sort les couples de valeurs qui m'intéressent ainsi que le script pour générer le network. Néanmoins je n'arrive pas à remplir la la matrice automatiquement:
Début de mon code;
dicoFUll={....}#dico avec comme clés les mutations et en valeurs les listes d'individus qui partagent ces mêmes mutations
listFull=[...] contient la liste d'individus
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
from collections import OrderedDict
dicoFUllb=OrderedDict(sorted(dicoFUllb.items(),key=lambda t: t[0]))#pour ordonner mon dico et que chaque liste d'individus sortent dans le même ordre pour chaque mutation
with open ('matriceFinalNetworks.csv','rb') as f:
reader = csv.DictReader(f, delimiter=',')
headers = reader.fieldnames
with open ('matriceFinalNetworks2.csv','ab') as f1:
fieldnames=headers
writer = csv.DictWriter(f1, delimiter=',', fieldnames=fieldnames)
for cle, value in dicoFUll.items():
if value == listeFull[0]:# ici je recherche les individus qui partagent une meme mutation. Ce n'est pas hyper optimisé je dois changer manuellement l'indice listeFull[0]...
samplesSharesMutations=cle, value#stock
writer.writerow([samplesSharesMutations]) #### c'est ici que je n'arrive pas à écrire les résultats comme dans l'exemple plus haut de ma matrice. J'ai regardé du côté de numpy mais je suis un peu perdu. |
Merci pour votre aide