列表文件求不同组合下的交集

就是画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文件如下:
第一列是C(5,3)组合下的交集结果文件的文件名,第二列是该结果文件下的元素个数
看一下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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值