[Bioc-devel] deprecation of keepSeqlevels and renameSeqlevels
Hi,
On 05/20/2013 03:15 PM, Michael Lawrence wrote:
On Mon, May 20, 2013 at 3:11 PM, Martin Morgan <mtmorgan at fhcrc.org> wrote:
Hi Michael -- On 5/20/2013 5:56 AM, Michael Lawrence wrote:
While it's cool that seqlevels<- has become so flexible, I still claim that rename/keep/drop would be a lot easier to read, because they describe the high-level operation, and there's no reason to deprecate them. They're also easier to remember. For example, for dropping with seqlevels<-, the user needs to remember that "force" is necessary to drop. Much easier to just say "dropSeqlevels(), please". And reimplementing keepSeqlevels is still too complicated. Is it such a maintenance burden to have these simple wrappers sit on top of the low-level manipulators? Another suggestion: renameSeqlevels should not require a named vector (in cases where it is unnamed, require that it is parallel to the existing seqlevels, as with seqlevels<-).
I didn't really indicate what drove my desire to see keepSeqlevels
deprecated. keepSeqlevels, seqlevels<-, and isActiveSeq were developed more
or less independently, and have different contracts. The different
contracts are confusing to the user, as is creating a usable help system
when there are multiple end points for what is a common operation. The help
pages of each were inadequate in different ways. And because the code was
developed independently, support for different objects was inconsistent. So
actually, yes, the maintenance (and use) burden for the previous state of
affairs was substantial.
On the other hand, I agree that keepSeqlevels is convenient as a simple
wrapper around seqlevels<-, in the same way that setNames and names<- are
both useful.
So we could iterate to
keepSeqlevels <-
function(x, value, ...)
{
seqlevels(x, force=TRUE) <- value
x
}
but I'd be less enthusiastic about maintaining the original contract of
keepSeqlevels, where keepSeqlevels(gr1, gr2), would have worked for two
GRanges objects.
Why would this be called keepSeqlevels() if, depending on how it's used, it will either add, drop, rename, or permute the seqlevels? Couldn't this be called setSeqlevels? H.
Well, I wasn't even aware of that feature, so you've made your point about the documentation ;) Sounds like a good compromise to me. Thanks for understanding, Michael
Martin
Michael
On Sat, May 18, 2013 at 6:00 PM, Martin Morgan <mtmorgan at fhcrc.org
<mailto:mtmorgan at fhcrc.org>> wrote:
On 05/18/2013 05:42 PM, Martin Morgan wrote:
Some of the most common operations are straight-forward, e.g.,
> gr = GRanges(paste0("chr", c(1:22, "X", "Y")), IRanges(1,
100))
> seqlevels(gr) = sub("chr", "ch", seqlevels(gr))
To get a more comprehensive example I should have followed my own
advice and
grabbed from the help page!
## Rename:
seqlevels(txdb) <- sub("chr", "", seqlevels(txdb))
seqlevels(txdb)
seqlevels(txdb) <- paste0("CH", seqlevels(txdb))
seqlevels(txdb)
seqlevels(txdb)[seqlevels(__**txdb) == "CHM"] <- "M"
seqlevels(txdb)
--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M1 B861
Phone: (206) 667-2793 <tel:%28206%29%20667-2793>
-- Dr. Martin Morgan, PhD Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109
[[alternative HTML version deleted]]
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319