snkemake入门

一、背景介绍

snakemake是一种用于自动化流程的开源工具,是一款基于python3的软件。在生物信息学、高通量测序数据分析、大规模数据处理等领域非常流行。

snakemake的官网:Snakemake | Snakemake 8.16.0 documentationicon-default.png?t=N7T8https://snakemake.readthedocs.io/en/stable/

二、sankemake的安装

conda activate base
conda install -c conda-forge mamba
conda deactivate
mamba create -n snakemake -c conda-forge -c bioconda snakemake
conda activate snakemake
snakemake --help
conda deactivate
#删除环境
conda remove --all -n snakemake#这里采用一种新的安装软件mamba,说是可以更快的加载和下载conda安装软件的速度,你也可以直接用conda安装

三、snakemake的书写规则

依据不同rule的输入和输出将其连接起来,形成一个完整的pipeline。

当检测到input,就执行相应的rule;检测到output,就跳过相应的rule。因此这个pipeline的逻辑是这样的,不是你要写一个rule的逻辑关系,而是用输入和输出控制。

snakemake在执行时,会默认执行第一条规则,因此我们会先写rule all。

之后依据rule all找逻辑,再执行。不是按照从上到下依次执行,因此rule的书写先后不影响执行,但是一般我们会依次书写方便阅读。(若第一个不是rule all,则默认执行第一个rule,然后找逻辑,最后退出)

若一个rule的输入是多个其他rule的结果,因此,这个rule一定会在所有输入都有条件下才会执行。

四、snakemake两种典型格式

rule fastp:input:cleandata_raw_R1="path/to/{sample}.R1.fq.gz"cleandata_raw_R2="path/to/{sample}.R2.fq.gz"output:b="{sample}.bam"params:n_d= 4shell:"bwt men -t {params[0]} {input[0]} {input[1]} > {output[0]}"#或者是这样写,如下:
rule fastp:input:"path/to/{sample}.R1.fq""path/to/{sample}.R2.fq"output:"{sample}.bam"params:"4"						shell:"bwt men -t {params[0]} {input[0]} {input[1]} > {output[0]}"
rule sort:input:"path/to/{dataset}.txt"output:"{dataset}.sorted.txt"log:"{dataset}.sort.log"run:with open(output.b, "w") as out:for l in sorted(open(input.a)):print(l,file=out)#或者如下,不过还是建议赋给一个变量名。rule sort:input:file1="path/to/{dataset}.txt"output:file2="{dataset}.sorted.txt"log:"{dataset}.sort.log"run:with open(output.b, "w") as out:for l in sorted(open(input.a)):print(l,file=out)

rule格式:

  • 起始行(规则命名)rule+名称
  • 使用TAB键缩进/四个空格
  • 双引号""的使用
  • 输入和输出的定义:直接写/赋给一个变量名
  • 输入和输出的引用:起始下标是0(和python语法一致,从零开始)。使用花括号{}。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自监督学习概述(Self-Supervised Learning,SSL)

自监督学习(Self-Supervised Learning,SSL)是一种机器学习方法,旨在利用未标记数据进行训练。这种方法通过从数据本身生成伪标签,来创建监督信号,使得模型能够学习有效的数据表示。自监督学习在深度学习领域…

C++ | Leetcode C++题解之第283题移动零

题目&#xff1a; 题解&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size(), left 0, right 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left;}right;}} };

MathType 7.8中文直装版2024年最新图文安装破解教程

MathType公式编辑器 v7.8中文破解版是一款适用于Windows和Macintosh的便捷交互式公式编辑器&#xff0c;可帮助您进行文字处理、网页、桌面设计、演示文稿制作、学习TeX、LaTeX和MathML文档创建。 MathType 7.8这个工具允许用户创建、修改公式和插入多个文档。有了这个软件&…

​CSS技巧专栏:一日一例 13 -纯CSS实现晃晃悠悠背景不停滚动的按钮特效​

CSS技巧专栏:一日一例 13 -纯CSS实现晃晃悠悠背景不停滚动的按钮特效​ 大家好,本篇文章给大家带来一个可爱的按钮,像个小宠物等待你抚摸和奖励,不知道它会不会引起你的关注呢?页面上这样的一个按钮,会不会让你忍不住把鼠标移动过去点一下呢? 本例图片 案例分析 这个…

机械学习—零基础学习日志(高数12——反三角函数)

零基础为了学人工智能&#xff0c;真的开始复习高数 反三角函数很困难&#xff0c;但是当建立了逻辑链条&#xff0c;还是能快速理解的。这个办法就是笛卡尔坐标系。 三角函数与反三角函数的个人理解 sinx与cosx&#xff0c;tanx&#xff0c;secx&#xff0c;其实都可以放在…

白嫖游戏指南,Epic喜加一:《暗影火炬城》

前言 Epic喜加一&#xff1a;《暗影火炬城》《暗影火炬城》简介&#xff1a; 前言 接下来有时间会分享一些游戏相关可以白嫖的资源&#xff0c;包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以关注这个专栏&#xff0c;不定期更新哦&#xff01; 专栏&#xff1a;白嫖…

数据库系统概述

文章目录 数据库基本概念内容重点数据库定义计算机三大主要应用领域 数据管理基础数据与信息数据处理与数据管理 数据库技术的产生、发展数据库系统的组成优势组成部分 数据模型概念类型 数据库三级模式和二级映射目的组成部分 数据库系统设计步骤小结 数据库基本概念 内容 信…

羊大师:夏夜贪凉,但为啥肚子还要‘保暖计划’?

在这个夏夜&#xff0c;当空调与风扇齐飞&#xff0c;冰镇西瓜与凉面共舞之时&#xff0c;你是否也曾有过这样的疑惑&#xff1a;明明热得汗流浃背&#xff0c;为啥老一辈总念叨着“睡觉再热也要给肚子盖被子”&#xff1f;这背后&#xff0c;藏着的可不仅仅是老一辈的固执&…

链路聚合加单臂路由

一、实验目的及拓扑 实验目的&#xff1a;在路由器及交换机之间建立链接聚合&#xff0c;交换机接入两台主机并通过路由器子接口自动分配IP地址&#xff0c;通过单臂路由实现两台主机互联 二、基本配置 1、交换机配置 [S1]vlan batch 10 20 [S1-Eth-Trunk1]dis th # interf…

小型内衣裤洗衣机哪个牌子好?五款万分翘楚机型任你挑选!

在日常生活中&#xff0c;内衣洗衣机已成为现代家庭必备的重要家电之一。选择一款耐用、质量优秀的内衣洗衣机&#xff0c;不仅可以减少洗衣负担&#xff0c;还能提供高效的洗涤效果。然而&#xff0c;市场上众多内衣洗衣机品牌琳琅满目&#xff0c;让我们往往难以选择。那么&a…

AI复活,让老照片动起来【数字永生】

✅ 适宜人群&#xff1a;关注 AI 复活缅怀逝者或以此变现的人群 内容出品人&#xff1a;领航猿1号 更多AI知识分享&#xff1a;https://www.yuque.com/lhyyh/ai/readme?singleDoc 1、前言 AI“复活”实质上是利用人工智能技术&#xff0c;通过对人物已有“形象、声音、语言、…

用Python实现Cmpp协议的教程

引言&协议概述 &#xff08;CMPP&#xff09;是中国移动为实现短信业务而制定的一种通信协议&#xff0c;用于在客户端&#xff08;SP&#xff0c;Service Provider&#xff09;和中国移动短信网关之间传输短消息&#xff0c;有时也叫做移动梦网短信业务。CMPP3.0是该协议…

嵌入式Linux学习: 设备树实验

设备树&#xff08;DeviceTree&#xff09;是一种硬件描述机制&#xff0c;用于在嵌入式系统和操作系统中描述硬件设备的特性、连接关系和配置信息。它提供了一种与平台无关的方式来描述硬件&#xff0c;使得内核与硬件之间的耦合度降低&#xff0c;提高了系统的可移植性和可维…

立创梁山派--移植开源的SFUD和FATFS实现SPI-FLASH文件系统

本文主要是在sfud的基础上进行fatfs文件系统的移植&#xff0c;并不对sfud的移植再进行过多的讲解了哦&#xff0c;所以如果想了解sfud的移植过程&#xff0c;请参考我的另外一篇文章&#xff1a;传送门 正文开始咯 首先我们需要先准备资料准备好&#xff0c;这里对于fatfs的…

【ESP32 IDF 软件模拟SPI驱动 W25Q64存储与读取数组】

目录 SPISPI介绍SPI时序代码编写&#xff08;spi&w25q64&#xff09; 代码调试 SPI SPI介绍 SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外围设备接口&#xff09;是一种高速、全双工、同步的串行通信总线&#xff0c;常用于微控制器与各种外围设备&…

苍穹外卖浏览器前端界面修改

背景&#xff1a; 客户原始方案是期望做一个Spring Boot Vue的饿了么系统&#xff0c;但时间上太仓促&#xff0c;所以建议选择开源的苍穹外码目作为作业提交。 客户接受了建议的方案后&#xff0c;期望对前端页面做一些个性化的定制修改。 过程&#xff1a; 苍穹外卖简单介…

【HTML+CSS】HTML超链接:构建网页导航的基石

目录 什么是HTML超链接&#xff1f; 基本语法 示例 链接到另一个网页 链接到同一页面内的不同部分 常用属性 在Web开发的广阔世界中&#xff0c;HTML&#xff08;HyperText Markup Language&#xff09;作为网页内容的标准标记语言&#xff0c;扮演着至关重要的角色。而在…

重拾CSS,前端样式精读-函数(颜色,计算,图像和图形)

前言 本文收录于CSS系列文章中&#xff0c;欢迎阅读指正 在计算机编程中&#xff0c;函数有着重要的作用和意义&#xff0c;它可以实现封装&#xff0c;复用&#xff0c;模块化&#xff0c;参数等功能效果&#xff0c;在如何在CSS中写变量&#xff1f;一文带你了解前端样式利…

操作系统杂项(十)

目录 一、简述socket中select、epoll的使用场景和区别 1、使用场景 2、区别 二、epoll水平触发和边缘触发的区别 三、简述Reactor和Proactor模式 1、Reactor 2、Proactor 3、区别 四、简述同步和异步的区别&#xff0c;阻塞和非阻塞的区别 1、同步与异步 2、阻塞与非…

深入分析 Android ContentProvider (五)

文章目录 深入分析 Android ContentProvider (五)ContentProvider 的性能优化和实践案例1. 性能优化技巧1.1. 数据库索引优化示例&#xff1a;添加索引 1.2. 批量操作与事务管理示例&#xff1a;批量插入操作 1.3. 使用异步操作示例&#xff1a;使用 AsyncTask 进行异步查询 1.…