나는 k와 ID 유사성 스코어로 두 dna 시퀀스의 도트 플롯 행렬을 만들고 관심도는 임계 값으로하고 싶습니다. 저는 파이썬을 배우고 있습니다. 비록 데이터에 능숙하지만 테이블과 도트 포인트로 고생하고 있습니다. 간단한 아이덴티티 행렬을 생성하기 위해 위 코드를 만들었습니다. 이제 그것을 변경하거나 새로운 것을 만들어야합니다.파이썬에서 두 DNA 시퀀스의 점도를 만드는 방법
필요한 정의는 this paper을 참조하십시오.
나는 k와 ID 유사성 스코어로 두 dna 시퀀스의 도트 플롯 행렬을 만들고 관심도는 임계 값으로하고 싶습니다. 저는 파이썬을 배우고 있습니다. 비록 데이터에 능숙하지만 테이블과 도트 포인트로 고생하고 있습니다. 간단한 아이덴티티 행렬을 생성하기 위해 위 코드를 만들었습니다. 이제 그것을 변경하거나 새로운 것을 만들어야합니다.파이썬에서 두 DNA 시퀀스의 점도를 만드는 방법
필요한 정의는 this paper을 참조하십시오.
행렬을 생성하는 논리를 문자 그리기의 비교적 쉬운 논리에서 분리해야합니다.
첫번째는 델타 함수를 정의
지금M[i,j]
def delta(x,y):
return 0 if x == y else 1
:
def M(seq1,seq2,i,j,k):
return sum(delta(x,y) for x,y in zip(seq1[i:i+k],seq2[j:j+k]))
이 매트릭스합니다
def makeMatrix(seq1,seq2,k):
n = len(seq1)
m = len(seq2)
return [[M(seq1,seq2,i,j,k) for j in xrange(m-k+1)] for i in xrange(n-k+1)]
플롯 행렬을. 당신은 다른 문자를 실험 할 수 있습니다
def plotMatrix(M,t, seq1, seq2, nonblank = unichr(0x25A0), blank = ' '):
print(' |' + seq2)
print('-'*(2 + len(seq2)))
for label,row in zip(seq1,M):
line = ''.join(nonblank if s < t else blank for s in row)
print(label + '|' + line)
래퍼 기능 : 다음
def dotplot(seq1,seq2,k = 1,t = 1):
M = makeMatrix(seq1,seq2,k)
plotMatrix(M, t, seq1,seq2) #experiment with character choice
그리고 :
#for testing purposes (drawn from paper):
seqx = "ACCTGAGCTCACCTGAGTTA"
seqy = "ACCTGAGCTCACCTGAGTTA"
dotplot(seqx,seqy)
출력 :에서 그림을 일치
|ACCTGAGCTCACCTGAGTTA
----------------------
A|■ ■ ■ ■ ■
C| ■■ ■ ■ ■■
C| ■■ ■ ■ ■■
T| ■ ■ ■ ■■
G| ■ ■ ■ ■
A|■ ■ ■ ■ ■
G| ■ ■ ■ ■
C| ■■ ■ ■ ■■
T| ■ ■ ■ ■■
C| ■■ ■ ■ ■■
A|■ ■ ■ ■ ■
C| ■■ ■ ■ ■■
C| ■■ ■ ■ ■■
T| ■ ■ ■ ■■
G| ■ ■ ■ ■
A|■ ■ ■ ■ ■
G| ■ ■ ■ ■
T| ■ ■ ■ ■■
T| ■ ■ ■ ■■
A|■ ■ ■ ■ ■
종이 (비록 그것은 ro w 및 열 레이블 - 당신이 추가 기능을 할 수 원하는 경우) : 나는 간단한 도트 플롯 행렬을 작성하기 전에 사용되는 코드를 추가 한
와우! 나는 코드를 검사하고 테스트하고, 어떤 일이 일어날 지 알기 위해 매개 변수를 변경하는 것이 인상적이다. 또한, 당신은 나에게 Python의 주제 그래프에서 약간의 독서를 추천 할 수 있지만 matlabplot은 그렇지 않다. 대단히 감사합니다. 헤더도 포함하려고합니다. – Ana
Mitchell Model의 "Python을 사용하는 생물 정보학 프로그래밍"장에는 그래픽 라이브러리 Tkinter를 사용하여 점선을 만드는 장이 있습니다. 그것은 파이썬 3이지만 파이썬 2에서 작동해야합니다 (약간의 수정이 필요합니다). matlabplot과 같은 것은 원시 Tkinter로 할 수있는 것보다 훨씬 풍부합니다. 그래서 당신이 그것을 피하고 싶지는 않습니다. "파이썬에서의 데이터 시각화"와 같은 제목을 가진 많은 책들이 있습니다. –
안녕하세요, 머리글을 삽입하는 방법을 알아 내려고 노력하고 있습니다. 도움이 필요하십니까? – Ana
. 애 스터 리스크가 특정 임계 값에만 존재하도록 내가 무언가를 바꿀 수 있는지 알고 싶습니다. – Ana
방금 추가했지만 모든 게시물이 코드 형식이 아닌 것을 알 수 있으므로 게시 관련 문제가 있습니다. 나는 여러 번 노력했다. 양해 해 주셔서 감사합니다. – Ana
.py 스크립트 나는 복사와 붙여 넣기가 손상 되었으면 좋겠다. 이 스크립트는 별표가 일치하는 아미노산을 보여주는 플롯을 만들었습니다. 내가하고 싶은 것은 seq1, seq2, k, t (임계 값)의 유사한 코드 또는 유사한 플롯을 생성하는 것입니다. http://www.cs.unibo.it/~dilena/LabBII/LabBI-I.pdf의 슬라이드 4와 비슷한 내용. 나는 내가하고 싶은 것을 더 잘 설명해주기를 바란다. 도와 주셔서 정말로 고맙습니다. – Ana