制作数据集(4)

readcsv_split_trainX_trainY

今天把区分X和Y的函数写出来,并且可以达到需要的功能。
通过往列表插入数据的方式实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from os import walk
import pandas as pd

def readcsv_split_trainX_trainY(path, cycle):
"""
# path: 文件所在目录
# cycle:第几个周期区分X和Y
"""
# 读取文件夹数据
for root, dirs, files in walk(path, topdown=False):
print(files)
num = len(files)
# 创建列表,用于存储x y
x, y = list(), list()
for i in range(num):
newdata = pd.read_csv(path + '/%s' % files[i], header=None, usecols=[1])
newdata = newdata.drop(index=[0])
newdata = newdata.values
x_new = newdata[0:cycle*588, 0]
x_new = x_new.tolist()
for j in range(len(x_new)):
x.append(x_new[j])
y_new = newdata[cycle*588:, 0]
y_new = y_new.tolist()
for j in range(len(y_new)):
y.append(y_new[j])

return x, y

x, y = readcsv_split_trainX_trainY(path='/Users/squareface/Downloads/salt_5880',cycle=5)

print(len(x))
print(len(y))

函数输出:

1
2
3
4
['DK_6_5880.csv', 'DK_7_5880.csv', 'DK_1_5880.csv', 
'DK_5_5880.csv', 'DK_4_5880.csv', 'DK_2_5880.csv', 'DK_3_5880.csv']
20580
20580

LIRB波形

盐刺激前的波形和盐刺激后的波形是有关系的,刺激后的波形是在刺激前的波形基础上变换的。刺激前后的波形好像是有一个方程对应的。

今天老师有说到“参考波”这个名词,a波即参考波。子洋师兄大论文中写到:

1
2
3
4
5
6
7
8
9
本研究提取了 3 个具有代表性的周期波形进行特征提取,
分别是盐胁迫前最后一组完整周期,称为 a 波;
盐胁迫时的第一周期波形,称为 b 波;
盐胁迫 2 小时后的第一组完 整周期,称为 c 波。
一般情况下:
a 波作为该小麦的参考波,
b 波是盐胁迫后的第一个波,作为反映小麦响应短期盐胁迫的波,
c 波作为小麦响应长期盐胁迫的波
因此本文中不同类型小麦 LIRB 在 a 波和 b 波之间跳变差异,均是由盐胁迫导致细胞极化程度变化导致

需要理解一下这个公式,可能有帮助:

\( E = E_1 - E_2 = E_0 - \frac{RT}{nF} \log\alpha_1 - (E_0 - \frac{RT}{nF} \log{\alpha_2}) \)

式中,\(R\)为气体常数,\(T\)为绝对温度,\(n\)为反应中的电子数,\(F\) 为法拉第常数。
\(E1,E2\) 为换盖子前后的接触电势,\(E0\) 为基础电势,\(\alpha_1,\alpha_2\) 为换盖子前后的氯离子活度
离子活度计算公式如下所示,

\(\alpha_i = c_i \times \gamma_i\)

计算中使用的活度因子为:
10mM KCl: \(\gamma_{CI} \approx 0.9\)

300mM NaCl: \(\gamma_{CI} \approx 0.7^{[255]}\)