python cookbook3
1、算GC含量
def validate_base_sequence(base_sequence, RNAflag = False): #判断序列是否只含有A、T、G、C、U
seq = base_sequence.upper()
return len(seq) == (seq.count('U' if RNAflag else 'T') +seq.count('C') +
seq.count('A') +seq.count('G')) def gc_content(base_seq): #计算GC含量
assert validate_base_sequence(base_seq), 'argument has invalid characters'
seq = base_seq.upper()
return (base_seq.count('G') +base_seq.count('C')) / len(base_seq) def recognition_site(base_seq, recognition_seq):
return base_seq.find(recognition_seq) def test():
assert validate_base_sequence('ACTG')
assert validate_base_sequence('')
assert not validate_base_sequence('ACUG')
assert validate_base_sequence('ACUG', True)
assert not validate_base_sequence('ACUG', False)
assert validate_base_sequence('ACTG', False)
assert .5 == gc_content('ACTG')
assert 1.0 == gc_content('CCGG')
assert .25 == gc_content('ACTT')
print('All tests passed.')
test()
2、元组
>>> DNABases, RNABases = 'TCAG', 'UCAG'
>>> DNABases
'TCAG'
>>> RNABases
'UCAG'
>>> bases = 'TCAG', 'UCAG' # a two-element tuple
>>> bases
('TCAG', 'UCAG')
3、切割
def recognition_site(base_seq, recognition_seq):
return base_seq.find(recognition_seq) def restriction_cut(base_seq, recognition_seq, offset = 0):
site = recognition_site(base_seq, recognition_seq)
return base_seq[:site+offset], base_seq[site+offset:] aseq1 = 'AAAAATCCCGAGGCGGCTATATAGGGCTCCGGAGGCGTAATATAAAA'
left, right = restriction_cut(aseq1, 'TCCGGA')

4、读取fasta序列,并取最长的序列
def read_FASTA(filename):
with open(filename) as file:
contents = file.read()
entries = contents.split('>')[1:] # skip blank first entry
partitioned_entries = [entry.partition('\n') for entry in entries]
result = [(entry[0], entry[2].replace('\n', '')) for entry in partitioned_entries]
return result def longest_sequence(filename):
longest_seq = ''
for info, seq in read_FASTA(filename):
longest_seq = max(longest_seq, seq, key=len)
return longest_seq
python cookbook3的更多相关文章
- Python Cookbook3 Python进阶教程 http://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html
http://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html
- python itertools模块练习
参考 <python标准库> 也可以参考Vamei博客 列表用着很舒服,但迭代器不需要将所有数据同时存储在内存中. 本章练习一下python 标准库中itertools模块 合并 和 分解 ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
随机推荐
- C++ 基于rapidjson对json字符串的进行序列化与反序列化
json字符串的解析以封装在我们开发过程中经常见到, 尤其在socket通信上面, 在一次项目中碰到json字符串的进行解析, 而公司有没有封装好的库, 于是就自己基于开源的库进行了一次封装, 接下是 ...
- java使用jxls导出Excel
jxls是基于POI的Excel模板导出导入框架.通过使用类似于jstl的标签,有效较少导出Excel的代码量. 1.pom <!-- https://mvnrepository.com/art ...
- 【08月28日】A股滚动市盈率PE历史新低排名
2010年01月01日 到 2019年08月28日 之间,滚动市盈率历史新低排名. 上市三年以上的公司,2019年08月28日市盈率在300以下的公司. 1 - 文山电力(SH600995) - 历史 ...
- centos7 解决docker0: iptables: No chain/target/match by that name
解决步骤: 1.查看iptables状态,查看是否正常docker需要依赖该服务 service iptables status 注:我都服务就发现iptables服务的有问题 2.查看iptable ...
- 关于 C# 8.0 的 Switch Case When 的用法
直接贴代码了: static void Main(string[] args) { SwitchSample(); } private static void SwitchSample() { Swi ...
- 聊聊springboot2的embeded container的配置改动
本文主要研究下springboot2的embeded container的配置改动 springboot 1.x import org.apache.catalina.connector.Connec ...
- IDEA创建xml文件
今天在用IDEA写项目的时候发现,创建xml文件只能通过File手动输入去创建,但在我看的一个学习视频上可以直接创建xml文件,好奇之下研究了一下,作此篇,希望能对需要的朋友有所帮助. 废话就不多说了 ...
- c# 如何获取当前方法的调用堆栈
c# 调试程序时常常需要借助 call stack 查看调用堆栈,实际上通过code也可以获取: class Program { static void Main(string[] args) { T ...
- 4-consul HTTP API及实践
其他参考:https://www.cnblogs.com/duanxz/p/9660766.html 原文:https://www.douban.com/note/629645759/ 注意:使用AP ...
- 剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.这和书本不太一样. 解 ...