
计算生物学
文章平均质量分 54
Moon_Shot_t
BIO
展开
-
金麟岂是池中物:逻辑斯蒂回归算法及实现
金麟岂是池中物,一遇风云便化龙 逻辑斯蒂回归是很常见的的算法模型,见下图: 而对于Mnist数据集,我们是使用多项逻辑斯蒂回归,具体公式见下图: 而在具体的使用过程中,我们通常是用softmax回归,如下图所示:而损失函数如下,我们要做的就是尽可能让损失函数变小 对于损失函数的优化,我们用梯度下降法,进行迭代。算法实现如下:...原创 2021-06-20 10:52:32 · 593 阅读 · 1 评论 -
欲与天公试比高:决策树算法及实现
恭贺我国神舟十二号载人飞船成功发射!数风流人物,还看今朝!!!emsp;老规矩,决策树的数学推导部分再次不在赘述,因为决策树是一种非常直观的算法。其中需要注意的地方是特征选择,涉及到了信息增益。算法的描述如下图: 但是在具体的实现过程中是有一内内难度的。关键是在于数据集的处理,我们仍用Mnist数据集的话,它有28*28=784个特征,但是选择一个特征后,我们如何对数据进行划分?比如选择了第一个特征,此特征下的数据取值为0~255,那我们如何划分?二分?还是三分?四分?或者第一个特征二分,第二.原创 2021-06-18 21:10:37 · 250 阅读 · 0 评论 -
毕竟眉湖六月中:朴素贝叶斯算法及实现
毕竟眉湖六月中,风光不与四时同。 图书馆路上随手拍的正文: 我们都对贝叶斯理论了解一二,但啥是朴素贝叶斯?何谓朴素?见下图: 以下是朴素贝叶斯算法的流程: 但在实际的运用中,我们使用的数据集有可能是偏倚的或者数据集包含的实例较少。简单的来说,当我们通过掷筛子来统计每个点数的频率来判断这个骰子是否被动过手脚。当我们测试了六次,发现三点出现频率为0,那么就说这个骰子被动了手脚,显然这是不准确的,这就需要我们在掷筛子前,令所有点数出现的频率不为0,来避免此种状况的出现。 在朴素贝叶斯原创 2021-06-06 23:46:09 · 308 阅读 · 5 评论 -
月落星稀天欲明:k邻近算法及实现
月落星稀天欲明,孤灯未灭梦难成。 失眠怎么办?当然是码代码喽!本次实现的是k邻近算法,先来个基础版本的,数据集还是Mnist,具体算法的数学描述,直接搬运《统计学习方法》的相关章节(主要是欧氏距离和投票表决)如下:import numpy as npdef output_label(data_train,input,k): data_input=np.tile(input,(data_train.shape[0],1)) data_dis=data_input-data_train原创 2021-06-01 10:04:06 · 165 阅读 · 0 评论 -
雨送黄昏花已落:感知机算法及实现
湛湛眉湖去,冥冥细雨来。 感知机是二类分类模型,属于判别模型。其主要是求出将训练数据进行线性划分的分离超平面。方法是基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。具体的数学推导过程,可以参考《统计学习方法》一书,这里不再赘述。下面是基于上次手写数字的Mnist数据集的感知机算法代码。import numpy as npclass perceptron: def __init__(self,train,test,train_label,test_label,lear原创 2021-05-28 09:57:45 · 105 阅读 · 0 评论 -
偷得浮生半日闲:手写数字的识别
本次我们利用拟利用三层神经网络来识别手写数字,利用http://pjreddie.com/projects/mnist-in-csv/提供的训练数字和测试数字,来进行网络的训练。隐藏层设置为100个节点,学习率设置为0.3,并将全部数据集训练5次。最终得到正确率为import numpyimport scipy.specialclass network: def __init__(self,input_nodes,hidden_nodes,output_nodes,learn):原创 2021-05-21 10:38:40 · 1248 阅读 · 0 评论 -
偷得浮生半日闲:三层神经网络的python实现
在做毕设的时候,忙里偷闲,结合之前文章中的神经网络的入门推导,用python实现了三层神经网络,本次的代码构建了一个神经网络的类。import numpyimport scipy.specialclass network: def __init__(self,input_nodes,hidden_nodes,output_nodes,learn): self.inodes=input_nodes self.hnodes=hidden_nodes原创 2021-05-18 11:09:42 · 303 阅读 · 0 评论 -
求生存系列:神经网络的入门级别推导
这篇博文将详细介绍神经网络以及它的python实现,主要参考书是《Python神经网络编程》。 神经网络是由现代神经科学的基础理论上发展出来的,旨在反应人脑结构及功能的一种数学模型。在如今的年代,计算机可以以相当的速度,在一秒钟内进行4位数甚至十位数的相加,其运算的速度是远远超于人脑的运算速度的。但是在之前的时候,让计算机准确的识别一幅照片是非常困难的,但是人脑可以迅速的识别一幅照片,这提示着计算机仍然不够智能,需要我们设计出一种新的算法来使得计算机变得更加智能。这时,根据人脑神经元结构,科学家们设计了原创 2021-04-06 21:19:30 · 210 阅读 · 0 评论 -
求生存系列:序言
收到拟录取几天了,宣布考研也告一段落,打算写一些复盘和未来的计划。 首先是备考的复盘。备考是2020年三月底正式开始的。前期的备考时斗志满满的,因为自从参加过数学建模后,我便喜欢上了数学,特别是二月份看了国外的《introduction to linear algebra》便彻底打消了对数学的一点点的畏惧感。所以如果考研需要考数学一,我很推荐先看看这本书。建议看英文原版,既为线代打基础,又加强英语的阅读能力。从三月到六月,每天大部分时间都分给了数学,每一天都有满满的收获感。由于2020的特殊,三月到八月原创 2021-04-05 11:10:54 · 191 阅读 · 3 评论 -
平地起高楼之漫谈长非编码RNA
平地起高楼之漫谈长非编码RNA 关于长非编码,我还记得当时在生物化学课上,刘老师专门拿出了半节课向我们介绍长非编码RNA。正好当时也做了笔记,于是结合笔记和网上查阅的资料,简要的写写长非编码RNA。主要思路是介绍长非编码RNA以及相关的数据库,最后在介绍一波由北大开发的预测的工具——CPC。 基因组被誉为“人类组装说明书”,自从人类基因组计划完成后,人们发现基因仅是由四种碱基组成,它是如此的简单,但又是如此的神秘。其中编码区域仅占基因组的2.9%,可知基因组中由大量不编码的区域,这些区域仍转录成RNA,原创 2021-03-19 22:10:08 · 784 阅读 · 0 评论 -
平地起高楼之生信一百年
啥是生信?生信能干啥? 天天嘴里嚷嚷着要做生信,也通过一系列自学,获得了一丢丢的成就感。但生信是咋来的?啥是生信?生信都干点啥? 综合网上的资料以及北大生物信息中心的课程,来从头梳理梳理生信这个东西。 首先,我们先了解了解它的历史。因为生信与分子生物学、计算机科学是密不可分的,所以生信的发展历程与分子生物学、计算机科学的发展有关。1945年:第一台计算机"ENIAC"诞生。 1950到1960年:沃森克里克的DNA双螺旋结构的惊天问世,开启了分子生物学的时代,生物学的研究深入到了分子的层面。第原创 2021-03-19 21:48:49 · 227 阅读 · 0 评论 -
蛋白质相互作用系列:GN快速算法
通过前两篇博客,我们知道GN算法的时间复杂度并不理想,当网络中包含上千个顶点时,这个算法会耗费大量时间。鉴于此,Newman(2004)[1]描述了一个快速算法。经测试,该算法能很好的分析生成的网络和真实世界的网络,并比原先算法快了近千倍! 快速算法的时间复杂度为O((m+n)n),当时稀疏网络时是O(n2),其中m是顶点数,n是边数。此算法是凝聚法的一种,并且是基于模块度Q。既然Q值越大,则划分的社区结构越好,那么可不可以将一个网络所有的划分情况都罗列出来,然后计算Q值,找出Q值最大的那种划分情况,这原创 2021-02-25 15:17:58 · 419 阅读 · 0 评论 -
蛋白质相互作用系列:GN算法
随着酵母双杂交、基于质谱的串联亲和纯化、蛋白质芯片等高通量生物实验方法的发展和文本挖掘技术在蛋白质相互作用预测中的广泛应用,所以蛋白质相互作用数据库日益丰富 ,并形成了越来越多的蛋白质相互作用网络(PPI)。 所以面对大量可用的PPI网络数据,如何快速、有效地识别各种具有生物学功能的功能模块(也称蛋白质复合物)就成为蛋白质组学研究中一项极为关键的科学问题。并且在校期间的一个科研项目就正是关于蛋白质相互作用,所以决定结合目前的文献,新开一个蛋白质相互作用的系列,用来介绍相关的内容。 传统挖掘网络结构的方原创 2021-02-23 14:32:26 · 961 阅读 · 0 评论 -
改进:利用拓扑熵进行基因预测
本文将引入入拓扑熵来预测DNA序列中的编码片段。因为在利用上文思路进行预测时,发现结果很不理想。。。。。上文的代码逻辑是寻找到全部可能到orf,并设置一个长度的阈值,凭借此筛选出长度大于此阈值的orf,然后对筛选出的orf引入香农熵进行预测。但是根据返回的结果发现,最终预测出来的序列的长度总是接近于阈值的长度。也就是说,如果我设置阈值为100,那么它返回结果片段长度就是100附近,阈值是1000,它返回结果片段长度就是1000附近。据此现象,我们意识到了一个重要的问题:比较不同长度的序列的碱基分布随机度用原创 2020-09-07 21:19:07 · 584 阅读 · 0 评论 -
一次探索:基于香农熵预测DNA中编码序列,python实现。
由前面的博客介绍可知,我们用熵来衡量系统的混沌度。写到这里,我突然想起了《三体》对低熵体和高熵体的精彩描述:宇宙的熵在升高,有序度在降低,像平衡鹏那无边无际的黑翅膀,向存在的一切压下来,压下来。可是低熵体不一样,低熵体的熵还在降低。有序度还在上升,像漆黑海面上升起的磷火,这就是意义,最高层的意义,比乐趣的意义层次要高 。 很佩服大刘的文笔,能把硬核的知识描写的如此有诗意。 在前些日子,我读到了一篇有些年头的论文《THE USE OF ENTROPY TO CHARACTERIZE CODING原创 2020-05-15 22:49:51 · 1569 阅读 · 0 评论 -
双序列比对之重复匹配算法以及C++实现
双序列比对之重复匹配算法 在看此篇文章之前,建议先看一看我之前写的NW算法和SW算法(近期准备将这两篇文章在重新写一下,主要添加一些内容。) 重复匹配算法是迥异于之前介绍的全局比对和局部比对算法。如果我们将要比对的两个序列命名为序列1,它为AWGHEEBAWGRBZ,序列2为PEAWG。全局比对之后的结果可能为 HE—AWGEBAWGRBZAWG —PEAWG-----------...原创 2020-04-08 21:03:57 · 2199 阅读 · 2 评论 -
从拉格朗日乘数法到最大熵再到基因表达分析
从拉格朗日乘数法到最大熵再到基因表达分析 前言:本文将简要的介绍一下拉格朗日乘数法,并填一下上篇文章挖的坑(证明当为均匀分布时,熵值达到最大。) ,最后简要介绍熵在基因表达分析中的应用。 首先是拉格朗日乘数法的简要介绍。主要以二元函数为例。(大部分参考一篇文献,文献见末尾[1]^{[1]}[1]) 拉格朗日乘数法是求解条件极值问题的一大利器。在《高等数学》同济版中是这样介绍的:“考虑如下的...原创 2020-02-01 14:31:35 · 718 阅读 · 1 评论 -
从jensen不等式到相对熵的非负性性
从jensen不等式到相对熵的非负性性 前言:在上上次博客我们证明观测到的归一化的频率就是最大似然估计的解时,我们用到了相对熵恒大于等于0的性质,那么本文就当是扩展一下知识,主要以证明和介绍为主。 首先我们简要介绍一下熵的概念。“熵”这一概念并不仅仅存在于物理化学中,还应用于信息论中。熵是结果不确定度的一种度量。shannon熵定义为:H(x)=−∑iP(xi)logP(xi)H ( x...原创 2020-01-30 11:12:41 · 1915 阅读 · 0 评论 -
双序列比对的基础之PAM矩阵
双序列比对的基础之PAM矩阵 PAM矩阵的记分方法是基于蛋白序列中单点可接受(point accepted mutation, PAM)的概念,通过对蛋白质进化模式的研究而建立的。 PAM矩阵是由Dayhoff等人构建了与71个家族的序列关联的假想系统发育树,其中每对序列间的差异不超过它们残基总数的15%,用简约法建树,统计相似序列比对中的替换发生率来得到的。即,构建一个序列间相似度很高(通常...原创 2020-01-27 17:22:08 · 6925 阅读 · 0 评论 -
双序列比对的理论基础之建造替换矩阵的合理性证明
双序列比对的理论基础之建造替换矩阵的合理性证明 前言:如果对最大似然估计没有概念的话,可以看看我之前写的《似然,似然,似是而然》 结合前几篇文章我们大致的了解了计分矩阵的流程:对某以蛋白质家族进行多序列对比,然后按某一阈值(等同残基比)进行聚类,之后将匹配的无空位的区域划分为block,然后统计各个block中残基之间的联配的频率,用归一化的频率估计概率,进行最大似然估计,估计出在自然界中各残...原创 2020-01-26 17:59:42 · 381 阅读 · 0 评论 -
似然,似然,似是而然!
似然,似然,似是而然!1.1 似然是蛤?在统计学中,似然和概率可是两码事。 概率:在已知的模型下,某事件发生的可能性。 似然:在未知的模型下,发生了一系列的事件,有这些事件的结果去估计该未知模型的相关参数(条件)。 举一个小例子可能会更形象。现在我有一枚标准的硬币,我将它抛在了空中,这时我想知道它落地时是正面朝上的可能性是多少?毫无疑问,因为该硬币是标准的,正面和反面朝上的概率是~~ 五...原创 2020-01-21 17:58:31 · 347 阅读 · 0 评论 -
双序列比对的基础(2)之替换(计分)矩阵系列
双序列比对的基础(2)之替换(计分)矩阵系列 主要以BLOSUM矩阵与PAM矩阵的介绍为主。 声明:该部分书中内容介绍有点少,所以我上网搜索到几篇文献和和国外大学的相关课件(从一个研究生博主处获得)。那本篇文章就先介绍BLOSUM矩阵吧 BLOck SUBstitution Matrix:BLOSUM矩阵。 详细的来说,它们来自一组蛋白质家族中联配上的无空位区域,这些蛋白家族源于BL...原创 2020-01-17 19:11:49 · 5535 阅读 · 4 评论 -
双序列比对的理论基础(一)
双序列比对的理论基础(一)比对的具体流程:1使用字符串模拟生物序列,那么两条序列的相似性比对可看成两个字符串的对齐,运用特定的算法搜索所有可能的比对方案。2 采用具有生物学意义的打分机制(替换矩阵),衡量算法的比对结果,获得最优比对。1.1 字符模型的建立。两条序列x和y;长度分别为m和n;xi 表示序列x中的第i个字符。yi 表示序列y中的第i个字符。这些字符全部来自字母表Ω=...原创 2020-01-15 09:39:49 · 2184 阅读 · 0 评论