#design-patterns #filter #sequence #extract #fasta
Вопрос:
У меня есть вопрос, и я надеюсь, что смогу сформулировать его понятным образом. Я работаю с R и пытаюсь написать сценарий, в котором я могу фильтровать и извлекать определенные имена вместе с их последовательностями из набора данных ДНК на основе первых 4 символов или их конкретного имени и сохранять его как новый файл fasta..
Набор данных, с которым я работаю, содержит 7754 obs с 2 переменными (имя и раздел).
Для лучшего понимания вот созданный набор данных меньшего размера, в котором я могу объяснить каждый шаг, который я делаю сейчас
name <- c("B*07:02:01:01","B*07:02:01:02", "B*07:02:01:03","B*07:98", "B*07:99","B*08:01:01:01","B*08:01:01:02","B*08:01:01:03","B*15:27:01",
"B*15:27:02","B*15:27:03")
seq <- c("AAAA","TTTT","GGGG","ATCG","AATG","ATTC","GTCT","TCTT","TAGTC","CATG","TGCA")
df3 <- data.frame(name,seq)
df4 <- separate(data = df3,col = name,into = c("name","protein","mutation_coding","mutation_noncoding"),sep = ":")
common_identifier = unique(str_sub(df4$name,0,4))
out = list()
for(element in common_identifier) {
out[[element]] = df4 %>%
filter(grepl(element, name)) %>%
mutate(name=element) %>%
select(name,protein,mutation_coding,mutation_noncoding, seq) %>%
write.csv(paste0("../saving path",gsub("\*","",element),"_list.csv"), row.names = FALSE)
}
Прежде всего, я сохраняю как csv.файл, что раздражает, потому что тогда мне приходится вручную преобразовывать созданные файлы в файл fasta.
Вы знаете способ сохранить его непосредственно как файл fasta.file?
Во-вторых, в этом сценарии я в основном разбиваю имя на части, чтобы найти определенный шаблон (первые четыре символа), а затем я снова соединяю имя, чтобы вернуть настоящее имя. Знаете ли вы более простой способ сделать это? Или есть более элегантный способ поиска шаблона «B 07″,»B 08″и «B*15» без разделения имени первым?
Заранее спасибо, я надеюсь, что это был ясный вопрос 🙂
Ваше здоровье…