アミノ酸配列への翻訳 – MBF Cooking


Microsoft Biology Foundation で翻訳領域の DNA 配列をアミノ酸に翻訳します。

翻訳領域の相補配列を鋳型として mRNA 配列を取得します。転写・翻訳は MBF.Algorithms.Translation 名前空間の Transcription クラスおよび ProteinTranslation で行います。

// http://www.ncbi.nlm.nih.gov/nuccore/145335330?report=genbank
string fasta = @">gi|145335330:219-3587 Arabidopsis thaliana PHYA (PHYTOCHROME A); G-protein coupled photoreceptor/ protein histidine kinase/ red or far-red light photoreceptor/ signal tr> (PHYA) mRNA, complete cds
ATGTCAGGCTCTAGGCCGACTCAGTCCTCTGAGGGCTCAAGGCGATCAAGGCACAGCGCTAGGATCATTG
CGCAGACCACTGTAGATGCGAAACTCCATGCTGATTTTGAGGAGTCAGGCAGCTCCTTTGATTACTCAAC
CTCAGTGCGTGTCACTGGCCCGGTTGTGGAGAATCAGCCACCAAGGTCTGACAAAGTTACCACGACTTAT
CTTCATCATATACAGAAGGGAAAGCTGATTCAGCCCTTCGGTTGTTTACTTGCCTTGGATGAGAAGACCT
TCAAAGTTATTGCATACAGCGAGAATGCATCTGAGCTGTTGACAATGGCCAGTCATGCAGTTCCTAGTGT
TGGCGAACACCCTGTTCTAGGCATTGGGACAGATATAAGGAGTCTTTTCACTGCTCCTAGTGCGTCTGCA
TTGCAGAAAGCCCTTGGATTTGGAGATGTCTCTCTTTTGAATCCCATTCTTGTGCACTGCAGGACTTCTG
CAAAGCCCTTTTATGCGATTATCCACAGGGTTACAGGGAGCATCATCATCGACTTTGAACCCGTGAAGCC
TTATGAAGTCCCCATGACAGCTGCTGGTGCCTTACAATCATACAAGCTCGCTGCCAAAGCAATCACTAGG
CTGCAATCTTTACCCAGCGGGAGTATGGAAAGGCTTTGTGATACAATGGTTCAAGAGGTTTTTGAACTCA
CGGGGTATGACAGGGTGATGGCTTATAAGTTTCATGAAGATGATCACGGTGAGGTTGTCTCCGAGGTTAC
AAAACCTGGGCTGGAGCCTTATCTTGGGCTGCATTATCCTGCCACCGACATCCCTCAAGCAGCCCGTTTT
CTGTTTATGAAGAACAAGGTCCGGATGATAGTTGATTGCAATGCAAAACATGCTAGGGTGCTTCAAGATG
AAAAGCTTTCCTTTGACCTTACCTTGTGTGGCTCCACCCTTAGAGCACCGCACAGCTGCCATTTGCAGTA
CATGGCCAACATGGATTCAATTGCATCTCTGGTTATGGCGGTTGTAGTTAACGAGGAAGATGGAGAAGGG
GATGCTCCTGATGCTACTACACAGCCTCAAAAGAGAAAGAGACTATGGGGTTTAGTGGTTTGTCACAATA
CGACTCCGAGGTTTGTTCCATTTCCTCTCAGGTATGCCTGTGAGTTTCTAGCTCAAGTGTTTGCCATACA
CGTCAATAAGGAGGTGGAACTCGATAACCAGATGGTGGAGAAGAACATTTTGCGCACGCAGACACTCTTG
TGCGATATGCTGATGCGTGATGCTCCACTGGGTATTGTGTCGCAAAGCCCCAACATAATGGACCTTGTGA
AATGTGATGGAGCAGCTCTCTTGTATAAAGACAAGATATGGAAACTGGGAACAACTCCAAGTGAGTTCCA
CCTGCAGGAGATAGCTTCATGGTTGTGTGAATACCACATGGATTCAACGGGTTTGAGCACTGATAGTTTG
CATGACGCCGGGTTTCCTAGGGCTCTATCTCTCGGGGATTCGGTATGTGGGATGGCAGCTGTGAGGATAT
CATCGAAAGACATGATTTTCTGGTTCCGTTCTCATACCGCTGGTGAAGTGAGATGGGGAGGTGCGAAGCA
TGATCCAGATGATAGGGATGATGCAAGGAGAATGCACCCAAGGTCATCGTTCAAGGCTTTCCTTGAAGTG
GTCAAGACAAGGAGTTTACCTTGGAAGGACTATGAGATGGATGCCATACACTCCTTGCAACTTATTTTGA
GGAATGCTTTCAAGGATAGTGAAACTACTGATGTGAATACAAAGGTCATTTACTCGAAGCTAAATGATCT
CAAAATTGATGGTATACAAGAACTAGAAGCTGTGACCAGTGAGATGGTTCGTTTAATTGAGACTGCTACG
GTGCCAATATTGGCGGTTGATTCTGATGGACTGGTTAATGGTTGGAACACGAAAATTGCTGAGCTGACTG
GTCTTTCGGTTGATGAAGCAATCGGGAAGCATTTCCTCACACTTGTTGAAGATTCTTCAGTGGAAATCGT
TAAAAGGATGCTAGAGAACGCATTAGAAGGAACTGAGGAGCAGAATGTCCAGTTTGAGATCAAGACACAT
CTGTCCAGGGCTGATGCTGGGCCAATAAGTTTAGTTGTAAATGCATGCGCAAGTAGAGATCTCCATGAAA
ACGTGGTTGGGGTGTGTTTTGTAGCCCATGATCTTACTGGCCAGAAGACTGTGATGGACAAGTTTACGCG
GATTGAAGGTGATTACAAGGCAATCATCCAAAATCCAAACCCGCTGATCCCGCCAATATTTGGTACCGAT
GAGTTTGGATGGTGCACAGAGTGGAATCCAGCAATGTCAAAGTTAACCGGTTTGAAGCGAGAGGAAGTGA
TTGACAAAATGCTCTTAGGAGAAGTATTTGGGACGCAGAAGTCATGTTGTCGTCTAAAGAATCAAGAAGC
CTTTGTAAACCTTGGGATTGTGCTGAACAATGCTGTGACCAGTCAAGATCCAGAGAAAGTATCGTTTGCT
TTCTTTACAAGAGGTGGCAAGTATGTGGAGTGTCTGTTGTGTGTGAGTAAGAAACTGGACAGGGAAGGTG
TAGTGACAGGTGTCTTCTGTTTCCTGCAACTTGCCAGCCATGAGCTGCAGCAAGCGCTCCATGTTCAACG
TTTAGCTGAGCGAACCGCAGTGAAGAGACTAAAGGCTCTAGCATACATAAAAAGACAGATCAGGAATCCG
CTATCTGGGATCATGTTTACAAGGAAAATGATAGAGGGTACTGAATTAGGACCAGAGCAAAGACGGATTT
TGCAAACTAGCGCGTTATGTCAGAAGCAACTAAGCAAGATCCTCGATGATTCGGATCTTGAAAGCATCAT
TGAAGGATGCTTGGATTTGGAAATGAAAGAATTCACCTTAAATGAAGTGTTGACTGCTTCCACAAGTCAA
GTAATGATGAAGAGTAACGGAAAGAGTGTTCGGATAACAAATGAGACCGGAGAAGAAGTAATGTCTGACA
CTTTGTATGGAGACAGTATTAGGCTTCAACAAGTCTTGGCAGATTTCATGCTGATGGCTGTAAACTTTAC
ACCATCCGGAGGTCAGCTAACTGTTTCAGCTTCCCTGAGGAAGGATCAGCTCGGGCGTTCTGTGCATCTT
GCTAATCTAGAGATCAGGTTAACGCATACCGGAGCTGGGATACCTGAGTTTTTACTAAACCAAATGTTTG
GGACTGAGGAAGATGTGTCAGAAGAAGGATTGAGCTTAATGGTTAGCCGGAAACTGGTGAAGCTGATGAA
TGGAGATGTTCAGTACTTGAGACAAGCTGGGAAATCAAGTTTCATTATCACTGCGGAACTCGCTGCAGCA
AACAAGTAG";

FastaParser parser = new FastaParser();
ISequence cds = parser.Parse(new StringReader(fasta))[0];
ISequence template = cds.Complement;
ISequence mRna = Transcription.Transcribe(template);
ISequence protein = ProteinTranslation.Translate(mRna);
Console.WriteLine(protein);

ProteinTranslation.Translate は標準遺伝暗号表にしたがって翻訳を行います。通常の使用では問題ないと思います。