Git Product home page Git Product logo

mcmicro-nf-core's Introduction

nf-core/mcmicro

GitHub Actions CI Status GitHub Actions Linting StatusAWS CICite with Zenodo nf-test

Nextflow run with conda run with docker run with singularity Launch on Seqera Platform

Get help on SlackFollow on TwitterFollow on MastodonWatch on YouTube

Introduction

Warning

We are currently in the process of porting the original MCMICRO to nf-core. This pipeline is therefore in active development.

nf-core/mcmicro is a nextflow pipeline for processing highly-multiplexed imaging data, as produced by technologies such as Cycif, MIBI, CODEX, SeqIF among others.

If you want to run the original MCMICRO pipeline outside of nf-core, please see https://mcmicro.org/.

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.

Contributions and Support

If you would like to contribute to this pipeline, please see the contributing guidelines.

For further information or help, don't hesitate to get in touch on the Slack #mcmicro channel (you can join with this invite).

Citations

If you use nf-core/mcmicro for your analysis, please cite it using the following article: Schapiro et al. 2022 Nat. Methods

An extensive list of references for the tools used by the pipeline can be found in the CITATIONS.md file.

You can cite the nf-core publication as follows:

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.

mcmicro-nf-core's People

Contributors

adamjtaylor avatar flowuenne avatar heylf avatar jmuhlich avatar nf-core-bot avatar robjy avatar

Stargazers

 avatar  avatar

mcmicro-nf-core's Issues

move to 1 sample/row sample sheet and test with ashlar

  • change input_check.nf:create_fastq_channel():meta.id back to sample name
  • supported formats:
    • ome.tif
    • moved zarr support to separate ticket
  • change sample sheet format
    • schema change
    • document all the places that a sample sheet format change has to be made because I forget
      • Just in assets/schema_input.json
    • So should ashlar use all ome.tif or zarr images in the input directory as input?
      • doing this as default behavior
      • need to only use allowed file types
  • make input parameter for each style of sample sheet
    • one row per sample
      • update mcmicro.nf
      • update nextflow_schema.json
      • rename assets/schema_input.json
      • nextflow.config
      • lib/WorkflowMain.groovy
    • one row per sample per cycle
      • update mcmicro.nf to handle either input sample sheet
      • update nextflow_schema.json
      • create assets/schema_input_cycle.json
      • update lib/WorkflowMain.groovy
      • update nextflow.config
    • use the '--input' parameter and for it check for cycle column to set input type
      • my concern with this is that I don't know how we'd get automatic validation because we have to set a schema for each input parameter
      • UPDATE: I thought I could get this working by setting the input parameter --input_sample or --input_cycle to the path given for --input and then use the correct one of those as input to Channel.fromSamplesheet(), but it doesn't work. It looks like fromSamplesheet() only accepts an input parameter name and it only gets the value of that input parameter from session.params. I tried updating the value of session.params['input_cycle'] from within the workflow, but this didn't work. It still had the default value defined in nextflow.config.
      • we're not going to support this at least at the moment
  • question: what are better input parameter names; currently:
    • input_sample
    • input_cycle
  • question: do the workflow inputs need to be added to nextflow.config?
    • I don't see any changes for the current parameters
    • Yes, I had to add them to pass lint tests
  • marker_sheet as input parameter
    • add to nextflow_schema.json
    • create schma file assets/schema_marker.json
    • create channel from parameter in mcmicro.nf
    • question: is there a marker sheet for the tonsil data?
      • there is, Jeremy will send it
    • question: are the only columns for a marker sheet: channel_number, cycle_number, marker_name, Filter, excitation_wavelength, emission_wavelength?
      • needs to be discussed with larger group
    • question: which columns are required?
      • cycle, channel and marker_name
  • question: my code assumes input sheet order is fixed. Is this a valid assumption or should I be expecting the columns in any order?
    • I ran into this when making ashlar input and validating the marker sheet. It was easy to make it work for any column order, so I just added it.
  • nf-validation:
    • add paramsHelp
      • already there, but was in main.nf, so I didn't notice
  • we would like more complex validation that checks associated files/directories. Can we do that with nf-validation?
    • it doesn't look like it
    • create new local subworkflow modules for the following validation:
      • change to subworkflow
        • made subworkflow for marker sheet validation
        • add sample sheet validation to subworkflow
        • clean-up new validation
        • clean-up (remove) old validation
      • validation:
        • uniqueness of marker name in marker sheet
        • uniqueness of (cycle, channel) tuple in marker sheet
        • cycle and channel are 1-based so 0 should throw an exception
        • cycle and channel cannot have skips and must be in order
        • validate that every sample has all the same cycle number values, and that those values match with the marker sheet 1:1
      • python exceptions should trigger Nextflow error messages
        • low priority because we'll probably be moving these python functions to groovy (#2)
  • question: any additional input validation on:
    • input_sample?
    • input_cycle?
    • marker_sheet?
  • ext.args for ashlar input parameters
    • handle ffp & dfp
    • moved to workflow parameters
  • question: what should the workflow output?
    • currently just passing the last module output file as placeholder
    • be sure to add an output.md describing it (required by lint tests)
  • tests
    • nf-test
      • basic end-to-end test
      • test md5sum of each module's output
    • pytest end-to-end workflow test with md5sum check on module output files
    • some lint tests are failing
      • files_exist
      • files_unchanged
      • merge_markers
      • multiqc_config
      • nextflow_config
        • asked on nf-core:mcmicro Slack channel. Waiting for response
      • readme
        • posted question on Slack linting channel about this
      • schema_description
  • fix lint warnings
  • bug fix
    • not handling 1 row per sample per cycle inputs correctly. All rows with the same sample name need to go to one run of ashlar.
    • same issue for 1 row per sample inputs
  • add image correction support to 1 row per sample case
    • manual
    • basicpy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.