将一个文件读入R中分子各向异性函数的矩阵或向量

将一个文件读入R中分子各向异性函数的矩阵或向量,r,sequence,bioinformatics,entropy,dna-sequence,R,Sequence,Bioinformatics,Entropy,Dna Sequence,我对R相当陌生,所以请原谅我的基本问题。 我想使用分子粘度函数: 我尝试从不同的包中使用不同的readfasta函数,比如ape或seqirn。但没有一个能与分子各向异性函数一起工作 下面是我的fasta文件的一个示例: >sequence_1 ACCTGC--A >sequence_2 ACC-GCTTA >sequence_3 ACCTGCTTG 我尝试过的fasta读取函数没有给出分子粘度函数的错误,只是给出了错误的结果 任何帮助都将不胜感激!!谢谢大家! biocon

我对R相当陌生,所以请原谅我的基本问题。 我想使用分子粘度函数:

我尝试从不同的包中使用不同的readfasta函数,比如ape或seqirn。但没有一个能与分子各向异性函数一起工作

下面是我的fasta文件的一个示例:

>sequence_1
ACCTGC--A
>sequence_2
ACC-GCTTA
>sequence_3
ACCTGCTTG
我尝试过的fasta读取函数没有给出分子粘度函数的错误,只是给出了错误的结果


任何帮助都将不胜感激!!谢谢大家!

bioconductor软件包Biostrings有一个功能,
readDNAStringSet
用于读取fasta文件

seqs <- Biostrings::readDNAStringSet("seqfile.fasta")

> seqs
DNAStringSet object of length 3:
    width seq                                               names               
[1]     9 ACCTGC--A                                         sequence_1
[2]     9 ACC-GCTTA                                         sequence_2
[3]     9 ACCTGCTTG                                         sequence_3
文档中没有明确说明函数对间隙的期望。 您可以使用stringr中的
str\u replace\u all
函数用所需的任何内容替换间隙。尽管此函数是矢量化的,但它会从矢量中删除序列的名称。您可以通过使用purrr中的
map\u chr
对向量进行迭代来绕过它

seqs <- purrr::map_chr(seqs, stringr::str_replace_all, "-", " ")

> seqs
 sequence_1  sequence_2  sequence_3 
"ACCTGC  A" "ACC GCTTA" "ACCTGCTTG" 
seqs
序列1序列2序列3
“ACCTGC A”“ACC GCTTA”“ACCTGCTTG”

如果这仍然会导致问题,请回复评论,我可以用可能的修复方法编辑帖子。

回答得不错。。OP显然需要它来实现MolecularEntropy()函数,所以我老实说,如果将上面的函数转换为矩阵,它就不起作用了,同样,stringr::str_replace_all或gsub()也可以在向量上起作用。您不需要回答中提到的purrr部分,但是stringr函数从命名向量中删除名称。由于性能可能不是一个问题,我通过使用map解决了这个问题,但我想您可以将名称保存到一个变量中,稍后再添加回来。我很好奇是否有人知道保存这些名字的更好方法。
seqs <- purrr::map_chr(seqs, stringr::str_replace_all, "-", " ")

> seqs
 sequence_1  sequence_2  sequence_3 
"ACCTGC  A" "ACC GCTTA" "ACCTGCTTG"