Sequence

解密阿里云高效病原体基因检测工具

流过昼夜 提交于 2020-08-09 14:23:32
1.背景介绍 病原体基因检测,为各种严重感染的诊断提供了基础。病原体检测流程分成五个步骤:(1)采集病人的样本,比方说静脉血,痰液,肺泡灌洗液,或者脑脊髓液等。(2)对样本进行培养,提取样本中的核酸组织。(3)通过高通量基因测序仪,对核酸序列进行测序。高通量测序为了保证精度,会将很长的核苷酸序列,切成小的分片,分别进行测序,在读取基因序列上,一般是50pb到200bp不等。(4)高通量测序之后,需要查询相关的病原体标准序列,找到匹配的基因序列。(5)通过将这些小的片段进行分析,得到全部基因片段的组成成分(即检测结果),从而为病人的疾病确诊以及精准治疗提供有力的支持。 图1. 病原体基因检测流程 对于生物分析检测来说,通常情况下,一次病原体检测,大约会生成5亿左右的75bp的基因片段。过滤掉一些人的基因组织序列之后,还需要查询1亿左右的基因片段。通常情况下,会使用nBlast [1]工具来进行基因匹配,这部分在整个病原体检测过程中,也是非常耗时的部分,大约需要2-3个小时。阿里云AnalyticDB向量版提供了一个高效的基因检索工具,大大提升了基因分析的性能,能够在几十分钟内完成整个病原体的查询检测过程。 2.基因检索应用 2.1 基因检索功能 图1展示了病原体基因检索的界面。当前演示包含了12182个病毒的碱基序列,我们将病毒切分成150bp的小片段(总共1590804个片段)

codeforces 876 D. Sorting the Coins

China☆狼群 提交于 2020-08-08 18:59:38
http://codeforces.com/contest/876/problem/D D. Sorting the Coins time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output Recently, Dima met with Sasha in a philatelic store, and since then they are collecting coins together. Their favorite occupation is to sort collections of coins. Sasha likes having things in order, that is why he wants his coins to be arranged in a row in such a way that firstly come coins out of circulation, and then come coins still in circulation. For arranging coins Dima uses the following algorithm. One step of his

详解TF-Ranking:Google开源的排序框架,应用于邮件检索、推荐系统等场景

和自甴很熟 提交于 2020-08-08 18:35:25
今天分享的是一个有关LTR框架的介绍,LTR是Learning-To-Rank,解决的是排序问题。排序问题在人工智能领域应用很广,比如在Gmail里搜索一个关键词,返回最匹配的邮件。再比如进入Google Drive后的一些文章推荐。 傲海的分享主要参考Google2019年发布的一篇论文《TF-Ranking:Scalable TensorFlow Library for Learning-to-Rank》,蛮长的,看了小一周才学习完。这个库已经开源了,大家可以在下方地址访问并使用: https://github.com/tensorflow/ranking LTR三种模式:Pointwise、Pairwise、Listwise 介绍LTR的话先要讲下Pointwise、Pairwise、Listwise这三个模式的区别,以生活中的一个例子说明: 上图是一个点餐界面,假设我们强制用户只能在界面中点一个菜,那么Pointwise、Pairwise、Listwise是如何构建训练过程的呢: Pointwise:只关心单点的优化,比如用户点了排骨。那么就把排骨构建成正样本,其它菜都是负样本,构建成一个二分类问题,进行训练。Pointwise的问题在于缺少对整个列表的关系属性的挖掘 Pairwise:把优化问题看作两个样本的组合,训练的时候输入的是两个样本的特征组合,返回值比较高的样本

Golang从合并链表聊递归

浪子不回头ぞ 提交于 2020-08-08 12:26:21
从合并链表聊递归 递归是工程师最常见的一种解决问题的方式,但是有时候不容易真正掌握。有人说是看起来很简单,自己写起来会费点劲。 最著名的例子就是斐波那契数列(Fibonacci sequence),通过寻找递推公式来计算出结果。 而最近刷到的一道合并链表的算法题,也可以使用递归来实现。下面看看题目描述吧: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 来源:力扣(LeetCode) 先抛出本人观点,递归的关键是:找到 边界条件 和 递归公式 。 分析一下题目,可以发现用第一个链表l1的头部节点来去和l2的节点对比,如果大于l2的当前节点,那么偏移l1的next和l2继续对比大小。反之如果l1的头节点对比L2的当前节点更小,那么就需要对l2做类似处理。 这种不断对比和偏移的过程,可以总结出一种递归公式。 用伪代码写法就是: if l1.val < l2.val: l1.next = mergeTwoList(l1.next, l2) return l1 else: l2.next = mergeTwoList(l1, l2.next) return l2 而边界条件就是在不断偏移的时候,走到某个链表的最后一个节点为止,伪代码就是: if l1 =

Flv封装相关基础内容

我是研究僧i 提交于 2020-08-08 10:48:02
序言 关于1078实时监控的另一种做法,就是自己编码处理音视频裸流.这种形式需要了解更多的音视频基础知识,因为之前的处理过程是JavaCV帮我们做了很多东西.本文只是做个准备工作,先了解一些基础知识在,然后才能知道该方案的可行性 参考资料: https://blog.csdn.net/u013008311/article/details/80249586 https://blog.csdn.net/u013008311/article/details/80251479 https://blog.csdn.net/jefry_xdz/article/details/8461343 https://www.cnblogs.com/wainiwann/p/7477794.html H264/AVC 视频编解码技术有两套标准: 国际电联(ITU-T)的标准H.263、H.263+等; ISO 的MPEG标准Mpeg1、Mpeg2、Mpeg4等等。 H.264/AVC是两大组织集合H.263+和Mpeg4的优点联合推出的最新标准,最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比H.263高2倍,比MPEG-4高1.5倍。 所以说H264和AVC 其实是指同一个东西. H.264/AVC标准是由ITU-T和ISO/IEC联合开发的

C++ 类型系统增强

ぐ巨炮叔叔 提交于 2020-08-08 09:40:54
大家应该比较熟悉, C++中可以通过 操作符 typeid来获取类型名称 std::cout << typeid(int).name() << std::endl; 但是这个name()的返回值是 取决于编译器的 ,在vc和gcc中打印出来的结果如下: int // vc i // gcc 对于自定义类,输出的类型,也并不是原始类型 class TestType {}; std::cout << typeid(TestType).name() << std::endl; //vs输出 class TestType 因此, 操作符 typeid的作用就局限于类型输出及类型与类型进行对比, 并不能用于跟字符串对比。 下面我们再看看,容器类型的输出: std::cout << typeid(std::map<std::string, int>).name() << std::endl; 以下将自定义类型处理,对typeid进行封装,简化类型的输出 封装typeid,统一平台输出 template<typename T> std::string getTypeName() { std::string tyName; #if defined(__GNUC__) char* real_name = abi::__cxa_demangle(typeid(T).name(), nullptr,

你想不到的沙雕,10行代码Python实现GIF图倒放,每天的快乐源泉

自古美人都是妖i 提交于 2020-08-08 09:29:57
前言 GIF图现在已经融入了我们的日常网络生活,微信群、QQ群、朋友圈......一言不合就斗图,你怕了吗?不用担心,只要学会了Python之GIF倒放技能,你就是“斗图王”。 咱们直接开始本文的内容! PIL(Python Image Library) 它是python的第三方图像处理库,功能非常的强大,几乎被认定为Python的官方图像处理库。 1:导入PIL库的模块 from PIL import Image, ImageSequence # 导入PIL库的Image和 ImageSequence 模块 im = Image.open(r ' ./1.gif ' ) # 注意把gif动图放在该程序的相同目录下 2:将GIF图分解 为了能更直观的理解这个程序的原理,我们可以将程序分解gif动图的图片都保存下来看看 sequence = [] # 用来存放GIF分解成帧的序列 i= 0 for f in ImageSequence.Iterator(im): # 循环访问GIF中的逐帧 sequence.append(f.copy()) i +=1 f.save( ' out_ ' +str(i)+ ' .png ' ) # 将每次分离出来的帧保存 3:将得到的序列通过reverse()函数倒序 sequence.reverse() 4:将得到的帧序列重新还原成GIF:

用于多文本分类的孪生和双 BERT

爷,独闯天下 提交于 2020-08-07 21:26:41
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本文介绍了在模型中插入 Transformer 的不同方法。 人们对自然语言处理的不断研究催生了各种预训练模型的发展。在各种任务(如文本分类、无监督的主题建模和问题解答等)的最新结果方面,通常都有越来越多的改进,这是一个典型的现象。 最大的发现之一是在神经网络架构中采用了注意力机制(attention mechanics)。这种技术是所有称为 Transformer 的网络的基础。它们应用注意力机制来提取关于给定单词上下文的信息,然后将其编码到学习向量中。 作为数据科学家,我们可以产生并使用许多 Transformer 架构来对我们的任务进行预测或微调。在本文中,我们尽情享受经典的 BERT,但同样的推理也可以应用到其他所有的 Transformer 架构中。我们的研究范围是在双(dual)架构和孪生(siamese)架构中使用 BERT,而不是将其作为多文本输入分类的单一特征提取器。 数据 我们从 Kaggle 收集了一个数据集: News Category Dataset (新闻分类数据),它包含了 2012 年到 2018 年从 HuffPost 获得的大约 20 万条新闻标题。我们的范围是根据两种不同的文本来源对新闻文章进行分类:标题和简短描述。总共有 40

JMH和Disruptor

时光怂恿深爱的人放手 提交于 2020-08-07 21:25:59
官网 http://openjdk.java.net/projects/code-tools/jmh/ 创建JMH测试 创建Maven项目,添加依赖 < ? xml version = " 1.0 " encoding = " UTF-8 " ? > < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns : xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi : schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion > 4.0 . 0 < / modelVersion > < properties > < project . build . sourceEncoding > UTF - 8 < / project . build . sourceEncoding > < encoding > UTF - 8 < / encoding > < java . version > 1.8 < / java . version > < maven . compiler . source

NLP中各框架对变长序列的处理全解

本秂侑毒 提交于 2020-08-07 20:57:46
在NLP中,文本数据大都是变长的,为了能够做batch的训练,需要padding到相同的长度,并在实际训练中忽略padding部分的影响。 在不同的深度学习框架中,对变长序列的处理,本质思想都是一致的,但具体的实现方式有较大差异,下面针对Pytorch、Keras和TensorFlow三大框架,以LSTM模型为例,说明各框架对NLP中变长序列的处理方式和注意事项。 Pytorch 在pytorch中,是用的torch.nn.utils.rnn中的 pack_padded_sequence 和 pad_packed_sequence 来处理变长序列,前者可以理解为对 padded 后的 sequence 做pack(打包/压紧),也就是去掉 padding 位,但会记录每个样本的有效长度信息;后者是逆操作,对 packed 后的 sequence 做 pad,恢复到相同的长度。 不过在使用过程中,要格外注意 pack_padded_sequence 的 enforce_sorted 参数和 pad_packed_sequence 的total_length 参数。 pack_padded_sequence 下面是pack_padded_sequence函数的部分 Pytorch 源码,input就是输入的一个batch的tensor,lengths是这个batch中每个样本的有效长度