Получите все возможные перестановки последовательности ДНК с неоднозначным основанием R

Я просто читал эту статью , и она говорит:

Важно: порядок видеофайлов жизненно важен; В настоящее время у Chrome есть ошибка, при которой он не будет автоматически запускать видео в формате .webm, если оно приходит после чего-либо еще.

blockquote>

Так что, похоже, ваша проблема будет решена, если вы сначала поместите .webm в ваш список источников. Надеюсь, что это поможет.

2
задан colin 15 January 2019 в 18:32
поделиться

1 ответ

CJ из data.table может помочь вам здесь:

library(data.table)
dna.seq <- 'ATGCN'

# split into components
l = tstrsplit(dna.seq, '', fixed = TRUE)

# replace N with all possibilities
all_bases = c('A', 'T', 'C', 'G')
l = lapply(l, function(x) if (x == 'N') all_bases else x)

# use CJ and reduce to strings:
Reduce(paste0, do.call(CJ, l))
# [1] "ATGCA" "ATGCC" "ATGCG" "ATGCT"

Гибкость для обработки нескольких N:

dna.seq <- 'ATNCN'
Reduce(paste0, do.call(CJ, l))
#  [1] "ATACA" "ATACC" "ATACG" "ATACT" "ATCCA" "ATCCC" "ATCCG" "ATCCT"
#  [9] "ATGCA" "ATGCC" "ATGCG" "ATGCT" "ATTCA" "ATTCC" "ATTCG" "ATTCT"

Если вы хотите отбросить data.table зависимость вы можете заменить tstrsplit на t(strsplit()) и CJ на expand.grid; вы просто пожертвуете вычислительной скоростью.

0
ответ дан MichaelChirico 15 January 2019 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: