小编Hik*_*erT的帖子

如何在pandas中使用带有多索引的地图?

我有各种基因组位置的数据数据表.这些位置表示为3元组('染色体','srand',位置),我已经变成了多指数.我的目标是查找有关每个位置的各种信息并将其添加到表中(例如基因名称等)我可以使用pybedtools执行此操作.

df = pd.DataFrame(data={'A':range(1,8), 'B':range(1,8), 'C': range(1,8)},
 index=pd.MultiIndex.from_tuples([('chrom1', '-', 1234), ('chrom1', '+', 5678),
 ('chrom1', '+', 9876),  ('chrom2', '+', 13579), ('chrom2', '+', 8497), ('chrom2', '-', 98765),
 ('chrom2', '-', 76856)]))

df.index.rename(['chrom','strand','abs_pos'], inplace=True)

                       A  B  C
chrom  strand abs_pos         
chrom1 -      1234     1  1  1
       +      5678     2  2  2
              9876     3  3  3
chrom2 +      13579    4  4  4
              8497     5  5  5
       -      98765    6  6  6
              76856    7  7  7
Run Code Online (Sandbox Code Playgroud)

我的问题是向具有多索引的数据框添加列.这似乎很简单,没有多索引:pandas - 从字典向数据框添加新列

我有一个查找信息的字典,其中包含与多索引相对应的3元组键.如何将此数据添加为新列?

gene_d = {('chrom1', '-', 1234) …
Run Code Online (Sandbox Code Playgroud)

python multi-index pandas

13
推荐指数
1
解决办法
3741
查看次数

通过要求MultiIndex级别中存在多个项目来过滤pandas数据框

我有一个带有多索引的数据表.多指数的所述第一电平是对应于给定序列(DNA)的名称,多指数的所述第二电平对应于一个特定类型的序列变体的wt,m1,m2,m3在下面的例子.并非所有给定wt序列都具有所有类型的变体(参见seqAseqC下文).

df = pd.DataFrame(data={'A':range(1,9), 'B':range(1,9), 'C': range(1,9)},
     index=pd.MultiIndex.from_tuples([('seqA', 'wt'), ('seqA', 'm1'),
     ('seqA', 'm2'),  ('seqB', 'wt'), ('seqB', 'm1'), ('seqB', 'm2'),
     ('seqB', 'm3'), ('seqC', 'wt') ]))

df.index.rename(['seq_name','type'], inplace=True)
print df

               A  B  C
seq_name type         
seqA     wt    1  1  1
         m1    2  2  2
         m2    3  3  3
seqB     wt    4  4  4
         m1    5  5  5
         m2    6  6  6
         m3    7  7  7
seqC     wt    8 …
Run Code Online (Sandbox Code Playgroud)

python multi-index pandas

6
推荐指数
1
解决办法
66
查看次数

在python中查找大字符串中所有出现的子字符串的最快方法是什么

编辑以澄清输入/输出。我认为无论如何这都会有点慢,但到目前为止我还没有真正考虑过我的 python 脚本的速度,并且我正在尝试找出加速此类操作的方法。

我的输入是基因组序列的腌制字典。我目前正在处理两个基因组,即芽殖酵母基因组(磁盘上 11.5 MB)和人类基因组(磁盘上 2.8 GB)。这些字典的形式如下:

seq_d = { 'chr1' : 'ATCGCTCGCTGCTCGCT', 'chr2' : 'CGATCAGTCATGCATGCAT', 
        'chr3' : 'ACTCATCATCATCATACTGGC' }
Run Code Online (Sandbox Code Playgroud)

我想找到基因组两条链中核苷酸的所有单碱基实例。其中+strand指的是上述字典中的序列,strand-是序列的反向补集。我的输出是一个嵌套字典,其中顶层keys+or -,嵌套的keys是染色体名称,值是 0 索引位置的列表:

nts = 'T'
test_d = {'+': {'chr3': [2, 5, 8, 11, 14, 17], 'chr2': [3, 7, 10, 14, 18], 
           'chr1': [1, 5, 9, 12, 16]}, '-': {'chr3': [0, 4, 7, 10, 13, 15], 
           'chr2': [2, 5, 9, 13, 17], 'chr1': [0]}}
Run Code Online (Sandbox Code Playgroud)

test_d稍后在脚本中定义一组要在大型 Illumina …

python

5
推荐指数
1
解决办法
3401
查看次数

标签 统计

python ×3

multi-index ×2

pandas ×2