我正在制作list
的fasta
文件并从文件夹中读取它们。文件名应指定为list element
文件格式的.fa
名称。
我正在使用list.files
来评估目录"Folder"
中的文件
filenames <- list.files("Folder",pattern = ".fa",full.names = T)
而不是读取中的fasta文件。
list <- lapply(filenames, FUN=readDNAStringSet, use.names=T, format="fasta")
我发现这个代码使用setNames
来定义list
元素名称。
list<- setNames(list, substr(list.files("Folder", pattern=".fa"), 1,15 ))
但我的文件名有不同的长度(难以使用START停止(,1, 15
))和进一步处理我想摆脱.fa
文件看起来像:
Gene1.fa
Gene12.fa
Gene22a.fa
Gene123abc.fa
我正在使用DECIPHER
,但我想这是一个更基础的R问题?
为了在结尾处删除子字符串,我们也可以使用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)