#r #genetics
Вопрос:
Я пытаюсь создать простой скрипт на языке R для имитации давления окружающей среды на гены, поэтому у меня есть следующий генератор случайных чисел ATCG:
list lt;- c("A","T","C","G") samp lt;- sample(list, 1000, replace = T) display lt;- function(a,b,c) { result lt;- sample(list, 1000, replace = T) return(result) } a lt;- display(a) b lt;- display(b) c lt;- display(c)
Код работает нормально, но концептуально неверен, потому что кодон должен быть объединен как группа символов, а не один. Поэтому мой вопрос в том, как соединить эти элементы (1:4,5:8,…107:110) ?
Я знаю, что в R есть много пакетов по генетике, но я стараюсь сделать их очень простыми, чтобы их можно было использовать в качестве упражнения в моей учебной группе по генетике.
Заранее спасибо!
Комментарии:
1. Привет, 1) зачем вы ставите функцию(a,b,c), если ваша функция не является функцией a, b или c, а только некоторой репликацией. Ваша функция-пример функции () (список, 1000, заменить = TRUE) 2) неясно, чего вы хотите. Вам нужен строковый вектор слов с 4 символами в каждом слове ?
2. 3) список-это не список, а строковый вектор
3. Привет, отвечаю 1) Я только что создал функцию, чтобы она могла запускать другой образец для каждого вектора 2) да, каждая строка с 4 символами из образца списка (ATCG). 3) извините за неправильное представление, но если это был вопрос, я не получил Спасибо!
Ответ №1:
Может быть, это то, что вы имели в виду:
dat lt;- setNames( data.frame( replicate(3, replicate( 1000, paste0(sample(c("A","C","T","G"),4, replace=T),collapse="") ) ) ), c("a","b","c") )
Результат
dat a b c 1 CATG CTAG CGAT 2 AGCT GACT TGAC 3 TCAG TAGC TCAG 4 CGAT GACT GTAC 5 TCGA TAGC CTGA ...etc
Вы должны уметь проводить сравнения с dat$a
, dat$b
и dat$c
Комментарии:
1. Извините, я не могу проголосовать за ваш ответ, но это почти все. Мне нужен такой вывод: gt;a = ([ATCG],[ATTA],[GGAT],…) gt;gt;b = ([TATA],[GTTA],[GGAT],…), чтобы я мог сравнить a ~ b
2. Внес некоторые правки. Это должно сработать сейчас.
3. о, парень, ты сделал это! большое спасибо!
4. но я просто отмечаю, что у каждого кодона есть ровно один элемент каждого (ATCG) в другом порядке, может быть какой-то аргумент, позволяющий повторить элемент в каждом элементе, например (AACG или CCTG) ?
5. Просто добавил его. Пробовать снова. Должно быть, он был удален раньше при вставке копии.