【问题标题】:Substitute headers of fasta file in R在R中替换fasta文件的标题
【发布时间】:2014-12-08 10:50:19
【问题描述】:

我有一个包含大约 900 个序列的 fasta 文件:

> fastafile<-read.fasta("example.fasta", seqtype="AA", as.string = TRUE, set.attributes = FALSE)
> head(fastafile)
$HHP62WH01AWFE1
[1] "TACGAGTATGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCGGCAATGGACGGAAGTCTGACCG"

$HHP62WH01A6F7R
[1] "TACTCTCGTGACTCCTACGGGAGGCAGCAGTTAGTGGCAGATCATTTGCCTACTTGCACGCTACC"

我想用包含示例信息和读取 ID 的标题列表(类型字符)替换文件的标题:

> head(sample)
[1] "sample1_HHP62WH01A0FTX" "sample2_HHP62WH01A1KAN"

所以sample 中的新标头与fastafile 中的序列顺序不同。但是,我想知道是否有一种方法可以将新标头与相应的 fasta 序列匹配,同时保持 fasta 格式。 我会感激每一个帮助。谢谢!

编辑:

> dput(head(fastafile))
structure(list(HHP62WH01AWFE1 = "TACGAGTATGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCGGCAATGGACGGAAGTCTGACCGAGCAACGCCGCGTGAGTGAAGAAG", 
    HHP62WH01A6F7R = "TACTCTCGTGACTCCTACGGGAGGCAGCAGTTAGTGGCAGATCATTTGCCTACTTGCACGCTACCCTTGGTGTGCTCCTTCCGAATACT"), .Names = c("HHP62WH01AWFE1", 
"HHP62WH01A6F7R"))

【问题讨论】:

    标签: r


    【解决方案1】:

    也许你可以试试match

    names(fastafile) <- sample[match(names(fastafile), sub('.*_', '', sample))]
    

    数据

    fastafile <- structure(list(sample1_HHP62WH01AWFE1 =
    "TACGAGTATGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCGGCAATGGACGGAAGTCTGACCG", 
     sample3_HHP62WH01A6F7R = 
    "TACTCTCGTGACTCCTACGGGAGGCAGCAGTTAGTGGCAGATCATTTGCCTACTTGCACGCTACC"), .Names =
    c("sample1_HHP62WH01AWFE1", "sample3_HHP62WH01A6F7R"))
    
    sample <- c( "sample1_HHP62WH01A0FTX", "sample1_HHP62WH01AWFE1", 
       "sample2_HHP62WH01A1KAN", "sample3_HHP62WH01A6F7R")
    

    【讨论】:

    • 感谢@akrun 的回答。
    • 但是,尝试这个我只得到 标题
    • @user3122796 我猜这是因为那些匹配的名称不在sample 向量中。在发布的解决方案中,我将示例中_ 之后的字符串与fastafile 的名称匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 2015-05-04
    相关资源
    最近更新 更多