如何读取DNAstring的核苷酸序列

时间:2018-12-11 23:26:03

标签: r string

我是R的新手。 我有一个装配基因组,我读了弦集

x <- readDNAStringSet("GCA_000146045.2_R64_genomic.fna", format = "fasta")

然后我获得了

    A DNAStringSet instance of length 16
           width seq                                            enter code here   names               
    [1]  230218 CCACACCACACCCACACACCCAC...GGTGTGGGTGTGGTGTGTGTGGG BK006935.2 TPA_in...
    [2]  813184 AAATAGCCCTCATGTACGTCTCC...GTGGGTGTGGTGTGTGGGTGTGT BK006936.2 TPA_in...
    [3]  316620 CCCACACACCACACCCACACCAC...GTGTGGTGGGTGTGGTGTGTGTG BK006937.2 TPA_in...
    [4] 1531933 ACACCACACCCACACCACACCCA...TAAAGGTAGTAAGTAGCTTTTGG BK006938.2 TPA_in...
    [5]  576874 CGTCTCCTCCAAGCCCTGTTGTC...GTTTCATTTTCATTTTTTTTTTT BK006939.2
TPA_in...
...     ... ...
    [12] 1078177 CACACACACACACCACCCACACA...GGAGACGTACATGAGGGCTATTT BK006945.2 TPA_in...
    [13]  924431 CCACACACACACCACACCCACAC...GTGGGTGTGGTGTGTGTGTGGGG BK006946.2 TPA_in...
    [14]  784333 CCGGCTTTCTGACCGAAATTAAA...GTGTGTGTGGGTGTGGTGTGGGT BK006947.3
TPA_in...
     [15] 1091291 ACACCACACCCACACCACACCCA...GAGAGTGTGTGGGTGTGGTGTGT BK006948.2 TPA_in...
     [16]  948066 AAATAGCCCTCATGTACGTCTCC...TTTTTTTTAATTTCGGTCAGAAA BK006949.2 TPA_in...

下一个操作是宽度的排序

 width(x)
[1]  230218  813184  316620 1531933  576874  270161 1090940  562643  439888
[10]  745751  666816 1078177  924431  784333 1091291  948066



 sort(width(x))
[1]  230218  270161  316620  439888  562643  576874  666816  745751  784333
[10]  813184  924431  948066 1078177 1090940 1091291 1531933

现在如何读取字符串745751字母的字母序列中的核苷酸序列?假设我有一个更大的基因组,而且我只知道我感兴趣的一串字符串的长度,但是我不知道它到底在哪里进行排序,如何找到它?

1 个答案:

答案 0 :(得分:0)

你是这个意思吗?

提取DNAStringx为745751的所有width

x[width(x) == 745751]

要转换为character

as.character(x[width(x) == 745751])

这是一个基于最少样本数据的示例

x <- DNAStringSet(x = c("AGTCTATCTA", "ACTAA", "ATGAA"))

提取所有长度为5的序列:

x[width(x) == 5]
#A DNAStringSet instance of length 2
#    width seq
#[1]     5 ACTAA
#[2]     5 ATGAA

转换为character向量

as.character(x[width(x) == 5])
#[1] "ACTAA" "ATGAA"