Python Port of the R Bioconductor ` Seqlog ` Package

seqlogo的Python项目详细描述


pypi version使用bioconda安装许可证/a>

seqlogo

bioconductor的python端口seqlogoweblogo服务

概述

在生物信息学领域,一个共同的任务是在 基因组或蛋白质序列中的不同位置。其中一个方面 分析包括创建位置矩阵(PM)的变体:位置频率矩阵(PFM)。 位置概率矩阵(ppm)和位置权重矩阵(pwm)。的正式格式 可以在这里找到一个pwm文件


规格

pm文件可以是纯文本、空格分隔的矩阵,这样列的数量 匹配所需字母表中的字母数,行数是位置数 按照你的顺序。任何以开头的注释行都将被跳过。

注意:不直接支持transfac matrix和meme motif格式。

其中是Href="https://www.codecogs.com/eqnedit.php?LaTex=\large&space;m" rel="nofollow">

这通常是以常客的方式产生的。如果管道 计算每个位置上观察到的所有字母,这称为位置频率矩阵(pfm)。

pfm可以直接转换为ppm,创建一个矩阵 对于任何给定的位置和字母,该字母在该位置的概率 已报告。

脉冲宽度调制是将ppm转换为对数似然。伪计数可以用来防止 在转换过程中0从图灵到-inf的概率。最后,每个位置 对数似然校正为给定字母的某个背景概率 选定的字母表。


功能

注:所有尺寸均取自本出版物 来自《科学》杂志的指南。


建议设置:

  • 为了获得最佳效果,请在ipython/jupyter环境中实现seqlogo(用于内联绘图)。
  • 最初是为Python3.7编写的,但已显示在3.5+版本中可用(不支持Python2.7)

设置

最低要求:

  1. numpy
  2. 熊猫
  3. 网络徽标
  4. < > >

    注意:强烈建议同时安装jupyter


    环境:

生成理想的虚拟环境,该环境将在基于conda的 构建、克隆repo或下载repo中的environment.yml。然后运行以下命令 命令:

$ conda env create -f environment.yml

安装

要使用pip安装(推荐)

$ pip install seqlogo

使用conda安装

$ conda install -c bioconda seqlogo

或者直接从github安装

$ pip install git+https://github.com/betteridiot/seqlogo.git#egg=seqlogo

快速启动

导入

importnumpyasnpimportpandasaspdimportseqlogo

生成一些PM数据(无频率数据)

对于许多与pwms对话的演示,它们通常是从ppm数据开始的。 许多软件包都禁止从这个入口点生成序列徽标。然而, seqlogo可以处理得很好。但有一点需要说明,如果不算 提供数据,seqlogo仅通过乘以 概率为100。这仅适用于weblogolib兼容性。

# Setting seed for demonstration purposes>>>np.random.seed(42)# Making a fake PPM>>>random_ppm=np.random.dirichlet(np.ones(4),size=6)>>>ppm=seqlogo.Ppm(random_ppm)>>>ppmACGT00.0821970.5272520.2306410.15991110.0703750.0703630.0248260.83443520.1619620.2169720.0036650.61740130.7356380.0982900.0826380.08343440.1798980.3689310.2804630.17070850.4985100.0791380.1820040.240349

生成一些频率数据并转换为脉宽调制

有时用户有频率数据而不是pwm。构造一个pwm实例 它自动计算信息内容和pwm值,用户可以使用 seqlogo.pfm2pwm()功能。

# Setting seed for demonstration purposes>>>np.random.seed(42)# Making some fake Position Frequency Data (PFM)>>>pfm=pd.DataFrame(np.random.randint(0,36,size=(8,4)))# Convert to Position Weight Matrix (PWM)>>>pwm=seqlogo.pfm2pwm(pfm)>>>pwmACGT00.698830-0.301170-1.3011700.21340410.2630340.552541-0.584962-0.58496220.1485230.7542440.148523-3.37503930.182864-4.2094530.3141090.6485284-4.0000000.3219281.000000-0.5405685-0.222392-0.0297470.0857300.14017860.6974370.597902-2.209453-0.62449170.736966-0.5849620.502500-2.000000

seqlogo.completepmdemo

下面是一个快速入门指南,介绍如何利用seqlogo.completepm的强大功能

# Setting seed for demonstration purposes>>>np.random.seed(42)# Making a fake PWM>>>random_ppm=np.random.dirichlet(np.ones(4),size=6)>>>cpm=seqlogo.CompletePM(ppm=random_ppm)# Pfm was imputed>>>print(cpm.pfm)ACGT085223151772832162106137398841736281754971824# Shows the how the PPM data was formatted>>>print(cpm.ppm)ACGT00.0821970.5272520.2306410.15991110.0703750.0703630.0248260.83443520.1619620.2169720.0036650.61740130.7356380.0982900.0826380.08343440.1798980.3689310.2804630.17070850.4985100.0791380.1820040.240349# Computing the PWM using default background and pseudocounts>>>print(cpm.pwm)ACGT0-1.6047731.076564-0.116281-0.6446621-1.828788-1.829031-3.3319831.7388712-0.626276-0.204418-6.0918621.30427931.557068-1.346815-1.597049-1.5832234-0.4747490.5614230.165882-0.55039650.995695-1.659494-0.457960-0.056800# See the consensus sequence>>>print(cpm.consensus)CTTACA# See the Information Content>>>print(cpm.ic)00.30580611.11085620.63714930.74898940.07428650.268034dtype:float64

绘制带有信息内容缩放的序列徽标

# Setting seed for demonstration purposes>>>np.random.seed(42)# Making a fake PWM>>>random_ppm=np.random.dirichlet(np.ones(4),size=6)>>>ppm=seqlogo.Ppm(random_ppm)>>>seqlogo.seqlogo(ppm,ic_scale=False,format='svg',size='medium')

以上代码将产生:

 src=

在不缩放信息内容的情况下绘制序列徽标

# Setting seed for demonstration purposes>>>np.random.seed(42)# Making a fake PWM>>>random_ppm=np.random.dirichlet(np.ones(4),size=6)>>>ppm=seqlogo.Ppm(random_ppm)>>>seqlogo.seqlogo(ppm,ic_scale=False,format='svg',size='medium')

以上代码将产生:

 src=


文档

seqlogo向用户公开5个类,用于处理PM数据:

  1. seqlogo.pm:所有其他专用pm子类的基类
  2. seqlogo.pfm:用于处理pfm数据的类
  3. seqlogo.ppm:用于处理ppm数据的类
  4. seqlogo.pwm:用于处理pwm数据的类
  5. seqlogo.completempm:这个最终类将接受任何/所有其他pm子类数据 并计算其他丢失的数据。也就是说,如果用户只提供seqlogo.pfm 并将其传递给seqlogo.completempm,它将为ppm、pwm、共识序列和 信息内容。
  6. < > >

    此外,seqlogo还提供了6种转换PM结构的方法:

    1. seqlogo.pfm2ppm:将pfm转换为ppm
    2. seqlogo.pfm2pwm:将pfm转换为pwm
    3. seqlogo.ppm2pfm:将ppm转换为pfm
    4. seqlogo.ppm2pwm:将ppm转换为pwm
    5. seqlogo.pwm2pfm:将脉宽调制转换为功率因数调制
    6. seqlogo.pwm2ppm:将脉冲宽度调制转换为ppm
    7. < > >

      以上每一项的签名如下:

      课程

      $ conda env create -f environment.yml
      
      1

      转换方法

      $ conda env create -f environment.yml
      
      2

      贡献

      请参见我们的贡献指南此处


      致谢

      1. Bembom O(2018年)。seqlogo:dna序列比对的序列logo。R包版本1.48.0。
      2. 克鲁克斯葛,洪G,钱多尼亚JM,布伦纳SE网络标识:一个序列标识生成器, 基因组研究,14:1188-1190,(2004)。
      3. < > >

        欢迎加入QQ群-->: 979659372 Python中文网_新手群

        推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?