如何在一序列中寻找E-BOX 元件,并将其变为小写

给定一个序列,寻找所有的E-BOX motif (CNNTTG) , 并且将其变为小写, 用 python 实现如下:

 1 #!/bin/python
 2 # Date: 2015.8.01
 3 # Author:
 4 """ Search E-box motif(CNNTTG) in a DNA seq and replace this motif with lower character """
 5
 6 import re                           # using regular expression
 7
 8 dna_seq = open("/home/genome_seq.txt")
 9 dna_test = open("/home/test_new.txt","w")
10
11 my_seq = ""                           # create a empity string not a list
12 for line in dna_seq:
13     my_seq = my_seq + line.rstrip("\n") # create a whole string with string concencating
14                                         # remove the "\n"
15 Ebox_motif = re.findall(r"C[TACG][TACG]TTG", my_seq) # use regular expression to find the motif
16                                                  # use findall method to return a list contains the motif
17 seq = my_seq
18
19 for motif in Ebox_motif:
20     seq = seq.replace(motif, motif.lower())          #  use str.replace() method  **** the key step*****
21
22 dna_test.write(seq)                            # write the string to a file
23 dna_test.close()                               # good habit
24 dna_seq.close()                                # good habit
时间: 2024-10-12 21:03:57

如何在一序列中寻找E-BOX 元件,并将其变为小写的相关文章

笔试算法题(34):从数字序列中寻找仅出现一次的数字 & 最大公约数(GCD)问题

出题:给定一个数字序列,其中每个数字最多出现两次,只有一个数字仅出现了一次,如何快速找出其中仅出现了一次的数字: 分析: 由于知道一个数字异或操作它本身(X^X=0)都为0,而任何数字异或操作0都为它本身,所以当所有的数字序列都异或操作之后,所有出现两次的数字异或操作之后的结果都为0,则最后剩下的结果就是那个仅出现了一次的数字: 如果有多个数字都仅仅出现了一次,则上述的异或操作方法不再适用:如果确定只有两个数字只出现了一次,则可以利用X+Y=a和XY=b求解: 解题: 1 int findSin

顺序统计:寻找序列中第k小的数

最直观的解法,排序之后取下标为k的值即可. 但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值). 如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列里面继续寻找第(k-支点下标)小的值. c#实现算法如下: public class FindSpecialOrderElement<T> where T : IComparable<T&

顺序统计:寻找序列中的最大最小数

查找输入序列中的最大最小数值,要求时间复杂度为1.5n C#实现如下: public class MinMaxFinder<T> where T : IComparable<T> { public void FindMinMax(T[] array, int startIndex, int endIndex, out T minValue, out T maxValue) { maxValue = array[startIndex]; minValue = array[startI

矩形网格中寻找最长递增序列

在矩形网格中寻找最长的递增序列 比如如下网格 97,47,56,36 35,57,41,13 89,36,98,75 25,45,26,17 结果要求输出 17, 26, 36, 41, 47, 56, 57, 97 基本想法就是对图中的每一个点都当作起始点试一编 将序列最长的保存起来 最后输出 代码如下 使用java编写 import java.util.ArrayList; public class 最长递增序列 { static int[][] rect={ {97,47,56,36},

Find Min In Rotated Sorted Array,寻找反转序列中最小的元素。

问题描述:寻找反转序列中最小的元素. 算法分析:和寻找某个数是一个道理,还是利用二分查找,总体上分两种情况.nums[left]<=nums[mid],else.但是,在截取子序列的时候,有可能得到一个顺序序列.如34512,截取后得到12,此时要对这种情况判断,因为是顺序的,所以,最左边的元素就是最小元素.这点区别于寻找target,因为寻找target是根据target和left,mid,right做比较判断的.所以就不用对这种顺序情况单独讨论了. 1 public int findMin(

剑指Offer对答如流系列 - 数字序列中某一位的数字

面试题44:数字序列中某一位的数字 题目描述 数字以0123456789101112131415-的格式序列化到一个字符序列中.在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等.请写一个函数求任意位对应的数字. 问题分析 这个寻求高效的解决方法,也是寻找规律: 个位数的个数一共有10个,即0~9,共占了10*1位数字:(特殊) 两位数的个数一共有90个,即10~99,每个数字占两位,共占了90*2位数字: -- m位数的个数一共有9*10^(m-1)个,每个数字占m位,

Google”在垃圾中寻找黄金“——Page-Rank

GOOGLE"在垃圾中寻找黄金"--Page Rank GOOGLE"在垃圾中寻找黄金"--Page Rank 1.Google的低成本之道 ○不使用超级计算机,不使用存储(淘宝的去i,去e,去o之路) ○大量使用普通的PC服务器(去掉机箱,外设,硬盘),提供有冗余的集群服务 ○全世界多个数据中心,有些附带发电厂 ○运营商向Google倒付费 2.Google面对的数据和计算难题 大量的网页如何存储? Google的爬虫每天在全世界各个服务器里面爬到的很多网页,这些

【python cookbook】【数据结构与算法】16.筛选序列中的元素

问题:提取出序列中的值或者根据某些标准对序列做删减 解决方案:列表推导式.生成器表达式.使用内建的filter()函数 1.列表推导式方法:存在一个潜在的缺点,如果输入数据非常大可能会产生一个庞大的结果,考虑到该问题,建议选择生成器表达式 # Examples of different ways to filter data mylist = [1, 4, -5, 10, -7, 2, 3, -1] print('mylist=',mylist) # 使用列表推导式 pos = [n for n

坚持努力,在黑暗中寻找光明——我的2014

此文不为参赛,算是对自己的一个总结.开始本来不想总结了,因为从小我就不会写作文,晚上上来逛逛,看到身边的朋友也写了,自己也总结一下吧,算是对自己一年来的收尾. 在黑暗中寻找光明,这个题目是我对于今年的第一感触.为什么说是黑暗呢,倒不是说自己所处的环境多么恶劣什么的,而是能够更加深刻地重新认识自己一次,认识自己之后就会猛然有这样一种想法:你之前都在做什么? 科班毕业的我也也已经离开校园5个年头之久了,虽然重点院校毕业,但并没有好好把握大学的时光用来学习,真正入门还是要从大四的外企实习开始,真是人不