记录---Rosalind之problemsSolutions__0002
斐波那契数列
费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出。
首几个费波那契系数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233……
起源于 Leonardo Fibonacci 描述兔子生长的数目时用上了这数列,假设:
- 第一个月初有一对刚诞生的兔子
- 第二个月之后(第三个月初)它们可以生育
- 每月每对可生育的兔子会诞生 kk<script type="math/tex" id="MathJax-Element-3">k</script> 对新兔子
- 兔子永不死去
假设在n月有兔子总共a对,n+1月总共有b对。在n+2月必定总共有a+b对:因为在n+2月的时候,前一月(n+1月)的b对兔子可以存留至第n+2月(在当月属于新诞生的兔子尚不能生育)。而新生育出的兔子对数等于所有在n月就已存在的a对
### 方法一
def fib(n, k):previous1, previous2 = 1, 1for i in range(2, n):current = previous1 + k * previous2previous2 = previous1previous1 = currentreturn currentwith open('rosalind_fib.txt', 'r') as f:line = f.readlines()[0]n = line.split()[0] # n 个月k = line.split()[1] # 每月每对可生育的兔子会诞生下 k 对新兔子print(int(n),int(k))print(fib(int(n),int(k)))### 方法二
def fib(n, factor):if n < 2:return nreturn factor*fib(n-2, factor) + fib(n-1,factor)fib(28,2)
计算DNA序列中GC含量
### 方法一
result = {}
with open('rosalind_gc.txt', 'r') as f:for line in f.readlines():line = line.rstrip().strip("\n")if line.startswith('>'):key = line[1:]dnalen,gccount = 0,0else:gccount = gccount + line.count("G") + line.count("C")dnalen = dnalen + len(line)gccontent=(gccount/dnalen)*100result[key] = gccontentprint(result)maxgc = max(zip(result.values(),result.keys()))print('%s\n%.6f%%' % (maxgc[1], maxgc[0]))### 方法二
max_gc_name, max_gc_content = '', 0
with open('rosalind_gc.txt', 'r') as f:buf = f.readline().rstrip()while buf:seq_name, seq = buf[1:], ''buf = f.readline().rstrip()while not buf.startswith('>') and buf:seq = seq + bufbuf = f.readline().rstrip()seq_gc_content = (seq.count('C') + seq.count('G'))/float(len(seq))if seq_gc_content > max_gc_content:max_gc_name, max_gc_content = seq_name, seq_gc_contentprint('%s\n%.6f%%' % (max_gc_name, max_gc_content * 100))
计算突变位点数(Counting Point Mutations)
汉明距离表示两个(相同长度)序列对应位不同的数量
在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。
例如:
- 1011101 与 1001001 之间的汉明距离是 2。
- 2143896 与 2233796 之间的汉明距离是 3。
- “toned” 与 “roses” 之间的汉明距离是 3。
### 方法一
a="GAGCCTACTAACGGGAT"
b="CATCGTAATGACGGCCT"
cnt = 0
for i in range(len(a)):if a[i] != b[i]: cnt+=1
print(cnt)### 方法二
def hamming_distance(s, t):value = 0for a, b in zip(s, t):if a != b: value += 1return valuehamming_distance(a,b)### 方法三
from operator import ne
with open("rosalind_hamm.txt", 'r') as infile:print(sum(map(ne, *infile.read().split())))### 方法四
def hammingDistance(s1, s2): """Return the Hamming distance between equal-length sequences""" if len(s1) != len(s2): raise ValueError("Undefined for sequences of unequal length") return sum([a != b for a, b in zip(s1, s2)])with open('rosalind_hamm.txt', 'r') as f:line = f.readlines()s1 = line[0][:-1]s2 = line[1][:-1]dH = hammingDistance(s1, s2)print(len(s1))print(dH)
记录---Rosalind之problemsSolutions__0002相关推荐
- 数据警务_如何停止网上种族歧视警务
数据警务 重点 (Top highlight) "You don't need to get all worked up over this." "You're too ...
- Rosalind Java| Counting DNA Nucleotides
Rosalind Rosalind是一个生物信息编程学习网站.抛出了一系列生物学问题,引导使用者通过编程语言解决.网站官方推荐使用python解决,python得益于丰富的开源包,其解决方法在CSDN ...
- mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引
在项目中,常常要用到联合唯一 在一些配置表中,一些列的组合成为一条记录. 比如,在游戏中,游戏的分区和用户id会形成一条记录.(比如,一个qq用户可以在艾欧尼亚.德玛西亚创建两个账号) 添加联 ...
- 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?
现在的网站和app开发中,签到是一个很常见的功能 如微博签到送积分,签到排行榜 微博签到 如移动app ,签到送流量等活动, 移动app签到 用户签到是提高用户粘性的有效手段,用的好能事半功倍! 下面 ...
- 记录一次http请求失败的问题分析
问题背景 当前我有一个基于Flask编写的Restful服务,由于业务的需求,我需要将该服务打包成docker 镜像进行离线部署,原始服务的端口是在6661端口进行开启,为了区分,在docker中启动 ...
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- LeetCode简单题之学生出勤记录 I
题目 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Pre ...
- 关于TVM的点滴记录
关于TVM的点滴记录
- MySql数据库Update批量更新与批量更新多条记录的不同值实现方法
批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...
最新文章
- 写单元测试应该注意什么
- 5.matlab 中的sort
- rsync单项同步文件
- [分享]毕业了【其实不想毕业】
- iOS 学习 - 13.微信分享链接、QQ 分享图片
- 曳舞---1、曳舞各个动作要点
- 安装mysql提示找不到msv_安装mysql服务时提示“找不到msvcp140.dll”
- php+ajax+jquery实现jsonp跨域
- php内置函数数组函数,PHP 数组排序内置函数
- python怎么验证两个json是不是一样_比较Python中的两个JSON树
- 卡卡半智能扫地机器人_扫地机器人哪个牌子好?精选五款高智能的扫地机器人...
- bzoj3195 [Jxoi2012]奇怪的道路
- JavaWeb那些事儿(一)--为什么做java的web开发使用struts2,springMVC和spring这样的框架
- 20210327-第一次java笔记
- 安卓音频输出采样率_安卓里LDAC的采样率问题
- Java程序员月薪多少K才能在北上广买得起房?
- win7查看隐藏文件_u盘删除文件怎么恢复?
- SDN相关组织——ONF
- Selenium4新特性-关联定位策略
- 什么叫BSoD蓝屏死机
热门文章
- cv2.boundingRect
- Python--Opencv:errorFindContours supports only CV_8UC1 images when mode = CV_RETR_FLOODFILL otherw
- 从汇编角度看一个C函数调用
- 纯真数据库理解及根据IP定位地区
- Minimal Area
- uml 9种图之序列图
- [2]_如何与老板顺畅沟通
- 系统时间自动校对 让你准时每一天
- web应用开发平台,微信web开发者
- Centos7 使用cobbler搭建PXE网络装机服务器安装Centos、Windows、PE、自定义wim镜像