About majiq v3 workflow

46 views
Skip to first unread message

Shengwei Xiong

unread,
Mar 20, 2026, 10:19:56 PM (14 days ago) Mar 20
to Biociphers

Hi all, 

 

I have questions about the MAJIQ v3 pipeline. I am trying to analyze control (two replicates) vs knockdown (two replicates). Based on my understanding of the MAJIQ documentation, majiq deltapsi is appropriate for this analysis.

Here is my workflow:

majiq-v3 build /majiq/transcriptome_annotations/sg.zarr build/sg.zarr \
  --sjs bam/sj/control_R1.sj bam/sj/control_R2.sj \
  --sjs bam/sj/knockdown_R1.sj bam/sj/knockdown_R2.sj

majiq-v3 psi-coverage build/sg.zarr psi/protein_control.psicov \
  bam/sj/control_R1.sj bam/sj/control_R2.sj
majiq-v3 psi-coverage build/sg.zarr psi/protein_knockdown.psicov \
  bam/sj/knockdown_R1.sj bam/sj/knockdown_R2.sj

majiq-v3 deltapsi \
  --splicegraph build/sg.zarr \
  --output-voila dpsi/protein_K562_control-knockdown.dpsicov \
  --output-tsv dpsi/protein_K562_control-knockdown.tsv \
  -psi1 psi/protein_control.psicov \
  -psi2 psi/protein_knockdown.psicov (In the TSV output, "nonchanging_threshold": 0.05—does this correspond to a p-value < 0.05?)

majiq-v3 sg-coverage build/sg.zarr build/protein_control.sgc \
  bam/sj/control_R1.sj bam/sj/control_R2.sj

majiq-v3 sg-coverage build/sg.zarr build/protein_knockdown.sgc \
  bam/sj/knockdown_R1.sj bam/sj/knockdown_R2.sj

voila modulize build/sg.zarr \
  build/protein_control.sgc \
  build/protein_knockdown.sgc \
  dpsi/protein_K562_control-knockdown.dpsicov \
  -d modulized --show-all --keep-constitutive --overwrite --debug (Since the default dpsi_probability_changing_threshold is 0.95, does this mean it is equivalent to a p-value < 0.05?)

Thanks for the help!


Best,

Shengwei

 

 

Hello,

I have a question about the MAJIQ v3 pipeline. I am trying to analyze control (two replicates) versus knockdown (two replicates). Based on my understanding of the MAJIQ documentation, majiq deltapsi is appropriate for this analysis.

Here is my workflow:

 

San Jewell

unread,
Mar 23, 2026, 4:46:54 PM (11 days ago) Mar 23
to Biociphers
Hi Shengwei, 

In modulize, the --probability-changing-threshold for dpsi is used along with --changing-between-group-dpsi and --changing-between-group-dpsi-secondary to calculate the confidence that a specific lsv is changing. These are specific to the deltapsi algorithm. 

First, It is checking the matrix area over the junction bins is above a dpsi threshold, and then checking that the cumulative sum passes the specified confidence threshold. Further, you'll note the dpsi threshold to pass is different between primary and secondary. The primary threshold is used to mark an entire event changing, but the secondary threshold must be passed by _all_ junctions in the event for the event to be considered changing. For clarity I'm placing the matrix_area source code which can be found here: https://bitbucket.org/biociphers/majiq_academic/src/de48918a5638660a4e3dafc1f1f59ed247c3a4b1/voila/rna_voila/vlsv.py#lines-54:75  ; this function is called once per junction with the bins for that junction, the inner threshold is passed in (--changing-between-group-dpsi or  --changing-between-group-dpsi-secondary) , and the return value should exceed whatever is set for --probability-changing-threshold. 

For v3-deltapsi tsv, the flag --nonchanging-threshold is the posterior probability that abs(dPSI) less than the value specified. It is approximately equivalent to p-value but not a 1-to-1 equivalency for Bayesian stats like what is used in majiq deltapsi mode. If you need more information about the statistical background of this flag, please let me know, I to not know all of the facets but I can request someone from my lab with more experience in the creation of this flag step in if this high-level information is insufficient.   

Thanks, 
-San

Shengwei Xiong

unread,
Mar 24, 2026, 10:14:51 AM (10 days ago) Mar 24
to Biociphers
Hi San,

Thank you for the clarification. It’s very helpful. I would appreciate more information on the statistical background of this flag. Also, is there any flag or output in volia modulize that corresponds more directly to a p-value?

Best,
Shengwei 
Reply all
Reply to author
Forward
0 new messages