0

我需要帮助编写代码,使我能够在一组峰中为每个峰设置基线(焓与时间等温滴定量热数据)。

数据由 ITC 仪器以这种方式创建(其中“@#”表示峰的开始,数据在下面列出为时间 [秒]、焓 [ucal/s] 和温度 [摄氏度,但不必要因为它通常保持不变]):

@0
2.00,13.585249,25.00761
4.00,13.585438,25.00699
6.00,13.585557,25.00688
8.00,13.585472,25.00804
@1,6.0000
302.00,13.607173,25.00958
304.00,13.607608,25.00931
306.00,13.607758,25.00965

每个峰有 100 多个点(我在上面已将其缩短),我想合并一个线性方程以将每个峰中的每个焓值归零,因此我可以整合每个峰以生成绑定图。我欢迎任何帮助/建议;谢谢你!

4

1 回答 1

0

我能够做到。谢谢回复的人!我将把这个留给将来可能需要对峰值进行线性拟合的任何人(假设第一个点和最后 40 个点在像 ITC 中那样的合适的拟合线上就足够了):

#defining function to calculate baseline of peaks in x vs y graph
def calc_baseline(x,y):   
    zeroed_y=[]   
    for n in range(len(y)): 
        line_y=array(y[n][0:1]+y[n][-41:-1])
        line_x=array(x[n][0:1]+x[n][-41:-1])
        p=scipy.polyfit(baseline_x,baseline_y,1)
        baseline_y=array(x[n])*p[0]+p[1]
        zeroed_y.append(baseline_y)
    return zeroed_y

#defining function to zero baselines of peaks in x vs y graph, assuming number_injections is a known integer
def zero_baseline(number_injections,y,zeroed_y):
    zeroed_y_lists=[]
    for i in range(0,number_injections+1):
        zeroed_y=y[i]-zeroed_y[i]
        zeroed_y_lists.append(zeroed_y)
    return zeroed_y_lists
于 2014-05-20T22:31:10.670 回答