您的位置:

包含使用python生成所有dna的词条

本文目录一览:

如何用Python构造hash表解决DNA k-mer问题

思路:

1、首先采用命A=0,C=1,G=2,T=3. 就相当于4进制数字,然后采用karp-Rabin算法转换成唯一十进制数字。由于用此算法的哈希函数为:hash(value)=value*(4^(k-q-1));

value是该字符对应的值,k是kmer长度,q是此字符在字符串的位置范围在[0-(q-1)]。然后把一个kmer里面所有字符的hash值求和就行了。

2、那么很容易看出来,对于连续的下害常愤端莅得缝全俯户一个Kmer,就有推理公式了 hashNew=addValue+(hashOld-deleteValue*(4^(k-1)))*4; hashNew就是往右平移一个字符的kmer hash值,hashOld就是平移之前的值,addValue就是平移后右边多的一个字符,deleteValue就是平移后左边少的一个字符。这样整个hash表建立的时间复杂度约为O(m+k),m是整个文本长度。

3、由于kmer长度如果过长,其hash值过大,会造成内存不够溢出的现象,所以kmer内部定死为10 。那么问题就来了,如何应对不同的kmer值。分三种情况。

第一种:q10

这种可以将kmer以10为单位,将hash表中对应值取出,然后对结果进行分析,这边分析方法为建立两个数组一个二维数组unionName储存位置关系,一个一维数组unionScore,计数用。 思路就是首先第一轮初始化unionName[Name][Pos]全部赋值Pos 并初始化unionScore,然后再第二轮匹配如果unionName[Name][Pos-cycle]=Pos-1则将其赋值为当前Pos,cycle为当前循环次数。并将当前循环数存入unionScore[NAME]中。最后当unionScore[NAME]值也就是循环数为k-1,即我们需要的交集了。

第二种:q=10

直接求出hash值,取出相应的值即可。

第三种:q10

可以用前缀种子+后缀种子交集产生。

前缀种子:在字符串后面补字符直到长度等于K,这个很容易看出来 最小是全补A,最大是全补T,然后将最小值到最大值之间的hash值即为所求。

后缀种子:后缀种子和前缀种子不同就是在字符串左边补齐字符。所以此时需要进行变换。只要对前置种子产生的值变化下就行了。(preValue-minValue)*(4^(K-q))+hash(p) 。其中preValue就是对应的前置种子的hash值,minValue就是前置种子中最小值也就是全补A的情况,hash(p)就是字符串长度为p时候的hash值。

交集就是先求后缀种子所有的值,再加上 前缀种子中起始位置在[0-(k-1)]中的值。

将DNA序列在Python问题,怎么解决

1#!/usr/bin/python

 2 #-*- coding:utf-8 -*-

 3 "将DNA序列转换为RNA序列,即将T转换为U即可,利用字符串的replace方法"

 5 f=open('./test.txt', 'r')

 6 line=f.read()

 7 dna2rnaline=line.replace('T', 'U')

 8 f.close()

 9 f=open('./test.txt', 'w')

10 line=f.write(dna2rnaline)

11 f.close()#了解DNA序列和RNA序列的碱基差别

用c语言编写一个程序,产生所有可能的长度为10bp的DNA序列

没用C写,用python写的,道理都一样。

def generate(n):  //n为长度

    for i in range(4**n):

        a=[0 for i in range(n)] //a为长度为n的一个序列

        num = i

        z = 0

        while(num!=0):

            a[z]=num%4

            z = z+1

            num = int(num/4)

        for j in a:

            if j==0:

                print('A',end="")

            elif j==1:

                print('T',end="")

            elif j==2:

                print('G',end="")

            else:

                print('C',end="")

        print()

原理就是四进制转换。

当调用函数generate(2),产生结果AA,TA,GA,CA,AT,TT,GT,CT,AG,TG,GG,CG,AC,TC,GC,CC

python这个代码啥意思?求具体的。

import string

str_c='dna'

str_letter=string.ascii_letters # 生成所有小写字母列表

dict_letter={} # 新建空字典

for letter in str_letter: # 遍历字母列表

dict_letter[letter]=[] # 以每个小写字母为key,以空列表为 value,为字典创建新成员

for i in str_c: # 遍历字符串

dict_letter[i].append(i) # 查找字典中以 i 为键key的值value,并在其(列表)中添加 i

for count in str_letter:

if len(dict_letter[count])!=0: # 若字典中以 count 为键的值不是空列表

print('%s:%d'%(count,len(dict_letter[count]))) #输出此列表的长度

print() # 输出一个换行符

已有一个文件DNA.txt。写一个Python程序

def readfromfile(filename):

with open(filename, 'rt') as handle:

return handle.read()

def appendtofile(filename, lines):

with open(filename, 'at') as handle:

handle.writelines(lines)

def itercui():

while 1:

content = raw_input()

if content in ('exit', 'quit'):

break

yield content

if __name__ == "__main__":

filename = "record.log"

print readfromfile(filename)

appendtofile(

filename,

[ln+'\n' for ln in itercui()]

)

python 遗传算法问题

遗传算法(GA)是最早由美国Holland教授提出的一种基于自然界的“适者生存,优胜劣汰”基本法则的智能搜索算法。

遗传算法也是借鉴该基本法则,通过基于种群的思想,将问题的解通过编码的方式转化为种群中的个体,并让这些个体不断地通过选择、交叉和变异算子模拟生物的进化过程,然后利用“优胜劣汰”法则选择种群中适应性较强的个体构成子种群,然后让子种群重复类似的进化过程,直到找到问题的最优解或者到达一定的进化(运算)时间。

包含使用python生成所有dna的词条

2022-11-10
包含python使用笔记24的词条

2022-11-21
包含python岗笔试的词条

2022-11-18
包含pythonjsondump的词条

本文目录一览: 1、【Python】浅谈python中的json 2、Python用json模块时怎么才能用dump存数据时自动换行呢 3、python 用json.dumps处理字典后如何还原? 4

2023-12-08
python笔记第六天,python第六周笔记

2022-11-21
包含arm版中是否有python的词条

2022-11-20
包含python对比json的词条

本文目录一览: 1、用python依次比较2个文件夹内的JSON文件的差异? 2、【Python】浅谈python中的json 3、python3,如何对比2个结构一样的json? 用python依次

2023-12-08
Python Padx:用Python快速打造自己的代码笔记

2023-05-12
python的用法笔记本(笔记本学python)

2022-11-16
包含python知识点1的词条

2022-11-13
包含python详解json模块的词条

本文目录一览: 1、python的json模块 2、Python模块的几种类型简介 3、【Python】浅谈python中的json python的json模块 json.load不是什么文件都能打开

2023-12-08
包含python程序算例之使用类的词条

2022-11-08
包含python使用render的词条

2022-11-20
包含python之jieba库使用的词条

2022-11-09
包含有人可以用python解释的词条

2022-11-18
python笔记第九章,python第八章

2022-11-20
python技巧笔记(python自学笔记)

2022-11-12
包含python生成器迭代实际案例的词条

2022-11-22
python方法笔记,python基础教程笔记

2022-11-20
包含java基础笔记day1的词条

2022-11-20