gpt4 book ai didi

bioinformatics - Snakemake 和 Pandas 语法 : Getting sample specific parameters from the sample table

转载 作者:行者123 更新时间:2023-12-05 04:02:53 26 4
gpt4 key购买 nike

首先,这可能是 Snakemake and pandas syntax 的副本.但是,我仍然很困惑,所以我想再解释一下。

在 Snakemake 中,我加载了一个包含多列的示例表。其中一列称为“Read1”,它包含样本特定的读取长度。我想分别为每个样本获取此值,因为它可能不同。

我期望的工作是这样的:

rule mismatch_profile:
input:
rseqc_input_bam
output:
os.path.join(rseqc_dir, '{sample}.mismatch_profile.xls')
conda:
"../envs/rseqc.yaml"
params:
read_length = samples.loc['{sample}']['Read1']
shell:
'''
#!/bin/bash
mismatch_profile.py -i {input} -o {rseqc_dir}/{wildcards.sample} -l {params.read_length}

但是,这不起作用。出于某种原因,我不允许在标准 Pandas 语法中使用 {sample},我收到此错误:

KeyError in line 41 of /rst1/2017-0205_illuminaseq/scratch/swo-406/test_snakemake_full/rules/rseqc.smk:
'the label [{sample}] is not in the [index]'

我不明白为什么这不起作用。我读到我也可以使用 lambda 函数,但我真的不明白具体是怎么做的,因为它们仍然需要 {sample} 作为输入。

谁能帮帮我?

最佳答案

你可以使用 lambda 函数

params:
read_length = lambda wildcards: samples.loc[wildcards.sample, 'Read1']

关于bioinformatics - Snakemake 和 Pandas 语法 : Getting sample specific parameters from the sample table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54095096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com