AlexsLemonade/morphport is a bioinformatics pipeline to support the Pediatric Cancer Cell Morphology Atlas (PCCMA) project. The pipeline is designed to process Cell Painting data for the PCCMA project and prepare the results for display on the PCCMA portal.
The pipeline takes Cell Painting data from imaging experiments, converts and annotates measurements, performs quality control and aggregation, normalizes and selects features, and produces dimensionality-reduced embeddings for visualization on the PCCMA portal.
flowchart TD
INPUT([Input:\nsamplesheet & data files])
subgraph per_plate ["Per plate"]
CYTOTABLE["CYTOTABLE_CONVERT\nSQLite → Parquet\n(optional)"]
ANNOTATE[PYCYTOMINER_ANNOTATE\nAdd platemap metadata]
FILTER[COSMICQC_FILTER\nRemove low-quality cells]
AGGREGATE[PYCYTOMINER_AGGREGATE\nCell → well level]
NORMALIZE["PYCYTOMINER_NORMALIZE\nNormalize features\n(optional)"]
CYTOTABLE --> ANNOTATE
ANNOTATE --> FILTER
FILTER -->|cell level| NORMALIZE
FILTER --> AGGREGATE
AGGREGATE -->|well level| NORMALIZE
end
subgraph per_group ["Per analysis group"]
FEATURE_SELECT[PYCYTOMINER_FEATURE_SELECT\nSelect informative features]
EMBEDDINGS[COMPUTE_EMBEDDINGS\nPCA + UMAP]
CLUSTERING[HIERARCHICAL_CLUSTERING\nCluster samples by PCA]
FEATURE_SELECT --> EMBEDDINGS
EMBEDDINGS --> CLUSTERING
end
style per_plate fill:#dbeafe,stroke:#93c5fd,rx:10,ry:10
style per_group fill:#dcfce7,stroke:#86efac,rx:10,ry:10
INPUT --> per_plate
PARTITION["PARTITION_CONDITIONS\nSplit by conditions"]
GROUP["GROUP\nCombine by analysis groups\n(e.g., cell line)"]
per_plate -->|"Plate 1"| PARTITION
per_plate -->|"Plate 2"| PARTITION
per_plate -->|"..."| PARTITION
per_plate -->|"Plate N"| PARTITION
PARTITION --> GROUP
PARTITION --> GROUP
PARTITION --> GROUP
PARTITION --> GROUP
PARTITION --> GROUP
PARTITION --> GROUP
GROUP -->|"Group 1"| per_group
GROUP -->|"Group 2"| per_group
GROUP -->|"..."| per_group
GROUP -->|"Group M"| per_group
per_group --> OUTPUT([Parquet files,\nembeddings & clustering])
Note
If you are new to Nextflow and nf-core, please refer to this page on how to set-up Nextflow. Make sure to test your setup with -profile test before running the workflow on actual data.
Now, you can run the pipeline using:
nextflow run AlexsLemonade/morphport \
-profile <docker/singularity/.../institute> \
--input samplesheet.csv \
--outdir <OUTDIR>Warning
Please provide pipeline parameters via the CLI or Nextflow -params-file option. Custom config files including those provided by the -c Nextflow option can be used to provide any configuration except for parameters; see docs.
AlexsLemonade/morphport was originally written by Joshua A. Shapiro.
We thank the following people for their extensive assistance in the development of this pipeline:
If you would like to contribute to this pipeline, please see the contributing guidelines.
An extensive list of references for the tools used by the pipeline can be found in the CITATIONS.md file.
This pipeline uses code and infrastructure developed and maintained by the nf-core community, reused here under the MIT license.
The nf-core framework for community-curated bioinformatics pipelines.
Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.
Nat Biotechnol. 2020 Feb 13. doi: 10.1038/s41587-020-0439-x.