У меня есть три вложенных словаря: data_geo1, data_geo2, data_ali, которые все состоят из двух ключей и одного значения. Цель состоит в том, чтобы сравнить ценности друг с другом. Первый ключ словарей такой же, но для второго 30 из них используются в первом словаре, а 20 - во втором словаре! К сожалению, ориентация клавиши не совпадает друг с другом. Цель состоит в том, чтобы создать точечную диаграмму с помощью matplotlib и numpy array для сравнения первого и второго словаря с данными в data_ali. Это немного сложно, и я не знаю с чего начать! Вот что я написал для создания словарей:
import os
import numpy as np
path = "/home/ali/Desktop/data/"
root = "/home/ali/Desktop/SAMPLES/"
data_geo1={}
with open(path+"GSE98212_H_DE_genes_count.txt","rt") as fin: #data for sample 1-30
h = fin.readline()
sample1 = h.split()
sample_names = [s.strip('"') for s in sample1[1:31]]
for l in fin.readlines():
l = l.strip().split()
if l:
gene= l[0].strip('"')
data_geo1[gene] = {}
for i, x in enumerate(l[1:31]):
data_geo1[gene][sample_names[i]] = int(x)
#print(data_geo1)
data_geo2={}
with open (path+"GSE98212_L_DE_genes_count.txt","rt") as fin:
h= fin.readline()
sample2=h.split()
sample_names=sample2[1:21]
for l in fin.readlines():
l = l.strip().split()
if l:
gene= l[0].strip()
data_geo2[gene]={}
for i,x in enumerate (l[1:21]):
data_geo2[gene][sample_names[i]]= int(x)
#print(data_geo2)
data_ali={}
for sample_name in os.listdir(root):
with open(os.path.join(root, sample_name, "counts.txt"), "r") as fin:
for line in fin.readlines():
gene, reads = line.split()
reads = int(reads)
if gene.startswith('ENSG'):
data_ali.setdefault(gene, {})[sample_name] = reads
#print(data_ali)
пример каждой словарной структуры:
data_geo1: {'ENSG00000110514': {'Sample_19-leish_023_v2': 709, 'Sample_4-leish_012_v3': 501, 'Sample_25-leish027_v2': 690, 'Sample_6-leish_015_20: 460_2: S3: 460: 2: S3: 460: 2: S3: 460: v2: S3: 460: v2: S3: 460: v2: S0: 460: v2: S3: 460: v2: S3: 460: v2: S3: 460, v2: S3, S0, S2: S6, S3, S2, S2: S6, N0, S2, S3, S2: 6: 6, leish_015_2, S2: 6 , 'Sample_20-leish_023_v3': 619, 'Sample_18-leish_022_v3': 678, 'Sample_10-leish_017_v3': 477, 'Sample_13-leish_019_v2': 460, 'Sample_1-Leish_011_v2': 574, 'Sample_11-leish_018_v2': 566, ' Sample_3-leish_012_v2 ': 632, «Sample_2-leish_011_v3»: 388, «Sample_29-leish032_v2»: 661, «Sample_8-leish_016_v3»: 372, «Sample_28-leish028_v3»: 533, «282», образец S282 leish027_v3 ': 624,' Sample_12-leish_018_v3 ': 653,' Sample_5-leish_015_v2 ': 421,' Sample_16-leish_021_v3 ': 376,' Sample_21-leish_024_v2 ': 668,' Sample_3_0_0_0_0_2_2_2_2_2_2_2_2_2_2_2-le_0_2_2_0, 285 : 590, 'Sample_22-leish_024_v3': 537, 'Sample_14-leish_019_v3': 438, 'Sample_30-leish032_v3': 494, 'Sample_7-leish_016_v2': 518, 'Sample_15-leish_021_v2' S0: 8: 834: 8: 8 }
data_geo2: {'ENSG00000110514': {'Sample_19': 518, 'Sample_10': 468, 'Sample_20': 517, 'Sample_9': 431, 'Sample_8': 522, 'Sample_7': 437, 'Sample_6' : 491, «Образец_5»: 461, «Образец_4»: 442, «Образец_3»: 667, «Образец_2»: 438, «Образец_1»: 378, «Образец_14»: 345, «Образец_13»: 424, «Образец_18»: 570 , 'Sample_15': 492, 'Sample_16': 486, 'Sample_12': 401, 'Sample_17': 489, 'Sample_11': 464}
data_ali: 'ENSG00000110514': {'Sample_19-leish_023_v2': 710, 'Sample_16-leish_021_v3': 380, 'Sample_20': 517, 'Sample_24-leish026_v3': 593, 'Sample_6-lev_125: 593, Sample_6-le_101: 5 -leish_018_v3 ': 661,' Sample_22-leish_024_v3 ': 539,' Sample_23-leish026_v2 ': 710,' Sample_25-leish027_v2 ': 689,' Sample_18-leish_022_v3 ': 681,' Sample_14 '011: 341: 341: 341: 341: 341: 341: 341: 341: 341 ": S1_14_3_1: 341: 341", S1_14_3_1: 341: S1_1_3_1: 341 ", S1_3_1": 341 394, 'Sample_13-leish_019_v2': 464, 'Sample_1-Leish_011_v2': 574, 'Sample_11-leish_018_v2': 571, 'Sample_20-leish_023_v3': 625, 'Sample_3-leish_012_v3', S7: 637: 637: 737: 637: 737: 637: 737: 637: 737: 737: 637: 737: 637: 737: 637: 737: 637: 737: 637: 737: 637: 737: 637: 737: 637: 737: 637: 737: 637: 737: 6: 737: 6: 637: 6: 637: 6: 637: 6: 6: 6: 6: 6: 6: 6: 6: 6: 6: 6: 6 «Sample_7»: 436, «Sample_29-leish032_v2»: 659, «Sample_8-leish_016_v3»: 375, «Sample_6»: 492, «Sample_7-leish_016_v2»: 517, «Sample_9»: 432, «Sample_8 »_271: 521, Sample -leish028_v2 ': 584,' Sample_26-leish027_v3 ': 629,' Sample_5 ': 460,' Sample_4 ': 441,' Sample_3 ': 668,' Sample_19 ': 516,' Sample_1 ': 378,' Sample_2 ': 437, 'Sample_9-leish_017_v2': 582, 'Sample_5-leish_015_v2': 421, 'Sample_4-leish_012_v3': 502, 'Sample_21-leish_024_v2': 67 0, «Sample_18»: 573, «Sample_13»: 426, «Sample_12»: 403, «Sample_11»: 463, «Sample_10»: 466, «Sample_17»: 488, «Sample_16»: 487, «Sample_15»: 490, 'Sample_14-leish_019_v3': 441, 'Sample_30-leish032_v3': 497, 'Sample_28-leish028_v3': 542, 'Sample_15-leish_021_v2': 837, 'Sample_17-leish_022_v2': 747} * 101 *