Erinevus lehekülje "ITI0011RUS:упражнение 03" redaktsioonide vahel
| (ei näidata sama kasutaja 13 vahepealset redaktsiooni) | |||
| 8. rida: | 8. rida: | ||
ДНК представляет собой последовательность аминокислот, которые обозначают символами '''A''', '''C''', '''G''', '''T'''.  | ДНК представляет собой последовательность аминокислот, которые обозначают символами '''A''', '''C''', '''G''', '''T'''.  | ||
| − | Например,   | + | Например, "AACCGTAGC" в то же время строки "acgt", "AJ2IKK", "AcGTLKO" не являются ДНК, так как содержат посторонние символы.  | 
| 14. rida: | 14. rida: | ||
'''Задание 1'''  | '''Задание 1'''  | ||
| − | Проверить, является ли строка   | + | Проверить, является ли строка последовательностью ДНК. Если строка содержит посторонние символы, представляет собой null-объект, либо количество символов в строке не кратно трем - функция должна вернуть False, иначе True. Имейте в виду, что если передается пустая строка, то функция должна вернуть True  | 
<source lang="java">  | <source lang="java">  | ||
| 22. rida: | 22. rida: | ||
Например:  | Например:  | ||
<source lang="java">  | <source lang="java">  | ||
| − | isValidDnaSequence(  | + | isValidDnaSequence(null) → false  | 
| − | isValidDnaSequence(  | + | isValidDnaSequence("AAAACCGTACCC") → true  | 
| − | isValidDnaSequence(  | + | isValidDnaSequence("") →  true  | 
| − | isValidDnaSequence(  | + | isValidDnaSequence("GKS") → false  | 
| − | isValidDnaSequence(  | + | isValidDnaSequence("a") → false  | 
</source>  | </source>  | ||
| 40. rida: | 40. rida: | ||
Например:  | Например:  | ||
<source lang="java">  | <source lang="java">  | ||
| − | highestOccurrence(  | + | highestOccurrence(null) → -1  | 
| − | highestOccurrence(  | + | highestOccurrence("ACAACCGTGCGC") → 5  | 
</source>  | </source>  | ||
A: 3 раза, C: 5 раз, G: 3 раза, T: 1 раз  | A: 3 раза, C: 5 раз, G: 3 раза, T: 1 раз  | ||
| 49. rida: | 49. rida: | ||
'''Задание 3'''  | '''Задание 3'''  | ||
| − | Преобразовать ДНК в РНК. Это происходит путем замены символов: A -> U, G -> C, C -> G, T -> A. Если строка не является   | + | Преобразовать ДНК в РНК. Это происходит путем замены символов: A -> U, G -> C, C -> G, T -> A. Если строка не является ДНК, то функция должна вернуть ''null'' (для проверки используйте уже написанную ''isValidDnaSequence(String sequence) )''  | 
<source lang="java">  | <source lang="java">  | ||
| 57. rida: | 57. rida: | ||
Например:  | Например:  | ||
<source lang="java">  | <source lang="java">  | ||
| − | transcribe(  | + | transcribe("AAGGCCTTG") → UUCCGGAAC  | 
| − | transcribe(  | + | transcribe("TATATA") → AUAUAU  | 
| − | transcribe(  | + | transcribe("klj") → null  | 
| + | transcribe("TATA") → null  | ||
</source>  | </source>  | ||
| 71. rida: | 72. rida: | ||
2. Полученная строка разбивается на тройки символов и составляется белок в соответствии с таблицей преобразования  | 2. Полученная строка разбивается на тройки символов и составляется белок в соответствии с таблицей преобразования  | ||
| + | <pre>  | ||
UUU F      CUU L      AUU I      GUU V  | UUU F      CUU L      AUU I      GUU V  | ||
UUC F      CUC L      AUC I      GUC V  | UUC F      CUC L      AUC I      GUC V  | ||
| 87. rida: | 89. rida: | ||
UGA Stop   CGA R      AGA R      GGA G  | UGA Stop   CGA R      AGA R      GGA G  | ||
UGG W      CGG R      AGG R      GGG G  | UGG W      CGG R      AGG R      GGG G  | ||
| + | </pre>  | ||
| − | Если строка не является   | + | Если строка не является ДНК, то функция должна вернуть null (для проверки используйте уже написанную ''isValidDnaSequence(String sequence) )''  | 
| − | |||
<source lang="java">  | <source lang="java">  | ||
| 97. rida: | 99. rida: | ||
Например:  | Например:  | ||
| − | <source lang="java">translateProtein(  | + | <source lang="java">translateProtein("TTTAAAGGGCCC") → KFPG</source>  | 
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | В этом примере ДНК строка TTTAAAGGGCCC преобразуется в РНК AAAUUUCCCGGG, которая в свою очередь разбирается на тройки символов и согласно таблице преобразования преобразуется в протеин:  | |
| + | AAA → K, UUU → F, CCC → P, GGG → G.  | ||
| + | Если в ходе преобразования встретился стоп-кодон, обозначенный в таблице словом Stop, то преобразование следует прекратить и вернуть преобразованную строку.  | ||
| + | Например:  | ||
| + | |||
| + | <source lang="java">translateProtein("TTTAAAGGGATTCCC") → KFP</source>  | ||
| + | |||
| + | |||
| + | В этом примере ДНК строка TTTAAAGGGATTCCC преобразуется в РНК AAAUUUCCCUAAGGG, которая в свою очередь разбирается на тройки символов и согласно таблице преобразования преобразуется в протеин:  | ||
| + | AAA → K, UUU → F, CCC → P, UAA → Stop, GGG → G.  | ||
| + | |||
| + | В случае, если функции передали строку, которая не является корректной ДНК, она должна вернуть значение null.  | ||
| + | <source lang="java">translateProtein("AKLFAAAcr") → null</source>  | ||
=== Шаблон ===  | === Шаблон ===  | ||
| + | |||
| + | <source lang="java">  | ||
| + | /**  | ||
| + |  * Home assignment 03.  | ||
| + |  *   | ||
| + |  */  | ||
| + | public class Task03 {  | ||
| + | |||
| + | 	/**  | ||
| + | 	 * Given a string, check whether it represents a valid  | ||
| + | 	 * DNA sequence, e.g. it contains only A, C, G, T characters.  | ||
| + | 	 * @param sequence Possible DNA sequence.  | ||
| + | 	 * @return Whether the given sequence is a valid DNA sequence.  | ||
| + | 	 */  | ||
| + | 	public static boolean isValidDnaSequence(String sequence) {  | ||
| + | 		return true;  | ||
| + | 	}  | ||
| + | |||
| + | 	/**  | ||
| + | 	 * Given a string, find what is the highest  | ||
| + | 	 * occurrence of one nucleotide base (A, C, G, or T).  | ||
| + | 	 * @param dnaSequence Possible DNA sequence.  | ||
| + | 	 * @return The number representing how many times the most  | ||
| + | 	 * frequent nucleotide base occurs in the string. In case  | ||
| + | 	 * the input sequence is not a valid DNA sequence, returns -1.  | ||
| + | 	 */  | ||
| + | 	public static int highestOccurrence(String dnaSequence) {  | ||
| + | 		return 0;  | ||
| + | 	}  | ||
| + | |||
| + | 	/**  | ||
| + | 	 * Given a possible DNA string, transcribe it to RNA.  | ||
| + | 	 * In the transcription process, you have to do the   | ||
| + | 	 * following substitutions:  | ||
| + | 	 * A -> U, G -> C, C -> G, T -> A   | ||
| + | 	 * @param dnaSequence Possible DNA sequence.  | ||
| + | 	 * @return Transcribed RNA. In case the input sequence  | ||
| + | 	 * is not a valid DNA sequence, returns null.  | ||
| + | 	 */  | ||
| + | 	public static String transcribe(String dnaSequence) {  | ||
| + | 		return "";  | ||
| + | 	}  | ||
| + | |||
| + | 	/**  | ||
| + | 	 * Given a possible DNA string, transcribe it to RNA  | ||
| + | 	 * and then translate RNA to protein sequence.  | ||
| + | 	 * See http://rosalind.info/glossary/rna-codon-table/  | ||
| + | 	 * @param dnaSequence Possible DNA sequence.  | ||
| + | 	 * @return Translated protein sequence. In case the input  | ||
| + | 	 * sequence is not a valid DNA sequence, returns null.  | ||
| + | 	 */  | ||
| + | 	public static String translateProtein(String dnaSequence) {  | ||
| + | 		return "";  | ||
| + | 	}  | ||
| + | |||
| + | 	/**  | ||
| + | 	 * The main method, which is the entry point of the program.  | ||
| + | 	 * !!IMPORTANT!! You have to keep the main method in order  | ||
| + | 	 * to get your solution tested.  | ||
| + | 	 * @param args Arguments from the command line  | ||
| + | 	 */  | ||
| + | 	public static void main(String[] args) {  | ||
| + | 		System.out.println(isValidDnaSequence("AAAACCGTACCC")); // => true  | ||
| + | 		System.out.println(highestOccurrence("ACAACCGTGCGC")); // => 2  | ||
| + | 		System.out.println(transcribe("AAGGCCTTG")); // => UUCCGGAAC   | ||
| + | 		System.out.println(translateProtein("ACAGCT")); // => CR  | ||
| + | |||
| + | 	}  | ||
| + | |||
| + | }  | ||
| + | |||
| + | </source>  | ||
Viimane redaktsioon: 14. veebruar 2015, kell 18:20
Срок сдачи упражнения 5-е занятие (18-е февраля).
Общая информация об упражнениях: ITI0011RUS_Practice.
Обратно на страницу предмета.
Описание
ДНК представляет собой последовательность аминокислот, которые обозначают символами A, C, G, T.
Например, "AACCGTAGC" в то же время строки "acgt", "AJ2IKK", "AcGTLKO" не являются ДНК, так как содержат посторонние символы.
Задание 1
Проверить, является ли строка последовательностью ДНК. Если строка содержит посторонние символы, представляет собой null-объект, либо количество символов в строке не кратно трем - функция должна вернуть False, иначе True. Имейте в виду, что если передается пустая строка, то функция должна вернуть True
<source lang="java"> public static boolean isValidDnaSequence(String sequence) </source>
Например: <source lang="java"> isValidDnaSequence(null) → false isValidDnaSequence("AAAACCGTACCC") → true isValidDnaSequence("") → true isValidDnaSequence("GKS") → false isValidDnaSequence("a") → false </source>
Задание 2
Посчитать сколько раз встречается каждый из символов и вернуть наибольшее значение. Если строка не является ДНК, то функция должна вернуть -1 (для проверки используйте уже написанную isValidDnaSequence(String sequence) )
<source lang="java">
public static int highestOccurrence(String dnaSequence)
</source>
Например: <source lang="java"> highestOccurrence(null) → -1 highestOccurrence("ACAACCGTGCGC") → 5 </source> A: 3 раза, C: 5 раз, G: 3 раза, T: 1 раз
Задание 3
Преобразовать ДНК в РНК. Это происходит путем замены символов: A -> U, G -> C, C -> G, T -> A. Если строка не является ДНК, то функция должна вернуть null (для проверки используйте уже написанную isValidDnaSequence(String sequence) )
<source lang="java">
public static String transcribe(String dnaSequence)
</source>
Например: <source lang="java"> transcribe("AAGGCCTTG") → UUCCGGAAC transcribe("TATATA") → AUAUAU transcribe("klj") → null transcribe("TATA") → null </source>
Задание 4
Преобразовать ДНК в белок. Преобразование происходит в 2 этапа: 1. Преобразование ДНК в РНК (используйте transcribe(String dnaSequence) ) 2. Полученная строка разбивается на тройки символов и составляется белок в соответствии с таблицей преобразования
UUU F CUU L AUU I GUU V UUC F CUC L AUC I GUC V UUA L CUA L AUA I GUA V UUG L CUG L AUG M GUG V UCU S CCU P ACU T GCU A UCC S CCC P ACC T GCC A UCA S CCA P ACA T GCA A UCG S CCG P ACG T GCG A UAU Y CAU H AAU N GAU D UAC Y CAC H AAC N GAC D UAA Stop CAA Q AAA K GAA E UAG Stop CAG Q AAG K GAG E UGU C CGU R AGU S GGU G UGC C CGC R AGC S GGC G UGA Stop CGA R AGA R GGA G UGG W CGG R AGG R GGG G
Если строка не является ДНК, то функция должна вернуть null (для проверки используйте уже написанную isValidDnaSequence(String sequence) )
<source lang="java">
public static String translateProtein(String dnaSequence)
</source>
Например:
<source lang="java">translateProtein("TTTAAAGGGCCC") → KFPG</source>
В этом примере ДНК строка TTTAAAGGGCCC преобразуется в РНК AAAUUUCCCGGG, которая в свою очередь разбирается на тройки символов и согласно таблице преобразования преобразуется в протеин: AAA → K, UUU → F, CCC → P, GGG → G.
Если в ходе преобразования встретился стоп-кодон, обозначенный в таблице словом Stop, то преобразование следует прекратить и вернуть преобразованную строку.
Например:
<source lang="java">translateProtein("TTTAAAGGGATTCCC") → KFP</source>
В этом примере ДНК строка TTTAAAGGGATTCCC преобразуется в РНК AAAUUUCCCUAAGGG, которая в свою очередь разбирается на тройки символов и согласно таблице преобразования преобразуется в протеин:
AAA → K, UUU → F, CCC → P, UAA → Stop, GGG → G.
В случае, если функции передали строку, которая не является корректной ДНК, она должна вернуть значение null. <source lang="java">translateProtein("AKLFAAAcr") → null</source>
Шаблон
<source lang="java"> /**
* Home assignment 03. * */
public class Task03 {
/** * Given a string, check whether it represents a valid * DNA sequence, e.g. it contains only A, C, G, T characters. * @param sequence Possible DNA sequence. * @return Whether the given sequence is a valid DNA sequence. */ public static boolean isValidDnaSequence(String sequence) { return true; }
/** * Given a string, find what is the highest * occurrence of one nucleotide base (A, C, G, or T). * @param dnaSequence Possible DNA sequence. * @return The number representing how many times the most * frequent nucleotide base occurs in the string. In case * the input sequence is not a valid DNA sequence, returns -1. */ public static int highestOccurrence(String dnaSequence) { return 0; }
/** * Given a possible DNA string, transcribe it to RNA. * In the transcription process, you have to do the * following substitutions: * A -> U, G -> C, C -> G, T -> A * @param dnaSequence Possible DNA sequence. * @return Transcribed RNA. In case the input sequence * is not a valid DNA sequence, returns null. */ public static String transcribe(String dnaSequence) { return ""; }
/** * Given a possible DNA string, transcribe it to RNA * and then translate RNA to protein sequence. * See http://rosalind.info/glossary/rna-codon-table/ * @param dnaSequence Possible DNA sequence. * @return Translated protein sequence. In case the input * sequence is not a valid DNA sequence, returns null. */ public static String translateProtein(String dnaSequence) { return ""; }
/** * The main method, which is the entry point of the program. * !!IMPORTANT!! You have to keep the main method in order * to get your solution tested. * @param args Arguments from the command line */ public static void main(String[] args) { System.out.println(isValidDnaSequence("AAAACCGTACCC")); // => true System.out.println(highestOccurrence("ACAACCGTGCGC")); // => 2 System.out.println(transcribe("AAGGCCTTG")); // => UUCCGGAAC System.out.println(translateProtein("ACAGCT")); // => CR
}
}
</source>