如何删除R中FASTA格式参数中的间隙或可用空格?

如何删除R中FASTA格式参数中的间隙或可用空格?,r,bioinformatics,fasta,dna-sequence,R,Bioinformatics,Fasta,Dna Sequence,我有一个DNA序列 x<-"CCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCACACACACA CATCCTAACACTACCCTAACACAGCCCTAATCTAACCCTGGCCAACCTGTCTCTCAACTT ACCCTCCATTACCCTGCCTCCACTCGTTACCCTGTCCCATTCAACCATACCACTCCGAAC CACCATCCATCCCTCTACTTACTACCACTCACCCACCGTTACCCTCCAAT

我有一个DNA序列

x<-"CCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCACACACACA
CATCCTAACACTACCCTAACACAGCCCTAATCTAACCCTGGCCAACCTGTCTCTCAACTT
ACCCTCCATTACCCTGCCTCCACTCGTTACCCTGTCCCATTCAACCATACCACTCCGAAC
CACCATCCATCCCTCTACTTACTACCACTCACCCACCGTTACCCTCCAATTACCCATATC
CAACCCACTGCCACTTACCCTACCATTACCCTACCATCCACCATGACCTACTCACCATAC
TGTTCTTCTACCCACCATATTGAAACGCTAACAAATGATCGTAAATAACACACACGTGCT
TACCCTACCACTTTATACCACCACCACATGCCATACTCACCCTCACTTGTATACTGATTT
TACGTACGCACACGGATGCTACAGTATATACCATCTCAAACTTACCCTACTCTCAGATTC
CACTTCACTCCATGGCCCATCTCTCACTGAATCAGTACCAAATGCACTCACATCATTATG
CACGGCACTTGCCTCAGCGGTCTATACCCTGTGCCATTTACCCATAACGCCCATCATTAT
CCACATTTTGATATCTATATCTCATTCGGCGGTCCCAAATATTGTATAACTGCCCTTAAT
ACATACGTTATACCACTTTTGCACCATATACTTACCACTCCATTTATATACACTTATGTC
AATATTACAGAAAAATCCCCACAAAAATCACCTAAACATAAAAATATTCTACTTTTCAAC
AATAATACATAAACATATTGGCTTGTGGTAGCAACACTATCATGGTATCACTAACGTAAA
AGTTCCTCAATATTGCAATTTGCTTGAACGGATGCTATTTCAGAATATTTCGTACTTACA
CAGGCCATACATTAGAATAATATGTCACATCACTGTCGTAACACTCTTTATTCACCGAGC
AATAATACGGTAGTGGCTCAAACTCATGCGGGTGCTATGATACAATTATATCTTATTTCC
ATTCCCATATGCTAACCGCAATATCCTAAAAGCATAACTGATGCATCTTTAATCTTGTAT
GTGACACTACTCATACGAAGGGACTATATCTAGTCAAGACGATACTGTGATAGGTACGTT
ATTTAATAGGATCTATAACGAAATGTCAAATAATTTTACGGTAATATAACTTATCAGCGG
CGTATACTAAAACGGACGTTACGATATTGTCTCACTTCATCTTACCACCCTCTATCTTAT
TGCTGATAGAACACTAACCCCTCAGCTTTATTTCTAGTTACAGTTACACAAAAAACTATG
CCAACCCAGAAATCTTGATATTTTACGTGTCAAAAAATGAGGGTCTCTAAATGAGAGTTT
GGTACCATGACTTGTAACTCGCACTGCCCTGATCTGCAATCTTGTTCTTAGAAGTGACGC
ATATTCTATACGGCCCGACGCGACGCGCCAAAAAATGAAAAACGAAGCAGCGACTCATTT
TTATTTAAGGACAAAGGTTGCGAAGCCGCACATTTCCAATTTCATTGTTGTTTATTGGAC"
预期输出应从ATG开始,但不是。请帮我解决这个问题。 此外,参数的长度可以是50k或更长。还有,有没有办法将这个fasta文件转换成字符串。请原谅我的语言,我是R的新手。

使用基本R

substr(x, 1, 3)
"CCA"

有关详细信息,请键入
?substr
。您可以查看如何将fasta格式导入R

我不确定您为什么同时加载
stringr
stringi
。无论如何,提取子字符串的问题是
x
中的换行符(
“\n”
)。您只需使用
gsub
将其删除即可

选项1使用
Biostrings
使用
Biostrings
库是这里的首选选项,特别是如果您需要进一步研究DNA序列
Biostrings
(以及其他Bioconductor库)的开发使得大多数涉及DNA/RNA序列数据的典型操作更加容易

library(Biostrings);
extractAt(BString(gsub("\n", "", x)), IRanges(335, 649));
#A BStringSet instance of length 1
#  width seq
#[1]   315 ATGATCGTAAATAACACACACGTGCTTACCCTAC...ATATCTCATTCGGCGGTCCCAAATATTGTATAA
旁注:如果您的序列数据实际上在FASTA文件中,您只需使用
readdnastingset
读取FASTA文件,它将自动处理换行。有关详细信息,请参阅
?readDNAStringSet

选项2使用
stringr::stru sub
选项3使用
stringi::stri_sub

如何删除R中DNAstringset、AAStringSet或RNastringSet中的间隙、空格或不明确字符

需要删除具有不明确字符X的AAstringset的示例

  • 在R中加载包

    库(deepredeff)
    将AAstringset转换为数据帧

    库(解密)
    #提供浏览均衡、对齐功能

    library(“Biostrings”)
    #提供AAStringSet、DNAStringSet

  • 将文件读入R


    seq可能您想使用Bioconductor处理fasta文件(通过
    readDNAStringSet()
    )?无法复制:
    x
    
    library(Biostrings);
    extractAt(BString(gsub("\n", "", x)), IRanges(335, 649));
    #A BStringSet instance of length 1
    #  width seq
    #[1]   315 ATGATCGTAAATAACACACACGTGCTTACCCTAC...ATATCTCATTCGGCGGTCCCAAATATTGTATAA
    
    stringr::str_sub(gsub("\n", "", x), start = 335, end = 649);
    #[1] "ATGATCGTAAATAACACACACGTGCTTACCCTACCACTTTATACCACCACCACATGCCATACTCACCCTCACTTGTATACTGATTTTACGTACGCACACGGATGCTACAGTATATACCATCTCAAACTTACCCTACTCTCAGATTCCACTTCACTCCATGGCCCATCTCTCACTGAATCAGTACCAAATGCACTCACATCATTATGCACGGCACTTGCCTCAGCGGTCTATACCCTGTGCCATTTACCCATAACGCCCATCATTATCCACATTTTGATATCTATATCTCATTCGGCGGTCCCAAATATTGTATAA"
    
    stringi::stri_sub(gsub("\n", "", x), from = 335, to = 649);
    #[1] "ATGATCGTAAATAACACACACGTGCTTACCCTACCACTTTATACCACCACCACATGCCATACTCACCCTCACTTGTATACTGATTTTACGTACGCACACGGATGCTACAGTATATACCATCTCAAACTTACCCTACTCTCAGATTCCACTTCACTCCATGGCCCATCTCTCACTGAATCAGTACCAAATGCACTCACATCATTATGCACGGCACTTGCCTCAGCGGTCTATACCCTGTGCCATTTACCCATAACGCCCATCATTATCCACATTTTGATATCTATATCTCATTCGGCGGTCCCAAATATTGTATAA"
    
    `BrowseSeqs(seq, highlight=0)`#browse
    
    seqAA <- AAStringSet (seq)
    
    names(seqAA) <- names
    
    BrowseSeqs(seqAA, highlight=0)