如何得到给定序列的互补序列以及反向互补序列

用 python 实现如下:

 1 #!/usr/bin/python
 2 # Complementing DNA
 3
 4 my_dna = "ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT"
 5 # 由于python 区分大小写,所以先替换成小写可以有效避免后面重复替换的问题。
 6 complement_AT = my_dna.replace("A","t")
 7 complement_TA = complement_AT.replace("T","a")
 8 complement_GC = complement_TA.replace("G","c")
 9 complement_CG = complement_GC.replace("C","g")
10 # 把所以小写变为大写即可。
11 complement_DNA = complement_CG.upper()
12 reverse_complement_DNA = complement_DNA[::-1]  # str[::-1] used to reverse the string
13
14 print(complement_DNA)
15 print(reverse_complement_DNA)

运行结果:

ubuntu$ python3 complement_py3.py
TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA
ATGAACGCATCGATATATATGTATGATAGCAAATACTATACGTAATCGATCAGT
时间: 2024-10-12 04:02:13

如何得到给定序列的互补序列以及反向互补序列的相关文章

循环-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

验证给定序列是否是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的时候,先记录根节点,再遍历左子树,然后遍历右子树:所以一个

将给定序列翻译成蛋白质序列

利用 dictionary 可以将给定的cDNA序列翻译成蛋白序列 1 #!/bin/python 2 # Dictionary protein translation 3 4 my_dna = open("/home/maque/my_dna.txt").read().replace('\n', '') # 利用 str.replace() method 将 '\n' 去掉,这样 my_dna 就是一条单一的字符串 5 6 condon_table = {"TTT"

给定序列,求这个序列的出栈次序

比如1,2,3 的出栈次序可以是{1,2,3}{2,1,3}{2,3,1}{1,3,2}{3,2,1}5种. 其实这个 和leetcode生成括号那个题目很像.题目链接https://leetcode.com/problems/generate-parentheses/ 题解 http://www.cnblogs.com/pk28/p/5355711.html Given n pairs of parentheses, write a function to generate all combi

栈 给定push序列,判断给定序列是否是pop序列 ~ 进!出!进!出!进!出!进进出出!累死我了……

题目: 输入两个整数序列.其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序.为了简单起见,我们假设push序列的任意两个整数都是不相等的. 比如输入的push序列是1.2.3.4.5,那么4.5.3.2.1就有可能是一个pop系列.因为可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,这样得到的pop序列就是4.5.3.2.1.但序列4.3.5.1.2就不可能是push序列1

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

本题要求编写程序,计算序列 2,sup>1 + 22 + 23 + ... 的前N项之和. 输入格式: 输入在一行中给出一个不超过30的正整数N. 输出格式: 在一行中按照“sum = S”的格式输出部分和的整数值S. 输入样例: 5 输出样例: sum = 62 #include <iostream> #include <stdio.h> #include <math.h> #include <string> #include <stdlib.