- 博客(62)
- 资源 (3)
- 收藏
- 关注
原创 选项模式(Options Pattern)
在Python语言中,创建一个对象时,可以给参数设置默认值,这样在不传入任何参数时,可以返回携带默认值的对象,并在需要时修改对象的属性。在Go语言中,我们经常会遇到一个结构体中有很多字段,我们只想设置其中的一部分字段,其他字段都使用默认值的情况,这时可以通过选项模式来解决。选项模式是指定义一个函数,这个函数的参数是一个结构体指针,这个结构体中包含了所有可选参数,函数根据参数的需求来设置结构体的字段值。第一种方法,我们要分别开发两个用来创建实例的函数,一个可以创建带默认值的实例,一个可以定制化创建实例。
2025-03-11 23:00:00
549
原创 Nextflow 可选输入文件
可以使用特殊的文件名来标记这类输入参数,类似于一个 placeholder。有时候存在需要 process 接收可选的输入文件的场景。控制是否真正的使用输入文件。这样就可以在运行时指定参数。
2024-07-10 20:00:00
278
1
原创 python 循环导入(circular imports)解决方法
正如在开头提到的,修复循环导入的最佳方法是对代码结构进行优化,这样模块就不会相互依赖。模块,这样是可以正常导入的,因为这两个模块都存在。就像上面提到的那样,它们此刻是空的,但是现在我们没有导入某个具体的函数名称。与函数调用一样,当 import 语句运行时,它开始执行导入的文件,直到导入完成后才返回当前文件。模块就都会包含了他们的内部的函数名称,我们可以使用模块名来引用其中的函数了。将函数名称查找延迟到函数体内,可以让所有模块完全初始化,避免循环导入的错误。模块已经存在,但是还没有定义。
2024-06-13 23:00:00
1575
原创 Python detach 进程
有一个调度程序会周期性的读取任务来调度,并且这些任务的执行时间比较长,我们想要在调度程序退出或Ctrl+c中断时不要影响其启动的任务。
2023-07-15 22:00:00
563
原创 Ubuntu – apt-get update fails “The repository no longer has a Release file”
Ubuntu – apt-get update fails “The repository no longer has a Release file”
2023-02-09 20:15:00
651
1
原创 15 Nextflow编码实践
Nextflow对空格不敏感。可以使用空格来提高可读性。使用注释和空格来对代码块进行分组。在脚本中报告工具版本。使用关键字命名输出channel。避免在process中使用params.xxx。将其作为输入参数传入。输入文件应该使用输入通道传入。将短的运行的命令组织到一个更大的进程中。包含一个在小型测试数据集上运行工作流的测试配置文件。重用现有的容器/软件包来编写process。尽可能使用压缩文件和临时磁盘空间。使用一致的命名约定。...
2022-07-25 18:00:00
639
原创 14 部署 nf-core pipelines
nf-core是一个由社区领导的项目,旨在开发一套使用Nextflow工作流管理系统建造的最佳实践管道。
2022-07-21 20:00:00
1202
原创 13 Workflow caching and checkpointing
像 Nextflow 这样的工作流管理系统的一个关键特性是可重入性,即在上次成功执行的流程出现错误后重新启动管道的能力。可重入性允许在向管道添加更多数据时跳过耗时的已经完成的步骤,例如创建索引。这会促进更快的工作流原型的开发,以及更快的附加数据分析。Nextflow 通过缓存和检查点自动跟踪管道中执行的所有进程来实现重入。...
2022-07-13 23:30:00
203
原创 10 Modules
在大多数编程语言都有创建代码模块这个概念,以便重用代码。Nextflow (DSL2)允许定义可以跨workflow管道包含和共享的脚本。
2022-07-08 21:00:00
149
原创 9 Nextflow configuration
Nextflow的关键能力是将workflow的的实现与底层执行平台所需的配置解耦。这使得workflow具有可移植性,运行其在不同的计算平台上运行,而不需要修改实现。
2022-07-07 23:30:00
707
原创 3 Workflow参数
前面提到的Nextflow wc.nf 脚本定义了一个管道参数 params.input。管道参数允许在运行时通过命令行或配置文件更改工作流的输入,因此它们不会硬编码到脚本中。
2022-06-21 19:00:00
418
原创 4 Channels
通道是 Nextflow 在工作流中发送数据的方式。通道通过它们的输入和输出连接进程。通道可以存储多个项,比如文件(例如 fastq 文件)或值。通道存储的项数决定了使用该通道作为输入的进程将运行多少次。...
2022-06-21 14:02:16
423
原创 2 Nextflow 脚本
Nextflow 是在 Groovy 编程语言之上实现的领域特定语言(Domain Special Language,DSL) ,而 Groovy 编程语言又是 Java 编程语言的超集。这意味着 Nextflow 可以运行任何 Groovy 和 Java 代码。学习 Groovy 使用 Nextflow DSL 是没有必要的,但是在需要比 DSL 提供更多功能的边缘情况下,它可能会很有用。......
2022-06-21 09:57:05
490
原创 1 Nextflow入门
分析数据涉及到一系列的任务,包括收集、清洗和处理数据。这些序列被称为工作流或流水线(pipeline)。这些工作流通常需要执行多个软件,有时运行在不同的计算环境,例如台式机或计算机集群。传统上,这些工作流通过脚本连接在一起,使用通用编程语言,如 Bash 或 Python。然而,随着工作流变得更大和更复杂,对编程逻辑和软件的管理变得困难。工作流管理系统,像Snakemake、Galaxy、Nextflow,是专门为管理特定领域的计算数据分析工作流而开发的。.........
2022-06-20 22:00:00
2252
原创 python tricks
python tricks2 数据结构与算法 📃3 字符串相关 🔤4 对象迭代与反迭代 👍5 文件io 📃6 数据解析及构建 🔢7 类与对象 🐘8 多线程并发 🔜9 装饰器 🖼NumPy: Remove all rows in a NumPy array that contain non-numeric valuesimport numpy as npx = np.array([[1,2,3], [4,5,np.nan], [7,8,9], [True, False, True]])print(
2022-05-29 14:52:06
274
原创 pyside国际化
internationalpyside6.1版本中没有lupdate,可以使用pyqt中的lupdate生成ts文件,pylupdate5 cali_dialog.py -ts eng-chs.ts,若有多个ts文件,可以使用 lconvert -i eng-chs.ts eng-chs1.ts -o all.ts 合并,然后使用linguist(在qt中)生成qm文件,然后再代码中loadtrans = QTranslator(self)app = QCoreApplication.instanc
2022-05-29 14:12:30
1019
原创 c++ 字面量
字面量自定义字面量自定义字面量字面量(literal)是指在源代码中写出的固定常量,它们在 C++98 里只能是原生类型,如:"hello",字符串字面量,类型是 const char[6]1,整数字面量,类型是 int0.0,浮点数字面量,类型是 double3.14f,浮点数字面量,类型是 float123456789ul,无符号长整数字面量,类型是 unsigned longC++11 引入了自定义字面量,可以使用 operator"" 后缀 来将用户提供的字面量转换成实际的类型。C
2022-05-02 19:00:00
2451
原创 5 模板别名和模板参数
模板别名和参数模板别名模板参数类型非类型模板模板别名在C++11中提供了模板别名。使用它可以方便的对一些具有不同类型参数的模板命名。例如有Matrix类模板:template <typename T, int Line, int Col>class Matrix{ ....};为了可读性,我们增加2个特殊的矩阵:Square和Vector,分别表示行列相同的方阵和一维的向量。可以使用关键字using声明类型别名:template <typename T, int L
2022-04-07 23:45:00
487
原创 4 类模板继承
类模板继承类模板继承的成员函数是不可用的成员函数的实例化是lazy的类模板继承中有一些细节需要注意。类模板继承的成员函数是不可用的#include <iostream>class Base{public: void func(){ // (1) std::cout << "func\n"; }};class Derived: public Base{public: void callBa
2022-04-06 23:30:00
1417
原创 3 类模板初探
类模板类模板的定义成员函数的定义当成员函数为模板友元将成员函数定义在类外类模板的定义我们拿数组Array来举例:class Array{ public: int getSize() const { return 10; } private: int elem[10];};类Array中有一个长度为10的C数组。其中的数组类型和长度显然是可以泛化的。下面将其变为一个模板:#include <cstddef>
2022-04-02 17:54:56
650
原创 2 函数模板初探
函数模板和函数的重载仍然拿max函数举例。使用double重载max函数。然后分别使用float和double实例化:template <typename T>T max(T lhs,T rhs) { return (lhs > rhs)? lhs : rhs;}double max(double lhs, double rhs) { return (lhs > rhs)? lhs : rhs;}int main() { max(10.
2022-04-01 18:18:50
1054
原创 1 C++模板
模板入门什么时候使用模板如何创建模板当实例化模板时会发生什么?当使用相同类型实例化模板多次时,会发生什么?延迟实例化模板(类模板或函数模板)和类或函数很相似。当你实例化一个模板,你就创建了一个具体的类或函数。出于习惯,有时也将类模板称为泛型类,将函数模板成为泛型函数。为了可视化模板实例化的过程,可以使用C++ Insights。什么时候使用模板你应该使用模板当函数或类代表了一个抽象的概念,并且不局限于某个特定的类型。例如:函数max,容器vector都能用于多种类型。如何创建模板假如有如下函数:
2022-03-31 18:56:31
899
原创 智能指针实现
智能指针简单实现参考链接智能指针可以简化资源的管理,从根本上消除资源(包括内存)泄漏的可能性。智能指针本质上并不神秘,其实就是 RAII 资源管理功能的自然展现而已。unique_ptr 算是一种较为安全的智能指针了。但是,一个对象只能被单个 unique_ptr所拥有,这显然不能满足所有使用场合的需求。多个不同的 shared_ptr 不仅可以共享一个对象,在共享同一对象时也需要同时共享同一个计数。当最后一个指向对象(和共享计数)的 shared_ptr 析构时,它需要删除对象和共享计数。我们下面就
2022-02-19 23:59:18
1263
原创 7.NLTK之从文本提取信息
信息提取(Information Extraction)下图显示了一个简单的信息提取系统的结构。 首先,使用句子分割器将文档的原始文本分割成句,使用分词器将每个句子进一步细分为词。接下来,对每个句子进行词性标注,在下一步,命名实体识别中我们将寻找句子中提到的实体;最后,使用关系识别搜索文本中不同实体间的可能关系。
2017-03-02 21:06:34
2966
原创 6.NLTK之学习文本分类
有监督分类(Supervised Classification)如果分类的建立基于包含每个输入的正确标签的训练语料,被称为有监督分类。
2017-02-28 21:15:57
3391
原创 5.NLTK之分类和标注词汇
本章关注的问题: 1. 什么是lexical categories(词汇分类),在NLP中如何使用它们? 2. 什么样的Python数据结构适合存储词汇与它们的类别? 3. 如何自动标注文本中词汇的词类?
2017-01-11 21:07:13
6497
原创 4.NLTK之编写结构化程序
回归基础赋值赋值似乎是最基本的编程概念,不值得单独讨论。不过,也有一些令人吃惊的微妙之处 。思考下面的代码片段:>>> foo = 'Monty'>>> bar = foo >>> foo = 'Python' >>> bar'Monty'由于bar是foo的一个副本,所以改变foo时,bar不会受到影响。 然而,赋值语句并不总是以这种方式复制副本。特别是结构化对象的“值”,例如一个链表,
2017-01-09 20:30:21
498
电梯调度程序
2015-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人