错误的蛇制作glob_wilcards和wildcard_contraints



在我的snakemake管道中,我正在尝试检索正确的通配符。我已经研究了wildcard_contraints、这篇文章和这篇文章,但我无法找到确切的解决方案。

以下是2个数据集中的文件名示例。1个数据集包含配对的小鼠RNAseq读取文件,另一个数据集包括人类配对的RNAseq阅读文件。

"Mus_musculus";数据集是";PRJNA362883_GSE93946_SRP097621";文件名:

"SRR5195524_GSM2465521_KrasT_45649_NoDox_Mus_musculus_RNA-Seq_1.fastq.gz";"SRR5195524_GSM2465521_KrasT_45649_NoDox_Mus_musculus_RNA-Seq_2.fastq.gz";

"Homo_ sapiens";数据集是";PRJNA362883_GSE93946_SRP097621";文件名:

"SRR7942395_GSM340686_sAML_Control_1_Homo_sapiens_RNA-Seq_1.fastq.gz";"SRR7942395_GSM340686_sAML_Control_1_Homo_sapiens_RNA-Seq_2.fastq.gz";

我希望glob_wildcards吐出以下通配符

> ['PRJNA362883_GSE93946_SRP097621', 'PRJNA362883_GSE93946_SRP097621',
> 'PRJNA493818_GSE120639_SRP162872', 'PRJNA493818_GSE120639_SRP162872']
> ['SRR5195524_GSM2465521_KrasT_45649_NoDox',
> 'SRR5195524_GSM2465521_KrasT_45649_NoDox',
> 'SRR7942395_GSM3406786_sAML_Control_1',
> 'SRR7942395_GSM3406786_sAML_Control_1'] ['Mus_musculus', 'Mus_musculus',
> 'Homo_sapiens', 'Homo_sapiens'] ['1', '2', '1', '2']

我尝试了以下代码:

> import glob import os
> 
> DATASET,SAMPLE,SPECIES,FRR,
> =glob_wildcards(config["project_path"]+"resources/raw_datasets/{dataset}/{sample}_{species}_RNA-Seq_{frr}.fastq.gz")
> print(DATASET,SAMPLE,SPECIES,FRR)

然而,我得到的是输出。许多下划线扰乱了全局_通配符

> ['PRJNA362883_GSE93946_SRP097621', 'PRJNA362883_GSE93946_SRP097621',
> 'PRJNA493818_GSE120639_SRP162872', 'PRJNA493818_GSE120639_SRP162872']
> ['SRR5195524_GSM2465521_KrasT_45649_NoDox_Mus',
> 'SRR5195524_GSM2465521_KrasT_45649_NoDox_Mus',
> 'SRR7942395_GSM3406786_sAML_Control_1_Homo',
> 'SRR7942395_GSM3406786_sAML_Control_1_Homo'] ['musculus', 'musculus',
> 'sapiens', 'sapiens'] ['1', '2', '1', '2']

例如,我尝试过这样做,但输出保持不变:wildcard_contraints:specific='!(智人('

有人能建议正确的代码来获得所需的通配符吗?提前感谢!

如果适合您的情况,最好准备一份样本表或yaml文件,说明每个文件的特征(例如物种、数据集等(。然后使用python代码(例如使用panda(提取通配符值并指导管道。

在我看来,从文件名中提取信息是很脆弱的,除非这些名称是在管道中创建的,并且您可以完全控制它们。

命名方案一团糟,所以我会先解决这个问题,并确保您不会要求下划线执行两个函数(给定变量中的单独单词和单独变量(。

如果这不可能,wildcard_constraints就是一个解决方案:

wildcard_constraints:
species="Mus_musculus|Homo_sapiens"
# can try variations with r"" or escaping the pipe

当然,如果你有更多的物种,这将需要调整。

相关内容

  • 没有找到相关文章

最新更新