统计给定序列的AT-content ,并设置小数点位数

习题来源: Python for Biologists: A complete programming course for beginner

 1 #!/bin/python
 2 # calculate the AT content of a DNA seq
 3
 4 def get_at_content(dna, sig_figs = 2): # sig_figs=2 为默认参数 sig_figs
 5     length = len(dna)
 6     a_count = dna.upper().count(‘A‘)   # use str.upper() and str.count() method
 7     t_count = dna.upper().count(‘T‘)
 8     at_content = (a_count + t_count) / length
 9     return round(at_content, sig_figs)  # 使用return 在很多情况下比 print 好
10                                         # use round() function ,就是设置数值的小数点位数
11
12 assert get_at_content("ATCG") == 0.5   # assert 语句用来测试。非常有用
13 test_dna = "ATGCATGCAACTGTAGC"
14 print(get_at_content(test_dna, 1))  # 此时,将sig_figs 赋值为 1
15 print(get_at_content(test_dna))     # 当没有明确的赋值时, 即调用默认参数值
16 print(get_at_content(test_dna, 3))
17 print(get_at_content(dna = "ATCGGTAGTCGTAGCGTAGCAGT", sig_figs = 2))  # 比较完整的函数调用

运行结果:

uubuntu$ python3 chapter5_1_py3.py
0.5
0.53
0.529
0.48
时间: 2024-12-21 15:38:42

统计给定序列的AT-content ,并设置小数点位数的相关文章

java中double四舍五入并设置小数点位数的问题

本文系转载,原文地址:http://blog.csdn.net/star_huang/article/details/7639267 今天遇到个需要将一个double类型的数据保留小数点后两位的问题.在网上搜寻的集中解决方案,copy来一下,备用 首先result_value是处理前的double get_double是用来保存我处理后的double   //方案一: get_double = (double)(Math.round(result_value*100)/100.0) //方案二:

Matlab默认精度设置和更改──设置小数点位数_我的资料_百度空间

来源:http://hi.baidu.com/yangyingchao/item/6ccd70303bd076169dc65e22#713670-hi-1-7889-277149e2cc2b44951219652dde905e40

ava Double: 四舍五入并设置小数点位数

public static void main(String[] args) { // 1. 先乘后四舍五入, 再除; double d = 62.31060027198647; double d2 = Math.round(d*100)/100.0; System.out.println("通过Math取整后做除法: " + d2); // 2. 通过BigDecimal的setScale()实现四舍五入与小数点位数确定, 将转换为一个BigDecimal对象. //下面这个可行 B

循环-26. 求给定序列前N项和之四

循环-26. 求给定序列前N项和之四(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后3位.题目保证计算结果不超过双精度范围. 输入样例: 10 输出样例: sum = 0.819 1 #incl

循环-28. 求给定序列前N项和之六

循环-28. 求给定序列前N项和之六(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 2^1 + 22 + 23 + ... 的前N项之和. 输入格式: 输入在一行中给出一个不超过30的正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的整数值S. 输入样例: 5 输出样例: sum = 62 1 #include<stdio.h> 2 #include<ma

循环-25. 求给定序列前N项和之三

循环-25. 求给定序列前N项和之三(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位.题目保证计算结果不超过双精度范围. 输入样例: 23 输出样例: sum = 2.549541 1 #include<

循环-24. 求给定序列前N项和之二

循环-24. 求给定序列前N项和之二(15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 来源 ZOJ 本题要求编写程序,计算序列 1! + 2! + ... 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结果. 输入样例: 5 输出样例: 153 1 #include<stdio.h> 2 #include<math.h> 3 #include<stdlib

类的继承和多态性-编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 getLegs(),设置动物名称的方法 setKind(),获得动物名称的方法 getKind(),获得动物数量的方法 getCount()。定义Fish类,是Animal类的子类,

编写Java应用程序,定义Animal类,此类中有动物的属性:名称 name,腿的数量legs,统计动物的数量 count;方法:设置动物腿数量的方法 void setLegs(),获得腿数量的方法 getLegs(),设置动物名称的方法 setKind(),获得动物名称的方法 getKind(),获得动物数量的方法 getCount().定义Fish类,是Animal类的子类,统计鱼的数量 count,获得鱼数量的方法 getCount().定义Tiger类,是Animal类的子类,统计老虎的

验证给定序列是否是BST的preoder序列

from leetcode https://leetcode.com/problems/verify-preorder-sequence-in-binary-search-tree/ 比如序列 2, 1, 3 是如下图的BST的preorder 序列: 但是2, 3, 1就不会是一个preorder序列: 先复习一下BST,给定一个节点,其左子树的所有节点都小于该节点,右子树的所有节点都大于该节点:preorder序列是指在遍历该BST的时候,先记录根节点,再遍历左子树,然后遍历右子树:所以一个