Visual DSD语法

news/2024/11/14 18:39:45/文章来源:https://www.cnblogs.com/qbning/p/18546565

Visual DSD语法

目录
  • Visual DSD语法
    • 词法规则
      • 数字
      • 字母
      • Integer 整数
      • Name 名称
      • String 字符串
      • Float 浮点数
      • Char 字符
    • 注释
    • 保留关键词
    • 程序结构
      • Directive 指令
      • Declarations声明
      • Processes 进程(或者叫过程)
      • Species 物种
      • Value 值

Visual DSD | Andrew Phillips

https://wwvh.lanzn.com/imBw32f1ihod

https://ph1ll1ps.github.io/files/VisualDSDManual.pdf

词法规则

数字

单个字符,0-9

字母

A-Z,或a-z

Integer 整数

非空的数字序列

Name 名称

名称的第一个字符必须为字母下划线(_) ,接下来可以是一个可能为空的字符序列,这些字符可以是字母数字下划线撇号(‘)

String 字符串

一个可能为空的字符序列,用引号(“)括起来。如果字符串中包含引号,则必须用反斜杠(\)进行转义。

Float 浮点数

  1. 一个或多个数字后跟一个小数点(.),再跟零个或多个数字。例如:“\(3.141\)”。
  2. 一个或多个数字后跟一个大写的‘E’或小写的‘e’,再跟一个加号(+)或减号(-),再跟一个或多个数字。例如:“\(3e-5\)”。
  3. 一个或多个数字后跟一个小数点,再跟零个或多个数字,再跟一个大写的‘E’或小写的‘e’,再跟一个加号或减号,再跟一个或多个数字。例如:“\(1.4324e+2\)”。

Char 字符

一个用撇号括起来的单个字符。这个字符可以是任何字符,除了撇号或反斜杠。

注释

使用(* 开头 *)结尾

保留关键词

directive sample plot leak tau migrate lengths  def new true false int_of_float float_of_int time concentration  constant tolerance sum scale duration points toeholds

程序结构

程序分为指令(给模拟器和绘图器的指令)、声明(值、全局域和模块的声明)、进程(要运行的进程,包含物种及其初始种群)

一个程序必须包含进程,可能包含指令和声明

程序可以是这样的(就是说可以没有指令和声明,但有声明必然有指令):

Directives Declarations Process
Directives Process
Process

Directive 指令

指令是 Visual DSD 模拟器和数据绘图仪的指令。

  1. Duration 指令:告诉模拟器运行多长时间,使用浮点数表示。可以选择性地包含一个“Points”值(整数),指定在这段时间内采样物种种群的次数。如果没有提供这个值,默认情况下会在每次反应后采样,这可能会产生大量数据点。

    directive duration Float
    directive duration Float points Integer
    
  2. Sample 指令:这是另一种语法,与 Duration 指令具有相同的行为,主要是为了向后兼容。增加相同模拟时间内的数据点数量会产生更细致的结果,但显示可能会变得不太流畅。同样,如果数据点数量保持不变但模拟时间延长(或缩短),结果图将变得不那么(或更)详细。如果没有提供这些指令,默认行为是运行模拟 1000 个时间单位并采集 10,000 个物种种群样本。

    directive sample Float
    directive sample Float Integer
    
  3. Scale 指令:允许随机模拟器从摩尔浓度扩展到个体种群。浓度通过乘以一个因子进行缩放,二元反应的速率根据 Cardelli (2008) 的第 4.2 节进行修改。因此,用户不必担心在连续和离散模拟方法之间切换的细节。默认的缩放因子是 1.0。缩放因子还会修改确定性模拟器的容差参数。

  4. Concentration 指令:允许用户指定浓度的单位。当模拟器以确定性模式运行时,这个单位会显示在模拟图的 y 轴上,并且会出现在“Text”标签的摘要信息中。默认的浓度单位是纳摩尔(nM)。

    directive concentration String
    
  5. Time 指令:允许用户指定时间的单位。这将显示在模拟图的 x 轴上。默认的时间单位是秒(s)。

    directive time String
    
  6. Plot 指令:告诉系统在每个时间点采样哪些种群。如果没有提供“Plot”指令,系统将在每个时间点采样所有物种的种群。

    directive plot Plots
    

    Plots的样例

    String
    Gate
    Strand
    sum(Plots)
    sub(Plot;Plot)
    diff(Plot;Plot)
    div(Plot;Plot)
    Plots;Plots
    

    Plots 是一个用分号分隔的链和门物种列表。如果任何物种包含下划线字符 (_),则将其解释为通配符,可以匹配单个域,从而绘制多个物种。例如,模式 <_ s t> 将匹配 ,但不匹配 。``Plot指令也可以包含带引号的字符串——在这种情况下,是否绘制的决定基于物种名称的精确字符串匹配。这在处理局部受限域时非常有用,因为这些域会被系统自动重命名。还可以使用sum关键字加上括号内的物种来绘制物种种群的简单算术函数,例如多个物种种群的总和。对于给定的一对绘图物种 P1 和 P2,还可以绘制 P1 的种群减去 P2 的种群(使用sub)、差异(使用 diff`)或 P1 与 P2 的比率(使用 ‘div’)。

  7. Leak指令 设置泄漏反应的速率(默认值为 \(10^{-9} nM^{-1}s^{-1}\)

    directive leak Float
    
  8. Tau 指令 设置有限语义中的 tau 反应速率(默认值为 \(0.1126 s^{-1}\)

    directive tau Float
    
  9. Migrate 指令 设置跨单个核苷酸的分支迁移速率(默认值为 \(8000 s^{-1}\))。长度为 L 的域的分支迁移速率由 \(r/L^2\) 给出,其中 r 是指令设置的单个核苷酸迁移速率

    directive migrate Float
    
  10. Lengths指令 设置 toeholds 和长域的默认长度值。为了计算速率常数,假设所有长域具有相同的长度,该长度由 lengths 指令设置。代码 directive lengths 5 15 将 toeholds 的长度设置为 5nt,将长域的长度设置为 15nt(默认值为 toeholds 为 6nt,长域为 20nt)。提供的 toeholds 值必须大于特异性域的值,否则系统会报错。目前,分配给 toehold 域的默认长度不用于计算速率。相反,用户可以直接为每个 toehold 设置结合和解离速率。请注意,当前在计算速率常数时不使用特定的核苷酸序列。

    directive lengths Integer Integer
    
  11. Tolerance 指令 指定确定性模拟器的容差参数,这在计算成本和结果平滑度之间提供了权衡。默认值为 \(10^{-6}\)。选择反映系统中种群和反应速率的容差值至关重要,否则确定性模拟器的性能可能会受到影响。请注意,容差乘以比例因子,以尝试保持相对于物种种群的合理值

    directive tolerance Float
    
  12. Toeholds 指令 为声明时未指定显式速率的域的默认绑定和解除绑定速率(按此顺序)。默认值为 \(3.0*10^{-4} nM^{-1}s^{-1}\)(结合速率)和 \(0.1126 s^{-1}\)(解离速率)

    directive toeholds Float Float
    

Declarations声明

声明引入了新的模块定义、全局定义的域和值赋值。

  1. def 声明模块

    def Name ()= Process
    def Name ( Parameters )= Process
    

    模块只是一个参数化的过程。在这里,Parameters 代表一个非空的、用逗号分隔的名称列表,这些名称是该特定模块的参数。语法也允许模块具有空参数列表。我们将在下面描述过程。模块的名称和参数在该模块的主体内绑定,模块的名称在程序的其余部分绑定。

  2. new 声明新域

    new Name @ Value , Value
    new Name
    

    声明在全局范围内有效,即该域的名称在程序的其余部分中都有效。该域可以选择性地附加两个浮点值,分别明确表示该域的结合速率和解离速率。如果省略这些值,则使用 toeholds 指令设置的默认速率(如果程序中没有此类指令,则默认结合速率为 \(3.0*10^{-4} nM^{-1}s^{-1}\),默认解离速率为 \(0.1126 s^{-1}\))。值得注意的是,程序中使用的域并不都需要以这种方式全局声明。如果系统在程序中检测到未声明的域,则假定其具有这些默认的结合和解离速率。这种方式既能保持程序简洁,又能灵活地修改某些域的交互速率。速率值没有单位——程序员需要确保所有速率都以相同的(隐含)单位给出。解离速率在默认语义模型中使用

  3. def 赋值

    def Name = Value
    

    赋值后任何后续对该名称的使用都将引用此值,除非中间出现了同名的绑定(即 defnew 的实例)。如果在名称未先绑定到值的情况下使用该名称(除非该名称用作域,如上所述),系统将报错

Processes 进程(或者叫过程)

Visual DSD 的核心是一个专门用于模拟 DNA 交互的过程演算

先是' 进程们' Processes:

Process
Process | Processes
  1. 指定种群

    Species
    

    一个物种就是一个过程

  2. 初始化种群数目

    此处应为整数

    Value * Process
    

    如果加上了constant就说明种群数目不变

    constant Process
    constant Value * Process
    
  3. 局部域声明

    new Name @ Value , Value Process
    new Name Process
    

    new Name Process 表示在过程 Process 中声明一个名为 Name 的局部域。

  4. 组合过程

    一个过程们也可以组合作为一个过程

    ( Processes )
    
  5. 并行运行

    使用竖线隔开

    Process | Processes
    

Species 物种

Value 值

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

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

相关文章

mysql可视化工具 Navicat Premium 12解压版

通过网盘分享的文件:Navicat Premium 12解压版.rar链接: https://pan.baidu.com/s/1kDLlrcaiQRYGLfN5L-IpPA?pwd=3k6h 提取码: 3k6h --来自百度网盘超级会员v8的分享1.解压到指定路径 2.快捷方式,快捷方式用不了,就直接在该文件中直接打开 3. 测试链接

第八课 Python自动化之selenium

python+selenium selenium是一个第三方库,python有很多库; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。 2、ui自动化的优点? (1)解决重复性的功能测试和验证 (2)减少测试人员在回归测试时用例漏测和验证点的漏测 (3)…

png图片隐写实例之隐藏二维码

图片隐写,借助的是图片的每个像素点的RGB值,比如取RGB中的B值,这个值的二级制的最低位是0还是1,在肉眼上看看不出丝毫区别,我们就可以利用这个数据位,我们知道二维码一般都是两种颜色,黑色和白色,黑色的像素点用1表示,白色用0表示,我们就把二维码的每个像素点转换成1…

Windows环境安装Scrapy

虽然可以使用 pip 在 Windows 上安装 Scrapy,但还是建议用 Anaconda 安装教程 1.创建虚拟环境(可选但推荐) 打开 Anaconda Prompt,执行以下命令: conda create -n scrapy_env python=3.12(这里假设使用 Python 3.12,你可以根据需要选择其他版本)。 2.激活虚拟环境: co…

openssh 漏洞修复 openssl升级 OpenSSH_9.8p1麒麟系统

第一步:准备好要升级的包 下图所示 使用命令:yum install *.rpm或 rpm -ivh *rpm 如果使用 yum install *.rpm 安装不了,在使用 rpm -ivh *rpm 提示已有旧的版本 可以使用 rpm -Uvh *.rpm 可以替换安装,根据不通的系统 有可能安装后会重启不成功, 所以需要使用:sudo sy…

5.7 与 8.0 对相同文件的 LOAD DATA 语句结果不同

5.7 与 8.0 对相同文件的 LOAD DATA 语句结果不同 问题描述 某客户现场支持,由MySQL 5.7.21升级MySQL 8.0.25后,通过LOAD DATA导入文件,当同一会话连续导入不同的编码(UTF8/GB18030)文件时会出现乱码。数据库版本未升级之前,相同的导入操作在MySQL 5.7.21未出现乱码。 问…

用命令行启动 docker 报错:Redirecting to /bin/systemctl start docker.service 解决方法

docker安装成功后,用 sudo service docker start 启动docker报这个错误,看提示应该是需要用systemctl的命令。 使用systemctl start docker命令启动成功了,做下记录。 以下是启动doker常用的几个命令: # 启动 docker:systemctl start docker # 停止 docker:systemctl sto…

CCF - 网易雷火基金项目成果:基于大小模型协同的低资源标注技术|CNCC 2024 演讲实录

在科技蓬勃发展的时代浪潮中,人工智能领域的每一次突破都离不开持续的科研投入和对前沿技术的不懈探索。2023 年,网易伏羲与中国计算机学会(CCF)共同发起了 “CCF - 网易雷火联合基金”,致力于发挥和利用多方资源优势,加强与海内外青年学者的科研合作,促进中国人工智能等…

VisualVM 使用说明

VisualVM 简介:一个轻量级的Java进程监控软件 VisualVM 安装介绍(Mac 使用 brew 安装) ➜ ~ brew uninstall visualvm==> Uninstalling Cask visualvm ==> Backing App VisualVM.app up to /opt/homebrew/Caskroom/visualvm/2.1.10/VisualVM.app ==> Removing App /…

Java方法(四)

设计方法原则:本意为功能块,是实现某个功能语句块的结合,设计方法时保持原子性(一个方法完成一个功能)public class operator {public static void main(String[] args) {int sum = add(1,3);System.out.println(sum);}//加法public static int add(int a,int b){return a…

11.14,python之自动化

python+selenium selenium是一个第三方库,python有很多库; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。 2、ui自动化的优点? (1)解决重复性的功能测试和验证 (2)减少测试人员在回归测试时用例漏测和验证点的漏测 (3)…