【问题标题】:Python: How to compare columns with text entries and with each otherPython:如何将列与文本条目以及彼此进行比较
【发布时间】:2020-02-07 15:13:55
【问题描述】:

我是一个刚开始编写脚本的 Python 新手。 我有一个包含三个样本的数据框,每个样本都有一个肽序列列表,例如:

d = {'Sample 1': ['QSFLEVSYYPMAGYIKEDSIM', 'MLPIQTRIAS', 'AAVACTVLRCLAAEQQTSRSVDEAY'], 'Sample 2': ['QSFLEVSYYPTEIRQMGM', 'AEAARLVLAARIKGDAM', 'AAVACTVLRCLAAEQQTSRSVDEAY'], 'Sample 3': ['AAIGVHLGCTSACVAVYAADRGMKL', 'QSFLEVSYYPTEIRQMGM', 'AAVACTVLRCLAAEQQTSRSVDEAY']}
df = pd.DataFrame(data=d)

我要做的是找出这三个样品中哪些肽是相互的,并绘制一个维恩图

我用两个样本做了这个,但后来我找不到太多帮助,所以我做了 venn 绘图“手动”

import matplotlib_venn as vplt
from matplotlib import pyplot as plt
from matplotlib_venn import venn2, venn2_circles
import pandas as pd
import numpy as np

df_txt = pd.read_csv('all_Peptides_sortFN.txt', delimiter='\t')
df_txt.count()
df_txt['Peptides'] = df_txt["FN"] + df_txt["FN_18"]
AllPeps = df_txt.groupby('Peptides').count()
AllPeps.drop_duplicates(subset=None, keep='first', inplace=False)
AllPeps = df_txt.groupby('Peptides').count()
AllPeps.drop_duplicates(subset=None, keep='first', inplace=False)
AllPeps['result'] = np.where(AllPeps['FN'] == AllPeps['FN_18'], '1', '0')
AllPeps.head()
AllPeps.result.value_counts()
plt.figure(figsize=(10,10))
v = venn2(subsets=(3411, 1737, 1150), set_labels = ('Filgrastim', 'Filgrastim 18O'))
plt.title('Comparison of peptides in just digested and 18O-labeled Filgrastim(new batch)')
plt.savefig('VennFN.png')
plt.show()

我感谢每一个建议:)

【问题讨论】:

  • 变量和函数名一般应遵循lower_case_with_underscores风格。

标签: python pandas numpy venn-diagram


【解决方案1】:

你试过了吗?

from matplotlib_venn import venn3
venn3([set(v) for v in d.values()], set_labels=d.keys())

【讨论】:

    猜你喜欢
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多