我想使用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这样的格式.我想知道是否有其他人有同样的问题,如果有任何解决方案.
我开始使用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)
我很欣赏任何关于如何解决这个问题的提示以及我不太了解的蛇形部分.
我正在尝试使用 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 …
我有一个像下面这样的函数,它采用一个列表和一个路径:
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 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 会有这样的行为?无论如何,是否可以使列表中的值与数组相同,而不使用另一个循环来舍入列表中的值?
我在Windows 7上使用python-3.x.我有一个由数百万个字符组成的字符串.考虑例如:
ATCGNNNATCGATNNNNNATCGANTCG
Run Code Online (Sandbox Code Playgroud)
我想得到的范围N.在这里,[[4,7], [13,18], [23,24]].我不能只接受Ns的位置,然后将它们转换为范围,因为它是一个巨大的数据,这个方法太慢了.这似乎是一个很容易解决的问题,但实际上并没有好的办法.有没有快速的方法来做到这一点?
我有一个格式很好的数据文件,其数据结构如下:
" id1 id2 id3 id4"
" id1 id2 id3 id4"
" id1 id2 id3 id4"
Run Code Online (Sandbox Code Playgroud)
我应该在每一行中检索id2和id4,但是id之间每行中的空格数不同.有没有办法我可以用'/ t'之类的字符替换每一行中的所有连续空格,这样我就可以在每一行中检索第二和第四项?我感谢任何帮助.
我有一个仅在特定位置可变的 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) 我有一个案例和控制样本列表,以及每个样本中存在或不存在哪些特征的信息.包含信息的数据帧可以由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 ×8
python-3.x ×4
snakemake ×2
arrays ×1
list ×1
matplotlib ×1
numpy ×1
pandas ×1
seaborn ×1
xlsxwriter ×1