Я пытаюсь разбить строку нуклеотидов таким образом, чтобы я мог найти выброс в центре нуклеотидной последовательности и превратить его в триплет, добавив «n», чтобы заполнить пробелы.
Я попытался разделить по количеству символов, но проблема в том, что это происходит слева направо, и я пытался найти способ сделать это справа налево.Поэтому я нашел длину последовательности, которая в этом примере равна 52. Затем я беру это число длины и делю его на 3, чтобы найти количество возможных триплетов, которое будет.Затем я делю на 2, чтобы знать (очевидно, округляя), сколько групп из 3 будет примерно на каждой стороне выброса.В идеале я хочу еще одну тройку с левой стороны, чем с правой стороны.Выброс останется посередине (либо как один нуклеотид, либо как два).Например:
nucleobases <- 'TGTGCCAGCAGTTTAAGGTAGATAGCGGGATTCCTACAATGAGCAGTTCTTC'
nucleolength <- nchar("TGTGCCAGCAGTTTAAGGTAGATAGCGGGATTCCTACAATGAGCAGTTCTTC")
num1 <- round(nucleolength/6)*3
firstsplit <- gsub("(.{27})", "\\1 ", nucleobases) #This works for the first half
secondsplit <- gsub("(.{24})", "\\1 ", firstsplit, rev) #This works, but not in the ideal way that it is supposed to.
У меня нет проблем с переводом последовательностей в аминокислоты, что является моей конечной целью.То, что я хочу, это добавить «n» в местах, где он принадлежит в последовательности (на выбросы), чтобы концы последовательностей стали правильными аминокислотами.В конечном итоге это то, что я хотел бы:
#original sequence: TGTGCCAGCAGTTTAAGGTAGATAGCGGGATTCCTACAATGAGCAGTTCTTC
#split up in the correct places: TGTGCCAGCAGTTTAAGGTAGATAGCG G GATTCCTACAATGAGCAGTTCTTC
#"N" fills in the outlier: TGTGCCAGCAGTTTAAGGTAGATAGCG GNN GATTCCTACAATGAGCAGTTCTTC
#Gaps are then eliminated and sequence is translated: TGTGCCAGCAGTTTAAGGTAGATAGCGGNNGATTCCTACAATGAGCAGTTCTTC
#Translated sequence: CASSLR-IAXDSYNEQFF
Если у кого-то есть идеи, как сделать это эффективным способом, было бы здорово узнать!Кроме того, следует иметь в виду, что это не единственная последовательность.Существуют и другие последовательности различной длины (47, 46, 35 и т. Д.).Повторим, сгруппированная последовательность слева должна быть длиннее правой, с выбросом в середине.Пожалуйста, имейте в виду, что группы должны быть кратны 3 (так как они являются кодонами), все, кроме выброса.Спасибо !!