0

현재 '수행 중'이고 DNA 샘플의 단계 분석을 플로팅 중이고 무언가 잘못되어있는 프로그램을 코딩 중입니다 : Output plot HERE! 오른쪽의 이미지는 MATLAB 및 어떻게 보일 것인가의 예입니다. 내 이미지는 내 프로그램에서 출력됩니다. 보시다시피 파란색 그래프는 오른쪽으로 보이지만 각도가 다릅니다. 나는 코드를 검사했고 그것은 프로그램의 MATLAB 버전과 기본적으로 동일합니다. 어쨌든 내가 모르는 실수가있을 것입니다. 그러나 그렇지 않다면 그래프를 올바른 위치로 '돌리는/내리는'방법이 있습니까? 여기어떻게 파이썬에서 특정 각도로 그래프를 낮 춥니 다.

파이썬 코드 :

def listIni(size, const=0): 
    return [const] * size 

seq = SeqIO.read("C:/ec.fasta", "fasta") 
seqString = seq.format("fasta") 
seq = seqString[72:] 
seqLen = len(seq) 

phase = listIni(seqLen) 
A = complex(1, 1) 
T = complex(1, -1) 
C = complex(-1, -1) 
G = complex(-1, 1) 

RNL = range(0, seqLen) 
ntLoc = np.asarray(RNL) 


for i in RNL: 
    if seq[i] == "A": 
     phase[i] = np.angle(A) 
    elif seq[i] == "T": 
     phase[i] = np.angle(T) 
    elif seq[i] == "C": 
     phase[i] = np.angle(C) 
    else: 
     phase[i] = np.angle(G) 

arrPh = np.asarray(phase) 
unwrapedPh = np.unwrap(arrPh) 
cumulatedPh = np.cumsum(arrPh) 


plt.plot(ntLoc, unwrapedPh, label='uPhase', color='red') 
plt.plot(ntLoc, cumulatedPh, label='cPhase', color='blue') 
plt.xlabel("Relative nt location") 
plt.ylabel("Angle") 
plt.show() 

답변

0

나는 그것을 알아 냈다. 대신 나는 코드의이 부분에 그랬던 것처럼 '수동 순서 로딩을'사용 :

seq = SeqIO.read("C:/ec.fasta", "fasta") 
seqString = seq.format("fasta") 
seq = seqString[72:] 
seqLen = len(seq) 

난 그냥 같은 바이오 파이썬에 내장 된 '기능을'사용 :

record = SeqIO.read("C:/ec.fasta", "fasta") 
sequence = record.seq 

그리고 모든 그것으로 일 할까요. 왜 그것은 아직도 수수께끼 같은 것입니까? 어쨌든 다른 아이디어와 응답 alexblae 주셔서 감사합니다!

0

나는 문제가 np.angle의 정의에있다 생각합니다. 코드에서

, 우리는 그렇게 분명 누적 합계가 음각 내려갑니다

angle('A') -> pi/4 
angle('T') -> -pi/4 
angle('G') -> 3pi/4 
angle('C') -> -3pi/4 

있습니다.

angle('A') -> pi/4 
angle('T') -> 7pi/4 
angle('G') -> 3pi/4 
angle('C') -> 5pi/4 

quick'n'dirty 둘러보기가

for i in RNL: 
    if seq[i] == "A": 
     phase[i] = np.angle(A) 
    elif seq[i] == "T": 
     phase[i] = np.pi-np.angle(T) 
    elif seq[i] == "C": 
     phase[i] = np.pi-np.angle(C) 
    else: 
     phase[i] = np.angle(G) 

것이다 그러나 이것은 정말 당신이 기지는 지적하고 싶어요에 해당하는 벡터로 원하는 위치에 따라 달라집니다 : 난 당신이 아니라 다음과 같은 매핑을 원하는 것 같아요.

관련 문제