teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

全てのソースコードを貼りました.冗長でみにくいかもしれませんがよろしくお願いします.CSVファイルはどのように貼ったら良いのでしょうか?

2021/12/08 08:25

投稿

taketake1108
taketake1108

スコア2

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,115 @@
15
15
  ソースコード
16
16
  python```ここに言語を入力
17
17
  コード
18
+ import numpy as np
19
+ import matplotlib.pyplot as plt
20
+ from sympy import *
21
+ import csv
22
+ from scipy.integrate import odeint
23
+
24
+ import pandas as pd
25
+ pd.set_option('display.max_rows', None)
26
+
27
+ import pandas as pd
28
+ pd.read_csv('Cy3 spectrum.csv')
29
+
30
+ df = pd.read_csv('Cy3 spectrum.csv')
31
+
32
+ #df.iloc[0,:] 1行目すべてのデータを取り出す
33
+ df.iloc[:,1] #2列目すべてのデータを取り出す
34
+ λ = []
35
+ listB = []
36
+
37
+ λ = df['Wavelength']
38
+ listB = df['Emission']
39
+
40
+ leng = len(λ)
41
+ max = 0
42
+
43
+ for n in range(leng):
44
+ if listB[n]>max:
45
+ max = listB[n]
46
+ num = n
47
+ print(max)
48
+
49
+ import pandas as pd
50
+
51
+
52
+ f = lambda x: (x/max)
53
+
54
+ df['Emission'].apply(f)
55
+
56
+ f_D = []
57
+ f_D = df['Emission'].apply(f)
58
+
59
+
60
+
61
+ print(f_D) #規格化吸収スペクトルを入手 最大強度を1
62
+
63
+ plt.plot(λ,f_D)
64
+ plt.show()
65
+
66
+ import pandas as pd
67
+ pd.read_csv('Cy5 spectrum.csv')
68
+
69
+ df = pd.read_csv('Cy5 spectrum.csv')
70
+
71
+ #df.iloc[0,:] 1行目すべてのデータを取り出す
72
+ df.iloc[:,1] #2列目すべてのデータを取り出す
73
+ λ = []
74
+ listB = []
75
+
76
+ λ = df['Wavelength']
77
+ listB = df['Excitation']
78
+
79
+ leng = len(λ)
80
+ max = 0
81
+
82
+ for n in range(leng):
83
+ if listB[n]>max:
84
+ max = listB[n]
85
+ num = n
86
+ print(max)
87
+
88
+ import pandas as pd
89
+
90
+ f = lambda x: (250000*x/max)#ε=εA/max
91
+
92
+ df['Emission'].apply(f)
93
+
94
+ ε = []
95
+ ε = df['Emission'].apply(f)
96
+
97
+
98
+ print(ε) #規格化蛍光スペクトルを入手
99
+
100
+ plt.plot(λ,ε)
101
+ plt.show()
102
+
103
+ print(df)
104
+
105
+ #データフレームにε列を追加
106
+ df['Abs spe'] = ε
107
+
108
+ #データフレームにf_D列を追加
109
+ df['Flu spe'] = f_D
110
+
111
+ import numpy as np
112
+ import scipy
113
+ from scipy import integrate
114
+ import matplotlib.pyplot as plt
115
+ import pandas as pd
116
+ J_elem = []
117
+ J_elem = (f_D)*(ε)*(λ**4)
118
+
119
+ df['J_elem'] = J_elem
120
+
121
+
122
+ J = sum(J_elem)/sum(f_D)
123
+ print(df)
124
+ print(J)
125
+
126
+
18
127
  # フェルスター距離
19
128
  κ2 = 2/3
20
129
  n = 1.33

2

変数に関して定義していたコードの部分を加えました.

2021/12/08 08:25

投稿

taketake1108
taketake1108

スコア2

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,45 @@
15
15
  ソースコード
16
16
  python```ここに言語を入力
17
17
  コード
18
+ # フェルスター距離
19
+ κ2 = 2/3
20
+ n = 1.33
21
+ Qd = 0.15
22
+ R0 = 0.02108*((κ2)*(n**-4)*(Qd)*J)**(1/6)
23
+
24
+ print(R0, "nm")
25
+
26
+ #FRET効率
27
+ r = 3
28
+ E = (R0)**6/((R0)**6+(r)**6)
29
+
30
+ print(E)
31
+ #吸収断面積
32
+ import pandas as pd
33
+ df = pd.read_csv('Cy3 spectrum.csv')
34
+
35
+ f = lambda x: ((3.823*10)**(-2)*250000*x)#ε=εA/max
36
+
37
+ df['Emission'].apply(f)
38
+
39
+ σD = []
40
+ σD = df['Emission'].apply(f)
41
+
42
+
43
+ print(σD) #吸収断面積(ドナー)を入手
44
+ print(σD[250])#波長550 nm
45
+ df = pd.read_csv('Cy5 spectrum.csv')
46
+
47
+ f = lambda x: ((3.823*10)**(-2)*250000*x)#ε=εA/max
48
+
49
+ df['Emission'].apply(f)
50
+
51
+ σA = []
52
+ σA = df['Emission'].apply(f)
53
+
54
+
55
+ print(σA) #吸収断面積(アクセプタ)を入手
56
+
18
57
  import numpy as np
19
58
  import matplotlib.pyplot as plt
20
59
 

1

コードブロック内にソースコードを挿入しました.

2021/12/08 08:17

投稿

taketake1108
taketake1108

スコア2

title CHANGED
File without changes
body CHANGED
@@ -11,27 +11,29 @@
11
11
  エラーメッセージなし.おそらく数値が0であるからグラフにならないのか?
12
12
  ### 該当のソースコード
13
13
 
14
- python
14
+
15
15
  ソースコード
16
+ python```ここに言語を入力
17
+ コード
16
18
  import numpy as np
17
19
  import matplotlib.pyplot as plt
18
20
 
21
+
19
22
  #定数
20
23
  τD = 3.5#(ns)
21
24
  τA = 3.0#(ns)
22
25
 
23
- kFRET = (1/τD)*(r/R0)**(-6)
26
+ kFRET = (1/τD)*(r/R0)**(-6)#FRET定数
24
- kD = 1/τD
27
+ kD = 1/τD#定数
25
- I = (10**(-2))/(10**(-5))*(10**(-5))
28
+ I = (10**(-2))/(10**(-5))*(10**(-5))#光強度
26
29
 
27
30
 
28
31
 
29
32
 
30
-
31
33
  #導関数dE1/dt
32
34
  def func_dE1dt(t, E1):
33
35
  return (σD[250])*I-(kFRET+kD)*E1#dE1/dt = σD*I-(kFRET+kD)E1
34
-
36
+ #導関数dE2/dt
35
37
  def func_dE2dt(t, E1,E2):
36
38
  return (σA[343])*I+kFRET*E1-kD*E2#dE2/dt = σA*I+kFRET*E1-kD*E2
37
39
 
@@ -78,7 +80,8 @@
78
80
  plt.legend()
79
81
  plt.show()
80
82
 
81
-
83
+ コード
84
+ ```
82
85
  ### 試したこと
83
86
  リスト化できていないと思いt,E1,E2の部分を_t,_E1,_E2として実行したが不可能だった.(name _t is not difined)
84
87
  ### 補足情報(FW/ツールのバージョンなど)