K核苷酸频率(KNF,k-nucleotide frequencies)或K-mer频率

KNF描述了序列中存在k个核苷酸的所有可能的多核苷酸的频率。如果k=2,则计算的为双核苷酸频率(即AA、AT、AG、AC、……TT),共42=16种;如果k=3,则计算的为双核苷酸频率(即AAA、AAT、AAG、AAC、……TTT),共43=64种;以此类推。

K-mer频率方法与上面所述相同。

方法一:

#提取核苷酸类型(排列组合)
from itertools import product
def nucleotide_type(k):z = []for i in product('ACGT', repeat = k):  #笛卡尔积(有放回抽样排列)z.append(''.join(i))  #把('A,A,A')转变成(AAA)形式return z
# 碱基对数量统计
def char_count(sequence,num,k):n = 0char = nucleotide_type(k)  #调用提取核苷酸类型模块for i in range(len(sequence)-k+1):   #统计相应字符出现的数量if sequence[i:i+k] == char[num]:n += 1return n/(len(sequence)-k+1)  #返回频率(出现的次数/总次数)总次数=序列长度-取几个碱基+1
def feature(seq,k):list = []for i in range(4**k):   #根据核苷酸类型数量来取值(二、三、四核苷酸分别循环16、64、256次)list.append(char_count(seq,i,k))return (list)
# 逐行调用特征编码
def Sequence_replacement(sequ,k):sequen = [None]*len(sequ)for i in range(len(sequ)):s = sequ[i]sequen[i] = feature(s,k)return sequen
#用具体数据进行调用
feature_knf = Sequence_replacement(data,k)  #data为具体数据,k的值根据需要自己设定

方法二:

#首先把数据划分成K-mer形式
def Kmers_funct(seq,x): X = [None]*len(seq)    #若数据只有一个序列,可不用此定义for i in range(len(seq)):  #若数据只有一个序列,可不用此循环a = seq[i]t=0l=[]for index in range(len(a)-x+1):t=a[index:index+x]if (len(t))==x:l.append(t)X[i] = lreturn X  #具体看返回需要,也可直接:return X
#提取核苷酸类型(排列组合)
from itertools import product
def nucleotide_type(k):z = []for i in product('ACGU', repeat = k):  #笛卡尔积(有放回抽样排列)z.append(''.join(i))  #把('A,A,A')转变成(AAA)形式return z
#定义K-mer频率模块
#定义K-mer频率模块
def Kmers_frequency(seq,x):X = []char = nucleotide_type(x)  #调用提取核苷酸类型(排列组合)代码for i in range(len(seq)):s = seq[i]frequence = []for a in char:number = s.count(a)  #依次统计字符数量char_frequence = number/(len(s)-x+1)  #计算频率frequence.append(char_frequence)X.append(frequence)return X
#调用K-mer模块代码
feature_kmer = Kmers_funct(data,k)
#用k-mer生成的数据调用K-mer频率模块
feature_kmer_frequency = Kmers_frequency(feature_kmer,k)

K核苷酸频率(KNF,k-nucleotide frequencies)或K-mer频率相关推荐

  1. 使用python简单实现K核苷酸频率(KNF,k-nucleotide frequencies)或K-mer频率

    K核苷酸频率(KNF,k-nucleotide frequencies)或K-mer频率 KNF描述了序列中存在k个核苷酸的所有可能的多核苷酸的频率.如果k=2,则计算的为双核苷酸频率(即AA.AT. ...

  2. matlab mri的k空间,理解磁共振K空间,自己动手还原和处理K空间数据

    本文内容.图片与涉及的源码均为作者原创,未经许可不得转载.版权声明或联系作者请移步 "关于" 继续计算机与医学影像的跨界之旅,本文所述内容是理解磁共振成像的K空间,并利用计算机还原 ...

  3. java数组中最小的k个元素_java – 在数组中找到k个最小整数

    这是我的代码,它适用于查找1-7个最小整数,但是8和9.当我在数组中找到8个最小整数时,它返回null.任何人都可以帮我解决问题吗?我在这里使用quicksort. 非常感谢! 更新:我已经找到问题, ...

  4. 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。

    题目描述: 给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除. 输入: 两个整数n(2<=n<=1000),a(2<=a<=1000) 输出: 一个整数. ...

  5. java 返回第k小的数_java – 给定n和k,返回第k个置换序列

    所以如果我正确地阅读这个问题,你想要找到第k个排列,最好不要使用BigInteger,只要k不够大,不需要一个BigInteger. 如果我们看序列 1 2 3 1 3 2 2 1 3 2 3 1 3 ...

  6. c语言k歌4.0编程,一次在线K歌玩法的尝试

    最近在产品中推出了一个在线K歌玩法,除了满足用户的娱乐交友需求,也总算是做了一件跟个人兴趣有关的事情了. 做这个需求,主要基于一些用户洞察: 交友场景,用户的表现欲需要窗口. 在现实或虚拟社交场景,为 ...

  7. (寻找第K小的数amp;amp;寻找第K小的数的和)

    这一篇博客以一些OJ上的题目为载体,讲一下寻找第K小的数的方法 方法一: 先将数据排列好,然后,然后return a[k]或者将前K个数加起来 方法二: 基于高速排序.如,一次高速排序将某一个数放到了 ...

  8. 电脑k歌,电脑K歌软件有哪些 5款热门K软件推荐

    现在喜欢K歌的朋友可不用再跑去KTV,只需家里有台电脑就可以了,您可以在电脑上下载各种各样的K歌软件,就可以在家里尽情的享受K歌的快乐,那么电脑K歌软件有哪些,下面小编就个大家推荐5款热门电脑K歌软件 ...

  9. 一分钟学会看k线图_一分钟学会看k线图(12种阳线阴线图解)

    第一,K线图是股票价格变化的表现形式 投资者关注一只股票,肯定是要了解这只股票过去一段时间的价格变化的,而K线图表现的就是股票价格的变化情况.所以K线图本质上是方便投资者了解股票价格变化的一种工具. ...

  10. 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素

    一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士的初始 ...

最新文章

  1. 火出圈!河南大学教授毕业典礼金句频现:躺平得了初一,躺平不到十五!
  2. qooxdoo学习笔记一
  3. 创建Vue实例传入的options||Vue的生命周期
  4. 皇室战争:暗夜女巫重做,去掉亡语机制后,她凉的可能会更快
  5. hadoop搭建_hadoop分布式搭建之虚拟机克隆
  6. myid文件到底是否需要自己手动配置
  7. BZOJ-1057: [ZJOI2007]棋盘制作(单调栈)
  8. C/C++ main用法总结
  9. uniapp 底部菜单_uniapp 原生导航栏
  10. 调整SAP系统中物料账和财务账的期间
  11. Mysql解决死锁的问题,防止阻塞
  12. mysql5.6.38占用内存过大问题解决
  13. html登陆部分项目答辩演讲稿,D-POTDR项目答辩讲稿材料
  14. ichart.js绘制虚线 ,平均分虚线
  15. Python pip安装 win32com模块
  16. Python爬虫工程师必备工具 Charles 的安装,以及爬取淘宝网+学UI网
  17. Joint 3D Proposal Generation and Object Detection from View Aggregation论文学习
  18. 我的软件开发理念和流程
  19. 看小伙如何跟反爬抗争到底
  20. 小米 信号测试软件,小米WiFi测试版

热门文章

  1. Angular 安全导航操作符(?.)和空属性路径
  2. 计算机网络实训心得总结,计算机网络实训心得体会_计算机网络学习经验总结...
  3. 文本分类---逻辑回归(1)
  4. 各大 IT 公司的架构图
  5. ts语音自建服务器,用轻量搭建自己的语音聊天服务器
  6. Ubuntu系统垃圾清理、Debian系统垃圾清理
  7. vite 预编译实现
  8. 解决外接显示屏后CPU占用率过高问题
  9. 性能测试CPU占用率太高如果解决?
  10. 计算机未显示移动硬盘,电脑不显示移动硬盘怎么办_移动硬盘已连接不显示解决教程...