Erinevus lehekülje "ITI0011RUS:упражнение 03" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 5 vahepealset redaktsiooni)
8. rida: 8. rida:
 
ДНК представляет собой последовательность аминокислот, которые обозначают символами '''A''', '''C''', '''G''', '''T'''.
 
ДНК представляет собой последовательность аминокислот, которые обозначают символами '''A''', '''C''', '''G''', '''T'''.
  
Например, “AACCGTAGC” в то же время строки “acgt”, “AJ2IKK”, “AcGTLKO” не являются ДНК, так как содержат посторонние символы.
+
Например, "AACCGTAGC" в то же время строки "acgt", "AJ2IKK", "AcGTLKO" не являются ДНК, так как содержат посторонние символы.
  
  
23. rida: 23. rida:
 
<source lang="java">
 
<source lang="java">
 
isValidDnaSequence(null) → false
 
isValidDnaSequence(null) → false
isValidDnaSequence(“AAAACCGTAC”) → true
+
isValidDnaSequence("AAAACCGTACCC") → true
isValidDnaSequence(“”) →  true
+
isValidDnaSequence("") →  true
isValidDnaSequence(“GKS”) → false
+
isValidDnaSequence("GKS") → false
isValidDnaSequence(“a”) → false
+
isValidDnaSequence("a") → false
 
</source>
 
</source>
  
41. rida: 41. rida:
 
<source lang="java">
 
<source lang="java">
 
highestOccurrence(null) → -1
 
highestOccurrence(null) → -1
highestOccurrence(“ACAACCGTGCGC”) → 5
+
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. Если строка не является ДКН, то функция должна вернуть null (для проверки используйте уже написанную ''isValidDnaSequence(String sequence) )''
+
Преобразовать ДНК в РНК. Это происходит путем замены символов: 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(“'''AAGGCCTT'''”) → “UUCCGGAA”
+
transcribe("AAGGCCTTG") → UUCCGGAAC
transcribe(“'''TATA'''”) → “AUAU”
+
transcribe("TATATA") → AUAUAU
transcribe(“'''klj'''”) → null
+
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) )''
 
Если строка не является ДНК, то функция должна вернуть null (для проверки используйте уже написанную ''isValidDnaSequence(String sequence) )''
96. rida: 99. rida:
 
Например:
 
Например:
  
<source lang="java">translateProtein(“'''TTTAAAGGGCCC'''”) → “KFPG”</source>
+
<source lang="java">translateProtein("TTTAAAGGGCCC") → KFPG</source>
 +
 
 +
В этом примере ДНК строка TTTAAAGGGCCC преобразуется в РНК AAAUUUCCCGGG, которая в свою очередь разбирается на тройки символов и согласно таблице преобразования преобразуется в протеин:
 +
AAA → K, UUU → F, CCC → P, GGG → G.
  
 
Если в ходе преобразования встретился стоп-кодон, обозначенный в таблице словом Stop, то преобразование следует прекратить и вернуть преобразованную строку.
 
Если в ходе преобразования встретился стоп-кодон, обозначенный в таблице словом Stop, то преобразование следует прекратить и вернуть преобразованную строку.
102. rida: 108. rida:
 
Например:
 
Например:
  
<source lang="java">translateProtein(“'''TTTAAAGGGUAACCC'''”) → “KFP”</source>
+
<source lang="java">translateProtein("TTTAAAGGGATTCCC") → KFP</source>
 +
 
  
ДНК РНК  
+
В этом примере ДНК строка TTTAAAGGGATTCCC преобразуется в РНК AAAUUUCCCUAAGGG, которая в свою очередь разбирается на тройки символов и согласно таблице преобразования преобразуется в протеин:
“'''TTTAAAGGGCCC'''” → “AAAUUUCCCGGG”
+
AAA → K, UUU → F, CCC → P, UAA → Stop, GGG → G.
разбиение на тройки и преобразование
 
“'''AAA'''” “K”, “'''UUU'''” “F”, “'''CCC'''” “P”, “'''GGG'''” “G”
 
  
<source lang="java">translateProtein(“'''AKLFAAAcr'''”) → null</source>
+
В случае, если функции передали строку, которая не является корректной ДНК, она должна вернуть значение null.
 +
<source lang="java">translateProtein("AKLFAAAcr") → null</source>
  
 
=== Шаблон ===
 
=== Шаблон ===
174. rida: 180. rida:
 
*/
 
*/
 
public static void main(String[] args) {
 
public static void main(String[] args) {
System.out.println(isValidDnaSequence("ACTGT")); // => true
+
System.out.println(isValidDnaSequence("AAAACCGTACCC")); // => true
System.out.println(highestOccurrence("AACT")); // => 2
+
System.out.println(highestOccurrence("ACAACCGTGCGC")); // => 2
System.out.println(transcribe("ACAGCT")); // => UGUCGA
+
System.out.println(transcribe("AAGGCCTTG")); // => UUCCGGAAC
 
System.out.println(translateProtein("ACAGCT")); // => CR
 
System.out.println(translateProtein("ACAGCT")); // => CR
  

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>