例えばCLE25ペプチドはArg-Lys-Val-Pro-Asn-Gly-Pro-Asp-Ile-His-Asnからなるが(実際は246bpの前駆体がまず転写され翻訳されるのだが)、このペプチドがどんなゲノムDNA配列から転写翻訳されたかを考えたい。
Arg:CGT/CGC/CGA/CGG/AGA/AGG
Lys:AAA/AAG
Val:GTT/GTC/GTA/GTG
Pro:CCT/CCC/CCA/CCG
Asn:AAT/AAC
Gly:GGT/GGC/GGA/GGG
Pro:CCT/CCC/CCA/CCG
Asp:GAT/GAC
Ile:ATT/ATC/ATA
His:CAT/CAC
Asn:AAT/AAC
これらの組み合わせなので、6x2x4x4x2x4x4x2x3x2x2=147456通りのDNA配列から転写翻訳される可能性がある。
これをすべて人力で羅列することは不可能なので、計算機の出番。本当はシェル芸でできるといいのだけれど、ひとまずExcelVBAでごまかす。
VBAを開き、
Sub AA01() a = Cells(Rows.Count, "A").End(xlUp).Row b = Cells(Rows.Count, "B").End(xlUp).Row For i = 1 To a For n = 1 To b x = x + 1 Cells(x, "C") = Cells(i, "A") & " " & Cells(n, "B") Next n Next i End Sub
と入力
そして列A,Bに1番目のアミノ酸のコドンを並べ、Bに2番目のアミノ酸のコドンを並べる。
で、ツール>マクロ>マクロ...とたどるとSheet1.AA01というマクロが選択されているのでそのまま「実行」
こんな感じにスペースが挟まるが総当りでつなげてくれる。
これを最後のアミノ酸まで順番に継ぎ足していくと、147456通りのDNA配列が出来上がる。
それぞれのDNAに>cle25-1, >cle25-2...のように名前列を先頭につけて一旦cle25.tsvで保存する。
$ cat cle25.tsv | tr -d ' ' | tr '\t' '\n' > cle25.fasta
というようにfasta形式にしてやる。
あとはゲノム上のどこにあるかはBlastnで探す。
$ blastn -query cle25.fasta -db TAIR10genome -word_size 33 -outfmt 7 -num_threads 4 | awk '/hits found/{getline;print}' | grep -v "#" > blast_cle25.txt
これで100%マッチする配列が出てくるはず。