sarek928
03/02/2026, 10:21 AMsample_alias and condition . But when running the pipeline I found this is the nextflow log
Feb-24 16:00:05.437 [main] WARN n.v.logging.ValidationLogger - Found the following unidentified headers in /proj/ngi2016001/nobackup/NGI/ANALYSIS/YL-4530/YL-4530.SampleSheet.csv:
- sample_alias
- condition
This didn't seems to matter and thepipeline ran all the way to NFCORE_PIXELATOR:PIXELATOR:PNA:PNA_GENERATE_REPORTS:EXPERIMENT_SUMMARY before it failed with the following output:
Feb-26 05:39:55.712 [TaskFinalizer-10] DEBUG nextflow.processor.TaskProcessor - Handling unexpected condition for
task: name=NFCORE_PIXELATOR:PIXELATOR:PNA:PNA_GENERATE_REPORTS:EXPERIMENT_SUMMARY (all-samples); work-dir=/proj/ngi2016001/nobackup/NGI/ANALYSIS/YL-4530/work/e2/bf332fa5fa8c59e70aa3a9cbf91e97
error [nextflow.exception.ProcessFailedException]: Process `NFCORE_PIXELATOR:PIXELATOR:PNA:PNA_GENERATE_REPORTS:EXPERIMENT_SUMMARY (all-samples)` terminated with an error exit status (1)
Feb-26 05:39:56.635 [TaskFinalizer-10] ERROR nextflow.processor.TaskProcessor - Error executing process > 'NFCORE_PIXELATOR:PIXELATOR:PNA:PNA_GENERATE_REPORTS:EXPERIMENT_SUMMARY (all-samples)'
Caused by:
Process `NFCORE_PIXELATOR:PIXELATOR:PNA:PNA_GENERATE_REPORTS:EXPERIMENT_SUMMARY (all-samples)` terminated with an error exit status (1)
Command executed:
# Copy the full quarto dir from the read-only image into the workdir
cp -r /workspace/inst/quarto/ ./quarto/
quarto render ./quarto/pixelatorES.qmd \
-P sample_sheet="$PWD/YL-4530.SampleSheet.csv" \
-P data_folder="$PWD/results/" \
\
mv ./quarto/pixelatorES.html experiment-summary.html
Command exit status:
1
Command output:
(empty)
Command error:
9/17
10/17 [read_counts]
ESC[31mError in `h()`:
! error in evaluating the argument 'x' in selecting a method for function 't': invalid type "character" in 'R_matrix_as_sparse'
Backtrace:
▆
1. ├─... %>% merge_data(sample_sheet)
2. ├─pixelatorES::merge_data(., sample_sheet)
3. │ └─pg_data %>% ...
4. ├─purrr::map(...)
5. │ └─purrr:::map_("list", .x, .f, ..., .progress = .progress)
6. │ └─purrr:::vctrs_vec_compat(.x, .purrr_user_env)
7. ├─pixelatorES::load_pxl_data_list(...)
8. │ └─... %>% ...
9. ├─base::lapply(., ReadPNA_Seurat, load_proximity_scores = FALSE)
10. │ └─pixelatorR (local) FUN(X[[i]], ...)
11. │ └─db$counts()
12. │ └─... %>% Matrix::t()
13. ├─Matrix::t(.)
14. ├─methods::as(., "dgCMatrix")
15. │ └─Matrix (local) asMethod(object)
16. │ └─Matrix::.m2sparse(from, "dgC")
17. └─base::.handleSimpleError(...)
18. └─base (local) h(simpleError(msg, call))
ESC[39m
I then removed the parameters from the samplesheet and restarted the run thinking that maybe the extra input could affect the report generation somehow. But the pipeline failed again at the same step with the same error. I don't really know how to fix this can someone help? In addition to this, how should I treat sample_alias and condition?Adrien Coulier
03/02/2026, 11:43 AMsample_alias and condition, we have a fix on the way, it should be solved by the next release (hopefully this week, the release is being reviewed now)
Then about the error, I don't think it's related to these two parameters. Would it be possible to see the samplesheet you used for this run?sarek928
03/02/2026, 12:02 PMsarek928
03/02/2026, 12:07 PMsample_alias and conditionAdrien Coulier
03/02/2026, 12:11 PMAdrien Coulier
03/02/2026, 12:13 PMsarek928
03/02/2026, 12:17 PMsarek928
03/02/2026, 12:42 PM--input_basedir and shortened the paths in the samplesheet.
The two previous runs ran for ~1d and 12h before they failed. We have users waiting for the data so any updates and pointers from your bioinformaticians are welcome. 😄Adrien Coulier
03/02/2026, 12:57 PM.pxl files in the output directory. You can analyze these file in R with https://github.com/PixelgenTechnologies/pixelatorR (the experiment summary basically just generates an html report with the same data)
2. I talked to our bioinformaticians, but without more info it is hard to say anything. Is there a way you could share the output .pxl file with us? Like with a good old DDS delivery or something?sarek928
03/02/2026, 1:01 PM├── YL-4530-Pixelgen-test-2-mag.layout.pxl
├── YL-4530-Pixelgen-test-3-sampleA.layout.pxl
└── YL-4530-Pixelgen-test-3-sampleB.layout.pxlAdrien Coulier
03/02/2026, 1:03 PMsarek928
03/02/2026, 1:06 PMAdrien Coulier
03/02/2026, 1:09 PMAdrien Coulier
03/02/2026, 1:36 PMsarek928
03/03/2026, 7:46 AMAdrien Coulier
03/03/2026, 7:50 AMJonas Kjellin
03/03/2026, 7:57 AMproxiome-immuno-155-v2 for the user data and proxiome-immuno-155.csv as panel_file when we ran the test dataAdrien Coulier
03/03/2026, 10:07 AMAdrien Coulier
03/03/2026, 10:12 AMtest_pna profile? Since it downloads the data from github, you might have to download it manually and set the pipelines_testdata_base_path parameter. It uses version 2 of the panel.Adrien Coulier
03/03/2026, 10:12 AMJonas Kjellin
03/03/2026, 10:17 AMAdrien Coulier
03/03/2026, 1:23 PMbash run_ES_docker.sh -d <pipeline output dir> -n <path where you want the ES> -s <path to your samplesheet> -i <http://quay.io/pixelgen-technologies/pixelatores:0.6.0|quay.io/pixelgen-technologies/pixelatores:0.6.0>
I'm don't think docker is available on Miarka though, so you might need to try this locallyAdrien Coulier
03/03/2026, 1:24 PMsarek928
03/03/2026, 2:18 PMAdrien Coulier
03/03/2026, 2:19 PMimport pixelator
f = pixelator.read_pna(<path to one of your pxl files>)
f.adata().X.dtype
The matrix type should be uint32, but the error from the experiment summary suggests it could be a string or somethingAdrien Coulier
03/03/2026, 2:23 PMJonas Kjellin
03/03/2026, 2:26 PMAdrien Coulier
03/03/2026, 2:29 PMpxl_db <- PixelDB$new("path/to/pxl/file")
pxl_db$fetch_table("__adata__X") %>% colnames() %>% head()sarek928
03/03/2026, 2:31 PMAdrien Coulier
03/03/2026, 2:48 PMJonas Kjellin
03/04/2026, 12:00 PM> pxl_db <- PixelDB$new(filename)
Error in `initialize()`:
ℹ The PXL file must contain PNA data.
ℹ The PXL file might be blocked by another connection
✖ Failed to connect to the database.
Run `rlang::last_trace()` to see where the error occurred
We just received some more data that I will analyze today which will tell us if this problem is sample specific or more general.Adrien Coulier
03/04/2026, 12:09 PMJonas Kjellin
03/04/2026, 12:14 PMJonas Kjellin
03/04/2026, 12:15 PMAdrien Coulier
03/04/2026, 12:20 PMimport pixelator
f = pixelator.read_pna(<path to one of your pxl files>)
f.adata().X.dtype
Yes, this can definitely happen, but usually the pipeline is able to detect it and fails during the graph step, indicating that it only found small components.
Would you be able to share the nextflow.log from that run? Or at least scan through it and see if you can see any error messages from thereAdrien Coulier
03/04/2026, 12:30 PMJonas Kjellin
03/04/2026, 12:33 PMJonas Kjellin
03/04/2026, 12:38 PM2026-03-02 21:06:42 [DEBUG ] Labelling connected components
2026-03-02 21:06:42 [DEBUG ] Finding connected components
2026-03-02 21:40:23 [DEBUG ] Initiating multiplet recovery
2026-03-02 21:47:29 [DEBUG ] Running Leiden community detection. At recursion depth 0
2026-03-03 12:21:25 [DEBUG ] Running Leiden community detection. At recursion depth 1
2026-03-03 12:51:57 [DEBUG ] Running Leiden community detection. At recursion depth 2
2026-03-03 13:02:28 [DEBUG ] Running Leiden community detection. At recursion depth 3
2026-03-03 13:10:09 [DEBUG ] Running Leiden community detection. At recursion depth 4
2026-03-03 13:17:12 [DEBUG ] No more components to refine, will break the refinement loop.
2026-03-03 13:45:55 [DEBUG ] Filtering components by dynamic size thresholds
2026-03-03 13:45:56 [DEBUG ] Attempting to find size lower limit on 25461771 component sizes where 576 are unique
2026-03-03 13:45:56 [DEBUG ] Pre-filtering 734385 (3.0%) component sizes with size smaller than 20 before trying to find a lower size limit
2026-03-03 13:46:01 [DEBUG ] Size limit of 23 found
2026-03-03 13:46:01 [WARNING ] Dynamic minimum component size found is below the minimum size threshold of 300 edges. Using that as the minimum size to avoid downstream problems.
2026-03-03 13:46:01 [WARNING ] Could not find a lower bound for component size filtering, will set the lower bound to 8000
2026-03-03 13:54:08 [DEBUG ] Sorting edgelist by component
2026-03-03 14:02:04 [DEBUG ] Counting molecules
2026-03-03 14:07:18 [DEBUG ] Building edgelist from anndata
2026-03-03 14:07:18 [DEBUG ] Constructing counts matrix.
2026-03-03 14:07:18 [DEBUG ] Computing component metrics.
2026-03-03 14:07:19 [DEBUG ] Computing antibody metrics.
2026-03-03 14:07:19 [DEBUG ] Building AnnData instance.
2026-03-03 14:07:19 [DEBUG ] Calling aggregates based on tau specificity scores
2026-03-03 14:07:19 [INFO ] Found 1 aggregates. This is 100% of the components
2026-03-03 14:07:19 [DEBUG ] Building pxl file
2026-03-03 14:07:22 [INFO ] Finished pixelator graph in 61903.92sJonas Kjellin
03/04/2026, 12:41 PM2026-03-03 12:38:38 [DEBUG ] Labelling connected components
2026-03-03 12:38:38 [DEBUG ] Finding connected components
2026-03-03 13:21:49 [DEBUG ] Initiating multiplet recovery
2026-03-03 13:27:21 [DEBUG ] Running Leiden community detection. At recursion depth 0
2026-03-03 14:55:53 [DEBUG ] Running Leiden community detection. At recursion depth 1
2026-03-03 15:18:07 [DEBUG ] Running Leiden community detection. At recursion depth 2
2026-03-03 15:42:16 [DEBUG ] Running Leiden community detection. At recursion depth 3
2026-03-03 16:03:32 [DEBUG ] Running Leiden community detection. At recursion depth 4
2026-03-03 16:48:34 [DEBUG ] Filtering components by dynamic size thresholds
2026-03-03 16:48:35 [DEBUG ] Attempting to find size lower limit on 42588336 component sizes where 1583 are unique
2026-03-03 16:48:35 [DEBUG ] Pre-filtering 8473 (0.0%) component sizes with size smaller than 20 before trying to find a lower size limit
2026-03-03 16:48:37 [DEBUG ] Size limit of 14601 found
2026-03-03 16:56:49 [DEBUG ] Sorting edgelist by component
2026-03-03 17:04:47 [DEBUG ] Counting molecules
2026-03-03 17:09:23 [DEBUG ] Building edgelist from anndata
2026-03-03 17:09:23 [DEBUG ] Constructing counts matrix.
2026-03-03 17:09:51 [DEBUG ] Computing component metrics.
2026-03-03 17:10:17 [DEBUG ] Computing antibody metrics.
2026-03-03 17:10:17 [DEBUG ] Building AnnData instance.
2026-03-03 17:10:17 [DEBUG ] Calling aggregates based on tau specificity scores
2026-03-03 17:10:17 [INFO ] Found 2 aggregates. This is 0% of the components
2026-03-03 17:10:17 [DEBUG ] Building pxl file
2026-03-03 17:10:22 [INFO ] Finished pixelator graph in 16548.49sAdrien Coulier
03/04/2026, 12:43 PMoutdir/pixelator/graph/<sample>.report.json . This files contains some information about the component sizes and so on, could you share one of these files here?Jonas Kjellin
03/04/2026, 12:47 PMJonas Kjellin
03/04/2026, 12:50 PMAdrien Coulier
03/04/2026, 12:56 PMAdrien Coulier
03/04/2026, 1:03 PM--pna_graph_max_refinement_recursion_depth 1 could help a little, this would prevent the pipeline from oversplitting the components and you might still get some data out of it after thatJonas Kjellin
03/04/2026, 1:07 PMAdrien Coulier
03/04/2026, 1:10 PMAdrien Coulier
03/04/2026, 1:11 PMJonas Kjellin
03/04/2026, 1:12 PMJonas Kjellin
03/04/2026, 1:14 PMAdrien Coulier
03/04/2026, 1:18 PMJonas Kjellin
03/04/2026, 1:20 PMAdrien Coulier
03/04/2026, 1:22 PMJonas Kjellin
03/04/2026, 1:26 PMJonas Kjellin
03/06/2026, 7:32 AM--pna_graph_max_refinement_recursion_depth 1 and then it failed at PIXELATOR_PNA_LAYOUT due to OOM.Adrien Coulier
03/06/2026, 7:47 AMgraph.report.json file again? I suspect this time it didn't split the components enough and that the resulting cell was too big for PIXELATOR_PNA_LAYOUT to processJonas Kjellin
03/06/2026, 7:51 AMJonas Kjellin
03/06/2026, 7:52 AMAdrien Coulier
03/06/2026, 7:59 AMJonas Kjellin
03/06/2026, 9:01 AM