BioBam / scMaSigPro

Implementation of MaSigPro for scRNA-Seq Data
GNU General Public License v2.0
11 stars 3 forks source link

Cannot analyze trajectory data from Monocle3 #39

Open panariellofrancesco opened 3 months ago

panariellofrancesco commented 3 months ago

Hi,

thank you very much for providing scMaSigPro. However, I have been trying to use it to analyze some trajectory data produced with Monocle3, but I have been facing two major issues:

  1. The Bioconductor version required for scMaSigPro to work is 3.19. Monocle3, on the other hand, requires the version 3.14. For this reason, I am currently not able to directly use my Monocle3 cds object as input for scMaSigPro (I have installed them in two different R environments).
  2. To overcome this issue, I have tried to make it work with SingleCellExperiment objects. The main problem is that, given the example provided in the tutorial, each cell has to be associated with one trajectory/path only. Nevertheless, in my data I have multiple paths and they usually share the starting cells. Please find below an example of a pseudotime UMAP with different paths:

image

This is how the trajectory association looks like:

image

To get the cell-to-trajectory association, I have followed this code provided by tradeSeq.

Is there something I can tune/modify to be able to use scMaSigPro properly?

Thank you very much in advance.

spriyansh commented 3 months ago

Hi @panariellofrancesco,

Thank you for trying out scMaSigPro and for providing such a detailed issue report. We are currently working towards a CRAN release, focusing on making the package lighter and reducing dependencies. For now, I recommend updating to the latest version of scMaSigPro (0.0.4), which includes new features. You can follow the update steps here.

Regarding the conflicts between Monocle3 and Bioconductor, even though you have set up two different environments, I suggest using our Docker image until the CRAN release. This image includes RStudio with all the required data and dependencies pre-installed. You can find the Docker image here.

Regarding your example dataset, scMaSigPro is designed to handle datasets with at least two branches, requiring that cells be exclusively assigned to these branches. According to the standard implementation, users must have hard assignments to branches; cells should only be part of one branch at a time.

However, you can modify scMaSigPro to work with common cells. I have created a new vignette demonstrating this approach, which you can find here.

In brief, you have two options:

In the vignette, I have demonstrated the above two approaches using a simulated dataset, using the method demonstrated in the tradeSeq tutorial.

Lastly, as we continue to improve scMaSigPro for the CRAN release, you might encounter additional issues. Please feel free to open more issues or report any bugs.

Thank you for your contribution!

panariellofrancesco commented 2 months ago

Dear @spriyansh,

Many thanks for your support, it has been very clear and, most importantly, very helpful!

I have looked through the newly added vignettes about the analysis of branches with common cells and they will greatly improve my work.

As far as the docker image concerns, it has worked wonderfully with my Docker app that I use on my local computer. However, my dataset (which is very big in size) is located on a HPC cluster in my institute. We usually use singularity to manage docker images, hence I have tried some workarounds to make it work on the cluster itself.

When I run:

singularity run --env USERID=$(id -u) --env USER="scmasigpro" --env PASSWORD="scmasigpro" sc_masigpro_pac_0.0.4_amd64.sif

I obtain the following error:

s6-overlay-preinit: fatal: unable to mkdir /var/run/s6: Read-only file system

Is there something I can try to be able to use your docker image using singularity on my HPC cluster?

Thanks again for your support!

spriyansh commented 2 months ago

Dear @panariellofrancesco,

Apologies for the delayed response. I'm not as familiar with Singularity as with Docker, but I believe the issue you're encountering may be due to permission restrictions related to a read-only file system.

To resolve this, I suggest running the command with the --writable-tmpfs flag. This flag will create a writable temporary file system for the container, which could help address the issue you're facing.

The Dockerfile we’re using is based on the RStudio Docker image, with several additional dependencies installed on top. While you may not need all of these dependencies, I'm sharing the Dockerfile (please remove '.txt' before build) with you, incase you wish to build it from scratch. The build command is

docker buildx build --platform linux/amd64 --build-arg GITHUB_TOKEN=your_github_pat -t sc_masigpro:v0.0.4 .

You might also find this guide on using Singularity with Docker images helpful: Singularity + Docker Guide.

Please feel free to try the suggested solutions, and let me know if you encounter any issues. In the meantime, I will work on creating a Singularity image for you.