C++ で作成したプログラムを C# Windows フォーム プログラムに再作成しようとしています。プログラムが正常に動作しない原因は、1 つだけあります。
私のプログラムは、ユーザーが DNA または RNA 文字の文字列/シーケンスを入力できるようにする生物情報学プログラムであり、プログラムはそれを対応するタンパク質/アミノ酸に変換し、プログラムが認識するすべてのコドンのアミノ酸/タンパク質を出力します。「AAA GGG CCC」と入力すると、「Lysine Glycine Proline」と出力されます。
これは、C++ バージョンで問題が発生しているコードのスニペットです。
for (i=0; i<numberOfCodons;i++)
{
endIndex=beginIndex+3;
codon="";
{
//here is where I'm having the trouble converting this to C# and have it cout the write
//way
codon.append(RNA.substr(beginIndex,endIndex-beginIndex));
}
for (k=0;k<64;k++)
{
if(codon==codons[k])
{
//here is where I'm having the trouble converting this to C# and have it cout the write way
//like I metioned previously AAA GGG CCC couts Lysine Glycine Proline
protein.append(aminoAcids[k]);
}
}
beginIndex+=3;
}
cout<<protein<<endl;
protein.clear();
ここに私がこれまでにC#で持っているものがあります
private void Tranlate_Click(object sender, EventArgs e)
{
numberOfCodons = rnaLength / 3;
beginIndex = 0;
richTextBox2.AppendText("Total Number Of codons are: ");
richTextBox2.AppendText(numberOfCodons.ToString());
richTextBox2.AppendText("\n");
for (i = 0; i < numberOfCodons; i++)
{
endIndex = beginIndex + 3;
codon = "";
{
// these are the two possible conversions of the C++ code that dont work at all for me******
// codon.AppendText(RNA.Substring(beginIndex, endIndex - beginIndex));
codon=(RNA.Substring(beginIndex, endIndex - beginIndex));
}
for (k = 0; k < 64; k++)
{
if (codon == codons[k])
{
//supposed to print out all the coresponding amino acids from the array and it will only print out one amino acid (Lysine)*******
//protein.AppendText(aminoAcids[k]);
protein = (aminoAcids[k]);
}
}
beginIndex += 3;
}
richTextBox2.AppendText(protein);
richTextBox2.AppendText("\n");
//protein.clear();
}
なぜこれを行うのですか?どうすれば修正できますか?