首页 > 解决方案 > 使用 pandas 模拟碱基序列的 Python 演示

问题描述

在此处输入图像描述我已经写了一个函数来模拟一个随机序列,由四个碱基 A、C、G、T 组成,长度分别为 10^1、10^2、10^3、10^4 或 10^ 5. 每个碱基的概率为 0,25。我写了另一个函数,它计算给定序列中每个碱基的相对数​​量。现在我想在条形图中说明每个长度(10^1、10^2、10^3、10^4、10^5)的每个碱基(A、C、G、T)的相对数量随机序列,但我不太确定该怎么做。我的第一个想法是写一个 pandas 数据框,但我对如何将我已经写好的函数包含在其中有点困惑。也许你可以帮助我。

标签: pythonpandasdataframesequence

解决方案


如果我理解正确,你想做这样的事情:

pd.concat([
    pd.Series(
        np.random.choice(list('ATCG'), 10**a), 
        name='10^{}'.format(a)).value_counts(normalize=True) for a in range(2,5)],
    axis=1, sort=True).T.plot(kind='bar')

plt.ylabel('normalised counts')
plt.xlabel('sequence length')

在此处输入图像描述


推荐阅读