三日坊主:
Deprecated: Function strftime() is deprecated in /home/u109394186/domains/rad51.net/public_html/jeans/jeans/libs/blog.php on line 333
2010年 07月の記事
PCR産物のDNA sequenceを作成するスクリプト [General]
2010年7月26日
分子生物学用のツール。テンプレートと2つのプライマーの塩基配列から、PCR産物の塩基配列を計算して表示する。
始め、VBScript + InputBoxの組み合わせで作っていたが、テンプレート配列をInputBoxで入力させる際に不具合があったので、PHPに移行。PHPを使っている点で汎用的でないので、こちらのブログにメモしておくことにする。
(2010/10/11改定)
始め、VBScript + InputBoxの組み合わせで作っていたが、テンプレート配列をInputBoxで入力させる際に不具合があったので、PHPに移行。PHPを使っている点で汎用的でないので、こちらのブログにメモしておくことにする。
<?php $template=" GGCTTTTCATAAAATTCCTTTTAAAATCATAACATAAAAGAATGATTCACATTAACGGAT CCGTTAACTACGAAAATAGGCAACTTATTCTTAAGGGGCAAGATTAATTTATGTTTTCCC GTCACCAACGACAAAATTTGCGAGGCTCTTTCCGAAAATAGGGTTGATCTTTGTTGTCAC TGGATGTACTGTACATCCATACAGTAACTCACAGGGGCTGGATTGATTATGTACACTTCA GGCTATGCACATCGTTCTTCGTCGTTCTCATCCGCAGCAAGTAAAATTGCGCGTGTCTCT ACGGAAAACACTACAGCCGGGCTTATCAGTGAAGTTGTCTATCGCGAAGATCAGCCCATG ATGACGCAACTTCTACTGTTGCCATTGTTACAGCAACTCGGTCAGCAATCGCGCTGGCAA CTCTGGTTAACACCGCAACAAAAACTGAGTCGGGAATGGGTTCAGGCATCTGGGCTACCC TTAACGAAAGTAATGCAGATTAGCCAGCTCTCCCCTTGCCACACTGTGGAGTCAATGGTT CGCGCTTTACGCACGGGCAATTACAGTGTGGTGATCGGTTGGTTGGCAGATGATTTGACT GAAGAAGAGCATGCTGAACTTGTTGATGCGGCAAATGAAGGTAACGCTATGGGGTTTATT ATGCGTCCGGTAAGCGCATCCTCTCACGCCACGAGACAACTTTCCGGGCTAAAAATTCAC TCTAATTTGTATCATTAAGT "; $primer1=" cgCGGATCCGTTAACTACGAAAATAGGC "; $primer2=" ccCATggTCAATCCAGCCCCTGTGAG "; $template=preg_replace('/[^GATC]+/','',strtr($template,'gatc','GATC')); $primer1=preg_replace('/[^GATC]+/','',strtr($primer1,'gatc','GATC')); $primer2=preg_replace('/[^GATC]+/','',strtr($primer2,'gatc','GATC')); $strand=extension($template,$primer1); if ($strand) { $strand=complementary($strand); $strand=extension($strand,$primer2); if (strlen($strand)==0) exit("Primer2 does not work!\n"); $strand=complementary($strand); } else { $strand=extension(complementary($template),$primer1); if (strlen($strand)==0) exit("Primer1 does not work!\n"); $strand=complementary($strand); $strand=extension($strand,$primer2); if (strlen($strand)==0) exit("Primer2 does not work!\n"); $strand=complementary($strand); } echo $strand; function complementary($sequence){ $comp=''; for ($i=strlen($sequence)-1;0<=$i;$i--) $comp.=strtr(substr($sequence,$i,1),'GATC','CTAG'); return $comp; } function extension($template,$primer) { for ($i=0;$i<strlen($primer)-10;$i++) { $p=substr($primer,$i); $p=preg_quote($p,'/'); if (preg_match('/'.$p.'([GATC]*)$/',$template,$m)) return $primer.$m[1]; } return ''; }
(2010/10/11改定)