使用翻转图代替维恩图

问题描述 投票:0回答:1

我正在尝试在我的论文中使用翻转图而不是维恩图。我正在处理蛋白质组学数据,我的目标是绘制两个搜索引擎之间的重叠以及使用翻转图的唯一值。我正在努力向其提供正确的数据。

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 进行绘图,就像使用维恩图一样,您只需给它一个来自不同运行的肽列表,它会在它们之间进行比较并绘制所有内容。预先感谢

python-3.x bioinformatics
1个回答
0
投票

是的,你可以!为此,您可以使用 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)
© www.soinside.com 2019 - 2024. All rights reserved.