今天给大家介绍的是ICLR2022上underreview的文章《An autoregressive flow model for 3d molecular geometry generation from scratch》。虽然目前已经开发了多种方法来生成分子图,但从零开始生成分子的三维几何结构问题并没有得到充分的探索。在这项工作中,作者提出了G-SphreNet,一种生成三维分子几何的自回归流模型。G-SphereNet采用了一种一步步将原子放置在三维空间上灵活的顺序生成方案,它并不直接生成三维坐标,而是通过生成距离、角度和扭转角来确定原子的三维位置,从而确保不变性和等变性。此外,作者建议使用球形信息传递和注意力机制进行条件信息提取。实验结果表明,G-SphreNet在随机分子几何结构生成和目标分子发现任务方面优于以往的方法。
2023年12月1日,上海交通大学徐雷教授、涂仕奎老师团队在Briefings in Bioinformatics上发表文章KGDiff: towards explainable target-aware molecule generation with knowledge guidance。
本文为《Artificial Intelligence in Drug Design》一书第11章的内容,作者是Evotec公司的Andrew Anighoro。
中秋假期已经过去了,小伙伴们玩得开不开心呀?看票圈很多小伙伴都在景区打卡了,这个假期我是没咋出去玩,放假的前两天宅在家里看完了《分布式系统与一致性》这本书,挺不错的,后面给大家写几篇总结。
分子对接(Molecular Docking)理论 所谓分子对接就是两个或多个分子之间通过几何匹配和能量匹配相互识别找到最佳匹配模式的过程。分子对接对酶学研究和药物设计中有重要的应用意义。 分子对接计算是在受体活性位点区域通过空间结构互补和能量最小化原则来搜寻配体与受体是否能产生相互作用以及它们之间的最佳结合模式。分子对接的思想起源于Fisher E的”钥匙和锁模型”,主要强调的是空间形状的匹配。但配体和受体的识别要比这个模型更加复杂。首先,配体和受体在对接过程中会由于相互适应而产生构象的变化。其次,分子对
老王:小陈啊,从今天开始我们就要进入Atomic原子类系列的学习了,首先啊给你看一下JDK中提供给我们使用的原子类有哪些?
在并发编程中,我们常常需要处理多线程对共享资源的访问和修改,同时也需要灵活管理对象的生命周期。为了解决这些问题,Java提供了一组强大的并发原语:原子类(Atomic Classes)和引用类型(Reference Types)。本文将深入探讨原子类和引用类型的应用方法。
前面介绍了多线程间是通过互斥锁与条件变量来保证共享数据的同步的,互斥锁主要是针对过程加锁来实现对共享资源的排他性访问。很多时候,对共享资源的访问主要是对某一数据结构的读写操作,如果数据结构本身就带有排他性访问的特性,也就相当于该数据结构自带一个细粒度的锁,对该数据结构的并发访问就能更加简单高效,这就是C++11提供的原子数据类型< atomic >。下面解释两个概念:
今天给大家介绍的是美国伊利诺伊大学及字节跳动发表在ICML的一篇文章:DECOMPDIFF: Diffusion Models with Decomposed Priors for Structure-Based Drug Design。设计针对靶向结合位点的3D药物分子是药物发现中的基本任务。现有的基于结构的药物设计方法平等对待所有配体原子,忽视了配体原子在药物设计中的不同作用,对于探索庞大的药物样分子空间可能效率较低。本文受制药实践的启发,将配体分子分解为两部分,即臂和支架,并提出了一种新的扩散模型 DECOMPDIFF,其对臂和支架采用了分解的先验。为了促进分解生成并改善所生成分子的性质,作者在模型中同时结合了键扩散和采样阶段的有效性指导
2021年9月21日,Drug Discovery Today杂志在线发表文章,文章概述和讨论了配体-蛋白的分子对接中机器学习(尤其是深度学习)的应用。
原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程上下文切换。
保证线程安全是 Java 并发编程必须要解决的重要问题。Java 从原子性、可见性、有序性这三大特性入手,确保多线程的数据一致性。
文件格式解释 PDB文件 (详细格式描述) 基本信息部分 HEADER记录: 包括分子的分类、提交日期、PDB ID TITLE记录: 为该结构的描述,如果有多行,除第一行外,其它行有连续的数字标示。 COMPND记录: 包含分子数目、名字、链特征、分子是如何获得的等。 SOURCE记录: 大分子的生物或化学来源 KEYWDS记录:关键字 EXPDTA记录:实验信息 JRNL记录:文献引用信息 REMARK记录:更为丰富的记录信息 HEADER HYDROLASE (ACID PROTEINASE)
在《C++ 并发编程》一文中,我们已经介绍了C++11到C++17在并发编程方面的新增API。
在Java编程中,处理并发操作是一个常见的挑战。为了解决并发操作可能带来的问题,Java提供了一系列原子类,用于在多线程环境下进行原子操作。本文将介绍Java中的基本类型原子类,包括原子更新整型、原子更新长整型、原子更新布尔型和原子更新引用型。
开始了解一下Java高并发的东东,这个东西因为Liusy所在的厂也不是互联网大厂,平时工作上的内容也就是进行CRUD业务处理,并不涉及高并发的业务。但是为了知识库的构建,还是了解一下。万一以后有机会进入互联网大厂呢?(作为一个技术人,总是有想进去互联网一线大厂镀镀金的梦想的)
Atomic英译为原子的。原子结构通常称为不可分割的最小单位。而在JUC中,java.util.concurrent.atomic 包是 Java 并发库中的一个包,提供了原子操作的支持。它包含了一些原子类,用于在多线程环境下进行线程安全的原子操作。使用原子类可以避免使用锁和同步机制,从而减少了线程竞争和死锁的风险,并提高了多线程程序的性能和可伸缩性。
不用chemdraw画分子,截图即刻识别;支持复杂天然产物的识别;可抵抗低分辨率、扭曲变形、无关字符、彩色背景等干扰;支持pdf批量自动定位自动识别
原子操作:顾名思义就是不可分割的操作,该操作只存在未开始和已完成两种状态,不存在中间状态;
Java1.5的Atomic包名为java.util.concurrent.atomic。
当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下。
9)前面我们使用原子类 AtomicLong 的 getAndIncrement() 方法替代了count += 1,从而实现了线程安全。原子类 AtomicLong 的 getAndIncrement() 方法内部就是基于 CAS 实现的,那 Java 是如何使用 CAS 来实现原子化的count += 1的?
在 Jdk1.5 开始 Java 开始引进提供了 java.util.concurrent.atomic 包,到 Jdk8 时,atomic 包共提供了 16 个原子类,分为 6 种类型,分别是:①、基本类型原子类;②、数组类型原子类;③、引用类型原子类;④、原子更新属性;⑤、Adder 加法器;⑥、积累器。
如果不加锁,仅仅使用volatile关键字?运行几次,发现统计的数值是有偏差的,所以volatile是不一定能保证线程安全的
先前,谷歌DeepMind的全新AI工具GNoME,成功预测出220万种晶体结构,在学术界掀起海啸级地震。
本文介绍由华东理工大学药学院上海市新药设计重点实验室/华东师范大学人工智能新药创智中心李洪林/张凯团队在Briefings in Bioinformatics上发表题为“Multi-Modal Chemical Information Reconstruction from Images and Texts for Exploring the Near-Drug Space”的文章。本文提出一种多模态化学信息重建系统CIRS,通过从化学专利的文本和图像中提取化学实体重建化学信息,以促进近药空间的探索和构建。
Java的规则S2204规定,对于Java并发库定义的诸如AtomicInteger、AtomicLong等原子类,不能使用equals()方法测试其值是否相等。
Atomic 翻译成中文是原子的意思。在化学中,原子是构成一般物质的最小单位,是不可分割的。而在这里,Atomic 表示当前操作是不可中断的,即使是在多线程环境下执行,Atomic 类,是具有原子操作特征的类。
在Java中,有多种方式可以实现线程安全,包括使用synchronized关键字、使用ReentrantLock类、使用原子类以及使用并发集合类等。
1、数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的程序。
std::thread 是 C++ 标准库中提供的用于创建和管理线程的类。通过 std::thread,可以方便地创建新线程,并在其中执行指定的函数或可调用对象。
Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。
今天给大家介绍的是北京大学来鲁华课题组在arXiv上挂出的预印论文《Learning to design drug-like molecules in three-dimensional space using deep generative models》。近年来,分子图的深度生成模型在药物设计领域受到了越来越多的关注。目前已经开发了多种模型来生成拓扑结构,但在产生三维结构方面的探索仍然有限。现有的方法要么关注于低分子量化合物而不考虑药物相似性,要么利用原子密度图来间接生成三维结构。在这项工作中,作者介绍了配体神经网络(L-Net),一种新的图生成模型,用于设计具有高质量三维结构的类药分子。L-Net直接输出分子(包括氢原子)的拓扑和三维结构,而不需要额外的原子放置或键序推理算法。实验结果表明,L-Net能够产生化学正确、构象有效的类药分子。最后,为了证明其在基于结构的分子设计中的潜力,作者将L-Net与MCTS结合,并测试其产生靶向ABL1激酶的潜在抑制剂的能力。
GNN, 即图神经网络(Graph Neural Networks), 一种专门处理图形数据的神经网络模型
这次我们需要实现的场景是在前端表格环境中,像模板按钮那样,点击之后弹出一个侧边栏,然后通过点击不同的单元格显示不同的内容。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
在 Java 的java.util.concurrent包中,除了提供底层锁、并发同步等工具类以外,还提供了一组原子操作类,大多以Atomic开头,他们位于java.util.concurrent.atomic包下。
Java中提供了一些原子操作类,用于实现多线程环境下的数据同步问题。其中最常见的有以下几种:
今天为大家介绍的是来自Shengyong Yang团队的一篇论文。基于深度学习的分子生成技术在许多领域都有广泛的应用,尤其是在药物发现中。然而,目前大多数深度生成模型都是基于配体的,并没有在分子生成过程中考虑化学知识,这通常导致较低的成功率。在这里,作者提出了一个基于结构的分子生成框架,它明确考虑了化学知识(命名为PocketFlow),能够在蛋白质结合口袋内生成新的配体分子。
C++标准中对象定义为某一存储范围。每个变量都是对象,每个对象都占用至少一块内存区域,若变量属于内建基本类型则仅占用一块,相邻的位域属于同一块。
守护线程(Daemon Thread)是JVM中的一种特殊线程,它的主要作用是监控JVM的状态,当JVM中的其他线程结束时,会自动退出。而本地线程(Native Thread)是指在应用程序中创建的线程,它们是由操作系统分配和管理的。
JUC中的原子类都是都是依靠volatile、CAS、Unsafe类配合来实现的,需要了解的请移步: volatile与Java内存模型 java中的CAS JUC底层工具类Unsafe
在 C++11 之前,涉及到多线程问题,都是和平台相关的,比如 windows 和 linux 下各有自己的接 口,这使得代码的可移植性比较差 。 C++11 中最重要的特性就是对线程进行支持了,使得 C++ 在 并行编程时不需要依赖第三方库 ,而且在原子操作中还引入了原子类的概念。要使用标准库中的线程,必须包含< thread > 头文件。
在前面的内容中,我们已经学习了CAS的原理,所以对于学习本节来说会非常容易。本节介绍Java中的原子类是java.util.concurrent.atomic包下的对象,他们之所以有原子性的共性,都来源于CAS,可见CAS的重要性。对于原子类变量的操作是不会存在并发性问题的,不需要使用同步手段进行并发控制。它底层自身的实现即可保证变量的可见性以及操作的原子性,一般我们可以使用AtomicInteger,AtomicLong等实现计数器等功能,利用AtomicBoolean实现标志位等功能。
数据类型(data type)是和数据结构密切相关的一个概念,它最早出现在高级程序语言中,用以刻画(程序)操作对象的特性.
老王:是啊,之前我们只是简单介绍了Atomic的体系,今天我们就要进入Atomic底层原理的的学习了,首先我们从AtomicInteger这个比较简单的原子类开始,在说AtomicInteger的底层原理之前呢,我先给你看两个例子:
通常我们提到保证多线程安全,会想到三种方式,一是使用Synchronize关键字,但是有个问题就是,使用了Synchronize加锁后的多线程相当于串行,执行效率并不是太高,所以在高并发场景下,使用第二种方式Lock锁,Lock锁要比使用Synchronize关键字在性能上有极大的提高,其实Lock锁底层就是通过AQS+CAS机制实现的;第三种方式就是使用Java并发包下的Atomic「e淘米客」原子操作类,使用了原子类后就不需要使用Synchronize关键字或者是Lock加锁也是线程安全的,原子类的底层就是基于CAS无锁算法实现的。
领取专属 10元无门槛券
手把手带您无忧上云