根据GRanges对象的名称对其排序
我正在尝试根据Granges对象的名称对其进行排序 我有一个GRanges对象,genome.ref,它的间隔是随机的根据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
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()时指定的选项还是单独的函数?