質問編集履歴

4

誤字

2019/01/15 06:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -130,7 +130,7 @@
130
130
 
131
131
  私はこのコードでマルチプルアライメントされたアミノ酸の保存度を計算しようと試みています。その際に、valder式を用いていて、この式の分母を計算する段階にいます。
132
132
 
133
- ここで、コードの「denominate = []」、以下のfor文の中で「paramate = 0」の値を、for文が回るたびに更新していきたいと考え、上記のようなコードを書きました。しかし、paramateの値が更新されていなくて困っています。
133
+ ここで、コードの「denominate_half = []」、以下のfor文の中で「paramate = 0」の値を、for文が回るたびに更新していきたいと考え、上記のようなコードを書きました。しかし、paramateの値が更新されていなくて困っています。
134
134
 
135
135
 
136
136
 

3

やりたいことを具体的にまとめました、よろしくお願いします。

2019/01/15 06:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,36 +1,122 @@
1
1
  ```python3
2
+
3
+ data = ["DDDDDDDDDD","DDDDDDDDDE","DDDDDEEEEE","DDDDDDDDDF","DDDDDEEEEF",
4
+
5
+ "DDDDDEEEFF","IIIILLLLVV","PPPPWWWWSS","DVYATKPCRH","LLLL"
6
+
7
+ ,"LLLL------"]
8
+
9
+
10
+
11
+
12
+
13
+ #(1)アライメントの長さを計測し、各サイトの配列数も計上する。
14
+
15
+ alignment_num = len(data)
16
+
17
+ num = 7
18
+
19
+ string_1 = data[num]
20
+
21
+ sequense_num = len(string_1)
22
+
23
+ print("アライメントの長さは"+str(alignment_num)+"で、サイト番号が" +str(num)+"の配列数は"+str(sequense_num)+"個である。")
24
+
25
+
26
+
27
+ #(2)試験的にサイト7の保存度を算出してみる。
28
+
29
+ amino_acid_type = "STYGAVLIFDNEQMCHKPWR"
30
+
31
+ amino_acid_frequency = {}
32
+
33
+ amino_acid_num = []
34
+
35
+ result_num = {}
36
+
37
+ for test in amino_acid_type:
38
+
39
+ result = string_1.count(test)
40
+
41
+ if result > 0 :
42
+
43
+ frequency = (result/sequense_num)
44
+
45
+ amino_acid_frequency.setdefault(test,frequency)
46
+
47
+ amino_acid_num.append(test)
48
+
49
+ result_num.setdefault(test,result)
50
+
51
+ print("サイト中に"+test+"のアミノ酸が"+str(result)+"個存在していて、頻度は"+str(frequency)+"である")
52
+
53
+ gap = "-"
54
+
55
+ result_2 = string_1.count(gap)
56
+
57
+ if result_2 > 0:
58
+
59
+ print("サイト中のgapの数は"+str(result_2)+"個です。")
60
+
61
+ else:
62
+
63
+ continue
64
+
65
+ print("この配列中には、" + str(len(amino_acid_num)) + "個の種類のアミノ酸がある。")
66
+
67
+ print("この下の辞書には、分母のkに代入する各アミノ酸の個数が記録されている。")
68
+
69
+ print(result_num)
70
+
71
+ print("この下の辞書には、分母のnに代入する各アミノ酸に対応する頻度が計算されている。")
72
+
73
+ print(amino_acid_frequency)
74
+
75
+ keys_for_k = [e for e, w in result_num.items() ]
76
+
77
+ keys_for_n = [k for k, v in amino_acid_frequency.items()]
78
+
79
+ print(keys_for_k)
80
+
81
+
82
+
83
+ denominator_half = []
2
84
 
3
85
  for i in range (2):
4
86
 
5
87
  paramate = 0
6
88
 
7
- print(paramate)
8
-
9
89
  for string_2 in string_1[paramate:sequense_num-1]:
10
90
 
11
91
  for string_3 in keys_for_k:
92
+
93
+ paramate += 1
12
94
 
13
95
  if string_3 in string_2:
14
96
 
15
97
  k_value = result_num[string_3]
16
98
 
17
- print(k_value)
99
+ #print(k_value)
18
100
 
19
101
  n_value = amino_acid_frequency[string_3]
20
102
 
21
- print(n_value)
103
+ #print(n_value)
22
104
 
23
105
  denominator_1 = (1/alignment_num) * (1/(k_value * n_value))
24
106
 
25
- print(denominator_1)
107
+ #print(denominator_1)
26
108
 
27
109
  denominator_half.append(denominator_1)
28
-
29
- paramate += 1
30
110
 
31
111
  else:
32
112
 
33
113
  continue
114
+
115
+
116
+
117
+ print(len(denominator_half))
118
+
119
+ print(denominator_half)
34
120
 
35
121
  ```
36
122
 
@@ -38,6 +124,44 @@
38
124
 
39
125
 
40
126
 
41
- この繰り返しの中で、paramateの値を随時変更していきたいのですが、この記述方法では、paramateの値が更新されないのはどうしてなのでしょうか??
127
+ #####質問
42
128
 
43
- 調べて見たのですが、あり答えらきものが出ていなかっのでここで質問させていだきます。よろしくお願いします。
129
+ 質問を再編集しました。今回やりたいことを具体的に記載します。
130
+
131
+ 私はこのコードでマルチプルアライメントされたアミノ酸の保存度を計算しようと試みています。その際に、valder式を用いていて、この式の分母を計算する段階にいます。
132
+
133
+ ここで、コードの「denominate = []」、以下のfor文の中で「paramate = 0」の値を、for文が回るたびに更新していきたいと考え、上記のようなコードを書きました。しかし、paramateの値が更新されていなくて困っています。
134
+
135
+
136
+
137
+ このコードのどの部分が間違っているのかわかりません。
138
+
139
+ ご回答をいただいた方の文章中に、このコードが正常に動いていないのでは?と、ご指摘があったので、参考までに、以下に実行結果を記載します。
140
+
141
+
142
+
143
+ #####実行結果
144
+
145
+ アライメントの長さは11で、サイト番号が7の配列数は10個である。
146
+
147
+ サイト中にSのアミノ酸が2個存在していて、頻度は0.2である
148
+
149
+ サイト中にPのアミノ酸が4個存在していて、頻度は0.4である
150
+
151
+ サイト中にWのアミノ酸が4個存在していて、頻度は0.4である
152
+
153
+ この配列中には、3個の種類のアミノ酸がある。
154
+
155
+ この下の辞書には、分母のkに代入する各アミノ酸の個数が記録されている。
156
+
157
+ {'S': 2, 'P': 4, 'W': 4}
158
+
159
+ この下の辞書には、分母のnに代入する各アミノ酸に対応する頻度が計算されている。
160
+
161
+ {'S': 0.2, 'P': 0.4, 'W': 0.4}
162
+
163
+ ['S', 'P', 'W']
164
+
165
+ 18
166
+
167
+ [0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.2272727272727273, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.05681818181818182, 0.2272727272727273]

2

編集完了しました。よろしくお願いします

2019/01/15 06:21

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,5 @@
1
+ ```python3
2
+
1
3
  for i in range (2):
2
4
 
3
5
  paramate = 0
@@ -30,6 +32,10 @@
30
32
 
31
33
  continue
32
34
 
35
+ ```
36
+
37
+
38
+
33
39
 
34
40
 
35
41
  この繰り返しの中で、paramateの値を随時変更していきたいのですが、この記述方法では、paramateの値が更新されないのはどうしてなのでしょうか??

1

#を消しました

2019/01/14 13:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  k_value = result_num[string_3]
14
14
 
15
- #print(k_value)
15
+ print(k_value)
16
16
 
17
17
  n_value = amino_acid_frequency[string_3]
18
18
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  denominator_1 = (1/alignment_num) * (1/(k_value * n_value))
22
22
 
23
- #print(denominator_1)
23
+ print(denominator_1)
24
24
 
25
25
  denominator_half.append(denominator_1)
26
26
 
@@ -30,6 +30,8 @@
30
30
 
31
31
  continue
32
32
 
33
+
34
+
33
35
  この繰り返しの中で、paramateの値を随時変更していきたいのですが、この記述方法では、paramateの値が更新されないのはどうしてなのでしょうか??
34
36
 
35
37
  調べて見たのですが、あまり答えらしきものが出ていなかったのでここで質問させていただきます。よろしくお願いします。