【发布时间】:2016-06-28 19:14:45
【问题描述】:
如果我没有任何意义,我深表歉意,英语不是我的母语,我只接触 python 和 pandas 一周。
所以,我有一个非常长的转录因子 (TF) 数据框和一长串必需基因,而我目前所做的是确定受 TF 调节的基因是必需基因还是不是。像这样:
In:
df2 = regulon.copy()
lista_genes = (genes['Esenciales'].values.tolist())
df2['Esencialidad'] = (pd.DataFrame(regulon['Target'].isin(lista_genes)))
df2[['Esencialidad']] = df2[['Esencialidad']].astype(str)
df2.ix[df2.Esencialidad == 'True' , 'Esencialidad'] = 'Esencial'
df2.ix[df2.Esencialidad == 'False' , 'Esencialidad'] = 'No esencial'
df2.to_excel("salida2.xlsx", index = False)
df2
Out:
TF Target Regulation Score Esencialidad
0 AccB accB - null Esencial
1 AccB accC - null Esencial
2 AcrR acrA - Weak No esencial
3 AcrR acrB - Weak No esencial
4 AcrR acrR - Weak No esencial
5 AcrR marA - Strong No esencial
6 AcrR marB - Strong No esencial
7 AcrR marR - Strong No esencial
8 AcrR micF - Weak No esencial
9 AcrR soxR - Strong No esencial
10 AcrR soxS - Strong No esencial
11 Ada alkB - Strong No esencial
12 Ada alkB + Strong No esencial
接下来我做的是确定有多少基因被 TF 调控。像这样:
In:
genes_regulados = regulon['TF'].value_counts()
TF = pd.DataFrame(genes_regulados)
TF.reset_index(inplace=True)
TF.rename(columns={'index': 'TF', 'TF': 'Genes_regulados'}, inplace=True)
TF = TF.sort_values('TF').reset_index(drop=True)
TF['Esenciales'] = (pd.DataFrame(regulon['Target'].isin(lista_genes)))
TF
Out:
TF Genes_Regulados
0 AccB 2
1 AcrR 9
2 Ada 6
3 AdiY 8
4 AgaR 11
5 AidB 1
6 AlaS 1
7 AllR 9
我现在要做的是在一个新列中确定给定 TF 的那些受调控基因中有多少是必需的,而在另一列中有多少不是必需的。
我需要你的帮助。我被卡住了,我不知道该怎么做。
我正在寻找的输出是这样的:
TF Genes Regulados Esenciales No Esenciales
AcrR 4 0 4
Ada 6 0 6
AdiY 8 0 8
AgaR 11 0 11
AidB 1 0 1
AlaS 1 1 0
AllR 9 0 9
AllS 3 0 3
AlsR 6 0 6
AppY 10 0 10
AraC 19 6 13
更新
感谢 JBr,我得到了我所需要的。现在我想知道是否有办法让它变得更复杂,并得到多少必需基因具有正调控,以及多少必需基因对给定的 TF 和负调控。
我正在寻找的输出是这样的:
TF Genes_regulados Esenciales No Esenciales Esenciales_positivos Esenciales_negativos
AcrR 4 0 4 0 0
Ada 6 0 6 0 0
AdiY 8 0 8 0 0
AgaR 11 0 11 0 0
AidB 1 0 1 0 0
AlaS 1 1 0 0 1
AllR 9 0 9 0 0
AllS 3 0 3 0 0
AlsR 6 0 6 0 0
AppY 10 0 10 0 0
AraC 19 6 13 4 2
谢谢。
【问题讨论】:
-
我认为您可以取消删除您的问题或更好地创建新的 - stackoverflow.com/questions/38209757/…。你被否决了(不是我),因为没有你的代码,也没有想要的输出。顺便说一句,我想我现在有适合你的解决方案,但我需要将它与你想要的输出进行比较..
-
如果可能的话你也可以解释一下。