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
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager