2010
プライマー云々の表についての雑用。
大まかな所は VBA を使わずに、
- 大文字化 =>
=upper("塩基配列")
- 長さ =>
=len("塩基配列")
- A,C,G,T の数 =>
=len("塩基配列") - len(substitute("塩基配列","A",""))
- tm値 =>
=if("長さ">18,"最近接塩基対法の計算式"," Wallace 法の計算式")
てな具合に実装出来たのだけど、reverse-complement だけは、面倒臭そう。
仕方ないので、VBA するが、絶対忘れるのでメモ。
それと、ドロップダウンリストの実装方法も。
reverse-complement
開発 => 挿入 => 標準モジュール 1
で、以下を貼りつけて「終了して Excel(ry へ戻る」2
どこぞで拾ったの
Function revcomp(c)
Dim i As Long
Dim newstr As String
i = Len(c)
For i = i To 1 Step -1
Select Case UCase(Mid(c, i, 1))
Case "A"
newstr = newstr & "T"
Case "C"
newstr = newstr & "G"
Case "G"
newstr = newstr & "C"
Case "T"
newstr = newstr & "A"
End Select
Next
revcomp = newstr
End Function
もちろん保存は、"マクロ有効ブック"
で、使い方は、セル選択して
=revcomp("塩基配列")
- 戻り値はプロシージャ名にセットする事で戻る
-
sub
とfunction
の違いは戻り値の有無
-
-
for i = i to 1 step - 1
は逆順カウントのお約束-
next
を忘れそう
-
-
mid
は文字列抽出 -
select case
で select 文 -
&
で連結
メモ
-
reverse
は、StrReverse
- 後は、 RegExpオブジェクト関連を調べて
tr///
辺りを。
ドロップダウンリストの編集方法
- データタブの「データの入力規則」を実行
- 入力値の種類からリストを選択
- 元の値の所
- 右端のアイコンをクリックで GUI にて範囲指定
- 文字列をカンマ区切りで