Skip to content
Snippets Groups Projects
Select Git revision
  • c8c101870aa70941e91c798b4faaf9dadac88a39
  • master default protected
  • dev_carine
  • cbedet1-master-patch-41030
  • dev
  • v2.0.0
  • v0.4.0
  • v0.3.0
  • v0.2.9
  • v0.2.8
  • v0.2.7
  • v0.2.6
  • v0.1.0
  • v0.2.5
  • v0.2.4
  • v0.2.3
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.2
20 results

getting_started.md

Blame
  • Forked from LBMC / nextflow
    Source project has a limited visibility.
    samtools.nf 2.38 KiB
    /*
    * SAMtools :
    * Imputs : bam files
    * Output : bam files
    */
    
    /*                      bams sorting                                     */
    params.bam = "$baseDir/data/bam/*.bam"
    
    log.info "bams files : ${params.bam}"
    
    Channel
      .fromPath( params.bam )
      .ifEmpty { error "Cannot find any bam files matching: ${params.bam}" }
      .set { bam_files }
    
    process sort_bam {
      tag "$bam.baseName"
      cpus 4
    
      input:
        file bam from bam_files
    
      output:
        file "*_sorted.bam" into sorted_bam_files
    
      script:
    """
    samtools sort -@ ${task.cpus} -O BAM -o ${bam.baseName}_sorted.bam ${bam}
    """
    }
    
    /*                      bams indexing                                     */
    
    params.bam = "$baseDir/data/bam/*.bam"
    
    log.info "bams files : ${params.bam}"
    
    Channel
      .fromPath( params.bam )
      .ifEmpty { error "Cannot find any bam files matching: ${params.bam}" }
      .set { bam_files }
    
    process index_bam {
      tag "$bam.baseName"
      input:
        file bam from bam_files
      output:
        file "*bam*" into indexed_bam_file
      script:
    """
    samtools index ${bam}
    """
    }
    
    
    /*                      bams spliting                                     */
    params.bam = "$baseDir/data/bam/*.bam"
    
    log.info "bams files : ${params.bam}"
    
    Channel
      .fromPath( params.bam )
      .ifEmpty { error "Cannot find any bam files matching: ${params.bam}" }
      .set { bam_files }
    
    process split_bam {
      tag "$bam.baseName"
      cpus 2
    
      input:
        file bam from bam_files
    
      output:
        file "*_forward.bam*" into forward_bam_files
        file "*_reverse.bam*" into reverse_bam_files
      script:
    """
    samtools view -hb -F 0x10 ${bam} > ${bam}_forward.bam &
    samtools view -hb -f 0x10 ${bam} > ${bam}_reverse.bam
    """
    }
    
    
    /*                      bams filtering                                     */
    params.bam = "$baseDir/data/bam/*.bam"
    params.bed = "$baseDir/data/bam/*.bed"
    
    log.info "bams files : ${params.bam}"
    log.info "bed file : ${params.bed}"
    
    Channel
      .fromPath( params.bam )
      .ifEmpty { error "Cannot find any bam files matching: ${params.bam}" }
      .set { bam_files }
    Channel
      .fromPath( params.bed )
      .ifEmpty { error "Cannot find any bed file matching: ${params.bed}" }
      .set { bed_files }
    
    process filter_bam {
      tag "$bam.baseName"
      cpus 4
    
      input:
        file bam from bam_files
        file bed from bed_files
    
      output:
        file "*_filtered.bam*" into filtered_bam_files
      script:
    """
    samtools view -@ ${task.cpus} -hb ${bam} -L ${bed} > ${bam.baseName}_filtered.bam
    """
    }