我正在尝试在我的论文中使用翻转图而不是维恩图。我正在处理蛋白质组学数据,我的目标是绘制两个搜索引擎之间的重叠以及使用翻转图的唯一值。我正在努力向其提供正确的数据。
data = upset_df[[ 'peptide','onlymq', 'onlysage', 'both']]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 101565 entries, 0 to 101564
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 peptide 101565 non-null object
1 onlymq 101565 non-null bool
2 onlysage 101565 non-null bool
3 both 101565 non-null bool
dtypes: bool(3), object(1)
memory usage: 1.1+ MB
我还想知道是否可以同时使用多个 dfs 进行绘图,就像使用维恩图一样,您只需给它一个来自不同运行的肽列表,它会在它们之间进行比较并绘制所有内容。预先感谢
是的,你可以!为此,您可以使用 UpdPlot 包(您可以在here找到文档)。
我假设您提到的数据帧包含搜索引擎的结果。您需要做的只是从 dfs 中提取每个搜索引擎已识别蛋白质的列表,将它们组织在字典中并使用包的函数
from_contents()
。然后您的数据将与包的 plot()
功能兼容。
以下是其工作原理的示例:
import upsetplot as ups
import pandas as pd
# Example dataframes
sage = pd.DataFrame(data=['A', 'B', 'C', 'D', 'E', 'F', 'G'], columns=['proteins'])
mq = pd.DataFrame(data=['A', 'C', 'D', 'X', 'Y', 'Z'], columns=['proteins'])
# Extract the list of identified proteins from each dataframe
data_dict = {'Sage': sage['proteins'], 'MaxQuant': mq['proteins']}
# Create multiindex df compatible with upsetplot's plot() function
transformed_data = ups.from_contents(data_dict)
# Plot the result
ups.plot(data=transformed_data)