Community members currently working on writing Bioconductor packages in Julia?

Hi all,

Not sure if this is the right section sorry:
I’m looking to get involved with people who may be actively working on writing equivalent packages from Bioconductor in Julia. From my own limited experience R having Bioconductor seems to be a common reason why more people won’t jump across to Julia but anecdotally it doesn’t seem like anyone actually believes R and Bioconductor using S4 is a great system when thinking long-term e.g. for the basis of the next decade of research.

1 Like

The closest thing is probably the BioJulia organization, which has a number of packages for doing bioinformatics and other bio-related things. But some stuff that ends up in BioConductor is also in EcoJulia, or in people’s personal repos.

If you’re talking about a separate bio-related package registry - at one point we had that, but it ended up making things more complicated, since anything that had dependencies that were only in the BioJulia registry could not be registered in General. There’s been some discussion in the julia community about curated package lists or something to aid discovery, but I’m not sure of any initiative that’s taken off.

Which aspect - are you talking about functionality that can be found in the packages in Bioconductor, or something about the structure of having a curated list of packages? If it’s the former case, my response when I have conversations of this sort usually contains some mix of the following points:

  1. The list of functionality available in julia is expanding quite rapidly, but…
  2. If R (or bioconductor) has everything you want / need, and it works the way you want / need, then stick with R, though…
  3. If you want to be able to develop your own functionality, julia has a lot to recommend it, and…
  4. If there’s something from R that you need and don’t want to spend the time to recreate in julia, you can use RCall.jl

I agree with this perception. But I think the vast majority of package users (which is to say the vast majority of users of the R language) don’t know or care about the internal details of the packages they use. They just want the functionality they need for their research, and will go to where it is. For people that develop packages, I think julia is vastly superior, especially in the context of people doing academic research (due to ease/speed of developing novel approaches). This means that julia already outstrips python/R in a few domains (differential equations is the most well-known example), and the list is growing.

But those other languages still have a big head start, and I think it will be a while before julia will be regarded by the majority as the obvious choice for scientific development. For those that already think this (:person_raising_hand:), I’ve come around to thinking that the best thing we can do is keep developing the functionality we want to see, and promote julia where it makes sense, but not get too bent out of shape when people don’t see the world the way we do. If we build it, they will come.

5 Likes

As you say you can use RCall.jl, and use all of Bioconductor that way. Would it help anyone if there was a wrapper for it? I’m a big believeer in using languages together, see e.g. recent post on PythonCall.jl. Maybe something similar could be done to smooth things over, a Pkg REPL to add R packages too.

1 Like

First of all, thankyou for such a thorough reply.

A curated package list would have so much value in my eyes as that was one of the things that I initially struggled with coming across from R. When you’re used to having the bioconductor vignettes and common workflows to become content with Julias documentation does require some compromise which I think puts people off from both commencing the journey and/or recommending the jump to others (my 2c obviously).

Regarding Bioconductor I can obviously only speak anecdotally but it seems like people get stuck between points 2. and 3. that you mention and the main problem is that once they arrive at that point they’ve had a lot of sunk cost in a different language and don’t necessarily want to make a jump to a new way of thinking and programming.

I’m only at the start of my journey so I’m hoping to get involved to try and do my part at getting wider adoption of the better tools.

2 Likes

Sorry for the very delayed response - been a busy couple of weeks.

Yeah, I think this is right. Doing it (well) would take a lot of effort though, and my suspicion is that the community of people using Julia for biology is still too small at the moment to be feasible. Not even all of the packages in BioJulia are really maintained, and it’s hard to keep track of even for those of us that are deeply involved.

If I need some functionally, I tend to just use Google and read the docs, in or ask here / slack / zulip, but I agree this is not the most new-user-friendly workflow. There’s also juliahub search of registered packages, but that’s only marginally better.

While true, I think package programming in R is like learning a whole new language anyway. Obviously, this isn’t strictly true, but so many of the code patterns used day-to-day are different from those used in packages.

I think you’re larger point is right, but also think that we in the Julia community will be fine as long as there are things that are a pain to do in R that are easy to do in Julia. We should keep working to provide more and more of that functionality.