2013-05-10 5 views
4

형광 수명 곡선에 적합하고 싶습니다. 이러한 곡선은 악기 응답 함수의 컨볼 루션 (IRF는 가우시안으로 가정)와 (다) 지수 함수 감쇠에 의해 주어진다 : G는 가우시안 및 F의 지수 감쇠이다numpy/scipy를 사용하여 파이썬에서 푸리에 변환/반복 deconvolution 피팅

formula

. 나는 다음과 같은 기능, lmfit.minimize를 사용하여 파이썬이 피팅 시도했다 :

GAUS는 가우스 악기 응답 함수를 정의
def gaus(t, gamp, gwidth, gtoff): 
    i = gamp*math.exp(-(t-gtoff)**2/gwidth) 
    return i 


def exp1(t, expamp, exptime, exptoff): 
    i = expamp*math.exp((t-exptoff)/(exptime)) 
    return i 

def func1(t, gamp, gwidth, gtoff, expamp1, exptime1, exptoff1): 

    i = [(scipy.integrate.quad(lambda Tpr: gaus((ti - Tpr), gamp, gwidth, gtoff)*exp1(ti, expamp1, exptime1, exptoff1), 0, ti))[0] 
      for ti in t] 
    return i 

, EXP1 단일 지수 붕괴이다. 작품이 종류이지만

def fitfunc(params, x, data): 
    ..getting parameters part here.. 

    values = func1(t, gamp, gwidth, toff, expamp1, exptime1, toff) 
    return values - data 

result = lmfit.minimize(fitfunc, fit_params, args = (t, test)) 

, 피팅 프로세스 : FUNC1, 그것은 되돌아가 착용감의 차이를 계산하기 위해 사용되는 값과 데이터를 지정된 파라미터 세트를 scipy.integrate과 둘 사이의 컨볼 루션을 계산 매우 느리고 아직 내 합리적인 적합성을 부여하지 않았습니다.

푸리에 변환 또는 반복 deconvolution을 사용하여 컨볼 루션 프로세스를 우회하는 데는 여러 가지 방법이 있습니다. Origin 어떻게하는지 알고있는 것 같지만 절차를 이해하는 데 문제가 있습니다.

내가 알 수있는 한 반복적 인 디콘 볼 루션은 추측 한 가우스 함수로 신호를 디콘 볼루션 한 다음 결과를 피팅 한 다음 가우스를 조정하여 작동합니다.

푸리에 변환 접근법은 실제 공간에서의 컨볼 루션이 푸리에 도메인에서의 곱셈에 해당하므로 계산 시간이 단축된다는 원리에 기반합니다. 푸리에가 신호를 변환하고, 피팅하고, 푸리에 변환하는 것이 겠지요.

나는 이러한 메소드를 파이썬 numpy/scipy로 구현하는 방법에 대한 정보를 얻고 싶습니다. 반복적 인 디콘 볼 루션이 가장 쉬운 방법 인 것처럼 보이기 때문에 시작해야합니다. 다른 머리에서, 내가 읽은 것에서 푸리에 방법은 더 빠르고 신뢰할 수 있어야합니다. 그러나, 어떻게 푸리에 변환 결과에 피팅을 수행할지 모르겠다.

답변

3

일부의 의견과 생각 :

1) 위의 구현 gtoff 및 expoff에서 중복 있습니다. gamp와 expamp도 마찬가지입니다. 예 : expoff = 0 및 expamp = 1을 사용합니다.

2) 가우시안 커널을 사용한 다중 지수 붕괴의 회귀 직후 인 경우 scipy.special.erf를 사용하여 쉽고 효율적으로 계산 된 분석 결과를 사용하십시오. exp (-t/tau) 정규화 된 가우시안 1/(sqrt (2 * pi) * 시그마) * exp (-t^2/(2 * 시그마^2))를 갖는 (t> = 0) (2 * t * τ2)/(2 * τ2)) * (1 * erf (2 * t * τ2)/(sqrt (2) * τ *

이것은 분명히 exp1과 gaus의 정의에 따라 일반화됩니다.

3) 게시물에 언급 된 FFT 접근 방식을 기반으로 np.convolve를 사용하여 효율적으로 벡터를 컨볼 루션 할 수 있습니다. 특정 애플리케이션의 경우, 가우스는 랩 어라운드 순서로 나타내야합니다. 예 : 자세한 내용은 Numerical Recipes, 13.1 절을보십시오 (그렇지 않으면 시간의 원점이 바뀔 것입니다).

4) 통상적 인 접근법은 전형적으로 일정한 가우시안 커널을 사용하는 반복적 인 재구성에 기초한다.디콘 볼 루션은 가능하면 좋지 않습니다.

5) 피팅 시간 분석 형광 데이터에 대한 다용도 패키지가 필요한 모든 것을 구현하는 고안되었습니다. trfit

관련 문제