diff --git a/bin/src/cutsite_trimming.cpp b/bin/src/cutsite_trimming.cpp index d8ab26f1f522723bf34a8e16ee9cba19f7780da1..03cb20f3f74ff0282ad6560f029d0a9975fe517b 100644 --- a/bin/src/cutsite_trimming.cpp +++ b/bin/src/cutsite_trimming.cpp @@ -29,33 +29,33 @@ static int get_options(int argc, char* argv[], std::string& fastqFile, exit(usage()); } for (int ac = 1; ac < argc; ++ac) { - const char* opt = argv[ac]; - if (*opt == '-') { - if (!strcmp(opt, "--fastq")) { - fastqFile = std::string(argv[++ac]); - } - else if (!strcmp(opt, "--cutsite")) { - std::string cutSitesSequence; - cutSitesSequence = std::string(argv[++ac]); - size_t pos = cutSitesSequence.find(","); - size_t begin = 0; - while(pos != std::string::npos){ - cutSites.push_back(cutSitesSequence.substr(begin, pos - begin)); - begin = pos + 1; - pos = cutSitesSequence.find(",", begin + 1); - } - cutSites.push_back(cutSitesSequence.substr(begin, pos)); - } - else if (!strcmp(opt, "--out")) { - output = std::string(argv[++ac]); - } - else if (!strcmp(opt, "--rmuntrim")) { - rmuntrim = true; - } - }else { - std::cerr << prog << ": unknown option " << opt << std::endl; - return usage(); - } + const char* opt = argv[ac]; + if (*opt == '-') { + if (!strcmp(opt, "--fastq")) { + fastqFile = std::string(argv[++ac]); + } + else if (!strcmp(opt, "--cutsite")) { + std::string cutSitesSequence; + cutSitesSequence = std::string(argv[++ac]); + size_t pos = cutSitesSequence.find(","); + size_t begin = 0; + while(pos != std::string::npos){ + cutSites.push_back(cutSitesSequence.substr(begin, pos - begin)); + begin = pos + 1; + pos = cutSitesSequence.find(",", begin + 1); + } + cutSites.push_back(cutSitesSequence.substr(begin, pos)); + } + else if (!strcmp(opt, "--out")) { + output = std::string(argv[++ac]); + } + else if (!strcmp(opt, "--rmuntrim")) { + rmuntrim = true; + } + }else { + std::cerr << prog << ": unknown option " << opt << std::endl; + return usage(); + } } return 0; } diff --git a/conf/igenomes.config b/conf/igenomes.config index 99ae9dba917fd600df00efa6c4760b3e876ae73f..362d3625090d752449c0abc710ecaf1d0b4508f0 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -9,155 +9,155 @@ */ params { - // illumina iGenomes reference file paths - genomes { - 'GRCh37' { - fasta = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/Bowtie2Index/" + // illumina iGenomes reference file paths + genomes { + 'GRCh37' { + fasta = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/Bowtie2Index/" + } + 'GRCh38' { + fasta = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/Bowtie2Index/" + } + 'GRCm38' { + fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Bowtie2Index/" + } + 'TAIR10' { + fasta = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/Bowtie2Index/" + } + 'EB2' { + fasta = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/Bowtie2Index/" + } + 'UMD3.1' { + fasta = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/Bowtie2Index/" + } + 'WBcel235' { + fasta = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/Bowtie2Index/" + } + 'CanFam3.1' { + fasta = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/Bowtie2Index/" + } + 'GRCz10' { + fasta = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/Bowtie2Index/" + } + 'BDGP6' { + fasta = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/Bowtie2Index/" + } + 'EquCab2' { + fasta = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/Bowtie2Index/" + } + 'EB1' { + fasta = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/Bowtie2Index/" + } + 'Galgal4' { + fasta = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/Bowtie2Index/" + } + 'Gm01' { + fasta = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/Bowtie2Index/" + } + 'Mmul_1' { + fasta = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/Bowtie2Index/" + } + 'IRGSP-1.0' { + fasta = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/Bowtie2Index/" + } + 'CHIMP2.1.4' { + fasta = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/Bowtie2Index/" + } + 'Rnor_6.0' { + fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/Bowtie2Index/" + } + 'R64-1-1' { + fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/Bowtie2Index/" + } + 'EF2' { + fasta = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/Bowtie2Index/" + } + 'Sbi1' { + fasta = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/Bowtie2Index/" + } + 'Sscrofa10.2' { + fasta = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/Bowtie2Index/" + } + 'AGPv3' { + fasta = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/Bowtie2Index/" + } + 'hg38' { + fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/Bowtie2Index/" + } + 'hg19' { + fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/Bowtie2Index/" + } + 'mm10' { + fasta = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/Bowtie2Index/" + } + 'bosTau8' { + fasta = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/Bowtie2Index/" + } + 'ce10' { + fasta = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/Bowtie2Index/" + } + 'canFam3' { + fasta = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/Bowtie2Index/" + } + 'danRer10' { + fasta = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/Bowtie2Index/" + } + 'dm6' { + fasta = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/Bowtie2Index/" + } + 'equCab2' { + fasta = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/Bowtie2Index/" + } + 'galGal4' { + fasta = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/Bowtie2Index/" + } + 'panTro4' { + fasta = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/Bowtie2Index/" + } + 'rn6' { + fasta = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/Bowtie2Index/" + } + 'sacCer3' { + fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/Bowtie2Index/" + } + 'susScr3' { + fasta = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/WholeGenomeFasta/genome.fa" + bowtie2 = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/Bowtie2Index/" + } } - 'GRCh38' { - fasta = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/Bowtie2Index/" - } - 'GRCm38' { - fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Bowtie2Index/" - } - 'TAIR10' { - fasta = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/Bowtie2Index/" - } - 'EB2' { - fasta = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/Bowtie2Index/" - } - 'UMD3.1' { - fasta = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/Bowtie2Index/" - } - 'WBcel235' { - fasta = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/Bowtie2Index/" - } - 'CanFam3.1' { - fasta = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/Bowtie2Index/" - } - 'GRCz10' { - fasta = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/Bowtie2Index/" - } - 'BDGP6' { - fasta = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/Bowtie2Index/" - } - 'EquCab2' { - fasta = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/Bowtie2Index/" - } - 'EB1' { - fasta = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/Bowtie2Index/" - } - 'Galgal4' { - fasta = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/Bowtie2Index/" - } - 'Gm01' { - fasta = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/Bowtie2Index/" - } - 'Mmul_1' { - fasta = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/Bowtie2Index/" - } - 'IRGSP-1.0' { - fasta = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/Bowtie2Index/" - } - 'CHIMP2.1.4' { - fasta = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/Bowtie2Index/" - } - 'Rnor_6.0' { - fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/Bowtie2Index/" - } - 'R64-1-1' { - fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/Bowtie2Index/" - } - 'EF2' { - fasta = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/Bowtie2Index/" - } - 'Sbi1' { - fasta = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/Bowtie2Index/" - } - 'Sscrofa10.2' { - fasta = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/Bowtie2Index/" - } - 'AGPv3' { - fasta = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/Bowtie2Index/" - } - 'hg38' { - fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/Bowtie2Index/" - } - 'hg19' { - fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/Bowtie2Index/" - } - 'mm10' { - fasta = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/Bowtie2Index/" - } - 'bosTau8' { - fasta = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/Bowtie2Index/" - } - 'ce10' { - fasta = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/Bowtie2Index/" - } - 'canFam3' { - fasta = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/Bowtie2Index/" - } - 'danRer10' { - fasta = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/Bowtie2Index/" - } - 'dm6' { - fasta = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/Bowtie2Index/" - } - 'equCab2' { - fasta = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/Bowtie2Index/" - } - 'galGal4' { - fasta = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/Bowtie2Index/" - } - 'panTro4' { - fasta = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/Bowtie2Index/" - } - 'rn6' { - fasta = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/Bowtie2Index/" - } - 'sacCer3' { - fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/Bowtie2Index/" - } - 'susScr3' { - fasta = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/WholeGenomeFasta/genome.fa" - bowtie2 = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/Bowtie2Index/" - } - } } diff --git a/conf/modules.config b/conf/modules.config index 44ec6706090b6bcb18a54105e247a896db3a190d..f0311f6a918c284f844e531e4762884d4ef61338 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -1,282 +1,282 @@ process { - //Default - publishDir = [ - path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, - mode: 'copy', - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - - withName: 'CUSTOM_DUMPSOFTWAREVERSIONS' { + //Default publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: 'copy', - pattern: '*_versions.yml' + path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, + mode: 'copy', + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - } - //********************************************** - // PREPARE_GENOME - withName: 'BOWTIE2_BUILD' { - publishDir = [ - path: { "${params.outdir}/genome/bowtie2" }, - mode: 'copy', - enabled: params.save_reference - ] - } + withName: 'CUSTOM_DUMPSOFTWAREVERSIONS' { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: 'copy', + pattern: '*_versions.yml' + ] + } - withName: 'CUSTOM_GETCHROMSIZES' { - publishDir = [ - path: { "${params.outdir}/genome" }, - mode: 'copy', - enabled: params.save_reference - ] - } + //********************************************** + // PREPARE_GENOME + withName: 'BOWTIE2_BUILD' { + publishDir = [ + path: { "${params.outdir}/genome/bowtie2" }, + mode: 'copy', + enabled: params.save_reference + ] + } - withName: 'GET_RESTRICTION_FRAGMENTS' { - publishDir = [ - path: { "${params.outdir}/genome" }, - mode: 'copy', - enabled: params.save_reference - ] - } + withName: 'CUSTOM_GETCHROMSIZES' { + publishDir = [ + path: { "${params.outdir}/genome" }, + mode: 'copy', + enabled: params.save_reference + ] + } - //******************************************* - // HICPRO - withName: 'BOWTIE2_ALIGN' { - publishDir = [ - path: { "${params.outdir}/hicpro/mapping" }, - mode: 'copy', - enabled: params.save_aligned_intermediates - ] - ext.prefix = { params.split_fastq ? "${meta.chunk}_${meta.mates}" : "${meta.id}_${meta.mates}" } - ext.args = params.bwt2_opts_end2end ?: '' - ext.args2 = !params.dnase ? "-F 4" :"" - } + withName: 'GET_RESTRICTION_FRAGMENTS' { + publishDir = [ + path: { "${params.outdir}/genome" }, + mode: 'copy', + enabled: params.save_reference + ] + } - withName: 'TRIM_READS' { - publishDir = [ - path: { "${params.outdir}/hicpro/mapping/" }, - mode: 'copy', - enabled: params.save_aligned_intermediates - ] - } + //******************************************* + // HICPRO + withName: 'BOWTIE2_ALIGN' { + publishDir = [ + path: { "${params.outdir}/hicpro/mapping" }, + mode: 'copy', + enabled: params.save_aligned_intermediates + ] + ext.prefix = { params.split_fastq ? "${meta.chunk}_${meta.mates}" : "${meta.id}_${meta.mates}" } + ext.args = params.bwt2_opts_end2end ?: '' + ext.args2 = !params.dnase ? "-F 4" :"" + } - withName: 'BOWTIE2_ALIGN_TRIMMED' { - publishDir = [ - path: { "${params.outdir}/hicpro/mapping" }, - mode: 'copy', - enabled: params.save_aligned_intermediates - ] - ext.prefix = { params.split_fastq ? "${meta.chunk}_${meta.mates}_trimmed" : "${meta.id}_${meta.mates}_trimmed" } - ext.args = params.bwt2_opts_trimmed ?: '' - ext.args2 = "" - } + withName: 'TRIM_READS' { + publishDir = [ + path: { "${params.outdir}/hicpro/mapping/" }, + mode: 'copy', + enabled: params.save_aligned_intermediates + ] + } - withName: 'MERGE_BOWTIE2' { - publishDir = [ - path: { "${params.outdir}/hicpro/mapping" }, - mode: 'copy', - enabled: params.save_aligned_intermediates - ] - ext.prefix = { params.split_fastq ? "${meta.chunk}_${meta.mates}" : "${meta.id}_${meta.mates}" } - } + withName: 'BOWTIE2_ALIGN_TRIMMED' { + publishDir = [ + path: { "${params.outdir}/hicpro/mapping" }, + mode: 'copy', + enabled: params.save_aligned_intermediates + ] + ext.prefix = { params.split_fastq ? "${meta.chunk}_${meta.mates}_trimmed" : "${meta.id}_${meta.mates}_trimmed" } + ext.args = params.bwt2_opts_trimmed ?: '' + ext.args2 = "" + } - withName: 'COMBINE_MATES' { - publishDir = [ - path: { "${params.outdir}/hicpro/mapping" }, - mode: 'copy', - pattern: '*.bam' - ] - ext.args = [ - "-t", - params.keep_multi ? "--multi" : "", - params.min_mapq ? "-q ${params.min_mapq}" : "" - ].join(' ').trim() - ext.prefix = { params.split_fastq ? "${meta.chunk}" : "${meta.id}" } - } + withName: 'MERGE_BOWTIE2' { + publishDir = [ + path: { "${params.outdir}/hicpro/mapping" }, + mode: 'copy', + enabled: params.save_aligned_intermediates + ] + ext.prefix = { params.split_fastq ? "${meta.chunk}_${meta.mates}" : "${meta.id}_${meta.mates}" } + } - withName: 'GET_VALID_INTERACTION' { - publishDir = [ - path: { "${params.outdir}/hicpro/valid_pairs" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename}, - mode: 'copy', - enabled: params.save_pairs_intermediates - ] - ext.args = { [ - params.min_cis_dist > 0 ? " -d ${params.min_cis_dist}" : '', - params.min_insert_size > 0 ? " -s ${params.min_insert_size}" : '', - params.max_insert_size > 0 ? " -l ${params.max_insert_size}" : '', - params.min_restriction_fragment_size > 0 ? " -t ${params.min_restriction_fragment_size}" : '', - params.max_restriction_fragment_size > 0 ? " -m ${params.max_restriction_fragment_size}" : '', - params.save_interaction_bam ? " --sam" : '' - ].join(' ').trim() } - } + withName: 'COMBINE_MATES' { + publishDir = [ + path: { "${params.outdir}/hicpro/mapping" }, + mode: 'copy', + pattern: '*.bam' + ] + ext.args = [ + "-t", + params.keep_multi ? "--multi" : "", + params.min_mapq ? "-q ${params.min_mapq}" : "" + ].join(' ').trim() + ext.prefix = { params.split_fastq ? "${meta.chunk}" : "${meta.id}" } + } - withName: 'GET_VALID_INTERACTION_DNASE' { - publishDir = [ - path: { "${params.outdir}/hicpro/valid_pairs" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy', - enabled: params.save_pairs_intermediates - ] - ext.args = { params.min_cis_dist > 0 ? " -d ${params.min_cis_dist}" : "" } - } + withName: 'GET_VALID_INTERACTION' { + publishDir = [ + path: { "${params.outdir}/hicpro/valid_pairs" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename}, + mode: 'copy', + enabled: params.save_pairs_intermediates + ] + ext.args = { [ + params.min_cis_dist > 0 ? " -d ${params.min_cis_dist}" : '', + params.min_insert_size > 0 ? " -s ${params.min_insert_size}" : '', + params.max_insert_size > 0 ? " -l ${params.max_insert_size}" : '', + params.min_restriction_fragment_size > 0 ? " -t ${params.min_restriction_fragment_size}" : '', + params.max_restriction_fragment_size > 0 ? " -m ${params.max_restriction_fragment_size}" : '', + params.save_interaction_bam ? " --sam" : '' + ].join(' ').trim() } + } - withName: 'MERGE_VALID_INTERACTION' { - publishDir = [ - [ - path: { "${params.outdir}/hicpro/stats/${meta.id}" }, - mode: 'copy', - pattern: "*stat" - ], - [ - path: { "${params.outdir}/hicpro/valid_pairs" }, - mode: 'copy', - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - pattern: "*Pairs" - ] - ] - ext.args = { params.keep_dups ? '' : '-d' } - } + withName: 'GET_VALID_INTERACTION_DNASE' { + publishDir = [ + path: { "${params.outdir}/hicpro/valid_pairs" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy', + enabled: params.save_pairs_intermediates + ] + ext.args = { params.min_cis_dist > 0 ? " -d ${params.min_cis_dist}" : "" } + } - withName: 'MERGE_STATS' { - publishDir = [ - path: { "${params.outdir}/hicpro/stats/${meta.id}" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy', - pattern: "*stat" - ] - } + withName: 'MERGE_VALID_INTERACTION' { + publishDir = [ + [ + path: { "${params.outdir}/hicpro/stats/${meta.id}" }, + mode: 'copy', + pattern: "*stat" + ], + [ + path: { "${params.outdir}/hicpro/valid_pairs" }, + mode: 'copy', + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + pattern: "*Pairs" + ] + ] + ext.args = { params.keep_dups ? '' : '-d' } + } - withName: 'HICPRO2PAIRS' { - publishDir = [ - path: { "${params.outdir}/hicpro/valid_pairs/pairix/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - } + withName: 'MERGE_STATS' { + publishDir = [ + path: { "${params.outdir}/hicpro/stats/${meta.id}" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy', + pattern: "*stat" + ] + } - withName: 'BUILD_CONTACT_MAPS' { - publishDir = [ - path: { "${params.outdir}/hicpro/matrix/raw" }, - mode: 'copy', - enabled: params.hicpro_maps - ] - } + withName: 'HICPRO2PAIRS' { + publishDir = [ + path: { "${params.outdir}/hicpro/valid_pairs/pairix/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + } - withName: 'ICE_NORMALIZATION' { - publishDir = [ - path: { "${params.outdir}/hicpro/matrix/iced" }, - mode: 'copy', - enabled: params.hicpro_maps - ] - } + withName: 'BUILD_CONTACT_MAPS' { + publishDir = [ + path: { "${params.outdir}/hicpro/matrix/raw" }, + mode: 'copy', + enabled: params.hicpro_maps + ] + } - //***************************************** - // QUALITY METRICS + withName: 'ICE_NORMALIZATION' { + publishDir = [ + path: { "${params.outdir}/hicpro/matrix/iced" }, + mode: 'copy', + enabled: params.hicpro_maps + ] + } - withName: 'HIC_PLOT_DIST_VS_COUNTS'{ - publishDir = [ - path: { "${params.outdir}/distance_decay/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - } + //***************************************** + // QUALITY METRICS - //***************************************** - // COOLER + withName: 'HIC_PLOT_DIST_VS_COUNTS'{ + publishDir = [ + path: { "${params.outdir}/distance_decay/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + } - withName: 'COOLER_MAKEBINS' { - publishDir = [ - path: { "${params.outdir}/contact_maps/bins/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - } + //***************************************** + // COOLER - withName: 'COOLER_CLOAD' { - publishDir = [ - path: { "${params.outdir}/contact_maps/cool/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy', - enabled : params.save_raw_maps - ] - ext.args = "pairs -c1 2 -p1 3 -c2 4 -p2 5" - } + withName: 'COOLER_MAKEBINS' { + publishDir = [ + path: { "${params.outdir}/contact_maps/bins/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + } - withName: 'COOLER_BALANCE' { - publishDir = [ - path: { "${params.outdir}/contact_maps/cool/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - ext.args = '--force' - } + withName: 'COOLER_CLOAD' { + publishDir = [ + path: { "${params.outdir}/contact_maps/cool/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy', + enabled : params.save_raw_maps + ] + ext.args = "pairs -c1 2 -p1 3 -c2 4 -p2 5" + } - withName: 'COOLER_DUMP' { - publishDir = [ - enabled: false - ] - ext.prefix = { "${cool.baseName}" } - ext.args = "--one-based-ids --balanced --na-rep 0" - } + withName: 'COOLER_BALANCE' { + publishDir = [ + path: { "${params.outdir}/contact_maps/cool/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + ext.args = '--force' + } - withName:'SPLIT_COOLER_DUMP' { - publishDir = [ - [ - path: { "${params.outdir}/contact_maps/txt/" }, - mode: 'copy', - pattern: "*_raw.txt", - enabled: params.save_raw_maps - ], - [ - path: { "${params.outdir}/contact_maps/txt/" }, - mode: 'copy', - pattern: "*_balanced.txt" - ] - ] - } + withName: 'COOLER_DUMP' { + publishDir = [ + enabled: false + ] + ext.prefix = { "${cool.baseName}" } + ext.args = "--one-based-ids --balanced --na-rep 0" + } - withName: 'COOLER_ZOOMIFY' { - publishDir = [ - path: { "${params.outdir}/contact_maps/cool/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - ext.args = "--balance" - } + withName:'SPLIT_COOLER_DUMP' { + publishDir = [ + [ + path: { "${params.outdir}/contact_maps/txt/" }, + mode: 'copy', + pattern: "*_raw.txt", + enabled: params.save_raw_maps + ], + [ + path: { "${params.outdir}/contact_maps/txt/" }, + mode: 'copy', + pattern: "*_balanced.txt" + ] + ] + } - //******************************** - // COMPARTMENTS + withName: 'COOLER_ZOOMIFY' { + publishDir = [ + path: { "${params.outdir}/contact_maps/cool/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + ext.args = "--balance" + } - withName: 'CALL_COMPARTMENTS' { - publishDir = [ - path: { "${params.outdir}/compartments/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - ext.args = '--bigwig' - } + //******************************** + // COMPARTMENTS - //******************************** - // TADS + withName: 'CALL_COMPARTMENTS' { + publishDir = [ + path: { "${params.outdir}/compartments/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + ext.args = '--bigwig' + } - withName: 'INSULATION' { - publishDir = [ - path: { "${params.outdir}/tads/insulation/" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - ext.args = '15 25 50 --window-pixels' - } + //******************************** + // TADS - withName: 'HIC_FIND_TADS' { - publishDir = [ - path: { "${params.outdir}/tads/hicExplorer" }, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, - mode: 'copy' - ] - ext.args = '--correctForMultipleTesting fdr' - } + withName: 'INSULATION' { + publishDir = [ + path: { "${params.outdir}/tads/insulation/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + ext.args = '15 25 50 --window-pixels' + } + + withName: 'HIC_FIND_TADS' { + publishDir = [ + path: { "${params.outdir}/tads/hicExplorer" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + mode: 'copy' + ] + ext.args = '--correctForMultipleTesting fdr' + } } diff --git a/conf/test.config b/conf/test.config index 47fb1674bfeb91da46f1a630ddf59988edc56967..59059aa6a4c826bb9c384a4234d9a2574c92daff 100644 --- a/conf/test.config +++ b/conf/test.config @@ -11,35 +11,32 @@ */ params { - config_profile_name = 'Hi-C test data from Schalbetter et al. (2017)' - config_profile_description = 'Minimal test dataset to check pipeline function' + config_profile_name = 'Hi-C test data from Schalbetter et al. (2017)' + config_profile_description = 'Minimal test dataset to check pipeline function' - // Limit resources so that this can run on Travis - max_cpus = 2 - max_memory = 4.GB - max_time = 1.h + // Limit resources so that this can run on Travis + max_cpus = 2 + max_memory = 4.GB + max_time = 1.h - // Input data - //input_paths = [ - // ['SRR4292758_00', ['https://github.com/nf-core/test-datasets/raw/hic/data/SRR4292758_00_R1.fastq.gz', 'https://github.com/nf-core/test-datasets/raw/hic/data/SRR4292758_00_R2.fastq.gz']] - // ] - input = "${baseDir}/assets/samplesheet.csv" + // Input data + input = "${baseDir}/assets/samplesheet.csv" - // Annotations - fasta = 'https://github.com/nf-core/test-datasets/raw/hic/reference/W303_SGD_2015_JRIU00000000.fsa' - digestion = 'hindiii' - min_mapq = 10 - min_restriction_fragment_size = 100 - max_restriction_fragment_size = 100000 - min_insert_size = 100 - max_insert_size = 600 + // Annotations + fasta = 'https://github.com/nf-core/test-datasets/raw/hic/reference/W303_SGD_2015_JRIU00000000.fsa' + digestion = 'hindiii' + min_mapq = 10 + min_restriction_fragment_size = 100 + max_restriction_fragment_size = 100000 + min_insert_size = 100 + max_insert_size = 600 - bin_size = '2000,1000' - res_dist_decay = '1000' - res_tads = '1000' - tads_caller = 'insulation,hicexplorer' - res_compartments = '2000' + bin_size = '2000,1000' + res_dist_decay = '1000' + res_tads = '1000' + tads_caller = 'insulation,hicexplorer' + res_compartments = '2000' - // Ignore `--input` as otherwise the parameter validation will throw an error - schema_ignore_params = 'genomes,digest,input_paths,input' + // Ignore `--input` as otherwise the parameter validation will throw an error + schema_ignore_params = 'genomes,digest,input_paths,input' }