diff --git a/modif b/modif new file mode 100644 index 0000000000000000000000000000000000000000..68d4db483a3d8f917eda6ccb236bb7d728b4dd31 --- /dev/null +++ b/modif @@ -0,0 +1,7 @@ +FASTP + +Change of --qualified_quality_phred 20 to --qualified_quality_phred 30 in fastp process made by Laurent + +KB + +Add parameter to allow the user to change the 10X chemistery version diff --git a/src/dev_scan10.nf b/src/dev_scan10.nf index 40c201b6d86eba7d62d89811ba6f1a1883260241..cac4aec855bd4899ed8d3d9c400ab3734a37a906 100644 --- a/src/dev_scan10.nf +++ b/src/dev_scan10.nf @@ -261,8 +261,63 @@ workflow { //////////// Sub Workflow /* +workflow CR_analysis_mkgtf_skip{ +take: + fastq_files + fasta_files + gtf_files + +main: + + fastp(fastq_files) + cellranger_mkgtf(gtf_files) + cellranger_mkref(fasta_files,cellranger_mkgtf.out.filtered_gtf) + cellranger_count(fastp.out.fastq,cellranger_mkref.out.index.collect()) + r_cr_QC(cellranger_count.out.counts) + normalization_sanity(r_cr_QC.out.raw_filtered_mtx) + +emit: + trimmed_fastq = fastp.out.fastq + filtered_gtf=cellranger_mkgtf.out.filtered_gtf + cellranger_index=cellranger_mkref.out.index + cellranger_counts=cellranger_count.out.counts + cellranger_report=cellranger_count.out.report + seu_filtered = r_cr_QC.out.seu_obj + filtered_matrix = r_cr_QC.out.raw_filtered_mtx + normalized_matrix = normalization_sanity.out.normalize_filtered_mtx +} + +workflow CR_analysis_mkgtf{ +take: + fastq_files + fasta_files + gtf_files + +main: + + fastp(fastq_files) + cellranger_mkgtf(gtf_files) + cellranger_mkref(fasta_files,cellranger_mkgtf.out.filtered_gtf) + cellranger_count(fastp.out.fastq,cellranger_mkref.out.index.collect()) + r_cr_QC(cellranger_count.out.counts) + normalization_sanity(r_cr_QC.out.raw_filtered_mtx) + rviz(normalization_sanity.out.normalize_filtered_mtx,r_cr_QC.out.seu_obj) + +emit: + trimmed_fastq = fastp.out.fastq + filtered_gtf=cellranger_mkgtf.out.filtered_gtf + cellranger_index=cellranger_mkref.out.index + cellranger_counts=cellranger_count.out.counts + cellranger_report=cellranger_count.out.report + seu_filtered = r_cr_QC.out.seu_obj + filtered_matrix = r_cr_QC.out.raw_filtered_mtx + normalized_matrix = normalization_sanity.out.normalize_filtered_mtx + seu_obj_final = rviz.out.seu_filt_nor_obj + + +} workflow CR_QC{ @@ -298,7 +353,7 @@ workflow CR_QC_skip{ } - +// All the analysis with cellranger workflow CR_analysis{ take: fastq_files diff --git a/src/nf_modules/fastp/main.nf b/src/nf_modules/fastp/main.nf index 45ee8f9b6c593a6bd008eb40e6de4a71800296db..b10ed3a54d4d71917700fedce4157310b8ff28f6 100644 --- a/src/nf_modules/fastp/main.nf +++ b/src/nf_modules/fastp/main.nf @@ -59,7 +59,7 @@ publishDir "results/fastp_out", mode: 'copy' if (reads.size() == 2) """ fastp --thread ${task.cpus} \ - --qualified_quality_phred 20 \ + --qualified_quality_phred 30 \ --disable_length_filtering \ --detect_adapter_for_pe \ ${params.fastp} \ @@ -74,7 +74,7 @@ publishDir "results/fastp_out", mode: 'copy' else """ fastp --thread ${task.cpus} \ - --qualified_quality_phred 20 \ + --qualified_quality_phred 30 \ --disable_length_filtering \ --detect_adapter_for_pe \ ${params.fastp} \ diff --git a/src/nf_modules/kb/main.nf b/src/nf_modules/kb/main.nf index e5ea0c66d3b47f27035bf5c1fb9daac720131b3c..1e6ecf50a7154d84e1341055c8c57b57552626ce 100644 --- a/src/nf_modules/kb/main.nf +++ b/src/nf_modules/kb/main.nf @@ -136,6 +136,8 @@ workflow count { report = res_report } +params.version_chemistery="" + process kb_default { container = "${container_url}" label "big_mem_multi_cpus" @@ -183,7 +185,7 @@ publishDir "results/kb_out", mode: 'copy' -g ${transcript_to_gene} \ -o ${file_prefix} \ ${whitelist_param} \ - -x 10XV3 \ + -x ${params.version_chemistery} \ --h5ad \ ${params.count} \ ${reads[0]} ${reads[1]} > ${file_prefix}_kb_mapping_report.txt @@ -343,6 +345,7 @@ workflow count_velocity { report = res_report } + process velocity_default { container = "${container_url}" label "big_mem_multi_cpus" @@ -385,7 +388,7 @@ process velocity_default { -c2 ${intron_t2g} \ --workflow lamanno \ ${whitelist_param} \ - -x 10XV3 \ + -x ${params.version_chemistery} \ --h5ad \ --mm \ ${params.count} \ diff --git a/src/scan10.nf b/src/scan10.nf index 7e3f5392713d5d542e6b1a6efdd17f8dab30c00e..44f88e4c84a6af1fb65a9f79afa470d8be9651c7 100644 --- a/src/scan10.nf +++ b/src/scan10.nf @@ -10,7 +10,7 @@ log.info scan10Header() params.fastq = "" params.transcript_to_gene = "" -params.whitelist = "./data/whitelist_10X/10x_V3_barcode_whitelist.txt" +params.chemistery="V3" params.config = "" params.nexp=0.023 params.cp=10 @@ -28,14 +28,18 @@ params.fasta="" params.gtf="" params.vis="umap" +whitelist = "./data/whitelist_10X/10x_${params.chemistery}_barcode_whitelist.txt" +kb_chemistery= "10X${params.chemistery}" + + include {tr2g} from "./nf_modules/r_tr2g/main.nf" -include {index_default;count } from "./nf_modules/kb/main.nf" +include {index_default;count;index_fasta_velocity_default;velocity_default } from "./nf_modules/kb/main.nf" addParams(version_chemistery:kb_chemistery) include {r_cr_QC } from "./nf_modules/r_cr_QC/main.nf" addParams(mit: params.mit,nfeature_min: params.min_feature, min_cells:params.min_cells,min_feature:params.min_feature, nfeature_max: params.nfeature_max, ncount_min: params.ncount) include {normalization_sanity } from "./nf_modules/sanity/main.nf" include {rviz } from "./nf_modules/rvisualization/main.nf" addParams(cp: params.cp, reso: params.reso,vis: params.vis) -include { fastp } from "./nf_modules/fastp/main.nf" addParams( qualified_quality_phred: 30) +include { fastp } from "./nf_modules/fastp/main.nf" include {r_kb_QC } from "./nf_modules/r_kb_QC/main.nf" addParams(mit: params.mit,nfeature_min: params.min_feature,min_cells:params.min_cells,min_feature:params.min_feature, nfeature_max: params.nfeature_max, ncount_min: params.ncount) include {cellranger_mkgtf;cellranger_mkref;cellranger_count } from "./nf_modules/cellranger/main.nf" @@ -106,15 +110,11 @@ else { -if (params.whitelist == "") { - channel.empty() - .set { whitelist_files } -} else { - channel - .fromPath( params.whitelist ) - .map { it -> [it.simpleName, it]} - .set { whitelist_files } -} +Channel +.fromPath( whitelist ) +.map { it -> [it.simpleName, it]} +.set { whitelist_files } + if (params.config == "") { channel.empty() @@ -130,7 +130,7 @@ if (params.config == "") { log.info "fastq files (--fastq): ${params.fastq}" -log.info "whitelist file (--whitelist): ${params.whitelist}" +log.info "whitelist file (--whitelist): ${whitelist}" log.info "% of Mitochondrial counts maximum in a cell (--mit): ${params.mit}" log.info "Number of feature maximum in a cell cutoff (--nfeature_max): ${params.nfeature_max}" log.info "N doublet expect (--nexp): ${params.nexp}"