如果我说不通的话,我很抱歉,英语不是我的母语,我只有一周的时间接触巨蟒和熊猫。
因此,我有一个非常长的转录因子数据框架( 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谢谢。
发布于 2016-06-28 21:55:19
apply是你的朋友
def count_tfs_essential(tf_val, df2, esencial_val):
'''returns count of rows in df2 having specific tf_val and esencial_val'''
df2_con_tf_val = df2[(df2["TF"] == tf_val)]
df2_con_tf_val_y_essencial = df2_con_tf_val[df2_con_tf_val["Esencialidad"] == esencial_val]
count = len(df2_con_tf_val_y_essencial.index)
return count
TF["Esenciales"] = TF["TF"].apply(lambda tf_val: count_tfs_essential (tf_val, df2, "Esencial"))
TF["No Esenciales"] = TF["TF"].apply(lambda tf_val: count_tfs_essential (tf_val, df2, "No esencial"))*所需df:*
TF Genes_Regulados Esenciales No Esenciales
0 AccB 2 2 0
1 AcrR 9 0 9
2 Ada 6 0 2
3 AdiY 8 0 0
4 AgaR 11 0 0
5 AidB 1 0 0
6 Alas 1 0 0
7 AllR 9 0 0https://stackoverflow.com/questions/38084504
复制相似问题