Git Product home page Git Product logo

pathway-analysis's Introduction

pathway-analysis

Nextflow pipeline to perfrom pathway analysis for RNA-Seq FASTQ files

Example usage:

nextflow run main.nf \
  --experiment testdata/experiment.csv \
  --transcriptome https://github.com/lifebit-ai/kallisto-nf/raw/master/tutorial/transcriptome/transcriptome.fa \
  --condition treatment

pathway-analysis's People

Contributors

philpalmer avatar

Watchers

Konrad Zych avatar James Cloos avatar Pedro Luís avatar Pablo Prieto avatar  avatar Tiago Jesus avatar  avatar Panos Matzavinos avatar  avatar Sangram K Sahu avatar

pathway-analysis's Issues

Add transcriptome index

For example, in main.nf, add this:

if (params.transcriptome_index) {
  Channel
    .fromPath( params.transcriptome_index )
    .ifEmpty { exit 1, "Cannot find any transcriptome index file : ${params.transcriptome_index}" }
    .set { transcriptome_index }
}

And update this:

/*--------------------------------------------------
  Index the transcriptome
---------------------------------------------------*/

process index {
  tag "$name"

  input:
  set val(name), file(transcriptome) from transcriptome

  output:
  file "${name}.index" into transcriptome_index

  when: !params.transcriptome_index

  script:
  """
  kallisto index -i ${name}.index ${transcriptome}
  """
}

Add paired-end support

Eg, something like this in main.nf:

Channel
  .fromPath(params.experiment)
  .ifEmpty { exit 1, "Cannot find experiment file : ${params.experiment}" }
  .into { experiment; experiment_to_reads }
if (params.singleEnd) {
  experiment_to_reads
    .splitCsv(skip:1)
    .map { sample_id, treatment, fastq -> [sample_id, file(fastq)] }
    .set { reads }
}
if (!params.singleEnd) {
  experiment_to_reads
    .splitCsv(skip:1)
    .map { sample_id, treatment, fastq1, fastq2 -> [sample_id, [file(fastq1), file(fastq2)]] }
    .set { reads }
}

Add test profile & CI tests?

Eg in nextflow.config:

profiles {
  test {
    params.experiment = "${baseDir}/testdata/experiment.csv"
    params.transcriptome = "https://github.com/lifebit-ai/kallisto-nf/raw/master/tutorial/transcriptome/transcriptome.fa"
    params.condition = "treatment"
  }
}

Make the report look nicer

Currently, the report looks like this:
image

I think it could be made to look a bit nicer, for example:

  1. Use Tabset Column instead of Tabset row (see here)
  2. Find a nice way to embed table (tried using DT which failed) or just view the head of the table?

Add genome configuration

For example, in nextflow.config:

params {
  genome = "GRCh38"
  genomes {
    'GRCh38' {
      transcriptome = 's3://lifebit-featured-datasets/pipelines/kallisto-nf-data/transcriptome/Homo_sapiens.GRCh38.cdna.all.fa'
      transcriptome_index = 's3://lifebit-featured-datasets/pipelines/kallisto-nf-data/transcriptome/Homo_sapiens.GRCh38.cdna.all.fa.index'
    }
  }
}

Must also updated main.nf

Also:

  1. It may be worth adding the transcriptome index first #6
  2. If other genomes, eg GRCh37 are added gene_expression.R will need updating

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.