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

最新文章

  1. Java import以及Java类的搜索路径
  2. 微信公众号里打开链接下载APP
  3. java mail(发送邮件--163邮箱)
  4. jQuery中.parent和.parents的区别
  5. nand烧写分析/内核在启动过程中式如何将这个文件映射成/目录及各子目录的?
  6. Java字节流和字符流
  7. 制作类似ThinkPHP框架中的PATHINFO模式功能(二)
  8. MySQL Innodb 并发涉及参数
  9. touch事件过程
  10. ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】
  11. QProcess与外部程序的调用
  12. Docker:dockerfile构建php项目 [八]
  13. Java基本概述
  14. redis查看状态信息
  15. poj 3294 Life Forms - 后缀数组 - 二分答案
  16. vim IDE配置
  17. CentOS7服务器配置网络
  18. Ubuntu16.04下的英文词典Artha
  19. 每日英语:American Cities May Have Hit 'Peak Office'
  20. sencha touch 视图(view) activate与deactivate事件探讨

热门文章

  1. Rabbitmq 实现延时任务
  2. QAxBase: Error calling IDispatch member LineStyle: Unknown error
  3. 理解CMS GC日志
  4. Azure EA (2) 使用Postman访问国内Azure Billing API
  5. 【MySQL】MMM和MHA高可用架构
  6. Django学习笔记(17)——BBS+Blog项目开发(1)验证码功能的实现
  7. 【02】Nginx:基本配置和日志处理
  8. Powershell ExecutionPolicy 执行策略
  9. 基于Spark的电影推荐系统(推荐系统~1)
  10. phpmyadmin 在服务起上检测到错误,请查看窗口底部