Snakemake 输入两个变量,输出一个变量

如何解决Snakemake 输入两个变量,输出一个变量

我想重命名和移动我的 Finalize GroupAggregate (cost=440073.16..443607.99 rows=6779 width=40) (actual time=25504.816..25562.865 rows=14142 loops=1) Output: id_article,sum(qte) Group Key: mouvstk.id_article -> Gather Merge (cost=440073.16..443319.89 rows=27116 width=40) (actual time=25504.799..25580.712 rows=63081 loops=1) Output: id_article,(PARTIAL sum(qte)) Workers Planned: 4 Workers Launched: 4 -> Sort (cost=439073.10..439090.05 rows=6779 width=40) (actual time=25446.155..25447.759 rows=12616 loops=5) Output: id_article,(PARTIAL sum(qte)) Sort Key: mouvstk.id_article Sort Method: quicksort Memory: 1434kB Worker 0: Sort Method: quicksort Memory: 1431kB Worker 1: Sort Method: quicksort Memory: 1428kB Worker 2: Sort Method: quicksort Memory: 1430kB Worker 3: Sort Method: quicksort Memory: 1430kB Worker 0: actual time=25433.322..25434.870 rows=12618 loops=1 Worker 1: actual time=25435.450..25437.032 rows=12599 loops=1 Worker 2: actual time=25427.157..25428.702 rows=12611 loops=1 Worker 3: actual time=25432.809..25434.284 rows=12599 loops=1 -> Partial HashAggregate (cost=438556.99..438641.73 rows=6779 width=40) (actual time=25432.515..25441.923 rows=12616 loops=5) Output: id_article,PARTIAL sum(qte) Group Key: mouvstk.id_article Worker 0: actual time=25417.656..25428.424 rows=12618 loops=1 Worker 1: actual time=25424.587..25432.008 rows=12599 loops=1 Worker 2: actual time=25416.391..25423.729 rows=12611 loops=1 Worker 3: actual time=25417.598..25428.208 rows=12599 loops=1 -> Parallel Seq Scan on public.mouvstk (cost=0.00..429549.32 rows=1801535 width=13) (actual time=454.411..24611.221 rows=1439376 loops=5) Output: code_origine,numero_caisse,numero_document,date,code_clifour,code_vendeur,code_affaire,code_magasin,numero_serie,libelle,puht,puhtnet,puttc,puttcnet,taux_remise,code_tva,taux_tva,code_devise,parite_devise,frais_approche,prht,nomenclature,type_vente,code_tarif,code_categorie_achat,numero_lot,date_peremption,pvttcstd,lib_tarif,id_ligne_document,id,id_article,qte,id_clifour Filter: (mouvstk.date >= '2018-06-09'::date) Rows Removed by Filter: 1791877 Worker 0: actual time=438.619..24600.391 rows=1428362 loops=1 Worker 1: actual time=445.653..24609.448 rows=1425821 loops=1 Worker 2: actual time=437.424..24600.521 rows=1430897 loops=1 Worker 3: actual time=438.652..24605.422 rows=1430127 loops=1 Planning Time: 0.356 ms Execution Time: 25624.787 ms 文件:

fastq.gz

到这些:

NAME-BOB_S1_L001_R1_001.fastq.gz
NAME-BOB_S1_L001_R2_001.fastq.gz
NAME-JOHN_S2_L001_R1_001.fastq.gz
NAME-JOHN_S2_L001_R2_001.fastq.gz

这是我的代码。我遇到的问题是第二个变量 S,我不知道如何在代码中指定它,因为我的输出文件名中不需要它。

NAME_BOB/reads/NAME_BOB.R1.fastq.gz
NAME_BOB/reads/NAME_BOB.R2.fastq.gz
NAME_JOHN/reads/NAME_JOHN.R1.fastq.gz
NAME_JOHN/reads/NAME_JOHN.R2.fastq.gz

解决方法

您的代码中有几个问题。首先,输出中的 {dir} 和输入中的 {dir} 是两个不同的变量。实际上输出中的{dir}是一个通配符,而输入中的{dir}expand函数的一个参数(而且,你甚至忘记调用这个函数,那就是第二个问题)。

第三个问题是 shell 部分应该只包含一个命令。您可以尝试 mv {input.fastq1} {output.fastq1}; mv {input.fastq2} {output.fastq2},但这不是惯用的解决方案。最好是创建一个生成单个文件的规则,让 Snakemake 完成其余的工作。

最后,S 的值完全依赖于 DIR 的值,所以它变成了 {dir} 的函数,并且可以通过输入中的 lambda 来解决:

workdir: "/path/to/workdir/"

DIR=["BOB","JOHN"]
dir2s = {"BOB": "S1","JOHN": "S2"}

rule all:
    input: 
        expand("NAME_{dir}/reads/NAME_{dir}.{r}.fastq.gz",dir=DIR,r=["R1","R2"])
        
rule rename:
    input:
        lambda wildcards:
            "fastq/NAME-{{dir}}_{s}_L001_{{r}}_001.fastq.gz".format(s=dir2s[wildcards.dir])
    output:
        "NAME_{dir}/reads/NAME_{dir}.{r}.fastq.gz",shell:
        """
        mv {input} {output}
        """

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res