diff --git a/data/sample.csv b/data/sample.csv new file mode 100644 index 0000000000000000000000000000000000000000..091534e5308161febb8d57e75711337112fc4837 --- /dev/null +++ b/data/sample.csv @@ -0,0 +1,14 @@ +specie; sex; r1; r2 +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/1_S1_L001_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/1_S1_L001_R2_001.fasta.gz +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/2_S2_L001_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/2_S2_L001_R2_001.fasta.gz +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/3_S3_L001_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/3_S3_L001_R2_001.fasta.gz +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/4_S4_L001_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/4_S4_L001_R2_001.fasta.gz +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/5_S5_L001_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/5_S5_L001_R2_001.fasta.gz +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/6_S6_L001_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/6_S6_L001_R2_001.fasta.gz +mbelari; female; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/MRDR5_R1.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_females/MRDR5_R2.fasta.gz +mbelari; male; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_males/JU2817_males_S11_L002_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_males/JU2817_males_S11_L002_R2_001.fasta.gz +mbelari; male; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_males/MRDR6_R1.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mbelari_males/MRDR6_R2.fasta.gz +mlongespiculosa; female; /scratch/Bio/lmodolo/kmer_diff/data/Mlongespiculosa_females/MRDR3_R1.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mlongespiculosa_females/MRDR3_R2.fasta.gz +mlongespiculosa; male; /scratch/Bio/lmodolo/kmer_diff/data/Mlongespiculosa_males/MRDR4_R1.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mlongespiculosa_males/MRDR4_R1.fasta.gz +mspiculigera; female; /scratch/Bio/lmodolo/kmer_diff/data/Mspiculigera_females/AF72-females_BIS_S8_L002_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mspiculigera_females/AF72-females_BIS_S8_L002_R2_001.fasta.gz +mspiculigera; male; /scratch/Bio/lmodolo/kmer_diff/data/Mspiculigera_males/AF72-males_S7_L002_R1_001.fasta.gz ; /scratch/Bio/lmodolo/kmer_diff/data/Mspiculigera_males/AF72-males_S7_L002_R2_001.fasta.gz diff --git a/src/main.nf b/src/main.nf new file mode 100644 index 0000000000000000000000000000000000000000..a0194ebd0481c73761e14e5836ccdea596ab4adb --- /dev/null +++ b/src/main.nf @@ -0,0 +1,22 @@ +nextflow.enable.dsl=2 + +/* +Testing pipeline for marseq scRNASeq analysis +*/ + +include { FASTKMERS } from "./modules/fastkmers.nf" + + +Channel.fromPath( file(params.csv) ) + .splitCsv(header: true) + .map{row -> + fastq_r1 = file("${r1}") + fastq_r2 = file("${r2}") + meta = ['id': ${fastq_r1.simpleName},, 'specie': ${specie}, 'sex': ${sex}] + [meta, [fastq_r1, fastq_r2]] + } + .set{ fastq } + +workflow { + FASTLMERS(fastq) +} diff --git a/src/modules/fastkmers.nf b/src/modules/fastkmers.nf new file mode 100644 index 0000000000000000000000000000000000000000..5a77b0a548d53361ad20005a07cf3d04fed6dfa0 --- /dev/null +++ b/src/modules/fastkmers.nf @@ -0,0 +1,28 @@ +/* + * normalize bam file + */ +process FASTKMERS { + tag "$meta.id" + label 'process_single' + + container "lbmc/fastkmers:025efdf" + + input: + tuple val(meta), path(fastq) + + output: + tuple val(meta), path("*.csv"), emit: csv + path "versions.yml" , emit: versions + + script: + def args = task.ext.args ?: '' + """ + fastkmers -k 31 ${fastq} > ${fastq.simpleName}.csv + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastkmers: \$(echo \$(fastkmers --version 2>&1)) + END_VERSIONS + """ +} diff --git a/src/nextflow.config b/src/nextflow.config new file mode 100644 index 0000000000000000000000000000000000000000..6b90004adb6f0db125091c0979e0f7ff32449819 --- /dev/null +++ b/src/nextflow.config @@ -0,0 +1,39 @@ +psmn { + charliecloud.enabled = true + charliecloud.cacheDir = "/Xnfs/abc/charliecloud" + charliecloud.readOnlyInputs = true + charliecloud.runOptions = "--bind /scratch:/scratch --bind /Xnfs:/Xnfs --bind /home:/home" + + process{ + errorStrategy = { sleep(Math.pow(2, task.attempt) * 200 as long); return 'retry' } + maxRetries = 3 + executor = "slurm" + queue = "Lake" + withLabel: big_mem_mono_cpus { + cpus = 1 + memory = "128GB" + time = "24h" + } + withLabel: big_mem_multi_cpus { + cpus = 32 + memory = "192GB" + time = "24h" + } + withLabel: small_mem_mono_cpus { + cpus = 1 + memory = "16GB" + time = "24h" + } + withLabel: small_mem_multi_cpus { + cpus = 32 + memory = "16GB" + time = "24h" + } + } + + params { + max_memory = 512.GB + max_cpus = 32 + max_time = 24.h + } +}