こんにちはしろくまです。
Pythonでリストと辞書型の勉強をしたので、自分でプログラムを書いてみました。せっかくなのでバイオ系っぽく塩基配列中の塩基をカウントします。ATGC配列がカンマ区切りで与えられたときに、GC含量を求めます(PCRのためのプライマー設計の場面を想定しています)。
バイオ系じゃない人向けに(簡単にいろいろ省略して)説明すると、
PCR=バイオ系の人が息をするかのごとく行う超基本的な実験
塩基配列=ATGCの4文字で構成される文字列
プライマー=PCRをするために必要な試薬。自分で設計する。
(GとCの文字数)÷(ATGCすべての文字数)が0.4~0.6になるのが理想。
#配列がカンマで区切られているデータ s = """ A,T,G,C,A,A,A,A,T,G,G,G,C,G,T,C,G,G """ #データをリストにする s = s.strip() s_list = s.split(",") #各塩基と塩基数を辞書型にする result = {} for nucleotide in s_list: nucleotide = nucleotide.strip() if not nucleotide in result: result[nucleotide] = 0 result[nucleotide] += 1 for nucleotide, v in result.items(): print(nucleotide + " = " + str(v)) print("プライマー長は " + str(len(s_list)) + " 塩基") gccount = result['G'] + result['C'] print("GCの塩基数は " + str(gccount)) gcratio = gccount / len(s_list) * 100 print("GC含量は " + str(gcratio) + " %")
これで合ってるかな~。どきどき。
私の師匠は「20塩基くらい」「GC含量」「末端がGCリッチにならないように」さえ守ればOK,と言ってたけど、他にもいろいろ条件あるので判定できるようにしたい…
(参考:タカラバイオHP)
プライマー設計について|タカラバイオ株式会社
プライマー設計用のソフトとかツールいろいろあるっぽいけどみんな使ってるのかな?上記の通り師匠が適当だったからいつもWordに目的遺伝子の配列コピペして自分で数えてた…。
RT-PCRはRocheのサイトに遺伝子名つっこむだけで設計できたし…。
https://qpcr.probefinder.com/organism.jsp
(なお職場ではサイバーグリーン法が採用されており無事死亡)