jarod...@libero.it wrote: > Dear all thanks for your suggestion!!! > Thanks to your suggestion I create this structure:with open("prova.csv") > as p: > for i in p: > lines =i.rstrip("\n").split("\t") > ...: print lines > ...: > ['programs ', 'sample', 'gene', 'values'] > ['program1', 'sample1', 'TP53', '2'] > ['program1', 'sample1', 'TP53', '3'] > ['program1', 'sample2', 'PRNP', '4'] > ['program1', 'sample2', 'ATF3', '3'] > ['program2', 'sample1', 'TP53', '2'] > ['program2', 'sample1', 'PRNP', '5'] > ['program2', 'sample2', 'TRIM32', '4'] > ['program2', 'sample2', 'TLK1', '4'] > > In [4]: with open("prova.csv") as p: > for i in p: > lines =i.rstrip("\n").split("\t") > dizlines > diz > > In [4]: with open("prova.csv") as p: > for i in p: > lines =i.rstrip("\n").split("\t") > line = (lines[0],lines[1]) > ...: diz.setdefault(line,set()).add(lines[2]) > ...: > > In [5]: diz > Out[5]: > {('program1', 'sample1'): {'TP53'}, > ('program1', 'sample2'): {'ATF3', 'PRNP'}, > ('program2', 'sample1'): {'PRNP', 'TP53'}, > ('program2', 'sample2'): {'TLK1', 'TRIM32'}, > ('programs ', 'sample'): {'gene'}} > > > So what I want to do is to use intersect between the keys recursively: > s = diz[('program2', 'sample1'] > ....: > ....: > KeyboardInterrupt > > In [14]: s = diz[('program2', 'sample1')] > > In [15]: s > Out[15]: {'PRNP', 'TP53'} > > In [16]: a > Out[16]: {'ATF3', 'PRNP'} > > In [17]: s.inte > s.intersection s.intersection_update > > In [17]: s.intersection(a) > Out[17]: {'PRNP'} > > How can Have a intersect of all my dictionary and from ('program1', > 'sample1') vs ('program1', 'sample2')... > I want to count how many genes are common > Thanks in advance for your help!
For that you have to map genes to program/sample pairs -- or just count them as already suggested: >>> import csv >>> from collections import Counter >>> with open("prova.csv") as f: ... rows = csv.DictReader(f, delimiter="\t") ... freq = Counter(row["gene"] for row in rows) ... >>> freq.most_common(2) [('TP53', 3), ('PRNP', 2)] _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor