就是画Veen图的前期步骤吧,求文件相应的交集。
我要处理的文件是这些
然后我先把要处理的文件名提取到了2.txt文件下,2.txt内容如下
raw_counts.matrix.A_vs_B.edgeR.DE_results.P0.01_C1.B-UP.subset
raw_counts.matrix.B_vs_C.edgeR.DE_results.P0.01_C1.C-UP.subset
raw_counts.matrix.C_vs_D.edgeR.DE_results.P0.01_C1.D-UP.subset
raw_counts.matrix.D_vs_E.edgeR.DE_results.P0.01_C1.E-UP.subset
raw_counts.matrix.E_vs_F.edgeR.DE_results.P0.01_C1.F-UP.subset
就是一个文件名文本文件
这样方便我后续批量读取文件
这里是五个文件,文件简写我就写为B,C,D,E,F。
一共又C(5,2)+C(5,3)+C(5,4)种组合方式
每种组合方式都做交集,然后最终把数据汇总到2.result,3.result,4.result下
例如3.result文件如下:
看一下123.result 结果如下:
#!usr/bin/python
filename = []
file = open ('.//data//Ageing//2.txt','r')
for i in file:
i = i.strip('\n')
filename.append(i)
file.close()
filevar = ['B','C','D','E','F']
for i in range(len(filevar)):
try:
#filevar[i] = open ('data/Ageing/'+filename[i],'r')
filevar[i] = open ('data/Ageing/'+filename[i],'r')
except:
continue
flag = 0
fuck1,fuck2,fuck3,fuck4,fuck5 = [],[],[],[],[]
for i in filevar[0]:
a = i.split()
fuck1.append(a[0])
for i in filevar[1]:
a = i.split()
fuck2.append(a[0])
for i in filevar[2]:
a = i.split()
fuck3.append(a[0])
for i in filevar[3]:
a = i.split()
fuck4.append(a[0])
for i in filevar[4]:
a = i.split()
fuck5.append(a[0])
fuckall = []
fuck1 = set(fuck1)
fuck2 = set(fuck2)
fuck3 = set(fuck3)
fuck4 = set(fuck4)
fuck5 = set(fuck5)
fuckall.append(fuck1)
fuckall.append(fuck2)
fuckall.append(fuck3)
fuckall.append(fuck4)
fuckall.append(fuck5)
from itertools import combinations
combins2 = [c for c in combinations(range(5), 2)]
from itertools import combinations
combins3 = [c for c in combinations(range(5), 3)]
from itertools import combinations
combins4 = [c for c in combinations(range(5), 4)]
file2 = open('{}.result'.format(2),'w')
file3 = open('{}.result'.format(3),'w')
file4 = open('{}.result'.format(4),'w')
for i in range(len(combins2)):
#print(str(combins2[i][0]))
file = open('{}{}.result'.format(combins2[i][0],combins2[i][1]),'w')
a = combins2[i][0]
b = combins2[i][1]
a = fuckall[combins2[i][0]].intersection(fuckall[combins2[i][1]])
a1 = len(a)
file.write(str(a))
file2.write('{}{}.result\t{}\n'.format(combins2[i][0],combins2[i][1],a1))
file.close()
for i in range(len(combins3)):
#print(str(combins3[i][0]))
file = open('{}{}{}.result'.format(combins3[i][0],combins3[i][1],combins3[i][2]),'w')
a = fuckall[combins3[i][0]].intersection(fuckall[combins3[i][1]].intersection(fuckall[combins3[i][2]]))
a2 = len(a)
file.write(str(a))
file.close()
file3.write('{}{}{}.result\t{}\n'.format(combins3[i][0],combins3[i][1],combins3[i][2],a2))
for i in range(len(combins4)):
#print(str(combins4[i][0]))
file = open('{}{}{}{}.result'.format(combins4[i][0],combins4[i][1],combins4[i][2],combins4[i][3]),'w')
a = fuckall[combins4[i][0]].intersection(fuckall[combins4[i][1]].intersection(fuckall[combins4[i][2]].intersection(fuckall[combins4[i][3]])))
a3 = len(a)
file.write(str(a))
file.close()
file4.write('{}{}{}{}.result\t{}\n'.format(combins4[i][0],combins4[i][1],combins4[i][2],combins4[i][3],a3))
file2.close()
file3.close()
file4.close()