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

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 13 vahepealset redaktsiooni)
8. rida: 8. rida:
 
ДНК представляет собой последовательность аминокислот, которые обозначают символами '''A''', '''C''', '''G''', '''T'''.
 
ДНК представляет собой последовательность аминокислот, которые обозначают символами '''A''', '''C''', '''G''', '''T'''.
  
Например, “AACCGTAGC” в то же время строки “acgt”, “AJ2IKK”, “AcGTLKO” не являются ДНК, так как содержат посторонние символы.
+
Например, "AACCGTAGC" в то же время строки "acgt", "AJ2IKK", "AcGTLKO" не являются ДНК, так как содержат посторонние символы.
  
  
14. rida: 14. rida:
 
'''Задание 1'''
 
'''Задание 1'''
  
Проверить, является ли строка sequence ДНК. Если строка содержит посторонние символы, представляет собой null-объект, функция должна вернуть False, иначе True. Имейте в виду, что если передается пустая строка, то функция должна вернуть True
+
Проверить, является ли строка последовательностью ДНК. Если строка содержит посторонние символы, представляет собой null-объект, либо количество символов в строке не кратно трем - функция должна вернуть False, иначе True. Имейте в виду, что если передается пустая строка, то функция должна вернуть True
  
 
<source lang="java">
 
<source lang="java">
22. rida: 22. 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>
  
40. rida: 40. 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) )''
Предполагается, что количество символов в строке кратно 3 (если строка является ДНК)
 
  
 
<source lang="java">
 
<source lang="java">
97. 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”
 
  
<source lang="java">translateProtein(“'''AKLFAAAcr'''”) null</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>