В R считайте файлы из папки в списке и назначьте имена элементов списка по именам файлов без формата файла (.fa) - PullRequest
1 голос
/ 15 апреля 2019

Я делаю list из fasta файлов и читаю их из папки. Имя файла должно быть присвоено как list element имя без формата файла .fa.

Я использую list.files для оценки файлов в каталоге "Folder"

filenames <- list.files("Folder",pattern = ".fa",full.names = T)

и чем читать фаста файлы в.

list <- lapply(filenames, FUN=readDNAStringSet, use.names=T, format="fasta")

Я нашел этот код, используя setNames для определения имени элемента list.

list<- setNames(list, substr(list.files("Folder", pattern=".fa"), 1,15 ))

Но мои имена файлов имеют разную длину (затрудняет использование START to STOP (,1, 15)), и для дальнейшей обработки я хотел бы избавиться от .fa

Файлы будут выглядеть так:

Gene1.fa
Gene12.fa
Gene22a.fa
Gene123abc.fa

Я использую DECIPHER, но я думаю, что это более базовый вопрос R?

1 Ответ

1 голос
/ 15 апреля 2019

Для удаления подстроки в конце, мы могли бы также использовать substr, но обязательно индексировать первый / последний из конца, а не с начала, так как он меняется

v1 <- list.files("Folder", pattern=".fa")
substring(v1, first  = 1, last = nchar(v1) -3)
#[1] "Gene1"      "Gene12"     "Gene22a"    "Gene123abc"

Или другой вариант - sub для сопоставления с точкой (. - метасимвол, соответствующий любому символу, поэтому экранируйте (\\) его, чтобы получить буквальное значение), после которого следует «fa» в конце ($) строки и замените ее пробелом ("")

sub("\\.fa$", "", v1)
...