Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 2
Регистрация: 09.04.2013
Сообщений: 23

Найти последовательность букв в строке

02.04.2016, 17:03. Показов 3279. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется строка: UAAUGCUAGACGUGUUCUAGGA
В этой строке хранится последовательность кодонов.
Кодо́н (кодирующий тринуклеотид) — единица генетического кода, тройка нуклеотидных остатков (триплет).
Проще говоря кодон это последовательность из трех букв.
Нужно найти позицию Старт-кодона (который триплет AUG) и стоп-кодона (который может быть UGA, UAG или UAA).

Позицию старт-кодона я нашел с помощью
Java
1
2
3
4
5
public int getStartingPosition(String rna){
 
        return rna.indexOf("AUG");
 
    }
Тут я попытался найти позицию стоп-кодона
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public int getStopPosition(String rna_, int startPos_){
        int stopPos = 0;
        int startPos = startPos_+3; //Сноска *
        CharSequence stopCodon1 = "UAG";
        CharSequence stopCodon2 = "UAA";
        CharSequence stopCodon3 = "UGA";
 
        for (int i = startPos; i < rna_.length() ; i+= 3) { //Сноска **
            if (rna_.contains(stopCodon1)) stopPos = rna_.indexOf(stopCodon1.toString());
            else if (rna_.contains(stopCodon2)) stopPos = rna_.indexOf(stopCodon2.toString());
            else if (rna_.contains(stopCodon3)) stopPos = rna_.indexOf(stopCodon3.toString());
            else stopPos = -1;
        }
        return stopPos; 
    }
* Стоп-кодон нужно найти в строке после старт-кодона иначе получится что последовательность имеет только конец а начала не имеет

** Ну тут конечно костыль, но никак не могу придумать как пройти строку проверяя именно триплеты



Метод выдает результат 6. Хотя должен был бы 17
UAAUGCUAGACGUGUUCUAGGA

Можно заметить что кодон UAG нарушает последовательность (буква С остается вне триплета).
Я хоть и понял что где ошибка, не знаю как ее исправить. Помогите. Спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2016, 17:03
Ответы с готовыми решениями:

Последовательность букв в каждой строке и количество строк
Помогите пожалуйста написать программу, которая считает последовательность букв в каждой строке и количество строк. Буду очень вам...

Найти слова в строке и проверить последовательность букв в словах
Привет, не могу понять как написать вот такую программу: есть не пустой текст длинной 255 символов. Для каждого слова, что состоит только...

В строке найти самую длинную последовательность подряд идущих букв а
Здравствуйте нужна помощь с задачей:Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а.

6
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
02.04.2016, 17:21
L1nuXXX01D, вопрос 1: Состоит ли задача в поиске тех кодонов, которые между старт и стоп? т.е. поиск позиции старта и стопа не основная задача.
вопрос 2: старт-кодон стоит где угодно или на позиции кратной 3?
0
0 / 0 / 2
Регистрация: 09.04.2013
Сообщений: 23
02.04.2016, 17:31  [ТС]
1. Да. кодоны которые между старт и стоп должны транслироваться в белки. но это после.
2. старт-кодон может быть на любой позиции. а стоп-кодон должен стоять на позиции кратной три, начиная отчет от старт-кодона.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
02.04.2016, 17:36
L1nuXXX01D, можно вот так, проверьте, должно работать.
Java
1
2
3
4
5
6
7
8
9
        String s = "UAAUGCUAGACGUGUUCUAGGA";
        Matcher m = Pattern.compile("(AUG)((...)+?)(UAG|UAA|UGA)").matcher(s);
        
        while (m.find())
        {
            System.out.println(m.start()); //позиция первого
            System.out.println(m.end()-3); //позиция последнего
            System.out.println(m.group(2)); //сами кодоны
        }
1
0 / 0 / 2
Регистрация: 09.04.2013
Сообщений: 23
02.04.2016, 18:10  [ТС]
Все прекрасно работает. просто я не изучал регулярные выражения по этому даже не пытался сделать это с их помощью.

я понял как найти позицию, но как определить какие именно кодоны находятся между старт и стоп
дело в том что каждому из
кодонов
UUU
UUC
UUA
UUG

UCU
UCC
UCA
UCG

UAU
UAC

UGU
UGA
UGG

CUU
CUC
CUA
CUG

AUU
AUC
AUA

GUU
GUC
GUA
GUG

CCU
CCC
CA
CCG

ACU
ACC
ACA
ACG

GCU
GCC
GCA
GCG

CAU
CAC
CAA
CAG

AAU
AAC
AAA
AAG

GAU
GAC
GAA
GAG

CGU
CGC
CGA
CGG

AGU
AGC
AGA
AGG

GGU
GGC
GGA
GGG
соответствует определенный белок и мне надо составить последовательность этих самых белков.
я так понимаю нужно изменить что-то в паттерне?
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
02.04.2016, 18:22
Лучший ответ Сообщение было отмечено L1nuXXX01D как решение

Решение

Цитата Сообщение от L1nuXXX01D Посмотреть сообщение
я так понимаю нужно изменить что-то в паттерне?
нет, просто разбиваете их на блоки по 3 и делаете что хотите
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        String s = "UAAUGCUAGACGUGUUCUAGGAAUGCUAGA4CUGUUCUAGGA";
        Matcher m = Pattern.compile("(AUG)((...)+?)(UAG|UAA|UGA)").matcher(s);
        String c = "";
        while (m.find())
        {
            //System.out.println(m.start()); //позиция первого
            //System.out.println(m.end()-3); //позиция последнего
            c = m.group(2); //сами кодоны
        }
        
        for (int i = 0; i<= c.length()-3; i+=3)
        {
            //вот они идут друг за другом
            System.out.println(c.substring(i, i+3));
        }
1
0 / 0 / 2
Регистрация: 09.04.2013
Сообщений: 23
02.04.2016, 18:32  [ТС]
все теперь разобрался. спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2016, 18:32
Помогаю со студенческими работами здесь

Найти в строке те слова, символы которых образуют симметричную последовательность букв (палиндром)
Дана строка. Словом текста считается любая последовательность букв; между соседними словами - не менее одного пробела, за последним...

Найти и сохранить в строке те слова, символы которых образуют симметричную последовательность букв
Console.WriteLine(&quot;Введите строку:&quot;); string stroka = Console.ReadLine(); string Words = stroka.Split(' '); //...

Найти самую длинную последовательность букв "а" в строке
Здравствуйте, Подскажите как реализовать на языке C# данное задание: Дана рандомная строка, Найти самую длинную...

Найти в заданной строке самую длинную последовательность подряд идущих букв "а"
Добрый день помогите с программкой не могу ввести текст в TextBox1 выдает ошибку string buf = textBox1.Text; ...

Подсчитать в строке самую длинную последовательность подряд идущих букв А
Здравствуйте помогите пожалуйста! В основной программе должен быть оператор выбора задач, оформленных в виде подпрограмм.. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru