-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for bioconda picard installation. #22
Conversation
- rely on that the bioconda wrapper is a symbolic link to the folder containing picard.jar
Thanks for your PR. We will test it and will let you know. BTW there are some issues about
|
Happy if I can contribute.
I didn't know about the MacOS behavior. Would it be OK to shift this
functionality to python instead? That way, it would be easier to avoid os
differences like this
…On Sat, Jul 28, 2018 at 1:04 AM Jin Lee ***@***.***> wrote:
Thanks for your PR. We will test it and will let you know.
BTW there are some issues about readlink -f on MacOS but there is a
workaround.
Example:
#DEST_DIR=$(readlink -f $2)
DEST_DIR=$(cd $(dirname $2) && pwd -P)/$(basename $2)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADsaNejXmB3nPLcn0sCqwVCW_bkYsdugks5uK5xsgaJpZM4VjmVg>
.
|
…r bioconda installations
I shifted it all into python. |
Hi @leepc12, I'm a bit confused with regard to phantompeakqualtools; In the documentation on phantompeakqualtools the statement is that v1.14 is required and you also provide the custom archive. Here you are using spp v1.13. At least it looks that way in the environment file and the custom installation of spp is disabled in the installation script. ==> two questions:
|
I understood one reason for the custom conda installation today... macs2 requires python2 and idr requires python3. One solution would be to have multiple environments and then load them on demand. I came up with one design, but this being my first try with WDL I would appreciate feedback before I start testing:
Alternatively, it could be made part of the python script. I'm not sure what is best or if it is a viable solution at all. What do you think? |
Just a heads up - Gael announced that scikit learn is dropping support for Python 2 - see the red box here: http://gael-varoquaux.info/programming/sprint-on-scikit-learn-in-paris-and-austin.html And it's actually part of a larger effort - if you click the "other projects" link there: This likely doesn't require immediate action, but I would suggest a general mindset of development toward python 3 and sunsetting Python 2, if at all possible. If macs2 requires python2, then macs2 should be updated for Python 3, and not the other way around. |
Me coming from the outside, completely seconds this. There are efforts
converting MACS2 to python3:
macs3-project/MACS#179
It's not within my capacity to quicken that transition, but I should be
able to split up and debug two or more separate environments. That would at
least highlight some of the software lagging behind.
…On Wed, Aug 1, 2018 at 6:08 PM Vanessa Sochat ***@***.***> wrote:
Just a heads up - Gael announced that scikit learn is dropping support for
Python 2 - see the red box here:
http://gael-varoquaux.info/programming/sprint-on-scikit-learn-in-paris-and-austin.html
[image: image]
<https://user-images.githubusercontent.com/814322/43532527-2d08a8ea-9567-11e8-8213-5be51be5c1c2.png>
And it's actually part of a larger effort - if you click the "other
projects" link there:
http://python3statement.org/
This likely doesn't require immediate action, but I would suggest a
general mindset of development toward python 3 and sunsetting Python 2, if
at all possible. If macs2 requires python2, then macs2 should be updated
for Python 3, and not the other way around.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#22 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADsaNZojPlUT3c2VEj2w8ez3Y449cIoxks5uMdKDgaJpZM4VjmVg>
.
|
@karl616: spp 1.14 was released to fix compilation issues for R (>=3.3.0) but our pipeline uses R 3.2.x. I just wanted to keep the latest spp (currently 1.15 is the latest though) in the phantompeakquals repo when I migrated it from Google code. Both 1.13 and 1.14 produce the same output for our pipeline and 1.14 was harder to install, it needed more dependencies to be installed so I chose 1.13 for the pipeline. |
About python versions, the old pipeline has two separate environments for py2 and py3 just like you implemented above. It activates py3 env only for IDR tasks. But for this new pipeline, I didn't want to have any Conda-specific things in the WDL file and input JSON. There is a workaround to use both py2 and py3 at the same time. One major drawback of this hack is that users need to remove their own py2-based Conda from their I hate this workaround too. We will eventually remove all py2 dependencies and move on to py3. MACS2 is the only problem. |
If you could use a container, you don't need to worry about these things. |
@vsoch containers are very convenient. WDL has the runtime docker parameter as well. Still, I'm one of the sometimes underprivileged users (no root access and restrictive admins) why I would want a pure conda solution. @leepc12 I understand the problem now. Thanks for the explanation. It would be nice if WDL had built in conda support. I know nextflow is going that way. So no conda in the pipeline... Perhaps if IDR was moved from the root to it's own environment and then the application of the same linking trick it would be possible to avoid requiring a clean conda installation. I will try that. |
My initial test on a small subset was positive. The It also installs on top of an available conda instance. |
Thanks @karl616. I tested your PR and it worked fine except phantompeakqualtools. Once phantompeakqualtools is available on a conda repo, I will test again and let you know. BTW I cannot remove MACS2 py egg extraction workaround in the installer script. |
…ipeline into addCondaPicardSupport Conflicts: installers/install_dependencies.sh
OK, phantompeakqualtools is there. It should work. One thing I didn't mention earlier was that I also added cromwell as a dependency. It's not directly part of the pipeline, but having it in the bundle removes one step for the end-user. I undid the removal of the egg extraction. In the same vein perhaps; I wasn't sure about this: |
If this environment setup gets through the tests we could also simplify the container generation (I think). (And I apologize if I dismissed the idea too harshly earlier, some of my systems are too backwards and I was one step behind in the thought process.) What should be possible is to simply outsource the generation of containers to BioContainers, which is an extension/partner of bioconda. They have one container per bioconda recipe, but also provide multi-package containers: http://biocontainers.pro/multi-package-containers I have to figure out if it is possible with all these legacy dependencies, but if so, that would relieve you of supporting containers along with the pipeline. Biocontainers provide both docker: https://quay.io/organization/biocontainers and singularity containers: https://depot.galaxyproject.org/singularity/ Perhaps this is a separate pull request and some of the bioconda recipes we added hasn't been ported to biocontainer yet (I'm following it up), but before venturing forth I wanted check if there is interest. It requires some changes now, but I imagine it will make the process of updating software easier in the long run. |
@leepc12 the containers seems to require more work than I expected. BioContainers are built upon busybox and hence doesn't provide full bash functionality, which is required by built-in wdl functions like read_map. I'll see if I can find a way around it. |
@karl616: Thanks for your work. Yes, let's talk more about the containers in another PR or issue. BTW, your PR works fine but I got slightly different MACS2 outputs between Conda and docker due to some changes in numpy/blas. So I still need to figure this out. I will make a new branch derived from this PR and will let you know about progress. |
@leepc12 Sounds good. https://conda.io/docs/user-guide/tasks/manage-environments.html#cloning-an-environment That would ensure that versions stay the same. I'm going back and setting up the old version anew in order to do a comparison. If you want assistance, perhaps you could share the output from I suspect that already by comparing our two installations we will see differences. In my experience, conda tries to stay as actual as possible when no version is specified. |
Here are my files if you want to have a look: First two versions of the original pipeline installed with roughly one week in between And the new installation process: My point is that only the software with fixed version stay constant... And still there might be new builds. Cython and biopython are two packages changing by just installing old environment twice... I looked at the docker file and there are quite a few differences to the conda environment... Would it be interesting to harmonize this? I tried to do this quickly before and I messed it up... |
I added a draft for a more docker like conda-environment... |
@karl616 . I am very sorry about very late update for this PR. We appreciate your work on this. |
folder containing picard.jar