Cześć, moja głowa gotuje się teraz przez 3 dni! I chce się wszystkie kodowania DNA dla peptydu, peptyd ma sekwencję aminokwasów, to znaczy aminokwasu M
i aminokwasu Q
może stanowić peptyd MQ
lub QM
jak uzyskać wszystkie kodowanie DNA dla peptydu w C#
DNA kodujący oznacza, że kod DNA (ang kodon) dla każdy aminokwas (dla niektórych jest więcej niż jeden kod, tj. aminokwas T ma 4 różne kody/kodony)
Ostatnia funkcja w poniższym kodzie nie działa, więc chcę, żeby ktoś zadziałał i proszę brak zintegrowanego języka zapytań (zapomniałem o akronimie!) `
private string[] CODONS ={
"TTT", "TTC", "TTA", "TTG", "TCT",
"TCC", "TCA", "TCG", "TAT", "TAC", "TGT", "TGC", "TGG", "CTT",
"CTC", "CTA", "CTG", "CCT", "CCC", "CCA", "CCG", "CAT", "CAC",
"CAA", "CAG", "CGT", "CGC", "CGA", "CGG", "ATT", "ATC", "ATA",
"ATG", "ACT", "ACC", "ACA", "ACG", "AAT", "AAC", "AAA", "AAG",
"AGT", "AGC", "AGA", "AGG", "GTT", "GTC", "GTA", "GTG", "GCT",
"GCC", "GCA", "GCG", "GAT", "GAC", "GAA", "GAG", "GGT", "GGC",
"GGA", "GGG", };
private string[] AMINOS_PER_CODON = {
"F", "F", "L", "L", "S", "S",
"S", "S", "Y", "Y", "C", "C", "W", "L", "L", "L", "L", "P", "P",
"P", "P", "H", "H", "Q", "Q", "R", "R", "R", "R", "I", "I", "I",
"M", "T", "T", "T", "T", "N", "N", "K", "K", "S", "S", "R", "R",
"V", "V", "V", "V", "A", "A", "A", "A", "D", "D", "E", "E", "G",
"G", "G", "G", };
public string codonToAminoAcid(String codon)
{
for (int k = 0; k < CODONS.Length; k++)
{
if (CODONS[k].Equals(codon))
{
return AMINOS_PER_CODON[k];
}
}
// never reach here with valid codon
return "X";
}
public string AminoAcidToCodon(String aminoAcid)
{
for (int k = 0; k < AMINOS_PER_CODON .Length; k++)
{
if (AMINOS_PER_CODON [k].Equals(aminoAcid))
{
return CODONS[k];
}
}
// never reach here with valid codon
return "X";
}
public string GetCodonsforPeptide(string pep)
{
string result = "";
for (int i = 0; i <pep.Length ; i++)
{
result = AminoAcidToCodon(pep.Substring (i,1));
for (int q = 0; q < pep.Length; q++)
{
result += AminoAcidToCodon(pep.Substring(q, 1));
}
}
return result;
}
Czy możesz podać przykład wejścia i pożądanego wyjścia? Btw. akronimem jest LINQ. – Henrik
getcodonsforpeptide ("MA") wyjście AGTGAC, AGTGCG AGTGAT coś takiego nie jest pewne tylko poprzez sprawdzenie dwóch tabel kodonów i amino_acid_per_codon – kobosh
Więc po to, aby upewnić się, co rozumiem. Dla każdego znaku w łańcuchu wejściowym może być wiele pasujących wpisów w tabeli AMINOS_PER_CODON. Na przykład, dla danego ciągu może być wiele dopasowań dla każdego odpowiedniego znaku: 1, 2, 3, 2. Wynikowa * liczba * kombinacji będzie 1 * 2 * 3 * 2 = 12. Następnie, chcesz każda z tych kombinacji, w której chcesz przetłumaczyć każdy mecz z tej tabeli na inną tabelę i uzyskać wynikowy ciąg znaków, czy tak jest? –