小编use*_*703的帖子

在Python中使用Xlsxwriter合并Excel单元格

我想使用Python Xlsxwriter在Excel文件中合并几个单元格系列,我在本网站的Xlsxwriter文档http://xlsxwriter.readthedocs.org/en/latest/example_merge1.html中找到了Python命令, 如下所示:

worksheet.merge_range('B4:D4')
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我的行和列数字格式的范围例如(0,0)等于A0.但Xlsxwriter似乎只接受像A0这样的格式.我想知道是否有其他人有同样的问题,如果有任何解决方案.

python xlsxwriter

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

单个规则Snakemake文件中的多个输入和输出

我开始使用Snakemake,我有一个非常基本的问题,我无法在snakemake教程中找到答案.

我想创建一个单一的规则snakefile来逐个下载linux中的多个文件.'expand'不能在输出中使用,因为需要逐个下载文件,并且不能使用通配符,因为它是目标规则.

在我看来,唯一的方法是这样的东西不能正常工作.我无法弄清楚如何使用{output}将下载的项目发送到具有特定名称的特定目录,例如'downloaded_files.dwn',以便在后面的步骤中使用:

links=[link1,link2,link3,....]
rule download:    
output: 
    "outdir/{downloaded_file}.dwn"
params: 
    shellCallFile='callscript',
run: 
    callString=''
    for item in links:
        callString+='wget str(item) -O '+{output}+'\n'
    call('echo "' + callString + '\n" >> ' + params.shellCallFile, shell=True)
    call(callString, shell=True)
Run Code Online (Sandbox Code Playgroud)

我很欣赏任何关于如何解决这个问题的提示以及我不太了解的蛇形部分.

python-3.x snakemake

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

Snakemake 中“未给出通配符错误值”

我正在尝试使用 Snakemake 制作一个简单的管道,从网络上下载两个文件,然后将它们合并到一个输出中。

我认为可行的是以下代码:

dwn_lnks = {
    '1': 'https://molb7621.github.io/workshop/_downloads/sample.fa',
    '2': 'https://molb7621.github.io/workshop/_downloads/sample.fa'       
    }
import os

# association between chromosomes and their links
def chromo2link(wildcards):
    return dwn_lnks[wildcards.chromo]

rule all:
    input:
        os.path.join('genome_dir', 'human_en37_sm.fa')

rule download:
    output:
        expand(os.path.join('chr_dir', '{chromo}')),
    params:
        link=chromo2link,
    shell:
        "wget {params.link} -O {output}"


rule merger:
    input:
        expand(os.path.join('chr_dir', "{chromo}"), chromo=dwn_lnks.keys())
    output:
        os.path.join('genome_dir', 'human_en37_sm.fa')
    run:
        txt = open({output}, 'a+')
        with open (os.path.join('chr_dir', "{chromo}") as file:
                    line = file.readline()
                    while line:
                        txt.write(line)
                        line = file.readline()
        txt.close()
Run Code Online (Sandbox Code Playgroud)

此代码返回错误: No values given for wildcard 'chromo'. in …

python snakemake

3
推荐指数
1
解决办法
2724
查看次数

多处理Pool.map函数问题

我有一个像下面这样的函数,它采用一个列表和一个路径:

def my_function(items_list,directory):
     return(resulting number  of analyzing items_list for example [a,b] using specific file for example 'c:\\path')
Run Code Online (Sandbox Code Playgroud)

做并行计算,我使用多处理模块如下:

from multiprocessing import Pool
def test_func(objs):
 pool= Pool(8) 
 result=pool.map(my_function,objs)
 return(result)


if __name__=='__main__':
    objects=[([a,b],'path1',),([c,d],'path2',),.....]
    result=test_funct(objects)
Run Code Online (Sandbox Code Playgroud)

但它给我以下错误:TypeError:my_function()缺少1个必需的位置参数:'directory'

我多次更改了对象列表格式,但它一直给我同样的错误.有谁知道问题是什么?(我在Windows 7上使用python33)

python multiprocessing python-3.x

2
推荐指数
1
解决办法
3294
查看次数

将 NumPy 数组转换为列表时浮点不一致

我有一个由 py​​thon numpy 生成的区间范围。这些值符合预期,但是当数组转换为列表时,这些值与数组中的值不同。

numpy.linspace(0.3,0.7,5)
array([ 0.3,  0.4,  0.5,  0.6,  0.7])

numpy.linspace(0.3,0.7,5).tolist()
[0.3, 0.39999999999999997, 0.5, 0.6, 0.7]

list(numpy.linspace(0.3,0.7,5))
 [0.29999999999999999,0.39999999999999997,0.5,0.59999999999999998,
 0.69999999999999996]
Run Code Online (Sandbox Code Playgroud)

为什么 numpy 会有这样的行为?无论如何,是否可以使列表中的值与数组相同,而不使用另一个循环来舍入列表中的值?

python arrays floating-point numpy list

2
推荐指数
1
解决办法
546
查看次数

查找字符串中特定字符的范围

我在Windows 7上使用python-3.x.我有一个由数百万个字符组成的字符串.考虑例如:

ATCGNNNATCGATNNNNNATCGANTCG
Run Code Online (Sandbox Code Playgroud)

我想得到的范围N.在这里,[[4,7], [13,18], [23,24]].我不能只接受Ns的位置,然后将它们转换为范围,因为它是一个巨大的数据,这个方法太慢了.这似乎是一个很容易解决的问题,但实际上并没有好的办法.有没有快速的方法来做到这一点?

python python-3.x

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

如何在python中替换字符串中的连续空格

我有一个格式很好的数据文件,其数据结构如下:

" id1    id2             id3         id4"
"  id1    id2            id3         id4"
" id1     id2             id3         id4"
Run Code Online (Sandbox Code Playgroud)

我应该在每一行中检索id2和id4,但是id之间每行中的空格数不同.有没有办法我可以用'/ t'之类的字符替换每一行中的所有连续空格,这样我就可以在每一行中检索第二和第四项?我感谢任何帮助.

python

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

查找仅在 Python 中特定位置可变的字符串的所有排列

我有一个仅在特定位置可变的 DNA 序列,需要找到所有可能的情况:

DNA_seq='ANGK' #N can be T or C  and K can be A or G
N=['T','C']
K=['A','G']
Run Code Online (Sandbox Code Playgroud)

结果:

['ATGA','ATGG','ACGA','ACGG']
Run Code Online (Sandbox Code Playgroud)

@vladimir 提供的解决方案非常适合像上面的示例这样的简单情况,但对于如下的复杂场景,内存很快就会耗尽。对于下面的示例,即使使用 120G 内存运行也会出现内存不足错误。这是令人惊讶的,因为组合总数约为 500K 的 33bp 字符串,我认为这不会消耗超过 100G 的 RAM。我的假设是错误的吗?有什么建议么?

N=['A','T','C','G']
K=['G','T']
dev_seq=[f'{N1}{N2}{K1}{N3}{N4}{K2}{N5}{N6}{K3}TCC{N7}{N8}{K4}CTG{N9}{N10}{K5}CTG{N11}{N12}{K6}{N13}{N14}{K7}{N15}{N16}{K8}' for \
           N1,N2,K1,N3,N4,K2,N5,N6,K3,N7,N8,K4,N9,N10,K5,N11,N12,K6,N13,N14,K7,N15,N16,K8 in \
               product(N,N,K,N,N,K,N,N,K,N,N,K,N,N,K,N,N,K,N,N,K,N,N,K)]
Run Code Online (Sandbox Code Playgroud)

python python-itertools python-3.x

0
推荐指数
1
解决办法
54
查看次数

使用python中的分类x和y轴绘制数据

我有一个案例和控制样本列表,以及每个样本中存在或不存在哪些特征的信息.包含信息的数据帧可以由Pandas生成:

import pandas as pd
df={'Patient':[True,True,False],'Control':[False,True,False]} # Presence/absence data for three genes for each sample 
df=pd.DataFrame(df)
df=df.transpose()
df.columns=['GeneA','GeneB','GeneC']
Run Code Online (Sandbox Code Playgroud)

我需要将这些数据可视化为点图/散点图,使得x和y轴都是分类的,并且存在/不存在由不同的形状编码.如下:

Patient|  x      x     -
Control|  -      x     -  
       __________________
        GeneA  GeneB  GeneC
Run Code Online (Sandbox Code Playgroud)

我是Matplotlib/seaborn的新手,我可以绘制简单的线图和散点图.但在线搜索我找不到类似于我需要的任何说明或情节.

python matplotlib pandas seaborn

-1
推荐指数
1
解决办法
602
查看次数