1. 계수 DNA 뉴클레오티드 염기 수가
#1. 计算序列中各碱基数目
#!/usr/bin/env python3
nts = {c:0 for c in 'ATGC'}
with open('./test.txt','r') as f:
for a in f:
a = a.upper()
for nt in a.rstrip():
nts[nt] += 1
print (nts)
RNA로 DNA를 RNA로 DNA를 2.Transcribing.
(즉,이 "U"와 "T"를 대체)
#2. 将DNA序列转化为RNA序列
## 1
import re
with open('./test.txt','r') as f:
for line in f:
line = line.upper()
RnaSeq = re.sub('T','U',line.rstrip())
print(RnaSeq)
## 2
with open('./test.txt','r') as f:
for line in f:
line = line.upper()
print(line.replace('T','U'))
DNA 가닥의 DNA의 상보 가닥 3.Complementing
## 1
trans = {'A':'T','T':'A','G':'C','C':'G'}
with open('./test.txt','r') as f:
for line in f:
seq = ''
line = line.upper()
for aa in line.rstrip():
seq += trans.get(aa)
print(seq[::-1])
def reverse_complement(seq):
## 2
ntComplement = {'A':'T','T':'A','G':'C','C':'G'}
RevSeqList = list(reversed(seq))
RevComSeqList = [ntComplement[k] for k in RevSeqList]
RevComSeq = ''.join(RevComSeqList)
return RevComSeq
seq = ''
with open('./test.txt','r') as f:
for line in f:
line = line.upper()
print (reverse_complement(line.rstrip()))
4. 토끼와 재발 관계 토끼 문제, 피보나치 수
n=input("n is:\r") #公式为Fn = Fn-1 + k * Fn-2
k=input("k is:\r") #\n代表换行
fn =[1,1];
bool_list=[1,1,0];
for i in range(2,int(n)):
if(bool_list[i]==0):
fn.append(fn[i-1]+int(k)*fn[i-2])
bool_list[i]=1
bool_list.append(0)
i+=1;
else:
bool_list.append(0)
i+=1;
print(fn[int(n)-1])
def fib(n,m):
f= [0,1,1]
for i in range(3,n+1):
if i <= m:
total = f[i-1] + f[i-2]
elif i == m+1:
total = f[i-1] + f[i-2] - 1
else:
total = f[i-1] + f[i-2] - f[i-m-1]
f.append(total)
return(f[n])
inp = input('live month of rabbit(m),and afther n-th month;n<=100,m<=20;input(n,m): ')
[n,m]=map(int,inp.split(','))
print(fib(n,m))
5.Computing GC 내용 FASTA 파일 최대 시퀀스 GC 함량
6.Counting 점 돌연변이는 불연속의 수를 계산
멘델 먼저 정리의 7.Mendel의 제 1 법칙
; m, 이형 N : 동형 열성 K, 동형 접합체 우성 : 생물학적 세 유전자형의 그룹. 그것은 대립 한 쌍의 형상 및 2 개의 무작위로 선택된 사람들 중 어느 그룹이 정합 할 수있는 것으로한다, 결합 후 추구 개의 무작위로 선택된 개인들은 자식의 확률 우성 대립 유전자를 갖는다.
단백질의 RNA에 RNA를 8.Translating하는 단백질로 번역
9. 주제 DNA에서 찾고 DNA 모티브 찾기
## 1
seq = 'GATATATGCATATACTT'
motif = 'ATAT'
motif_len = len(motif)
position = []
for i in range(len(seq)-motif_len):
if seq[i:i+motif_len] == motif:
position.append(i+1)
print(position)
## 2
import re
seq = 'GATATATGCATATACTT'
print([i.start()+1 for i in re.finditer('(?=ATAT)',seq)])