Thanks Kevin!

That would have been my proposed option 3 if I had realised it would be
that simple.

This will make my (and several other analysts I know's) lives a lot easier!

Cheers,
Kieran




On 10 April 2014 16:11, Kevin Ushey <kevinus...@gmail.com> wrote:

> Hi Kieran,
>
> I've kickstarted the process by sending a pull request here:
> https://github.com/RGLab/flowCore/pull/21
>
> Thanks,
> Kevin
>
>
> On Thu, Apr 10, 2014 at 3:48 PM, Kasper Daniel Hansen <
> kasperdanielhan...@gmail.com> wrote:
>
>> My 2ct is that it is worthwhile to have a lean core package.  It sounds
>> like it would be trivial to separate gating into a new package, and -
>> provided functions are not renamed - would be trivial for downstream
>> packages to adapt to.
>>
>> Especially in situations where competing groups work on the same analysis
>> domain, it is great if they can agree on basic data representation, and
>> that chance is increased (IMO) if the core package does not include too
>> much analysis tools.
>>
>> Best,
>> Kasper
>>
>>
>> On Thu, Apr 10, 2014 at 6:35 PM, Kevin Ushey <kevinus...@gmail.com>wrote:
>>
>>> Hi Kieran, Dan,
>>>
>>> I would suggest that you open an issue at
>>> https://github.com/RGLab/flowCore/issues/new.
>>>
>>> Perhaps the easiest solution is to copy featureSignif from feature into
>>> flowCore (giving adequate citation and such, respecting licenses...). It
>>> looks like the function doesn't depend too much on other functionality in
>>> the feature package, so this shouldn't be too much of a problem.
>>>
>>> Thanks,
>>> Kevin
>>>
>>>
>>> On Thu, Apr 10, 2014 at 3:15 PM, Kieran O'Neill <kone...@bccrc.ca>
>>> wrote:
>>>
>>> > On 10 April 2014 14:26, Dan Tenenbaum <dtene...@fhcrc.org> wrote:
>>> >
>>> > > Hi Kieran,
>>> > >
>>> > >
>>> > > ----- Original Message -----
>>> > > > From: "Kieran O'Neill" <kone...@bccrc.ca>
>>> > > > To: bioc-devel@r-project.org
>>> > > > Sent: Thursday, April 10, 2014 2:03:41 PM
>>> > > > Subject: [Bioc-devel] Dependency on windowing systems in the
>>> flowCore
>>> > > package
>>> > > >
>>> > > > In Bioconductor, the core infrastructure for loading and
>>> representing
>>> > > > flow cytometry data is the flowCore package. It contains some very
>>> > > > useful structures, most notably the flowFrame and flowSet classes,
>>> as
>>> > > > well as read.FCS, which loads the (somewhat complicated, binary)
>>> FCS
>>> > > > file format.
>>> > > >
>>> > > > However, at some stage flowCore gained functionality for performing
>>> > > > automated gating, and a dependency on the feature package from
>>> CRAN.
>>> > > > Feature depends on the tcltk C++ libraries, which in turn depend on
>>> > > > C++ libraries for a windowing system (X11 on *nix). This can make
>>> > > > compiling flowCore a massive pain on a headless server or compute
>>> > > > cluster. It can also be somewhat painful to more naive users on,
>>> say,
>>> > > > Ubuntu, who would have to install a number of development header
>>> > > > packages. I believe this would also be a problem on OSX.
>>> > > >
>>> > >
>>> > > There is a binary of flowCore for OS X.
>>> > >
>>> > > > I wrote about this issue on the list about a year ago, mostly as an
>>> > > > aside. But I am now in the position of reviewing a new flow
>>> cytometry
>>> > > > package, where the author does not want to use flowCore to
>>> represent
>>> > > > flow cytometry data. Their reasoning is that their package is very
>>> > > > basic, and they don't want to create complicated dependencies and
>>> > > > installation issues for their end users. I'm at least halfway
>>> > > > inclined
>>> > > > to agree, but the guidelines do state that packages should "re-use
>>> > > > existing S4 classes and generics where possible".
>>> > > >
>>> > > > And so I have a dilemma, which has two likely solutions:
>>> > > >
>>> > > > 1. The maintainers of flowCore change the package so it no longer
>>> has
>>> > > > Byzantine dependencies that include a windowing system.
>>> > > >
>>> > > I believe the flowCore maintainers are on this list and will
>>> respond, but
>>> > > they are the ones you really want to
>>> > > address this question to. Next time you can CC them to make sure they
>>> > > receive the message.
>>> > >
>>> > >
>>> > Yes, I forwarded the email to Mike as well in case he didn't see it on
>>> the
>>> > list. I wanted it to be a more open discussion, though, since it
>>> > potentially affects quite a lot of packages, and it does open up a few
>>> > broader issues.
>>> >
>>> >
>>> > > [the section below is my own personal opinion, not any official
>>> policy]
>>> > >
>>> > > I don't know much about flowCore or how it uses X11, but I do think
>>> that
>>> > > web-based visualization has come quite a long way and might be worth
>>> > > looking into as a more modern, platform neutral solution which does
>>> not
>>> > add
>>> > > any difficult-to-build system dependencies.
>>> > >
>>> > > I saw an impressive presentation of the ggvis package lately (
>>> > > https://github.com/rstudio/ggvis). It is not yet on CRAN so we can't
>>> > > accept its use in Bioconductor packages yet, but we can probably
>>> expect
>>> > it
>>> > > to be added sometime during the upcoming BioC release cycle (would be
>>> > good
>>> > > to confirm that with its authors).
>>> > >
>>> > > Maybe the X11-dependent parts of flowCore could be ported to ggvis?
>>> > >
>>> > > [/end opinion]
>>> > >
>>> > >
>>> > The thing is, flowCore doesn't use X11. It explicitly uses the
>>> > non-interactive function from the feature package. But because of this
>>> > dependency chain, you can't compile flowCore without having X11
>>> libraries.
>>> >
>>> > Even if it did, the question would be whether it's wise for a core
>>> package
>>> > that serves primarily to provide file I/O and representational classes
>>> > should contain GUI or web-based code. I don't dispute that these can be
>>> > useful. In fact, within the flow cytometry domain, the iFlow package
>>> > provides a feature-rich GUI on top of various flow packages, and other
>>> > packages like flowQ provide HTML output. But the core package that
>>> > everybody uses in every situation, be that interactive via web,
>>> interactive
>>> > via GUI, or headless on a compute cluster, should not have such a
>>> > dependency.
>>> >
>>> >
>>> > >
>>> > > > 2. The developer of the new package submits to CRAN instead.
>>> > > >
>>> > > > I would very much prefer the first solution (not least of all
>>> because
>>> > > > it would make my and other flowCore users' lives much easier).
>>> > >
>>> > >
>>> > > Yes, and then we would have another package that builds on flowCore
>>> > > instead of reinventing the wheel and not necessarily being
>>> interoperable.
>>> > > This is why we emphasize the re-use of S4 classes.
>>> > >
>>> > >
>>> > >
>>> > Yes, exactly. We have an excellent and growing collection of flow
>>> cytometry
>>> > data processing packages within BioC, and it would be tragic for this
>>> new
>>> > package not to be included in that (and to be less interoperable).
>>> >
>>> >
>>> > >
>>> > > >
>>> > > > An easy way of handling it would be to remove the density gating
>>> > > > functionality in flowCore, which I believe is the culprit in terms
>>> of
>>> > > > dependencies, and which certainly goes beyond flowCore's purpose of
>>> > > > providing "vasic structures for flow cytometry data" and into the
>>> > > > realm of analysis. This density gating would probably exist better
>>> in
>>> > > > its own package.
>>> > > >
>>> > > > This could be tricky, given that flowCore has over 30 downstream
>>> > > > packages now, but I suspect that few if any of them actually use
>>> the
>>> > > > density gating functionality, and that those which do could be
>>> > > > identified and their own dependencies changed concurrently with
>>> > > > splitting flowCore up.
>>> > >
>>> > > It ought to be easy to figure it out. Maybe
>>> > http://search.bioconductor.jp/can help.
>>> > >
>>> > > Dan
>>> > >
>>> > >
>>> >
>>> > Thanks -- yes, using that tool it's just flowViz, flowStats, plateCore
>>> and
>>> > iFlow. Apparently iFlow's been removed, though, so just three packages.
>>> > flowViz and flowStats are actually maintained by Mike, who maintains
>>> > flowCore, so transitioning wouldn't be too much trouble.
>>> >
>>> >
>>> >
>>> >
>>> > >
>>> > > >
>>> > > > _______________________________________________
>>> > > > Bioc-devel@r-project.org mailing list
>>> > > > https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>> > > >
>>> > >
>>> >
>>> >         [[alternative HTML version deleted]]
>>> >
>>> > _______________________________________________
>>> > Bioc-devel@r-project.org mailing list
>>> > https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>> >
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> Bioc-devel@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>
>>
>>
>

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to