2015-08-10 3 views
0

В настоящее время я изучаю многомерные массивы и им была поручена анализировать последовательности последовательностей РНК (данные из TXT-файла). Вот пример цепи:Использование многомерных массивов для анализа последовательностей РНК

AUGCUUAUUAACUGAAAACAUAUGGGUAGUCGAUGA

Учитывая эту строку, я должен выяснить, что белок эта цепь РНК будет создавать. Для этого я должен разбить каждую нить на кодоны (группы из 3). Итак, для этого примера мне нужно посмотреть AUG CUU AUU AAC UGA и т. Д. Каждый из этих кодонов представляет собой аминокислоту. Таким образом, AUG представляет собой метионин (представленный «M»), CUU представляет собой лейцин (представленный «L») и т. Д. И т. Д. Поэтому мой вывод должен быть новой цепочкой аминокислот (M-L-I ...)

Какой был бы лучший способ подойти к этой проблеме? Из моего понимания, я создать массив 3-D, скажем

int aminoAcid[4][4][4] 

Поскольку существует 4 возможный выбор для каждой базы (A, U, G, C). Я не совсем уверен, куда идти отсюда, так как некоторые комбинации будут давать одну и ту же аминокислоту.

EDIT: Я иду в правильном направлении, если a должен был сначала преобразовать строку в числовые представления (A = 0, U = 1, G = 2, C = 3). Оттуда я могу лучше работать с 3D-массивом?

+0

Какова ваша цель при анализе? Вы только начинаете с самого начала и разбиваете их на 3, или на контрольные точки что-то нужно исследовать с помощью ваших вычислений? Что такое точка вашего 3D-массива? Что вы планируете с этим делать? – sunny

+0

@sunny извините за неясность. В конце концов, мне нужно зачитать всю прядь и иметь возможность распечатывать новую цепочку аминокислот, которые представляет последовательность. Есть нюансы к нему, так как есть вещи, называемые стоп-кодонами, в которых вы печатаете следующие кодоны, пока не встретите стартовый кодон. – trungnt

+0

Я не вижу, где в эту проблему попадет трехмерный массив, наверняка у вас будет только таблица поиска –

ответ

1

Вы можете использовать 3d-массив для подключения аминокислот к различным последовательностям. Вы должны узнать о enum и выяснить, как вы можете использовать enum с индексами массива, так что вы можете сделать что-то вроде

aminoAcid['A']['U']['G'] = 24 

где 24 соответствует также метионин, то есть вы можете использовать другой enum там. Используйте enums всякий раз, когда у вас есть ограниченная известная группа предметов, которые вы хотите представить цифрами.

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

+0

Спасибо за помощь и ввод. Я не знаком с перечислением, но это будет так же, как сначала изменить мою первоначальную последовательность РНК в строку чисел? Вместо того, чтобы аминоацид ['A'] ['U'] ['G'] = 24, могу ли я сделать что-то вроде aminoAcid ['0'] ['1'] ['2'] = 'M', где A = 0, U = 1 и G = 2? – trungnt

+0

Это идея. Прочитайте их и вернитесь ко мне, если у вас все еще есть вопросы. – sunny