根据GRanges对象的名称对其排序

根据GRanges对象的名称对其排序,r,R,我正在尝试根据Granges对象的名称对其进行排序 我有一个GRanges对象,genome.ref,它的间隔是随机的 seqnames(genome.ref) factor-Rle of length 3141 with 5 runs Lengths: 724 844 86 722 765 Values : CHR02 CHR04 CHR01 CHR03 CHR05 Levels(5): CHR02 CHR04 CHR01 CHR03 CHR05 如果我使用sort,R

我正在尝试根据Granges对象的名称对其进行排序

我有一个GRanges对象,genome.ref,它的间隔是随机的

seqnames(genome.ref)
factor-Rle of length 3141 with 5 runs
Lengths:   724   844    86   722   765
Values : CHR02 CHR04 CHR01 CHR03 CHR05
Levels(5): CHR02 CHR04 CHR01 CHR03 CHR05
如果我使用sort,R将根据值进行排序,但不是按字母数字顺序:

sort(genome.ref)
生成的Granges对象将首先有所有CHR02间隔,然后是CHR04,然后是CHR01等,而不是随机分组,但顺序不会是基于seqlevels的字母数字顺序(即CHR01间隔不会排在第一位)


如何使用sort命令将顺序指定为字母数字?

在创建
genome.ref
时,在genomeranges包中使用
sortSeqlevels
函数可能是最简单的。这巧妙地去除了任何“chr”前缀,还处理了罗马数字和X/Y染色体


否则,您最好使用
seqinfo(genome.ref,new2old=mapping)创建一个新的注释。您应该发布
dput(genome.ref)
的输出以及预期处理该类对象的包的库调用。谢谢,我已经按照您的建议完成了。在我的特殊情况下,在seqinfo中指定正确的顺序更容易。SortSeqLevel是在调用Granges()时指定的选项还是单独的函数?