我需要帮助编写代码,以便我能够在一组峰中对每个峰进行基线(焓与时间等温滴定量热法数据)。
数据由ITC仪器以这种方式创建(其中'@#'表示峰的开始,数据在下面列为时间[秒],焓[ucal / s]和温度[deg。 C但不必要,因为它通常保持不变]):
@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个点(我已将其缩短到上面),我想在每个峰中加入一个线性方程来归零每个焓值,这样我就可以整合每个峰以产生一个结合图。我欢迎任何帮助/建议;谢谢!
答案 0 :(得分: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