Bonjour à tous,
je cherche à utiliser la fonction "combination" pour générer toutes les possibilités d'interactions entre ces protéines (ARF5 est une protéine puis KDELR3 aussi, (les protéines sont les deux premiers éléments de chaque lignes, séparées par un espace))
Voici mon script :ARF5 KDELR3 0 0 0 64 173 900 57 917 ---> EXP
ARF5 KIF3A 0 0 0 61 131 900 69 913 ---> EXP
ARF5 COPZ1 0 0 0 161 126 900 193 932 ---> EXP
ARF5 COPE 0 0 0 191 160 900 83 929 ---> EXP
ARF5 DCTN1 0 0 0 95 59 900 69 910 ---> EXP
M6PR LRP2 0 0 0 0 320 900 257 945
M6PR PLIN3 0 0 0 0 379 900 783 985
FKBP4 NR3C2 0 0 0 0 398 900 475 965
FKBP4 HSF1 0 0 0 84 465 900 198 955 ---> EXP
FKBP4 NR3C1 0 0 0 0 454 900 700 982
FKBP4 PPP5C 0 0 0 95 193 900 196 933 ---> EXP
FKBP4 ESR1 0 0 0 0 396 900 350 957
FKBP4 ACTR1A 0 0 0 62 50 900 238 923 ---> EXP
CFTR VAMP2 0 0 0 0 50 900 264 924
CFTR DNAJC6 0 0 0 61 74 900 125 913 ---> EXP
CYP51A1 TM7SF2 0 0 0 224 457 900 793 990 ---> EXP
CYP51A1 LBR 0 0 0 144 457 900 649 981 ---> EXP
CYP51A1 NFYB 0 0 0 0 87 900 95 910
CYP51A1 LSS 0 0 0 826 692 900 869 999 ---> EXP
USP28 MYC 0 0 0 0 406 900 668 978
USP28 CLSPN 0 0 0 61 379 900 643 976 ---> EXP
PDK4 DLAT 0 0 0 63 294 900 416 956 ---> EXP
RPAP3 RUVBL1 0 0 0 130 920 900 761 998 ---> EXP
RPAP3 PIH1D1 0 0 0 95 854 900 911 998 ---> EXP
SKAP2 FYB 0 0 0 75 435 900 624 977 ---> EXP
PRSS21 NTM 0 0 0 0 83 900 50 905
PRSS21 VNN2 0 0 0 55 80 900 49 906 ---> EXP
PRSS21 OPCML 0 0 0 0 83 900 134 913
PRSS21 VNN1 0 0 0 55 80 900 49 906 ---> EXP
PRSS21 CD109 0 0 0 64 50 900 176 917 ---> EXP
PRSS21 MFI2 0 0 0 0 82 900 63 906
PRSS21 VNN3 0 0 0 61 80 900 49 906 ---> EXP
PRSS21 XPNPEP2 0 0 0 55 65 900 42 904 ---> EXP
PRSS21 LSAMP 0 0 0 0 83 900 50 905
CX3CL1 CX3CR1 0 0 0 61 379 900 956 997 ---> EXP
TRAPPC6A GDI2 0 0 0 55 69 900 86 908 ---> EXP
TRAPPC6A SEC22A 0 0 0 62 74 900 56 907 ---> EXP
TRAPPC6A RAB1A 0 0 0 60 159 900 730 975 ---> EXP
TFAP2D TFAP2B 0 0 0 64 152 900 110 919 ---> EXP
TFAP2D TFAP2A 0 0 0 61 592 900 93 960 ---> EXP
TFAP2D TFAP2C 0 0 0 61 152 900 111 919 ---> EXP
CRY1 CSNK1E 0 0 0 63 929 900 733 998 ---> EXP
CRY1 PPP1CA 55 0 0 61 174 900 104 922 ---> EXP
CRY1 BTRC 0 0 0 0 369 900 226 946
CRY1 FBXL3 0 0 0 61 454 900 844 990 ---> EXP
CD74 HLA-DQB1 0 0 0 706 720 900 426 994 ---> EXP
CD74 CTSH 0 0 0 170 161 900 265 942 ---> EXP
RANBP9 L1CAM 0 0 0 0 472 900 433 967
RANBP9 MET 0 0 0 62 390 900 198 948 ---> EXP
RANBP9 RANBP10 0 0 0 0 116 900 65 910
CD4 SYK 0 0 0 205 400 900 242 959 ---> EXP
CD4 ZAP70 0 0 0 468 400 900 367 977 ---> EXP
CD4 PAG1 0 0 0 65 93 900 63 909 ---> EXP
CD4 EPS15 0 0 0 0 379 900 73 937
Avec ma liste Dprot1, je sélectionne donc toutes les protéines différentes à la première position (ce sont celles qui m'intéressent) tout en supprimant les doublons.
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 itertools import combinations_with_replacement Dprot1 = [] with open("C:/Users/lveillat/Desktop/xdfh.txt","r") as f1: for ligne in f1: lp = ligne.rstrip('\n').split(" ") prot1 = lp[0] #Je sélectionne le premier élément de mon fichier pour chaques lignes if prot1 not in Dprot1: #Je rajoute ce premier élément dans ma liste uniquement si il n'y est pas déjà Dprot1.append(prot1) results = combinations_with_replacement(Dprot1,2) for res in results: line=' '.join(res) print(line) f1.close()
Ma liste Dprot1 me donne donc ceci : ['ARF5', 'M6PR', 'FKBP4', 'CFTR', 'CYP51A1', 'USP28', 'PDK4', 'RPAP3', 'SKAP2', 'PRSS21', 'CX3CL1', 'TRAPPC6A', 'TFAP2D', 'CRY1', 'CD74', 'RANBP9', 'CD4'] Soit l'ensemble des protéines en première position du fichier sans doublons.
Et voici un extrait de la sortie de mon script :
le problème est que je pars de 17 protéines… donc logiquement je devrait avoir 17*17 soit 289 interactions possibles...or je me retrouve avec 3062 interations (on remarque directement dans mon fichier de sortie qu'il y a un soucis, la combinaison ARF5 ARF5 est répétée plusieurs fois…)
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 ARF5 M6PR M6PR M6PR ARF5 ARF5 ARF5 M6PR M6PR M6PR ARF5 ARF5 ARF5 M6PR ARF5 FKBP4 M6PR M6PR M6PR FKBP4 FKBP4 FKBP4 ARF5 ARF5 ARF5 M6PR ARF5 FKBP4 M6PR M6PR M6PR FKBP4 FKBP4 FKBP4 ARF5 ARF5 ARF5 M6PR ARF5 FKBP4 M6PR M6PR M6PR FKBP4 FKBP4 FKBP4 ARF5 ARF5 ARF5 M6PR ARF5 FKBP4 M6PR M6PR M6PR FKBP4 FKBP4 FKBP4 ...
Pouvez vous m'aider à modifier mon code afin que je me retrouve avec les 289 interactions attendues ?
Merci
Partager