diff --git a/Run_GeVarLi.sh b/Run_GeVarLi.sh index b0fc8bf19c88f0b47ea0c6248fe5d975346411c2..5bcf2c4edaeb88621a1b68b3ad13a78b476fa601 100755 --- a/Run_GeVarLi.sh +++ b/Run_GeVarLi.sh @@ -10,12 +10,12 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ Run_GeVarLi.sh -# Version ________________ v.2025.03 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Bash script running GeVarLi snakefile # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 +# Latest modifications ___ 2025.04.04 # Use ____________________ '. Run_GeVarLi.sh' ############################################################################### @@ -106,28 +106,28 @@ then # If 'exist' ENV_YAML="${workdir}/workflow/envs/workflow-core.yaml" CURRENT_ENV=$(conda env export --no-builds --name workflow-core | grep -v '^prefix:') EXPECTED_ENV=$(grep -v '^prefix:' "$ENV_YAML") - if false #diff <(echo "$CURRENT_ENV") <(echo "$EXPECTED_ENV") > /dev/null - then # If 'up-to-date' - echo -e "\n ${ylo}Workflow-Core${nc} environment is already up-to-date." - else # If 'not' up-to-date - if [[ $network == "Offline" ]] - then # If 'offline' - echo -e "\n Cannot update ${ylo}Workflow-Core${nc} environment. - ${green}Network${nc}: ${red}${network}${nc}." - else # If 'online' - echo -e "\n Updating ${ylo}Workflow-Core${nc} environment. \n" - run_with_spinner \ - conda env update \ - --prune \ - --name workflow-core \ - --file $ENV_YAML - fi - fi + #if false #diff <(echo "$CURRENT_ENV") <(echo "$EXPECTED_ENV") > /dev/null + #hen # If 'up-to-date' + # echo -e "\n ${ylo}Workflow-Core${nc} environment is already up-to-date." + #else # If 'not' up-to-date + # if [[ $network == "Offline" ]] + # then # If 'offline' + # echo -e "\n Cannot update ${ylo}Workflow-Core${nc} environment. + # ${green}Network${nc}: ${red}${network}${nc}." + # else # If 'online' + # echo -e "\n Updating ${ylo}Workflow-Core${nc} environment. \n" + # run_with_spinner \ + # conda env update \ + # --prune \ + # --name workflow-core \ + # --file $ENV_YAML + # fi + #fi else # If 'not' exist echo -e "\n ${ylo}Workflow-Core${nc} conda environment not found." if [[ $network == "Online" ]] then # If 'online' - echo -e "\n ${ylo}Workflow-Core${nc} conda environment will be create, with: + echo -e "\n ${ylo}Workflow-Core${nc} conda environment will be created, with: > ${red}Snakemake${nc} > ${red}Snakedeploy${nc} > ${red}Snakemake Slurm plugin${nc} \n" @@ -176,12 +176,14 @@ echo -e "\n ${green} > Snakemake: list conda environments${nc} \n" snakemake \ --directory ${workdir}/ \ --snakefile ${workdir}/workflow/Snakefile \ + --rerun-incomplete \ --list-conda-envs echo -e "\n ${green} > Snakemake: create conda environments${nc} \n" snakemake \ --directory ${workdir}/ \ --snakefile ${workdir}/workflow/Snakefile \ + --rerun-incomplete \ --conda-create-envs-only \ --use-conda @@ -189,6 +191,7 @@ echo -e "\n ${green} > Snakemake: dry run${nc} \n" snakemake \ --directory ${workdir}/ \ --snakefile ${workdir}/workflow/Snakefile \ + --rerun-incomplete \ --use-conda \ --dry-run \ --quiet host rules @@ -197,8 +200,6 @@ echo -e "\n ${green} > Snakemake: run${nc} \n" snakemake \ --directory ${workdir}/ \ --snakefile ${workdir}/workflow/Snakefile \ - --cores ${max_threads} \ - --resources mem_gb=${max_memory} \ --rerun-incomplete \ --keep-going \ --use-conda \ @@ -213,3 +214,4 @@ echo -e "\n Deactivate ${ylo}Workflow-Core${nc} conda environment." conda deactivate ############################################################################### +############################################################################### diff --git a/config/config.yaml b/config/config.yaml index 77c37416299bb556a796bf5520f00722bab85646..22305adcfc93d924d9f71242c028d322749cc70d 100755 --- a/config/config.yaml +++ b/config/config.yaml @@ -10,13 +10,14 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ config.yaml -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Configuration yaml file for gevarli.smk snakefile # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 +# Latest modifications ___ 2025.04.04 # Use ____________________ Edit default settings +############################################################################### ############################################################################### ################################## GENERAL #################################### @@ -27,84 +28,76 @@ fastq_dir: 'resources/reads/' # Path to reads fastq.gz files (default: 'resource modules: # GeVarLi analysis modules, set 'true' or 'false' [BOOL] qualities: true # Perform reads quality controls (FastQC, Fastq-Screen) (default: true) keeptrim: false # Keep trimmed reads files (Cutadapt / Sickle-trim) (default: false) - clipping: false # Perform reads clipping (Bamclipper) (default: false) + clipping: true # Perform reads clipping (iVar) (default: false) covstats: true # Perform coverage statistics (Fagstat, Covstats) (default: true) consensus: true # Perform reads mapping to reference (BWA, Minimap2, Bowtie2) (default: true) lineages: true # Perform clade and lineage assignations (Nexclade, Pangolin) (default: true) gisaid: false # Perform gisaid submission template (GisAid : TODO) (default: false) -consensus: - reference: 'SARS-CoV-2_Wuhan_MN908947.3' # Your reference, in fasta format (default: 'SARS-CoV-2_Wuhan_MN-908947-3') [STR] - # Available options (not exhaustive): - ##- 'SARS-CoV-2_Wuhan_MN908947.3' # SARS-CoV-2 (with Nextclade and Pangolin)(default) - ### - ##- 'Monkeypox-virus_Zaire_AF380138.1' # Monkeypox [MPXV] (with Nextclade and Pangolin) - ##- 'Monkeypox-virus_UK_MT903345.1' # Monkeypox [MPXV] (with Nextclade and Pangolin) - ##- 'Swinepox-virus_India_MW036632.1' # Swinepox [SPXV] (with Nextclade) - ### - ##- 'Ebola-virus_Zaire_AF272001.1' # Ebola [EBOV] - ##- 'Ebola-virus_Sudan_MH121162.1' # Ebola [EBOV] - ##- 'Marburg-virus_NC001608.3' # Marburg [MarV] - ### - ##- 'Measles-virus_Ichinose-B95a_NC001498.1' # Measles [MeV] - ##- 'Measles-virus_B3_Khartoum-Sudan_MG912590.1' # Measles [MeV] - ##- 'Measles-virus_B3_Kole-Uganda_ON642796.1' # Measles [MeV] - ##- 'Measles-virus_B3_Bura-Kenya_MZ615446.1_partial' # Measles [MeV] - ##- 'Measles-virus_C2_Netherland-Bilthoven_MG912589.1' # Measles [MeV] - ##- 'Measles-virus_H1_Netherland-Amsterdam_MG912594.1' # Measles [MeV] - ### - ##- 'Lassa-virus_NC004297.1_Seg-L' # Lassa Josiah L - ##- 'Lassa-virus_NC004297.1_Seg-S' # Lassa Josiah S - ##- 'Lassa-virus_Guinea_Faranah_MG812684.1_Seg-L' # Lassa Guinea L - ##- 'Lassa-virus_Guinea_Faranah_MG812685.1_Seg-S' # Lassa Guinea S - ##- 'Lassa-virus_Benin_Ben-16131_MT193231.1_Seg-L' # Lassa Benin L - ##- 'Lassa-virus_Benin_Ben-16131_MT193282.1_Seg-S' # Lassa Benin S - ### - ##- 'Chikungunya-virus_HM045817.1' # Chikungunya [CHIKV] - ##- 'Dengue-virus-1_NC001477.1' # Dengue 1 - ##- 'Dengue-virus-2_NC001474.2' # Dengue 2 - ##- 'Dengue-virus-3_NC001475.2' # Dengue 3 - ##- 'Dengue-virus-4_NC002640.1' # Dengue 4 - ##- 'West-Nile-virus_M12294.2' # West Nile [WNV] - ##- 'Zika-virus_French-Polynesia_KX369547.1' # Zika [ZV] - ### - ##- 'Nipah-virus_Malaysia_AJ564622.1' # Nipah - ### - ##- 'Human-herpesvirus-5_NC006273.2' # Herpes [HCMV] - ##- 'Human-herpesvirus-3_NC001348.1' # Varicella [VZV] - ##- 'Human-adenovirus-A_NC001460.1' # Adeno - ##- 'Human-enterovirus-68_AY426531.1' # Entero - ### - ##- 'HIV-1_HXB2_K03455.1' # HIV-1 [HIV] - - min_cov: '30' # Minimum coverage, mask lower regions with "N" (default: '30') [INT] - # Available options (not exhaustive): - ##- '100' # 100 x : for greater coverage - ##- '30' # 30 X : for AFROSCREEN SARS-CoV-2 consortium, with Illumina amplicons sequencing (default) - ##- '10' # 10 X : for some applications... - ##- '3' # 3 X : only for exploration! - ##- '1' # 1 X : not recommanded - min_freq: '0.2' # Minimum allele frequency allowed (default: "0.2") [FLOAT] *** LoFreq *** - iupac: '--iupac-code' # Output variants in the form of IUPAC ambiguity codes (default: "activate") - # Available options, set only one: - ##- '--iupac-code' # Activate (default) - ##- '' # Deactivate +tools: mapper: 'bwa' # Select your favorite mapper (default: 'bwa') # Available options: ##- 'bwa' # Better, faster (default) ##- 'bowtie2' # Slower, "sensitivity" requiried (see below "Bowtie2" options) ##- 'minimap2' # Versatile - caller: 'ivar' + caller: 'ivar' # Select your favorite variant caller (default: 'ivar') + # Available options: + ##- 'ivar' # iVar: a toolkit for analysis of viral NGS data (default) assigner: 'nextclade' # Select your favorite clades / lineages assigner (default: 'nextclade') # Available options: ##- 'nextclade' # Clade assignment, mutation calling, phylogenetic placement and quality checks (default) ##- 'pangolin' # PANGO: Phylogenetic Assignment of Named Global Outbreak Lineages +reference: 'SARS-CoV-2_Wuhan_MN908947.3' # Your reference, in fasta format (default: 'SARS-CoV-2_Wuhan_MN-908947-3') [STR] +# Available options (not exhaustive): + ##- 'SARS-CoV-2_Wuhan_MN908947.3' # SARS-CoV-2 (with Nextclade and Pangolin)(default) + ### + ##- 'Monkeypox-virus_Zaire_AF380138.1' # Monkeypox [MPXV] (with Nextclade and Pangolin) + ##- 'Monkeypox-virus_UK_MT903345.1' # Monkeypox [MPXV] (with Nextclade and Pangolin) + ##- 'Swinepox-virus_India_MW036632.1' # Swinepox [SPXV] (with Nextclade) + ### + ##- 'Ebola-virus_Zaire_AF272001.1' # Ebola [EBOV] + ##- 'Ebola-virus_Sudan_MH121162.1' # Ebola [EBOV] + ##- 'Marburg-virus_NC001608.3' # Marburg [MarV] + ### + ##- 'Measles-virus_Ichinose-B95a_NC001498.1' # Measles [MeV] + ##- 'Measles-virus_B3_Khartoum-Sudan_MG912590.1' # Measles [MeV] + ##- 'Measles-virus_B3_Kole-Uganda_ON642796.1' # Measles [MeV] + ##- 'Measles-virus_B3_Bura-Kenya_MZ615446.1_partial' # Measles [MeV] + ##- 'Measles-virus_C2_Netherland-Bilthoven_MG912589.1' # Measles [MeV] + ##- 'Measles-virus_H1_Netherland-Amsterdam_MG912594.1' # Measles [MeV] + ### + ##- 'Lassa-virus_NC004297.1_Seg-L' # Lassa Josiah L + ##- 'Lassa-virus_NC004297.1_Seg-S' # Lassa Josiah S + ##- 'Lassa-virus_Guinea_Faranah_MG812684.1_Seg-L' # Lassa Guinea L + ##- 'Lassa-virus_Guinea_Faranah_MG812685.1_Seg-S' # Lassa Guinea S + ##- 'Lassa-virus_Benin_Ben-16131_MT193231.1_Seg-L' # Lassa Benin L + ##- 'Lassa-virus_Benin_Ben-16131_MT193282.1_Seg-S' # Lassa Benin S + ### + ##- 'Chikungunya-virus_HM045817.1' # Chikungunya [CHIKV] + ##- 'Dengue-virus-1_NC001477.1' # Dengue 1 + ##- 'Dengue-virus-2_NC001474.2' # Dengue 2 + ##- 'Dengue-virus-3_NC001475.2' # Dengue 3 + ##- 'Dengue-virus-4_NC002640.1' # Dengue 4 + ##- 'West-Nile-virus_M12294.2' # West Nile [WNV] + ##- 'Zika-virus_French-Polynesia_KX369547.1' # Zika [ZV] + ### + ##- 'Nipah-virus_Malaysia_AJ564622.1' # Nipah + ### + ##- 'Human-herpesvirus-5_NC006273.2' # Herpes [HCMV] + ##- 'Human-herpesvirus-3_NC001348.1' # Varicella [VZV] + ##- 'Human-adenovirus-A_NC001460.1' # Adeno + ##- 'Human-enterovirus-68_AY426531.1' # Entero + ### + ##- 'HIV-1_HXB2_K03455.1' # HIV-1 [HIV] + ### + ##- 'your_custom_reference' # Add your custom reference + ############################################################################### -################################### GISAID #################################### +################################ SUBMISSIONS ################################## ############################################################################### -gisaid: ## TODO ## +gisaid: ##TODO## username: 'username' threshold: '30' name: 'hCoV-19' @@ -119,52 +112,110 @@ gisaid: ## TODO ## nextclade: path: 'resources/nextclade/' # Path to nextclade datasets (default: "resources/nextclade/") dataset: 'sars-cov-2' # Nextclade dataset + # Available options (not exhaustive), set only one: + ##- 'sars-cov-2' # SARS-CoV-2 (default) + ##- 'MPXV' # MPox - all clades + ##- 'hMPXV' # human MPox + ##- 'hMPXV_B1' # human MPox - only lineage B1* + +############################################################################### +################################# CONSENSUS ################################### +############################################################################### + +consensus: + min_depth: '30' # Minimum coverage, mask lower regions with "N" (default: '10', recomanded: '30') [INT] # Available options (not exhaustive): - #- 'sars-cov-2' # SARS-CoV-2 (default) - #- 'MPXV' # MPox - all clades - #- 'hMPXV' # human MPox - #- 'hMPXV_B1' # human MPox - only lineage B1* + ##- '100' # 100 X : for greater coverage + ##- '60' # 30 X : for better coverage + ##- '30' # 30 X : for AFROSCREEN SARS-CoV-2 consortium, with Illumina amplicons sequencing (recomanded) + ##- '10' # 10 X : for some applications (default) + ##- '3' # 3 X : only for exploration... + ##- '1' # 1 X : not recommanded! + + max_depth: '0' # Max per-file depth; avoids excessive memory usage (default: '8000', recomanded "0") [INT] + # Passing zero for this option sets it to the highest possible value, effectively removing the depth limit. + + min_freq: '0.2' # Minimum allele frequency allowed (default: "0.2") [FLOAT] + min_insert: '0' # Minimum insertion frequency threshold (0 to 1) to call consensus [FLOAT] (Default: 0.8) + + map_qual: '--no-BAQ' # Disable BAQ, per-Base Alignment Quality (default: '--no-BAQ') + # Available options, set only one: + ##- '--no-BAQ' # no, don't merge mapping quality: disable (default, recommanded with Samtools) + ##- '' # yes, merge mapping quality: enable (not recommanded with Samtools) + min_bq: '0' # -Q: Skip bases with baseQ/BAQ smaller than (default: '13', recomanded: '0') [INT] + min_qual: '0' # -q: Minimum quality score threshold to count base (Default: '20', recomanded: '0') [INT] ############################################################################### ################################## VARIANTS ################################### ############################################################################### -ivar: - #min_depth: '0' # Minimum read depth to call variants (Default: '0') [INT] *** iVar *** - #min_freq: '0.03' # Minimum frequency threshold to call variants (Default: '0.03') [FLOAT] *** iVar *** - #min_insert: '0.8' # Minimum insertion frequency threshold to call variants (Default: '0.8') [FLOAT] *** iVar *** - max_depth: '1000000' # Max per-file depth; avoids excessive memory usage (default: '8000', recomanded "1000000") [INT] - min_bq: '0' # -Q: Skip bases with baseQ/BAQ smaller than (default: '13', recomanded: '0') [INT] - min_qual: '0' # -q: Minimum quality score threshold to count base (Default: '20', recomanded: '0') [INT] - map_qual: '--no-BAQ' # Disable BAQ, per-Base Alignment Quality (default: '--no-BAQ' (disable)) - # Available options: - ##- '--no-BAQ' # no, don't merge mapping quality: disable (default) +variant: + min_depth: '30' # Minimum coverage, mask lower regions with "N" (default: '10', recomanded: '30') [INT] + # Available options (not exhaustive): + ##- '100' # 100x : for greater coverage + ##- '60' # 30x : for better coverage + ##- '30' # 30x : for AFROSCREEN SARS-CoV-2 consortium, with Illumina amplicons sequencing (recomanded) + ##- '10' # 10x : for some applications (default) + ##- '3' # 3x : only for exploration... + ##- '1' # 1x : not recommanded! + + max_depth: '0' # Max per-file depth; avoids excessive memory usage (default: '8000', recomanded "0") [INT] + # Passing zero for this option sets it to the highest possible value, effectively removing the depth limit. + + min_freq: '0.2' # Minimum allele frequency allowed (default: "0.2") [FLOAT] + min_insert: '0' # Minimum insertion frequency threshold (0 to 1) to call consensus [FLOAT] (Default: 0.8) + + map_qual: '--no-BAQ' # Disable BAQ, per-Base Alignment Quality (default: '--no-BAQ') + # Available options, set only one: + ##- '--no-BAQ' # no, don't merge mapping quality: disable (default, recommanded with Samtools) ##- '' # yes, merge mapping quality: enable (not recommanded with Samtools) + min_bq: '0' # -Q: Skip bases with baseQ/BAQ smaller than (default: '13', recomanded: '0') [INT] + min_qual: '0' # -q: Minimum quality score threshold to count base (Default: '20', recomanded: '0') [INT] ############################################################################### -############################## PRIMER CLEAPING ############################### +############################# PRIMERS CLEAPING ############################### ############################################################################### -bamclipper: - path: 'resources/primers/bedpe/' # Path to primers bedpe files (default 'resources/primer/bedpe') [PATH] - primers: '' # Your primer set, in BEDPE format (no default: you need to know which kit / ref you used) - # Reference sequence names and coordinates of BAM and BED are assumed to be derived from identical reference sequences - # Available options (not exhaustive), set only one: - ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4-1' # SARS-CoV-2 Artic V4.1 (update to the V4, see Artic README) - ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4' # SARS-CoV-2 Artic V4 (not based on V3, see Artic README) - ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V3' # SARS-CoV-2 Artic V3 - ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V2' # SARS-CoV-2 Artic V2 - ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V1' # SARS-CoV-2 Artic V1 - ##- 'Ebola-virus_Zaire_KR-063671-1_artic-primers-V3' # EBOV Artic V3 - ##- 'Ebola-virus_Zaire_AF-272001-1_artic-primers-V2' # EBOV Artic V2 (based on AF272001.1) - ##- 'Ebola-virus_Zaire_KR-063671-1_artic-primers-V1' # EBOV Artic V1 - ##- 'Nipah-virus_Malaysia_AJ-564622-1_artic-primers-V1' # NIV Artic V1 - ##- 'Monkeypox-virus_UK_MT-903345-1_custom-VGCARE-primers-V1' # MPXV VGCARE V1 - ##- 'Add_your_favorite_amplicon_kit' # Custom - upstream: '5' # (default: '5') [INT] - downstream: '5' # (default: '5') [INT] +primers: + offset: '0' # Offset for primer trimming (default: '0') [INT] + min_length: '35' # Minimum length of read to retain after trimming (Default: 50% average length of the first 1000 reads) [INT] + min_qual: '20' # Minimum quality threshold for sliding window to pass (Default: '20') [INT] + slide: '4' # Width of sliding window (Default: '4') [INT] + bed: + path: 'resources/primers_schemes/bed/' # Path to primers bed files (default 'resources/primer/bed') [PATH] + scheme: 'nCoV-2019/V4.1/SARS-CoV-2.primer.bed' # Your primer set, in BED format (no default: you need to know which kit and reference you used!) + # Reference sequence names and coordinates of BAM and BED are assumed to be derived from identical reference sequences. + # Available options (not exhaustive), set only one: + ##- 'nCoV-2019/V5.3.2/SARS-CoV-2.primer.bed' # SARS-CoV-2 Artic V5.3.2 (latest) + ##- 'nCoV-2019/V4.1/SARS-CoV-2.primer.bed' # SARS-CoV-2 Artic V4.1 (update to the V4, see Artic README) + ##- 'nCoV-2019/V4/SARS-CoV-2.primer.bed' # SARS-CoV-2 Artic V4 (not based on V3, see Artic README) + ##- 'nCoV-2019/V3/SARS-CoV-2.primer.bed' # SARS-CoV-2 Artic V3 + ##- 'nCoV-2019/V2/SARS-CoV-2.primer.bed' # SARS-CoV-2 Artic V2 + ##- 'nCoV-2019/V1/SARS-CoV-2.primer.bed' # SARS-CoV-2 Artic V1 + ##- 'ZaireEbola/V3/ZaireEbola.primer.bed' # EBOV Artic V3 + ##- 'ZaireEbola/V2/ZaireEbola.primer.bed' # EBOV Artic V2 (based on AF272001.1) + ##- 'ZaireEbola/V1/ZaireEbola.primer.bed' # EBOV Artic V1 + ##- 'Nipah/V1/NiV_6_Malaysia.primer.bed' # NIV Artic V1 + ##- 'MPXV/V1/MPXV.primer.bed' # MPXV V1 (dx.doi.org/10.17504/protocols.io.5qpvob1nbl4o/v4) + ##- 'your_custom_amplicon_kit.bed' # Add your custom amplicon kit + bedpe: + path: 'resources/primers_schemes/bedpe/' # Path to primers bedpe files (default 'resources/primer/bedpe') [PATH] + scheme: #'insert_here' # Your primer set, in BEDPE format (no default: you need to know which kit and reference you used!) + # Reference sequence names and coordinates of BAM and BED are assumed to be derived from identical reference sequences. + # Available options (not exhaustive), set only one: + ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4-1.bedpe' # SARS-CoV-2 Artic V4.1 (update to the V4, see Artic README) + ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4.bedpe' # SARS-CoV-2 Artic V4 (not based on V3, see Artic README) + ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V3.bedpe' # SARS-CoV-2 Artic V3 + ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V2.bedpe' # SARS-CoV-2 Artic V2 + ##- 'SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V1.bedpe' # SARS-CoV-2 Artic V1 + ##- 'Ebola-virus_Zaire_KR-063671-1_artic-primers-V3.bedpe' # EBOV Artic V3 + ##- 'Ebola-virus_Zaire_AF-272001-1_artic-primers-V2.bedpe' # EBOV Artic V2 (based on AF272001.1) + ##- 'Ebola-virus_Zaire_KR-063671-1_artic-primers-V1.bedpe' # EBOV Artic V1 + ##- 'Nipah-virus_Malaysia_AJ-564622-1_artic-primers-V1.bedpe' # NIV Artic V1 + ##- 'Monkeypox-virus_UK_MT-903345-1_VGCARE-primers-V1.bedpe' # MPXV VGCARE V1 (based on MT903345.1) + ##- 'your_custom_amplicon_kit.bedpe' # Add your custom amplicon kit ############################################################################### ################################### MAPPING ################################### @@ -172,14 +223,14 @@ bamclipper: bwa: algorithm: '' # Algorithm for constructing BWA index (default: auto --> '') - # Available options: + # Available options, set only one: ##- '' # Auto-select (default) ##- '-a is' # Moderately fast, but does not work with database larger than 2GB ##- '-a bwtsw' # This method works with the whole human genome bowtie2: algorithm: '' # Algorithm for constructing BT2 index (default: '' (small)) - # Available options: + # Available options, set only one: ##- '' # (default) ##- '--large-index' # Force generated index to be "large" # even if reference has fewer than 4 billion nucleotides @@ -196,11 +247,12 @@ minimap2: minimizer_size: '11' # -w: minimizer window size (default: "11") [INT] split_size: '8G' # -I: split index for every {NUM} input bases (default: "8G") [INT] homopolymer: '' # -H: use homopolymer-compressed k-mer (default: '' (no)) - # Available options: + # Available options, set only one: ##- '' # no (default) ##- '-H' # yes (preferrable for PacBio) + preset: 'sr' # -x: Minimap2 presets, always applied before other options (default: 'sr') - # Available preset options: + # Available preset options, set only one: ##- 'sr' # genomic short-read mapping, like Illumina (default) ##- 'map-ont' # Nanopore vs reference mapping ##- 'ava-ont' # Nanopore read overlap @@ -230,19 +282,21 @@ sickle_trim: cutadapt: clipping: '0' # Cut 'n' first nucleotides of each reads (default: 0) length: '50' # Discard reads shorter than 'length' after trim (default: "50") - kits: # Sequence of an adapter ligated to the 3' end of the first read (default: Illumina) - truseq: 'AGATCGGAAGAGC' # Illumina "TruSeq" or "ScriptSeq" based libraries kits - nextera: 'CTGTCTCTTATACACATC' # Illumina "Nextera" or "TruSight" based libraries kits - small: 'TGGAATTCTCGGGTGCCAAGG' # Illumina "Small" based libraries kits + adapters: # Sequence of an adapter ligated to the 3' end of the first read (default: Illumina kits) + # Available options (not exhaustive): + - 'AGATCGGAAGAGC' # Illumina "TruSeq" or "ScriptSeq" based libraries kits (default) + - 'CTGTCTCTTATACACATC' # Illumina "Nextera" or "TruSight" based libraries kits (default) + - 'TGGAATTCTCGGGTGCCAAGG' # Illumina "Small" based libraries kits (default) + #- 'your_custom_adapter' # Add your custom adapter ############################################################################### ############################### QUALITY CONTROL ############################### ############################################################################### -multiqc: ## TODO ## +multiqc: ##TODO## path: 'config/multiqc/' # Path to the multiqc configuration file config: 'default.yaml' # Multiqc configuration file (default: default.yaml) - # Available options (not exhaustive): + # Available options (not exhaustive), set only one: ##- 'default.yaml' # default ##- '' # tag: '' # Use only modules which tagged with this keyword @@ -250,11 +304,15 @@ multiqc: ## TODO ## fastq_screen: config: 'config/fastq-screen.conf' # Path to the fastq-screen configuration file subset: '10000' # Don't use whole sequences, but a subset reads (default: "10000") [INT] (0=all) + reference: # FastqScreen config file genomes to index [LIST] + # Available options (not exhaustive): + ### MOLECULAR BIOLOGY SEQUENCES - 'QC_Phi-X174_Coliphage_NC001422.1' - 'QC_Kanamycin-Resistance-Gene' - 'QC_UniVec_wo_phiX-kanamycin-NGSseq' + ### MAIN TRANSVIHMI VIRUSES (small genomes, provided) - 'SARS-CoV-2_Wuhan_MN908947.3' # without poly-A tail - 'Monkeypox-virus_Zaire_AF380138.1' @@ -276,12 +334,14 @@ fastq_screen: - 'Lassa-virus_Josiah_NC004297.1_Seg-L' - 'Lassa-virus_Josiah_NC004296.1_Seg-S' - 'HIV-1_HXB2_K03455.1' + ### MAIN TRANSVIHMI PUTATIVE HOSTS (large genomes, not provided) #- 'HOST_Gorilla-gorilla_g4' #- 'HOST_Pan-troglodytes_t3' #- 'HOST_Pteropus-vampyrus_v1' #- 'HOST_Mus-musculus_m39' #- 'HOST_Homo-sapiens_h38_NC000001.11' + ### GENERIC LAB MODEL ORGANISMS (putative contaminations) - 'QC_Echerichia-coli_CP060121.1' #- 'QC_Saccharomyces-cerevisiae' @@ -293,12 +353,11 @@ fastq_screen: #- 'QC_Xenopus-laevis' #- 'QC_Gallus-gallus' - ############################################################################### ############################### RENAME SAMPLES ################################ ############################################################################### -rename: +rename: ##TODO## barcode_id: true line_id: true end_id: true @@ -311,7 +370,7 @@ resources: cpus: '8' # Set maximum cpus usage (for multithreading, default: "8") [INT] ram: '16' # Set maximum memory usage (in Gb, default: "16") [INT] tmp_dir: '$TMPDIR' # Temporary directory. - # Available options (not exhaustive): + # Available options (not exhaustive), set only one: ## -'$TMPDIR' # System variable $TMPDIR (default) ## -'.' # Local (i.e. GeVarLi directory) ## -'/scratch' # HPC (set it to match your HPC usage) @@ -336,23 +395,24 @@ envs: # Conda environement yaml files: sickle_trim: '../envs/sickle-trim_v.1.33.yaml' # Sickle-trim ver. 1.33 tsv2vcf: '../envs/tsv2vcf_v.2025.01.yaml' # tsv2vcf ver. 2025.01 (biopython=1.85 numpy=2.2.2 scipy=1.15.1) workflow: '../envs/workflow-core.yaml' # workflow ver. 2025.01 (snakemake=8.27.1 graphviz=12.0.0) - yq: '../envs/yq_v.3.4.3.yaml' # yq ver. 3.4.3 report: # Snakemake reports formats + stat: - extention: # [LIST] + extention: - 'txt' - 'tsv' - 'json' + graph: - type: # [LIST] + type: - 'dag' - 'rulegraph' - 'filegraph' - extention: # [LIST] + extention: - 'png' - 'svg' - 'pdf' ############################################################################### -############################################################################### +############################################################################### \ No newline at end of file diff --git a/resources/primers/bedpe/.gitkeep b/resources/primers/bedpe/.gitkeep deleted file mode 100644 index f13c79cb973f7529714edbaff5ce25450f3cf7ff..0000000000000000000000000000000000000000 --- a/resources/primers/bedpe/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -Git: keep this non empty file! \ No newline at end of file diff --git a/resources/primers/fasta/.gitkeep b/resources/primers/fasta/.gitkeep deleted file mode 100644 index f13c79cb973f7529714edbaff5ce25450f3cf7ff..0000000000000000000000000000000000000000 --- a/resources/primers/fasta/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -Git: keep this non empty file! \ No newline at end of file diff --git a/resources/primers_schemes/bed/LICENSE b/resources/primers_schemes/bed/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..52bd1459bd805f5a715e4975287d84c44201a79e --- /dev/null +++ b/resources/primers_schemes/bed/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.†The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file diff --git a/resources/primers_schemes/bed/MPXV/V1/MPXV.primer.bed b/resources/primers_schemes/bed/MPXV/V1/MPXV.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..5f60caacc210a24d298903a0251694227b5c7261 --- /dev/null +++ b/resources/primers_schemes/bed/MPXV/V1/MPXV.primer.bed @@ -0,0 +1,326 @@ +MT903345 356 378 MPXV_1_LEFT 1 + +MT903345 2395 2417 MPXV_1_RIGHT 1 - +MT903345 1439 1461 MPXV_2_LEFT 2 + +MT903345 3353 3375 MPXV_2_RIGHT 2 - +MT903345 2606 2628 MPXV_3_LEFT 1 + +MT903345 4593 4615 MPXV_3_RIGHT 1 - +MT903345 3990 4012 MPXV_4_LEFT 2 + +MT903345 5584 5607 MPXV_4_RIGHT 2 - +MT903345 4991 5013 MPXV_5_LEFT 1 + +MT903345 7027 7049 MPXV_5_RIGHT 1 - +MT903345 6134 6156 MPXV_6_LEFT 2 + +MT903345 8202 8224 MPXV_6_RIGHT 2 - +MT903345 7417 7439 MPXV_7_LEFT 1 + +MT903345 9405 9427 MPXV_7_RIGHT 1 - +MT903345 8858 8880 MPXV_8_LEFT 2 + +MT903345 10646 10668 MPXV_8_RIGHT 2 - +MT903345 9767 9789 MPXV_9_LEFT 1 + +MT903345 11731 11753 MPXV_9_RIGHT 1 - +MT903345 10729 10751 MPXV_10_LEFT 2 + +MT903345 12880 12902 MPXV_10_RIGHT 2 - +MT903345 12290 12312 MPXV_11_LEFT 1 + +MT903345 14020 14042 MPXV_11_RIGHT 1 - +MT903345 13079 13101 MPXV_12_LEFT 2 + +MT903345 15347 15369 MPXV_12_RIGHT 2 - +MT903345 14663 14685 MPXV_13_LEFT 1 + +MT903345 16733 16755 MPXV_13_RIGHT 1 - +MT903345 15866 15888 MPXV_14_LEFT 2 + +MT903345 18116 18138 MPXV_14_RIGHT 2 - +MT903345 17282 17304 MPXV_15_LEFT 1 + +MT903345 19262 19284 MPXV_15_RIGHT 1 - +MT903345 18294 18316 MPXV_16_LEFT 2 + +MT903345 20256 20278 MPXV_16_RIGHT 2 - +MT903345 19740 19762 MPXV_17_LEFT 1 + +MT903345 21690 21712 MPXV_17_RIGHT 1 - +MT903345 21069 21091 MPXV_18_LEFT 2 + +MT903345 22848 22870 MPXV_18_RIGHT 2 - +MT903345 22029 22051 MPXV_19_LEFT 1 + +MT903345 23931 23953 MPXV_19_RIGHT 1 - +MT903345 23058 23080 MPXV_20_LEFT 2 + +MT903345 24880 24902 MPXV_20_RIGHT 2 - +MT903345 23975 23997 MPXV_21_LEFT 1 + +MT903345 26160 26182 MPXV_21_RIGHT 1 - +MT903345 25311 25333 MPXV_22_LEFT 2 + +MT903345 27552 27574 MPXV_22_RIGHT 2 - +MT903345 26810 26832 MPXV_23_LEFT 1 + +MT903345 28859 28881 MPXV_23_RIGHT 1 - +MT903345 27858 27880 MPXV_24_LEFT 2 + +MT903345 30041 30063 MPXV_24_RIGHT 2 - +MT903345 29492 29514 MPXV_25_LEFT 1 + +MT903345 31057 31079 MPXV_25_RIGHT 1 - +MT903345 30136 30158 MPXV_26_LEFT 2 + +MT903345 32426 32448 MPXV_26_RIGHT 2 - +MT903345 31730 31752 MPXV_27_LEFT 1 + +MT903345 33548 33570 MPXV_27_RIGHT 1 - +MT903345 33000 33022 MPXV_28_LEFT 2 + +MT903345 34964 34986 MPXV_28_RIGHT 2 - +MT903345 34181 34203 MPXV_29_LEFT 1 + +MT903345 36344 36366 MPXV_29_RIGHT 1 - +MT903345 35632 35654 MPXV_30_LEFT 2 + +MT903345 37370 37392 MPXV_30_RIGHT 2 - +MT903345 36423 36445 MPXV_31_LEFT 1 + +MT903345 38633 38655 MPXV_31_RIGHT 1 - +MT903345 37903 37925 MPXV_32_LEFT 2 + +MT903345 39666 39688 MPXV_32_RIGHT 2 - +MT903345 38939 38961 MPXV_33_LEFT 1 + +MT903345 40939 40961 MPXV_33_RIGHT 1 - +MT903345 40025 40047 MPXV_34_LEFT 2 + +MT903345 42129 42151 MPXV_34_RIGHT 2 - +MT903345 41186 41208 MPXV_35_LEFT 1 + +MT903345 43252 43274 MPXV_35_RIGHT 1 - +MT903345 42576 42598 MPXV_36_LEFT 2 + +MT903345 44393 44415 MPXV_36_RIGHT 2 - +MT903345 43813 43835 MPXV_37_LEFT 1 + +MT903345 45826 45848 MPXV_37_RIGHT 1 - +MT903345 45265 45287 MPXV_38_LEFT 2 + +MT903345 47160 47182 MPXV_38_RIGHT 2 - +MT903345 46384 46406 MPXV_39_LEFT 1 + +MT903345 48581 48603 MPXV_39_RIGHT 1 - +MT903345 47887 47909 MPXV_40_LEFT 2 + +MT903345 49557 49579 MPXV_40_RIGHT 2 - +MT903345 49014 49036 MPXV_41_LEFT 1 + +MT903345 50960 50982 MPXV_41_RIGHT 1 - +MT903345 50015 50037 MPXV_42_LEFT 2 + +MT903345 52313 52335 MPXV_42_RIGHT 2 - +MT903345 51409 51431 MPXV_43_LEFT 1 + +MT903345 53382 53404 MPXV_43_RIGHT 1 - +MT903345 52745 52767 MPXV_44_LEFT 2 + +MT903345 54376 54398 MPXV_44_RIGHT 2 - +MT903345 53797 53819 MPXV_45_LEFT 1 + +MT903345 55509 55531 MPXV_45_RIGHT 1 - +MT903345 54852 54874 MPXV_46_LEFT 2 + +MT903345 56830 56852 MPXV_46_RIGHT 2 - +MT903345 55974 55996 MPXV_47_LEFT 1 + +MT903345 57890 57912 MPXV_47_RIGHT 1 - +MT903345 57233 57255 MPXV_48_LEFT 2 + +MT903345 59232 59254 MPXV_48_RIGHT 2 - +MT903345 58683 58705 MPXV_49_LEFT 1 + +MT903345 60300 60322 MPXV_49_RIGHT 1 - +MT903345 59317 59339 MPXV_50_LEFT 2 + +MT903345 61288 61310 MPXV_50_RIGHT 2 - +MT903345 60711 60733 MPXV_51_LEFT 1 + +MT903345 62585 62607 MPXV_51_RIGHT 1 - +MT903345 61791 61813 MPXV_52_LEFT 2 + +MT903345 63941 63963 MPXV_52_RIGHT 2 - +MT903345 63140 63162 MPXV_53_LEFT 1 + +MT903345 64969 64991 MPXV_53_RIGHT 1 - +MT903345 64237 64259 MPXV_54_LEFT 2 + +MT903345 66153 66175 MPXV_54_RIGHT 2 - +MT903345 65306 65328 MPXV_55_LEFT 1 + +MT903345 67356 67378 MPXV_55_RIGHT 1 - +MT903345 66510 66532 MPXV_56_LEFT 2 + +MT903345 68422 68444 MPXV_56_RIGHT 2 - +MT903345 67453 67475 MPXV_57_LEFT 1 + +MT903345 69517 69539 MPXV_57_RIGHT 1 - +MT903345 68682 68704 MPXV_58_LEFT 2 + +MT903345 70481 70503 MPXV_58_RIGHT 2 - +MT903345 69722 69744 MPXV_59_LEFT 1 + +MT903345 71941 71963 MPXV_59_RIGHT 1 - +MT903345 71216 71238 MPXV_60_LEFT 2 + +MT903345 73103 73125 MPXV_60_RIGHT 2 - +MT903345 72358 72380 MPXV_61_LEFT 1 + +MT903345 74275 74297 MPXV_61_RIGHT 1 - +MT903345 73551 73573 MPXV_62_LEFT 2 + +MT903345 75439 75461 MPXV_62_RIGHT 2 - +MT903345 74533 74555 MPXV_63_LEFT 1 + +MT903345 76557 76579 MPXV_63_RIGHT 1 - +MT903345 75823 75845 MPXV_64_LEFT 2 + +MT903345 77575 77597 MPXV_64_RIGHT 2 - +MT903345 76756 76778 MPXV_65_LEFT 1 + +MT903345 78814 78836 MPXV_65_RIGHT 1 - +MT903345 77896 77919 MPXV_66_LEFT 2 + +MT903345 80075 80097 MPXV_66_RIGHT 2 - +MT903345 79176 79198 MPXV_67_LEFT 1 + +MT903345 81264 81286 MPXV_67_RIGHT 1 - +MT903345 80668 80691 MPXV_68_LEFT 2 + +MT903345 82491 82513 MPXV_68_RIGHT 2 - +MT903345 81726 81748 MPXV_69_LEFT 1 + +MT903345 83678 83700 MPXV_69_RIGHT 1 - +MT903345 83016 83038 MPXV_70_LEFT 2 + +MT903345 84751 84773 MPXV_70_RIGHT 2 - +MT903345 83959 83981 MPXV_71_LEFT 1 + +MT903345 85799 85821 MPXV_71_RIGHT 1 - +MT903345 85165 85187 MPXV_72_LEFT 2 + +MT903345 87066 87088 MPXV_72_RIGHT 2 - +MT903345 86488 86510 MPXV_73_LEFT 1 + +MT903345 88323 88345 MPXV_73_RIGHT 1 - +MT903345 87600 87622 MPXV_74_LEFT 2 + +MT903345 89649 89671 MPXV_74_RIGHT 2 - +MT903345 88702 88726 MPXV_75_LEFT 1 + +MT903345 91056 91078 MPXV_75_RIGHT 1 - +MT903345 90360 90382 MPXV_76_LEFT 2 + +MT903345 92246 92268 MPXV_76_RIGHT 2 - +MT903345 91464 91486 MPXV_77_LEFT 1 + +MT903345 93361 93383 MPXV_77_RIGHT 1 - +MT903345 92707 92729 MPXV_78_LEFT 2 + +MT903345 94547 94570 MPXV_78_RIGHT 2 - +MT903345 93852 93874 MPXV_79_LEFT 1 + +MT903345 95607 95629 MPXV_79_RIGHT 1 - +MT903345 94872 94894 MPXV_80_LEFT 2 + +MT903345 96654 96676 MPXV_80_RIGHT 2 - +MT903345 95897 95919 MPXV_81_LEFT 1 + +MT903345 97806 97828 MPXV_81_RIGHT 1 - +MT903345 97210 97232 MPXV_82_LEFT 2 + +MT903345 99077 99099 MPXV_82_RIGHT 2 - +MT903345 98139 98161 MPXV_83_LEFT 1 + +MT903345 100447 100469 MPXV_83_RIGHT 1 - +MT903345 99465 99487 MPXV_84_LEFT 2 + +MT903345 101705 101727 MPXV_84_RIGHT 2 - +MT903345 101077 101099 MPXV_85_LEFT 1 + +MT903345 102833 102855 MPXV_85_RIGHT 1 - +MT903345 101916 101938 MPXV_86_LEFT 2 + +MT903345 103806 103828 MPXV_86_RIGHT 2 - +MT903345 103235 103257 MPXV_87_LEFT 1 + +MT903345 105068 105090 MPXV_87_RIGHT 1 - +MT903345 104047 104069 MPXV_88_LEFT 2 + +MT903345 106298 106320 MPXV_88_RIGHT 2 - +MT903345 105407 105429 MPXV_89_LEFT 1 + +MT903345 107404 107426 MPXV_89_RIGHT 1 - +MT903345 106746 106768 MPXV_90_LEFT 2 + +MT903345 108585 108607 MPXV_90_RIGHT 2 - +MT903345 107927 107949 MPXV_91_LEFT 1 + +MT903345 109870 109892 MPXV_91_RIGHT 1 - +MT903345 109250 109272 MPXV_92_LEFT 2 + +MT903345 111172 111194 MPXV_92_RIGHT 2 - +MT903345 110548 110570 MPXV_93_LEFT 1 + +MT903345 112346 112368 MPXV_93_RIGHT 1 - +MT903345 111725 111747 MPXV_94_LEFT 2 + +MT903345 113489 113511 MPXV_94_RIGHT 2 - +MT903345 112793 112815 MPXV_95_LEFT 1 + +MT903345 114896 114918 MPXV_95_RIGHT 1 - +MT903345 114028 114050 MPXV_96_LEFT 2 + +MT903345 116193 116216 MPXV_96_RIGHT 2 - +MT903345 115648 115670 MPXV_97_LEFT 1 + +MT903345 117548 117570 MPXV_97_RIGHT 1 - +MT903345 116880 116902 MPXV_98_LEFT 2 + +MT903345 118585 118607 MPXV_98_RIGHT 2 - +MT903345 117756 117778 MPXV_99_LEFT 1 + +MT903345 119762 119784 MPXV_99_RIGHT 1 - +MT903345 118947 118969 MPXV_100_LEFT 2 + +MT903345 120739 120761 MPXV_100_RIGHT 2 - +MT903345 120255 120277 MPXV_101_LEFT 1 + +MT903345 121948 121970 MPXV_101_RIGHT 1 - +MT903345 121324 121346 MPXV_102_LEFT 2 + +MT903345 122954 122976 MPXV_102_RIGHT 2 - +MT903345 122348 122370 MPXV_103_LEFT 1 + +MT903345 124294 124316 MPXV_103_RIGHT 1 - +MT903345 123607 123629 MPXV_104_LEFT 2 + +MT903345 125605 125627 MPXV_104_RIGHT 2 - +MT903345 124669 124691 MPXV_105_LEFT 1 + +MT903345 126984 127006 MPXV_105_RIGHT 1 - +MT903345 126327 126349 MPXV_106_LEFT 2 + +MT903345 128363 128385 MPXV_106_RIGHT 2 - +MT903345 127456 127478 MPXV_107_LEFT 1 + +MT903345 129806 129828 MPXV_107_RIGHT 1 - +MT903345 128995 129017 MPXV_108_LEFT 2 + +MT903345 131239 131261 MPXV_108_RIGHT 2 - +MT903345 130359 130381 MPXV_109_LEFT 1 + +MT903345 132681 132703 MPXV_109_RIGHT 1 - +MT903345 132061 132083 MPXV_110_LEFT 2 + +MT903345 133984 134006 MPXV_110_RIGHT 2 - +MT903345 133125 133147 MPXV_111_LEFT 1 + +MT903345 135056 135078 MPXV_111_RIGHT 1 - +MT903345 134041 134063 MPXV_112_LEFT 2 + +MT903345 136220 136242 MPXV_112_RIGHT 2 - +MT903345 135188 135210 MPXV_113_LEFT 1 + +MT903345 137446 137468 MPXV_113_RIGHT 1 - +MT903345 136636 136658 MPXV_114_LEFT 2 + +MT903345 138456 138478 MPXV_114_RIGHT 2 - +MT903345 137753 137775 MPXV_115_LEFT 1 + +MT903345 139755 139777 MPXV_115_RIGHT 1 - +MT903345 139065 139088 MPXV_116_LEFT 2 + +MT903345 141135 141157 MPXV_116_RIGHT 2 - +MT903345 140505 140527 MPXV_117_LEFT 1 + +MT903345 142493 142515 MPXV_117_RIGHT 1 - +MT903345 141726 141748 MPXV_118_LEFT 2 + +MT903345 143899 143921 MPXV_118_RIGHT 2 - +MT903345 143125 143147 MPXV_119_LEFT 1 + +MT903345 145129 145151 MPXV_119_RIGHT 1 - +MT903345 144221 144243 MPXV_120_LEFT 2 + +MT903345 146504 146526 MPXV_120_RIGHT 2 - +MT903345 145683 145705 MPXV_121_LEFT 1 + +MT903345 147491 147515 MPXV_121_RIGHT 1 - +MT903345 146655 146677 MPXV_122_LEFT 2 + +MT903345 148776 148798 MPXV_122_RIGHT 2 - +MT903345 148194 148216 MPXV_123_LEFT 1 + +MT903345 150016 150038 MPXV_123_RIGHT 1 - +MT903345 149180 149202 MPXV_124_LEFT 2 + +MT903345 151244 151266 MPXV_124_RIGHT 2 - +MT903345 150457 150479 MPXV_125_LEFT 1 + +MT903345 152584 152606 MPXV_125_RIGHT 1 - +MT903345 151815 151837 MPXV_126_LEFT 2 + +MT903345 153595 153617 MPXV_126_RIGHT 2 - +MT903345 152655 152677 MPXV_127_LEFT 1 + +MT903345 154813 154835 MPXV_127_RIGHT 1 - +MT903345 153992 154014 MPXV_128_LEFT 2 + +MT903345 155899 155921 MPXV_128_RIGHT 2 - +MT903345 155006 155028 MPXV_129_LEFT 1 + +MT903345 157303 157325 MPXV_129_RIGHT 1 - +MT903345 156543 156565 MPXV_130_LEFT 2 + +MT903345 158259 158281 MPXV_130_RIGHT 2 - +MT903345 157783 157805 MPXV_131_LEFT 1 + +MT903345 159433 159455 MPXV_131_RIGHT 1 - +MT903345 158398 158421 MPXV_132_LEFT 2 + +MT903345 160872 160895 MPXV_132_RIGHT 2 - +MT903345 160098 160120 MPXV_133_LEFT 1 + +MT903345 162057 162079 MPXV_133_RIGHT 1 - +MT903345 161313 161335 MPXV_134_LEFT 2 + +MT903345 163043 163065 MPXV_134_RIGHT 2 - +MT903345 162555 162577 MPXV_135_LEFT 1 + +MT903345 164489 164511 MPXV_135_RIGHT 1 - +MT903345 163858 163880 MPXV_136_LEFT 2 + +MT903345 165513 165535 MPXV_136_RIGHT 2 - +MT903345 164937 164960 MPXV_137_LEFT 1 + +MT903345 166946 166968 MPXV_137_RIGHT 1 - +MT903345 165993 166015 MPXV_138_LEFT 2 + +MT903345 168215 168237 MPXV_138_RIGHT 2 - +MT903345 167503 167525 MPXV_139_LEFT 1 + +MT903345 169254 169276 MPXV_139_RIGHT 1 - +MT903345 168314 168336 MPXV_140_LEFT 2 + +MT903345 170374 170396 MPXV_140_RIGHT 2 - +MT903345 169602 169628 MPXV_141_LEFT 1 + +MT903345 171509 171531 MPXV_141_RIGHT 1 - +MT903345 170931 170953 MPXV_142_LEFT 2 + +MT903345 172513 172535 MPXV_142_RIGHT 2 - +MT903345 171898 171920 MPXV_143_LEFT 1 + +MT903345 173581 173603 MPXV_143_RIGHT 1 - +MT903345 173009 173031 MPXV_144_LEFT 2 + +MT903345 174796 174818 MPXV_144_RIGHT 2 - +MT903345 174125 174147 MPXV_145_LEFT 1 + +MT903345 176213 176235 MPXV_145_RIGHT 1 - +MT903345 175337 175359 MPXV_146_LEFT 2 + +MT903345 177271 177293 MPXV_146_RIGHT 2 - +MT903345 176298 176321 MPXV_147_LEFT 1 + +MT903345 178300 178322 MPXV_147_RIGHT 1 - +MT903345 177434 177456 MPXV_148_LEFT 2 + +MT903345 179327 179349 MPXV_148_RIGHT 2 - +MT903345 178763 178785 MPXV_149_LEFT 1 + +MT903345 180553 180575 MPXV_149_RIGHT 1 - +MT903345 179672 179694 MPXV_150_LEFT 2 + +MT903345 181536 181558 MPXV_150_RIGHT 2 - +MT903345 181043 181065 MPXV_151_LEFT 1 + +MT903345 182725 182747 MPXV_151_RIGHT 1 - +MT903345 182098 182121 MPXV_152_LEFT 2 + +MT903345 183821 183843 MPXV_152_RIGHT 2 - +MT903345 182924 182946 MPXV_153_LEFT 1 + +MT903345 184806 184828 MPXV_153_RIGHT 1 - +MT903345 184067 184089 MPXV_154_LEFT 2 + +MT903345 186170 186192 MPXV_154_RIGHT 2 - +MT903345 185280 185302 MPXV_155_LEFT 1 + +MT903345 187518 187540 MPXV_155_RIGHT 1 - +MT903345 186757 186779 MPXV_156_LEFT 2 + +MT903345 188744 188766 MPXV_156_RIGHT 2 - +MT903345 188008 188030 MPXV_157_LEFT 1 + +MT903345 189896 189921 MPXV_157_RIGHT 1 - +MT903345 189166 189188 MPXV_158_LEFT 2 + +MT903345 191049 191071 MPXV_158_RIGHT 2 - +MT903345 190199 190221 MPXV_159_LEFT 1 + +MT903345 192192 192214 MPXV_159_RIGHT 1 - +MT903345 191597 191620 MPXV_160_LEFT 2 + +MT903345 193193 193215 MPXV_160_RIGHT 2 - +MT903345 192591 192613 MPXV_161_LEFT 1 + +MT903345 194274 194296 MPXV_161_RIGHT 1 - +MT903345 193264 193286 MPXV_162_LEFT 2 + +MT903345 195268 195290 MPXV_162_RIGHT 2 - +MT903345 194788 194810 MPXV_163_LEFT 1 + +MT903345 196402 196424 MPXV_163_RIGHT 1 - diff --git a/resources/primers_schemes/bed/Nipah/V1/NiV_6_Malaysia.primer.bed b/resources/primers_schemes/bed/Nipah/V1/NiV_6_Malaysia.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..7a283b4d3191c6f8ea6b88ac32e475635b3f60e3 --- /dev/null +++ b/resources/primers_schemes/bed/Nipah/V1/NiV_6_Malaysia.primer.bed @@ -0,0 +1,120 @@ +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1 27 NiV_6_Malaysia_1_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 378 401 NiV_6_Malaysia_1_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 319 341 NiV_6_Malaysia_2_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 702 726 NiV_6_Malaysia_2_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 640 662 NiV_6_Malaysia_3_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1004 1028 NiV_6_Malaysia_3_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 943 965 NiV_6_Malaysia_4_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1308 1330 NiV_6_Malaysia_4_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1239 1263 NiV_6_Malaysia_5_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1617 1639 NiV_6_Malaysia_5_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1545 1567 NiV_6_Malaysia_6_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1900 1929 NiV_6_Malaysia_6_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 1840 1862 NiV_6_Malaysia_7_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 2212 2234 NiV_6_Malaysia_7_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 2179 2204 NiV_6_Malaysia_8_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 2538 2560 NiV_6_Malaysia_8_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 2477 2501 NiV_6_Malaysia_9_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 2831 2857 NiV_6_Malaysia_9_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 2798 2820 NiV_6_Malaysia_10_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 3156 3179 NiV_6_Malaysia_10_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 3113 3138 NiV_6_Malaysia_11_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 3471 3493 NiV_6_Malaysia_11_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 3435 3457 NiV_6_Malaysia_12_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 3795 3817 NiV_6_Malaysia_12_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 3718 3740 NiV_6_Malaysia_13_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4089 4111 NiV_6_Malaysia_13_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4008 4037 NiV_6_Malaysia_14_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4364 4388 NiV_6_Malaysia_14_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4283 4305 NiV_6_Malaysia_15_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4652 4674 NiV_6_Malaysia_15_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4571 4596 NiV_6_Malaysia_16_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4924 4951 NiV_6_Malaysia_16_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 4878 4907 NiV_6_Malaysia_17_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 5246 5269 NiV_6_Malaysia_17_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 5175 5197 NiV_6_Malaysia_18_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 5567 5589 NiV_6_Malaysia_18_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 5500 5522 NiV_6_Malaysia_19_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 5873 5901 NiV_6_Malaysia_19_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 5792 5814 NiV_6_Malaysia_20_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 6145 6172 NiV_6_Malaysia_20_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 6081 6103 NiV_6_Malaysia_21_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 6462 6487 NiV_6_Malaysia_21_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 6403 6429 NiV_6_Malaysia_22_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 6760 6785 NiV_6_Malaysia_22_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 6711 6733 NiV_6_Malaysia_23_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7072 7097 NiV_6_Malaysia_23_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7026 7048 NiV_6_Malaysia_24_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7385 7409 NiV_6_Malaysia_24_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7346 7368 NiV_6_Malaysia_25_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7708 7733 NiV_6_Malaysia_25_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7660 7682 NiV_6_Malaysia_26_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8027 8052 NiV_6_Malaysia_26_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 7932 7956 NiV_6_Malaysia_27_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8284 8312 NiV_6_Malaysia_27_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8244 8267 NiV_6_Malaysia_28_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8604 8632 NiV_6_Malaysia_28_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8503 8526 NiV_6_Malaysia_29_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8869 8893 NiV_6_Malaysia_29_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 8821 8850 NiV_6_Malaysia_30_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 9191 9213 NiV_6_Malaysia_30_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 9150 9178 NiV_6_Malaysia_31_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 9506 9531 NiV_6_Malaysia_31_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 9460 9482 NiV_6_Malaysia_32_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 9829 9851 NiV_6_Malaysia_32_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 9751 9773 NiV_6_Malaysia_33_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10124 10148 NiV_6_Malaysia_33_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10075 10100 NiV_6_Malaysia_34_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10441 10463 NiV_6_Malaysia_34_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10384 10408 NiV_6_Malaysia_35_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10735 10764 NiV_6_Malaysia_35_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10671 10698 NiV_6_Malaysia_36_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11029 11052 NiV_6_Malaysia_36_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 10940 10965 NiV_6_Malaysia_37_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11308 11333 NiV_6_Malaysia_37_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11261 11283 NiV_6_Malaysia_38_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11614 11644 NiV_6_Malaysia_38_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11525 11550 NiV_6_Malaysia_39_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11881 11910 NiV_6_Malaysia_39_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 11788 11813 NiV_6_Malaysia_40_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 12151 12175 NiV_6_Malaysia_40_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 12097 12123 NiV_6_Malaysia_41_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 12469 12494 NiV_6_Malaysia_41_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 12378 12403 NiV_6_Malaysia_42_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 12749 12773 NiV_6_Malaysia_42_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 12712 12737 NiV_6_Malaysia_43_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13074 13097 NiV_6_Malaysia_43_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13029 13053 NiV_6_Malaysia_44_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13384 13409 NiV_6_Malaysia_44_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13346 13368 NiV_6_Malaysia_45_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13704 13726 NiV_6_Malaysia_45_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13670 13694 NiV_6_Malaysia_46_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14028 14051 NiV_6_Malaysia_46_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 13968 13990 NiV_6_Malaysia_47_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14325 14348 NiV_6_Malaysia_47_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14279 14304 NiV_6_Malaysia_48_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14651 14673 NiV_6_Malaysia_48_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14595 14617 NiV_6_Malaysia_49_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14946 14976 NiV_6_Malaysia_49_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 14864 14888 NiV_6_Malaysia_50_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 15228 15253 NiV_6_Malaysia_50_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 15148 15171 NiV_6_Malaysia_51_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 15534 15562 NiV_6_Malaysia_51_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 15484 15506 NiV_6_Malaysia_52_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 15855 15881 NiV_6_Malaysia_52_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 15784 15806 NiV_6_Malaysia_53_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 16173 16196 NiV_6_Malaysia_53_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 16102 16126 NiV_6_Malaysia_54_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 16455 16483 NiV_6_Malaysia_54_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 16403 16433 NiV_6_Malaysia_55_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 16758 16784 NiV_6_Malaysia_55_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 16709 16733 NiV_6_Malaysia_56_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17077 17099 NiV_6_Malaysia_56_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17033 17061 NiV_6_Malaysia_57_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17399 17422 NiV_6_Malaysia_57_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17340 17362 NiV_6_Malaysia_58_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17701 17726 NiV_6_Malaysia_58_RIGHT 2 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17669 17691 NiV_6_Malaysia_59_LEFT 1 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 18025 18049 NiV_6_Malaysia_59_RIGHT 1 - +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 17814 17836 NiV_6_Malaysia_60_LEFT 2 + +NiV|AJ564622|NV/MY/99/VRI-1413|pig|Malaysia|||1999 18166 18196 NiV_6_Malaysia_60_RIGHT 2 - diff --git a/resources/primers_schemes/bed/README.md b/resources/primers_schemes/bed/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9ceacbc7a20dd92d7f6fdf35ff9c57262ddaea90 --- /dev/null +++ b/resources/primers_schemes/bed/README.md @@ -0,0 +1,74 @@ +# primer-schemes + +Primer schemes for real-time genome epidemiology + +[](https://travis-ci.org/artic-network/primer-schemes) +[](https://zenodo.org/badge/latestdoi/96756353) + +## About + +The primer schemes in this repository were built using [Primal Scheme](https://primalscheme.com/) and are available for the following viruses: + +- Ebola +- Nipah +- SARS-CoV-2 (nCoV-2019) + +Within each virus directory, there are versioned sub-directories which each contain a versioned scheme for that virus. + +The following files are available per scheme version: + +| file extension | about | +| ------------------ | -------------------------------------------------------------------------------------- | +| `.primer.bed` | The coordinates of each primer in the scheme | +| `.insert.bed` | The coordinates of the expected amplicons that the scheme produces (excluding primers) | +| `.reference.fasta` | The sequence of the reference genome used for the scheme | +| `.tsv` | Details on each primer in the scheme (name, sequence, length, GC, TM) | + +For more information visit the [ARTIC network website](https://artic.network/). + +## Notes + +- There may be some additional files in the scheme directories - these are either deprecated and left for backward compatibility (e.g. `scheme.bed`), or are created by Primal Scheme [check here](https://github.com/aresti/primalscheme) for more info. +- The schemes are in BED format, which is a 0-based, half-open format. This means that reference sequence position counting starts at 0 and the chromEnd is not included in the primer sequence. +- All the schemes within this repository can be downloaded using [artic-tools](https://github.com/will-rowe/artic-tools) (e.g. `artic-tools get_scheme ebola --schemeVersion 2`) +- The SARS-CoV-2 directory is an alias to the original nCoV-2019 directory, left for backwards compatibility + +## Updated scheme file format + +> updated: 25.08.2020 + +### changes + +With the major version bump to [Primal Scheme](https://github.com/aresti/primalscheme), primer schemes are now output to `*.primer.bed` files. + +These new files aren't much different to the old `*.scheme.bed` files and the same information is contained within, but they now conform to the [BED standard](https://genome.ucsc.edu/FAQ/FAQformat.html#format1). + +The new format has the following columns: + +| column | name | type | description | +| ------ | ---------- | ------------ | --------------------------------------------------------- | +| 1 | chrom | string | primer reference sequence | +| 2 | chromStart | int | starting position of the primer in the reference sequence | +| 3 | chomEnd | int | ending position of the primer in the reference sequence | +| 4 | name | string | primer name | +| 5 | primerPool | int | primer pool<sup>\*</sup> | +| 6 | strand | string (+/-) | primer direction | + +<sup>\*</sup> column 5 in the BED spec is an int for score, whereas here we are using it to denote primerPool. + +### commands + +The `liftover.py` script was used to create a `*.primer.bed` file for each `*.scheme.bed` file, within each scheme directory in this repository. + +The `validate_scheme` command from [artic-tools](https://github.com/will-rowe/artic-tools) was used to validate each `*.primer.bed` and also to create the `*.insert.bed` file which is produced by recent versions of [Primal Scheme](https://github.com/aresti/primalscheme). + +The following commands where used: + +```bash +for i in */V*/*.scheme.bed; +do +basename=${i%%.scheme.bed} +scripts/liftover.py -i $i -o ${basename}.primer.bed; +artic-tools validate_scheme ${basename}.primer.bed --outputInserts ${basename}.insert.bed +done; +``` diff --git a/resources/primers_schemes/bed/ZaireEbola/V1/ZaireEbola.primer.bed b/resources/primers_schemes/bed/ZaireEbola/V1/ZaireEbola.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..44709f8079028a7296e4f9b517dcea1fff73c493 --- /dev/null +++ b/resources/primers_schemes/bed/ZaireEbola/V1/ZaireEbola.primer.bed @@ -0,0 +1,46 @@ +KR063671.1 32 59 Ebov_1_LEFT 1 + +KR063671.1 1035 1057 Ebov_1_RIGHT 1 - +KR063671.1 907 929 Ebov_2_LEFT 2 + +KR063671.1 1859 1881 Ebov_2_RIGHT 2 - +KR063671.1 1730 1753 Ebov_3_LEFT 1 + +KR063671.1 2689 2711 Ebov_3_RIGHT 1 - +KR063671.1 2555 2577 Ebov_4_LEFT 2 + +KR063671.1 3556 3578 Ebov_4_RIGHT 2 - +KR063671.1 3417 3439 Ebov_5_LEFT 1 + +KR063671.1 4409 4431 Ebov_5_RIGHT 1 - +KR063671.1 4274 4303 Ebov_6_LEFT 2 + +KR063671.1 5279 5301 Ebov_6_RIGHT 2 - +KR063671.1 5149 5171 Ebov_7_LEFT 1 + +KR063671.1 6030 6052 Ebov_7_RIGHT 1 - +KR063671.1 5895 5917 Ebov_8_LEFT 2 + +KR063671.1 6792 6814 Ebov_8_RIGHT 2 - +KR063671.1 6656 6678 Ebov_9_LEFT 1 + +KR063671.1 7592 7614 Ebov_9_RIGHT 1 - +KR063671.1 7438 7460 Ebov_10_LEFT 2 + +KR063671.1 8406 8428 Ebov_10_RIGHT 2 - +KR063671.1 8239 8269 Ebov_11_LEFT 1 + +KR063671.1 9267 9289 Ebov_11_RIGHT 1 - +KR063671.1 9139 9166 Ebov_12_LEFT 2 + +KR063671.1 10026 10048 Ebov_12_RIGHT 2 - +KR063671.1 9895 9920 Ebov_13_LEFT 1 + +KR063671.1 10787 10809 Ebov_13_RIGHT 1 - +KR063671.1 10651 10673 Ebov_14_LEFT 2 + +KR063671.1 11646 11668 Ebov_14_RIGHT 2 - +KR063671.1 11517 11540 Ebov_15_LEFT 1 + +KR063671.1 12467 12489 Ebov_15_RIGHT 1 - +KR063671.1 12337 12365 Ebov_16_LEFT 2 + +KR063671.1 13276 13298 Ebov_16_RIGHT 2 - +KR063671.1 13141 13171 Ebov_17_LEFT 1 + +KR063671.1 14031 14053 Ebov_17_RIGHT 1 - +KR063671.1 13897 13919 Ebov_18_LEFT 2 + +KR063671.1 14781 14803 Ebov_18_RIGHT 2 - +KR063671.1 14651 14673 Ebov_19_LEFT 1 + +KR063671.1 15621 15643 Ebov_19_RIGHT 1 - +KR063671.1 15480 15502 Ebov_20_LEFT 2 + +KR063671.1 16471 16493 Ebov_20_RIGHT 2 - +KR063671.1 16331 16358 Ebov_21_LEFT 1 + +KR063671.1 17311 17333 Ebov_21_RIGHT 1 - +KR063671.1 17182 17210 Ebov_22_LEFT 2 + +KR063671.1 18161 18183 Ebov_22_RIGHT 2 - +KR063671.1 17941 17968 Ebov_23_LEFT 1 + +KR063671.1 18894 18916 Ebov_23_RIGHT 1 - diff --git a/resources/primers_schemes/bed/ZaireEbola/V2/ZaireEbola.primer.bed b/resources/primers_schemes/bed/ZaireEbola/V2/ZaireEbola.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..213ef903f25e6a1cec002326f063f32e624acc56 --- /dev/null +++ b/resources/primers_schemes/bed/ZaireEbola/V2/ZaireEbola.primer.bed @@ -0,0 +1,94 @@ +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 38 64 Ebola-Zaire_1_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 500 522 Ebola-Zaire_1_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 434 459 Ebola-Zaire_2_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 907 929 Ebola-Zaire_2_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 859 881 Ebola-Zaire_3_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 1327 1349 Ebola-Zaire_3_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 1251 1273 Ebola-Zaire_4_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 1740 1762 Ebola-Zaire_4_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 1687 1709 Ebola-Zaire_5_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 2143 2165 Ebola-Zaire_5_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 2065 2087 Ebola-Zaire_6_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 2557 2580 Ebola-Zaire_6_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 2508 2531 Ebola-Zaire_7_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 2975 2997 Ebola-Zaire_7_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 2894 2924 Ebola-Zaire_8_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 3347 3370 Ebola-Zaire_8_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 3291 3313 Ebola-Zaire_9_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 3768 3790 Ebola-Zaire_9_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 3694 3716 Ebola-Zaire_10_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 4147 4169 Ebola-Zaire_10_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 4074 4096 Ebola-Zaire_11_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 4566 4588 Ebola-Zaire_11_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 4493 4515 Ebola-Zaire_12_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 4947 4969 Ebola-Zaire_12_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 4871 4893 Ebola-Zaire_13_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 5343 5366 Ebola-Zaire_13_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 5280 5302 Ebola-Zaire_14_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 5757 5779 Ebola-Zaire_14_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 5708 5737 Ebola-Zaire_15_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 6166 6190 Ebola-Zaire_15_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 6122 6146 Ebola-Zaire_16_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 6580 6602 Ebola-Zaire_16_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 6523 6545 Ebola-Zaire_17_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 6986 7008 Ebola-Zaire_17_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 6924 6949 Ebola-Zaire_18_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 7377 7399 Ebola-Zaire_18_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 7323 7345 Ebola-Zaire_19_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 7776 7798 Ebola-Zaire_19_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 7722 7744 Ebola-Zaire_20_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 8178 8202 Ebola-Zaire_20_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 8100 8124 Ebola-Zaire_21_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 8555 8577 Ebola-Zaire_21_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 8515 8537 Ebola-Zaire_22_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 8970 8992 Ebola-Zaire_22_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 8891 8914 Ebola-Zaire_23_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 9345 9367 Ebola-Zaire_23_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 9269 9291 Ebola-Zaire_24_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 9765 9787 Ebola-Zaire_24_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 9670 9693 Ebola-Zaire_25_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 10162 10185 Ebola-Zaire_25_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 10096 10125 Ebola-Zaire_26_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 10544 10571 Ebola-Zaire_26_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 10489 10511 Ebola-Zaire_27_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 10944 10966 Ebola-Zaire_27_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 10863 10890 Ebola-Zaire_28_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 11312 11341 Ebola-Zaire_28_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 11243 11265 Ebola-Zaire_29_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 11703 11725 Ebola-Zaire_29_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 11650 11672 Ebola-Zaire_30_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 12120 12143 Ebola-Zaire_30_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 12043 12067 Ebola-Zaire_31_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 12518 12540 Ebola-Zaire_31_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 12466 12489 Ebola-Zaire_32_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 12919 12941 Ebola-Zaire_32_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 12840 12867 Ebola-Zaire_33_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 13316 13339 Ebola-Zaire_33_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 13274 13296 Ebola-Zaire_34_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 13724 13749 Ebola-Zaire_34_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 13667 13689 Ebola-Zaire_35_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 14129 14154 Ebola-Zaire_35_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 14075 14097 Ebola-Zaire_36_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 14543 14565 Ebola-Zaire_36_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 14489 14511 Ebola-Zaire_37_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 14949 14972 Ebola-Zaire_37_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 14869 14893 Ebola-Zaire_38_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 15353 15377 Ebola-Zaire_38_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 15275 15297 Ebola-Zaire_39_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 15741 15767 Ebola-Zaire_39_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 15692 15721 Ebola-Zaire_40_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 16140 16167 Ebola-Zaire_40_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 16094 16119 Ebola-Zaire_41_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 16553 16576 Ebola-Zaire_41_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 16489 16511 Ebola-Zaire_42_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 16946 16970 Ebola-Zaire_42_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 16891 16913 Ebola-Zaire_43_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 17354 17376 Ebola-Zaire_43_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 17313 17335 Ebola-Zaire_44_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 17764 17794 Ebola-Zaire_44_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 17713 17739 Ebola-Zaire_45_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 18168 18190 Ebola-Zaire_45_RIGHT 1 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 18084 18110 Ebola-Zaire_46_LEFT 2 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 18546 18573 Ebola-Zaire_46_RIGHT 2 - +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 18435 18458 Ebola-Zaire_47_LEFT 1 + +EBOV|AF272001|Mayinga|Yambuku_DRC|1976 18896 18918 Ebola-Zaire_47_RIGHT 1 - diff --git a/resources/primers_schemes/bed/ZaireEbola/V3/ZaireEbola.primer.bed b/resources/primers_schemes/bed/ZaireEbola/V3/ZaireEbola.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..83ef9ad4025e4ada7d3333d37f30b863cee42394 --- /dev/null +++ b/resources/primers_schemes/bed/ZaireEbola/V3/ZaireEbola.primer.bed @@ -0,0 +1,124 @@ +KR063671|Yambuku-Mayinga|DRC|1976-10-01 37 62 Ebov-10-Pan_1_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 402 427 Ebov-10-Pan_1_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 333 360 Ebov-10-Pan_2_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 704 726 Ebov-10-Pan_2_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 641 663 Ebov-10-Pan_3_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 999 1021 Ebov-10-Pan_3_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 922 946 Ebov-10-Pan_4_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 1300 1322 Ebov-10-Pan_4_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 1250 1272 Ebov-10-Pan_5_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 1609 1635 Ebov-10-Pan_5_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 1542 1564 Ebov-10-Pan_6_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 1927 1949 Ebov-10-Pan_6_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 1860 1882 Ebov-10-Pan_7_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2231 2253 Ebov-10-Pan_7_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2161 2183 Ebov-10-Pan_8_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2531 2553 Ebov-10-Pan_8_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2383 2405 Ebov-10-Pan_9_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2739 2763 Ebov-10-Pan_9_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2699 2722 Ebov-10-Pan_10_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3059 3085 Ebov-10-Pan_10_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 2974 2996 Ebov-10-Pan_11_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3339 3361 Ebov-10-Pan_11_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3296 3318 Ebov-10-Pan_12_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3662 3684 Ebov-10-Pan_12_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3610 3632 Ebov-10-Pan_13_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3988 4010 Ebov-10-Pan_13_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 3900 3922 Ebov-10-Pan_14_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 4274 4303 Ebov-10-Pan_14_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 4239 4268 Ebov-10-Pan_15_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 4600 4622 Ebov-10-Pan_15_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 4565 4587 Ebov-10-Pan_16_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 4926 4948 Ebov-10-Pan_16_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 4867 4889 Ebov-10-Pan_17_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 5252 5274 Ebov-10-Pan_17_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 5182 5210 Ebov-10-Pan_18_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 5532 5562 Ebov-10-Pan_18_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 5474 5504 Ebov-10-Pan_19_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 5857 5880 Ebov-10-Pan_19_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 5791 5813 Ebov-10-Pan_20_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 6165 6189 Ebov-10-Pan_20_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 6121 6145 Ebov-10-Pan_21_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 6490 6512 Ebov-10-Pan_21_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 6439 6461 Ebov-10-Pan_22_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 6794 6820 Ebov-10-Pan_22_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 6738 6762 Ebov-10-Pan_23_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 7120 7142 Ebov-10-Pan_23_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 7079 7101 Ebov-10-Pan_24_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 7438 7460 Ebov-10-Pan_24_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 7377 7399 Ebov-10-Pan_25_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 7751 7773 Ebov-10-Pan_25_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 7698 7720 Ebov-10-Pan_26_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8071 8096 Ebov-10-Pan_26_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8003 8028 Ebov-10-Pan_27_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8365 8388 Ebov-10-Pan_27_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8330 8358 Ebov-10-Pan_28_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8688 8711 Ebov-10-Pan_28_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8618 8640 Ebov-10-Pan_29_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9011 9035 Ebov-10-Pan_29_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 8947 8969 Ebov-10-Pan_30_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9337 9359 Ebov-10-Pan_30_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9267 9289 Ebov-10-Pan_31_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9663 9685 Ebov-10-Pan_31_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9603 9625 Ebov-10-Pan_32_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9966 9992 Ebov-10-Pan_32_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 9895 9920 Ebov-10-Pan_33_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 10257 10279 Ebov-10-Pan_33_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 10176 10201 Ebov-10-Pan_34_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 10541 10563 Ebov-10-Pan_34_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 10487 10509 Ebov-10-Pan_35_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 10846 10869 Ebov-10-Pan_35_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 10788 10810 Ebov-10-Pan_36_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11141 11169 Ebov-10-Pan_36_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11048 11074 Ebov-10-Pan_37_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11407 11431 Ebov-10-Pan_37_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11298 11323 Ebov-10-Pan_38_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11689 11711 Ebov-10-Pan_38_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11646 11668 Ebov-10-Pan_39_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11999 12027 Ebov-10-Pan_39_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 11939 11961 Ebov-10-Pan_40_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 12314 12341 Ebov-10-Pan_40_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 12234 12256 Ebov-10-Pan_41_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 12611 12637 Ebov-10-Pan_41_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 12546 12571 Ebov-10-Pan_42_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 12919 12941 Ebov-10-Pan_42_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 12843 12869 Ebov-10-Pan_43_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 13204 13232 Ebov-10-Pan_43_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 13161 13186 Ebov-10-Pan_44_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 13514 13541 Ebov-10-Pan_44_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 13443 13467 Ebov-10-Pan_45_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 13838 13860 Ebov-10-Pan_45_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 13778 13800 Ebov-10-Pan_46_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14149 14171 Ebov-10-Pan_46_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14097 14119 Ebov-10-Pan_47_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14455 14477 Ebov-10-Pan_47_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14395 14421 Ebov-10-Pan_48_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14781 14803 Ebov-10-Pan_48_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14675 14697 Ebov-10-Pan_49_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15039 15061 Ebov-10-Pan_49_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 14994 15018 Ebov-10-Pan_50_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15351 15374 Ebov-10-Pan_50_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15281 15311 Ebov-10-Pan_51_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15638 15661 Ebov-10-Pan_51_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15602 15626 Ebov-10-Pan_52_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15960 15986 Ebov-10-Pan_52_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 15899 15922 Ebov-10-Pan_53_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 16270 16297 Ebov-10-Pan_53_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 16206 16228 Ebov-10-Pan_54_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 16568 16591 Ebov-10-Pan_54_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 16505 16527 Ebov-10-Pan_55_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 16889 16911 Ebov-10-Pan_55_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 16849 16871 Ebov-10-Pan_56_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 17204 17230 Ebov-10-Pan_56_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 17145 17167 Ebov-10-Pan_57_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 17524 17551 Ebov-10-Pan_57_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 17445 17469 Ebov-10-Pan_58_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 17837 17861 Ebov-10-Pan_58_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 17800 17824 Ebov-10-Pan_59_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18161 18183 Ebov-10-Pan_59_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18082 18108 Ebov-10-Pan_60_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18448 18474 Ebov-10-Pan_60_RIGHT 2 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18404 18426 Ebov-10-Pan_61_LEFT 1 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18761 18788 Ebov-10-Pan_61_RIGHT 1 - +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18542 18568 Ebov-10-Pan_62_LEFT 2 + +KR063671|Yambuku-Mayinga|DRC|1976-10-01 18897 18922 Ebov-10-Pan_62_RIGHT 2 - diff --git a/resources/primers_schemes/bed/nCoV-2019/V1/nCoV-2019.primer.bed b/resources/primers_schemes/bed/nCoV-2019/V1/nCoV-2019.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..2a05af674d862cc48e3be9bfdaa92a761eb76c0c --- /dev/null +++ b/resources/primers_schemes/bed/nCoV-2019/V1/nCoV-2019.primer.bed @@ -0,0 +1,196 @@ +MN908947.3 30 54 nCoV-2019_1_LEFT 1 + +MN908947.3 385 410 nCoV-2019_1_RIGHT 1 - +MN908947.3 320 342 nCoV-2019_2_LEFT 2 + +MN908947.3 704 726 nCoV-2019_2_RIGHT 2 - +MN908947.3 642 664 nCoV-2019_3_LEFT 1 + +MN908947.3 1004 1028 nCoV-2019_3_RIGHT 1 - +MN908947.3 943 965 nCoV-2019_4_LEFT 2 + +MN908947.3 1312 1337 nCoV-2019_4_RIGHT 2 - +MN908947.3 1242 1264 nCoV-2019_5_LEFT 1 + +MN908947.3 1623 1651 nCoV-2019_5_RIGHT 1 - +MN908947.3 1573 1595 nCoV-2019_6_LEFT 2 + +MN908947.3 1942 1964 nCoV-2019_6_RIGHT 2 - +MN908947.3 1875 1897 nCoV-2019_7_LEFT 1 + +MN908947.3 2247 2269 nCoV-2019_7_RIGHT 1 - +MN908947.3 2181 2205 nCoV-2019_8_LEFT 2 + +MN908947.3 2568 2592 nCoV-2019_8_RIGHT 2 - +MN908947.3 2505 2529 nCoV-2019_9_LEFT 1 + +MN908947.3 2882 2904 nCoV-2019_9_RIGHT 1 - +MN908947.3 2826 2850 nCoV-2019_10_LEFT 2 + +MN908947.3 3183 3210 nCoV-2019_10_RIGHT 2 - +MN908947.3 3144 3166 nCoV-2019_11_LEFT 1 + +MN908947.3 3507 3531 nCoV-2019_11_RIGHT 1 - +MN908947.3 3460 3482 nCoV-2019_12_LEFT 2 + +MN908947.3 3826 3853 nCoV-2019_12_RIGHT 2 - +MN908947.3 3771 3795 nCoV-2019_13_LEFT 1 + +MN908947.3 4142 4164 nCoV-2019_13_RIGHT 1 - +MN908947.3 4054 4077 nCoV-2019_14_LEFT 2 + +MN908947.3 4428 4450 nCoV-2019_14_RIGHT 2 - +MN908947.3 4294 4321 nCoV-2019_15_LEFT 1 + +MN908947.3 4674 4696 nCoV-2019_15_RIGHT 1 - +MN908947.3 4636 4658 nCoV-2019_16_LEFT 2 + +MN908947.3 4995 5017 nCoV-2019_16_RIGHT 2 - +MN908947.3 4939 4966 nCoV-2019_17_LEFT 1 + +MN908947.3 5296 5321 nCoV-2019_17_RIGHT 1 - +MN908947.3 5230 5259 nCoV-2019_18_LEFT 2 + +MN908947.3 5620 5644 nCoV-2019_18_RIGHT 2 - +MN908947.3 5563 5586 nCoV-2019_19_LEFT 1 + +MN908947.3 5932 5957 nCoV-2019_19_RIGHT 1 - +MN908947.3 5867 5894 nCoV-2019_20_LEFT 2 + +MN908947.3 6247 6272 nCoV-2019_20_RIGHT 2 - +MN908947.3 6167 6196 nCoV-2019_21_LEFT 1 + +MN908947.3 6528 6550 nCoV-2019_21_RIGHT 1 - +MN908947.3 6466 6495 nCoV-2019_22_LEFT 2 + +MN908947.3 6846 6873 nCoV-2019_22_RIGHT 2 - +MN908947.3 6718 6745 nCoV-2019_23_LEFT 1 + +MN908947.3 7092 7117 nCoV-2019_23_RIGHT 1 - +MN908947.3 7035 7058 nCoV-2019_24_LEFT 2 + +MN908947.3 7389 7415 nCoV-2019_24_RIGHT 2 - +MN908947.3 7305 7332 nCoV-2019_25_LEFT 1 + +MN908947.3 7671 7694 nCoV-2019_25_RIGHT 1 - +MN908947.3 7626 7651 nCoV-2019_26_LEFT 2 + +MN908947.3 7997 8019 nCoV-2019_26_RIGHT 2 - +MN908947.3 7943 7968 nCoV-2019_27_LEFT 1 + +MN908947.3 8319 8341 nCoV-2019_27_RIGHT 1 - +MN908947.3 8249 8275 nCoV-2019_28_LEFT 2 + +MN908947.3 8635 8661 nCoV-2019_28_RIGHT 2 - +MN908947.3 8595 8619 nCoV-2019_29_LEFT 1 + +MN908947.3 8954 8983 nCoV-2019_29_RIGHT 1 - +MN908947.3 8888 8913 nCoV-2019_30_LEFT 2 + +MN908947.3 9245 9271 nCoV-2019_30_RIGHT 2 - +MN908947.3 9204 9226 nCoV-2019_31_LEFT 1 + +MN908947.3 9557 9585 nCoV-2019_31_RIGHT 1 - +MN908947.3 9477 9502 nCoV-2019_32_LEFT 2 + +MN908947.3 9834 9858 nCoV-2019_32_RIGHT 2 - +MN908947.3 9784 9806 nCoV-2019_33_LEFT 1 + +MN908947.3 10146 10171 nCoV-2019_33_RIGHT 1 - +MN908947.3 10076 10099 nCoV-2019_34_LEFT 2 + +MN908947.3 10437 10459 nCoV-2019_34_RIGHT 2 - +MN908947.3 10362 10384 nCoV-2019_35_LEFT 1 + +MN908947.3 10737 10763 nCoV-2019_35_RIGHT 1 - +MN908947.3 10666 10688 nCoV-2019_36_LEFT 2 + +MN908947.3 11048 11074 nCoV-2019_36_RIGHT 2 - +MN908947.3 10999 11022 nCoV-2019_37_LEFT 1 + +MN908947.3 11372 11394 nCoV-2019_37_RIGHT 1 - +MN908947.3 11306 11331 nCoV-2019_38_LEFT 2 + +MN908947.3 11668 11693 nCoV-2019_38_RIGHT 2 - +MN908947.3 11555 11584 nCoV-2019_39_LEFT 1 + +MN908947.3 11927 11949 nCoV-2019_39_RIGHT 1 - +MN908947.3 11863 11889 nCoV-2019_40_LEFT 2 + +MN908947.3 12234 12256 nCoV-2019_40_RIGHT 2 - +MN908947.3 12110 12133 nCoV-2019_41_LEFT 1 + +MN908947.3 12465 12490 nCoV-2019_41_RIGHT 1 - +MN908947.3 12417 12439 nCoV-2019_42_LEFT 2 + +MN908947.3 12779 12802 nCoV-2019_42_RIGHT 2 - +MN908947.3 12710 12732 nCoV-2019_43_LEFT 1 + +MN908947.3 13074 13096 nCoV-2019_43_RIGHT 1 - +MN908947.3 13005 13027 nCoV-2019_44_LEFT 2 + +MN908947.3 13378 13400 nCoV-2019_44_RIGHT 2 - +MN908947.3 13319 13344 nCoV-2019_45_LEFT 1 + +MN908947.3 13669 13699 nCoV-2019_45_RIGHT 1 - +MN908947.3 13599 13621 nCoV-2019_46_LEFT 2 + +MN908947.3 13962 13984 nCoV-2019_46_RIGHT 2 - +MN908947.3 13918 13946 nCoV-2019_47_LEFT 1 + +MN908947.3 14271 14299 nCoV-2019_47_RIGHT 1 - +MN908947.3 14207 14232 nCoV-2019_48_LEFT 2 + +MN908947.3 14579 14601 nCoV-2019_48_RIGHT 2 - +MN908947.3 14545 14570 nCoV-2019_49_LEFT 1 + +MN908947.3 14898 14926 nCoV-2019_49_RIGHT 1 - +MN908947.3 14865 14895 nCoV-2019_50_LEFT 2 + +MN908947.3 15224 15246 nCoV-2019_50_RIGHT 2 - +MN908947.3 15171 15193 nCoV-2019_51_LEFT 1 + +MN908947.3 15538 15560 nCoV-2019_51_RIGHT 1 - +MN908947.3 15481 15503 nCoV-2019_52_LEFT 2 + +MN908947.3 15861 15886 nCoV-2019_52_RIGHT 2 - +MN908947.3 15827 15851 nCoV-2019_53_LEFT 1 + +MN908947.3 16186 16209 nCoV-2019_53_RIGHT 1 - +MN908947.3 16118 16144 nCoV-2019_54_LEFT 2 + +MN908947.3 16485 16510 nCoV-2019_54_RIGHT 2 - +MN908947.3 16416 16444 nCoV-2019_55_LEFT 1 + +MN908947.3 16804 16833 nCoV-2019_55_RIGHT 1 - +MN908947.3 16748 16770 nCoV-2019_56_LEFT 2 + +MN908947.3 17130 17152 nCoV-2019_56_RIGHT 2 - +MN908947.3 17065 17087 nCoV-2019_57_LEFT 1 + +MN908947.3 17430 17452 nCoV-2019_57_RIGHT 1 - +MN908947.3 17381 17406 nCoV-2019_58_LEFT 2 + +MN908947.3 17738 17761 nCoV-2019_58_RIGHT 2 - +MN908947.3 17674 17697 nCoV-2019_59_LEFT 1 + +MN908947.3 18036 18062 nCoV-2019_59_RIGHT 1 - +MN908947.3 17966 17993 nCoV-2019_60_LEFT 2 + +MN908947.3 18324 18348 nCoV-2019_60_RIGHT 2 - +MN908947.3 18253 18275 nCoV-2019_61_LEFT 1 + +MN908947.3 18650 18672 nCoV-2019_61_RIGHT 1 - +MN908947.3 18596 18618 nCoV-2019_62_LEFT 2 + +MN908947.3 18957 18979 nCoV-2019_62_RIGHT 2 - +MN908947.3 18896 18918 nCoV-2019_63_LEFT 1 + +MN908947.3 19275 19297 nCoV-2019_63_RIGHT 1 - +MN908947.3 19204 19232 nCoV-2019_64_LEFT 2 + +MN908947.3 19591 19616 nCoV-2019_64_RIGHT 2 - +MN908947.3 19548 19570 nCoV-2019_65_LEFT 1 + +MN908947.3 19911 19939 nCoV-2019_65_RIGHT 1 - +MN908947.3 19844 19866 nCoV-2019_66_LEFT 2 + +MN908947.3 20231 20255 nCoV-2019_66_RIGHT 2 - +MN908947.3 20172 20200 nCoV-2019_67_LEFT 1 + +MN908947.3 20542 20572 nCoV-2019_67_RIGHT 1 - +MN908947.3 20472 20496 nCoV-2019_68_LEFT 2 + +MN908947.3 20867 20890 nCoV-2019_68_RIGHT 2 - +MN908947.3 20786 20813 nCoV-2019_69_LEFT 1 + +MN908947.3 21146 21169 nCoV-2019_69_RIGHT 1 - +MN908947.3 21075 21104 nCoV-2019_70_LEFT 2 + +MN908947.3 21427 21455 nCoV-2019_70_RIGHT 2 - +MN908947.3 21357 21386 nCoV-2019_71_LEFT 1 + +MN908947.3 21716 21743 nCoV-2019_71_RIGHT 1 - +MN908947.3 21658 21682 nCoV-2019_72_LEFT 2 + +MN908947.3 22013 22038 nCoV-2019_72_RIGHT 2 - +MN908947.3 21961 21990 nCoV-2019_73_LEFT 1 + +MN908947.3 22324 22346 nCoV-2019_73_RIGHT 1 - +MN908947.3 22262 22290 nCoV-2019_74_LEFT 2 + +MN908947.3 22626 22650 nCoV-2019_74_RIGHT 2 - +MN908947.3 22516 22542 nCoV-2019_75_LEFT 1 + +MN908947.3 22877 22903 nCoV-2019_75_RIGHT 1 - +MN908947.3 22797 22819 nCoV-2019_76_LEFT 2 + +MN908947.3 23192 23214 nCoV-2019_76_RIGHT 2 - +MN908947.3 23122 23144 nCoV-2019_77_LEFT 1 + +MN908947.3 23500 23522 nCoV-2019_77_RIGHT 1 - +MN908947.3 23443 23466 nCoV-2019_78_LEFT 2 + +MN908947.3 23822 23847 nCoV-2019_78_RIGHT 2 - +MN908947.3 23789 23812 nCoV-2019_79_LEFT 1 + +MN908947.3 24145 24169 nCoV-2019_79_RIGHT 1 - +MN908947.3 24078 24100 nCoV-2019_80_LEFT 2 + +MN908947.3 24443 24467 nCoV-2019_80_RIGHT 2 - +MN908947.3 24391 24416 nCoV-2019_81_LEFT 1 + +MN908947.3 24765 24789 nCoV-2019_81_RIGHT 1 - +MN908947.3 24696 24721 nCoV-2019_82_LEFT 2 + +MN908947.3 25052 25076 nCoV-2019_82_RIGHT 2 - +MN908947.3 24978 25003 nCoV-2019_83_LEFT 1 + +MN908947.3 25347 25369 nCoV-2019_83_RIGHT 1 - +MN908947.3 25279 25301 nCoV-2019_84_LEFT 2 + +MN908947.3 25646 25673 nCoV-2019_84_RIGHT 2 - +MN908947.3 25601 25623 nCoV-2019_85_LEFT 1 + +MN908947.3 25969 25994 nCoV-2019_85_RIGHT 1 - +MN908947.3 25902 25924 nCoV-2019_86_LEFT 2 + +MN908947.3 26290 26315 nCoV-2019_86_RIGHT 2 - +MN908947.3 26197 26219 nCoV-2019_87_LEFT 1 + +MN908947.3 26566 26590 nCoV-2019_87_RIGHT 1 - +MN908947.3 26520 26542 nCoV-2019_88_LEFT 2 + +MN908947.3 26890 26913 nCoV-2019_88_RIGHT 2 - +MN908947.3 26835 26857 nCoV-2019_89_LEFT 1 + +MN908947.3 27202 27227 nCoV-2019_89_RIGHT 1 - +MN908947.3 27141 27164 nCoV-2019_90_LEFT 2 + +MN908947.3 27511 27533 nCoV-2019_90_RIGHT 2 - +MN908947.3 27446 27471 nCoV-2019_91_LEFT 1 + +MN908947.3 27825 27854 nCoV-2019_91_RIGHT 1 - +MN908947.3 27784 27808 nCoV-2019_92_LEFT 2 + +MN908947.3 28145 28172 nCoV-2019_92_RIGHT 2 - +MN908947.3 28081 28104 nCoV-2019_93_LEFT 1 + +MN908947.3 28442 28464 nCoV-2019_93_RIGHT 1 - +MN908947.3 28394 28416 nCoV-2019_94_LEFT 2 + +MN908947.3 28756 28779 nCoV-2019_94_RIGHT 2 - +MN908947.3 28677 28699 nCoV-2019_95_LEFT 1 + +MN908947.3 29041 29063 nCoV-2019_95_RIGHT 1 - +MN908947.3 28985 29007 nCoV-2019_96_LEFT 2 + +MN908947.3 29356 29378 nCoV-2019_96_RIGHT 2 - +MN908947.3 29288 29316 nCoV-2019_97_LEFT 1 + +MN908947.3 29665 29693 nCoV-2019_97_RIGHT 1 - +MN908947.3 29486 29510 nCoV-2019_98_LEFT 2 + +MN908947.3 29836 29866 nCoV-2019_98_RIGHT 2 - diff --git a/resources/primers_schemes/bed/nCoV-2019/V2/nCoV-2019.primer.bed b/resources/primers_schemes/bed/nCoV-2019/V2/nCoV-2019.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..056345d5145052f9dbe8aeb832f4edb1a6261ad8 --- /dev/null +++ b/resources/primers_schemes/bed/nCoV-2019/V2/nCoV-2019.primer.bed @@ -0,0 +1,196 @@ +MN908947.3 30 54 nCoV-2019_1_LEFT 1 + +MN908947.3 385 410 nCoV-2019_1_RIGHT 1 - +MN908947.3 320 342 nCoV-2019_2_LEFT 2 + +MN908947.3 704 726 nCoV-2019_2_RIGHT 2 - +MN908947.3 642 664 nCoV-2019_3_LEFT 1 + +MN908947.3 1004 1028 nCoV-2019_3_RIGHT 1 - +MN908947.3 943 965 nCoV-2019_4_LEFT 2 + +MN908947.3 1312 1337 nCoV-2019_4_RIGHT 2 - +MN908947.3 1242 1264 nCoV-2019_5_LEFT 1 + +MN908947.3 1623 1651 nCoV-2019_5_RIGHT 1 - +MN908947.3 1573 1595 nCoV-2019_6_LEFT 2 + +MN908947.3 1942 1964 nCoV-2019_6_RIGHT 2 - +MN908947.3 1875 1897 nCoV-2019_7_LEFT 1 + +MN908947.3 2247 2269 nCoV-2019_7_RIGHT 1 - +MN908947.3 2181 2205 nCoV-2019_8_LEFT 2 + +MN908947.3 2568 2592 nCoV-2019_8_RIGHT 2 - +MN908947.3 2505 2529 nCoV-2019_9_LEFT 1 + +MN908947.3 2882 2904 nCoV-2019_9_RIGHT 1 - +MN908947.3 2826 2850 nCoV-2019_10_LEFT 2 + +MN908947.3 3183 3210 nCoV-2019_10_RIGHT 2 - +MN908947.3 3144 3166 nCoV-2019_11_LEFT 1 + +MN908947.3 3507 3531 nCoV-2019_11_RIGHT 1 - +MN908947.3 3460 3482 nCoV-2019_12_LEFT 2 + +MN908947.3 3826 3853 nCoV-2019_12_RIGHT 2 - +MN908947.3 3771 3795 nCoV-2019_13_LEFT 1 + +MN908947.3 4142 4164 nCoV-2019_13_RIGHT 1 - +MN908947.3 4054 4077 nCoV-2019_14_LEFT 2 + +MN908947.3 4428 4450 nCoV-2019_14_RIGHT 2 - +MN908947.3 4294 4321 nCoV-2019_15_LEFT 1 + +MN908947.3 4674 4696 nCoV-2019_15_RIGHT 1 - +MN908947.3 4636 4658 nCoV-2019_16_LEFT 2 + +MN908947.3 4995 5017 nCoV-2019_16_RIGHT 2 - +MN908947.3 4939 4966 nCoV-2019_17_LEFT 1 + +MN908947.3 5296 5321 nCoV-2019_17_RIGHT 1 - +MN908947.3 5257 5287 nCoV-2019_18_LEFT_alt2 2 + +MN908947.3 5620 5644 nCoV-2019_18_RIGHT 2 - +MN908947.3 5563 5586 nCoV-2019_19_LEFT 1 + +MN908947.3 5932 5957 nCoV-2019_19_RIGHT 1 - +MN908947.3 5867 5894 nCoV-2019_20_LEFT 2 + +MN908947.3 6247 6272 nCoV-2019_20_RIGHT 2 - +MN908947.3 6167 6196 nCoV-2019_21_LEFT 1 + +MN908947.3 6528 6550 nCoV-2019_21_RIGHT 1 - +MN908947.3 6466 6495 nCoV-2019_22_LEFT 2 + +MN908947.3 6846 6873 nCoV-2019_22_RIGHT 2 - +MN908947.3 6718 6745 nCoV-2019_23_LEFT 1 + +MN908947.3 7092 7117 nCoV-2019_23_RIGHT 1 - +MN908947.3 7035 7058 nCoV-2019_24_LEFT 2 + +MN908947.3 7389 7415 nCoV-2019_24_RIGHT 2 - +MN908947.3 7305 7332 nCoV-2019_25_LEFT 1 + +MN908947.3 7671 7694 nCoV-2019_25_RIGHT 1 - +MN908947.3 7626 7651 nCoV-2019_26_LEFT 2 + +MN908947.3 7997 8019 nCoV-2019_26_RIGHT 2 - +MN908947.3 7943 7968 nCoV-2019_27_LEFT 1 + +MN908947.3 8319 8341 nCoV-2019_27_RIGHT 1 - +MN908947.3 8249 8275 nCoV-2019_28_LEFT 2 + +MN908947.3 8635 8661 nCoV-2019_28_RIGHT 2 - +MN908947.3 8595 8619 nCoV-2019_29_LEFT 1 + +MN908947.3 8954 8983 nCoV-2019_29_RIGHT 1 - +MN908947.3 8888 8913 nCoV-2019_30_LEFT 2 + +MN908947.3 9245 9271 nCoV-2019_30_RIGHT 2 - +MN908947.3 9204 9226 nCoV-2019_31_LEFT 1 + +MN908947.3 9557 9585 nCoV-2019_31_RIGHT 1 - +MN908947.3 9477 9502 nCoV-2019_32_LEFT 2 + +MN908947.3 9834 9858 nCoV-2019_32_RIGHT 2 - +MN908947.3 9784 9806 nCoV-2019_33_LEFT 1 + +MN908947.3 10146 10171 nCoV-2019_33_RIGHT 1 - +MN908947.3 10076 10099 nCoV-2019_34_LEFT 2 + +MN908947.3 10437 10459 nCoV-2019_34_RIGHT 2 - +MN908947.3 10362 10384 nCoV-2019_35_LEFT 1 + +MN908947.3 10737 10763 nCoV-2019_35_RIGHT 1 - +MN908947.3 10666 10688 nCoV-2019_36_LEFT 2 + +MN908947.3 11048 11074 nCoV-2019_36_RIGHT 2 - +MN908947.3 10999 11022 nCoV-2019_37_LEFT 1 + +MN908947.3 11372 11394 nCoV-2019_37_RIGHT 1 - +MN908947.3 11306 11331 nCoV-2019_38_LEFT 2 + +MN908947.3 11668 11693 nCoV-2019_38_RIGHT 2 - +MN908947.3 11555 11584 nCoV-2019_39_LEFT 1 + +MN908947.3 11927 11949 nCoV-2019_39_RIGHT 1 - +MN908947.3 11863 11889 nCoV-2019_40_LEFT 2 + +MN908947.3 12234 12256 nCoV-2019_40_RIGHT 2 - +MN908947.3 12110 12133 nCoV-2019_41_LEFT 1 + +MN908947.3 12465 12490 nCoV-2019_41_RIGHT 1 - +MN908947.3 12417 12439 nCoV-2019_42_LEFT 2 + +MN908947.3 12779 12802 nCoV-2019_42_RIGHT 2 - +MN908947.3 12710 12732 nCoV-2019_43_LEFT 1 + +MN908947.3 13074 13096 nCoV-2019_43_RIGHT 1 - +MN908947.3 13005 13027 nCoV-2019_44_LEFT 2 + +MN908947.3 13378 13400 nCoV-2019_44_RIGHT 2 - +MN908947.3 13319 13344 nCoV-2019_45_LEFT 1 + +MN908947.3 13669 13699 nCoV-2019_45_RIGHT 1 - +MN908947.3 13599 13621 nCoV-2019_46_LEFT 2 + +MN908947.3 13962 13984 nCoV-2019_46_RIGHT 2 - +MN908947.3 13918 13946 nCoV-2019_47_LEFT 1 + +MN908947.3 14271 14299 nCoV-2019_47_RIGHT 1 - +MN908947.3 14207 14232 nCoV-2019_48_LEFT 2 + +MN908947.3 14579 14601 nCoV-2019_48_RIGHT 2 - +MN908947.3 14545 14570 nCoV-2019_49_LEFT 1 + +MN908947.3 14898 14926 nCoV-2019_49_RIGHT 1 - +MN908947.3 14865 14895 nCoV-2019_50_LEFT 2 + +MN908947.3 15224 15246 nCoV-2019_50_RIGHT 2 - +MN908947.3 15171 15193 nCoV-2019_51_LEFT 1 + +MN908947.3 15538 15560 nCoV-2019_51_RIGHT 1 - +MN908947.3 15481 15503 nCoV-2019_52_LEFT 2 + +MN908947.3 15861 15886 nCoV-2019_52_RIGHT 2 - +MN908947.3 15827 15851 nCoV-2019_53_LEFT 1 + +MN908947.3 16186 16209 nCoV-2019_53_RIGHT 1 - +MN908947.3 16118 16144 nCoV-2019_54_LEFT 2 + +MN908947.3 16485 16510 nCoV-2019_54_RIGHT 2 - +MN908947.3 16416 16444 nCoV-2019_55_LEFT 1 + +MN908947.3 16804 16833 nCoV-2019_55_RIGHT 1 - +MN908947.3 16748 16770 nCoV-2019_56_LEFT 2 + +MN908947.3 17130 17152 nCoV-2019_56_RIGHT 2 - +MN908947.3 17065 17087 nCoV-2019_57_LEFT 1 + +MN908947.3 17430 17452 nCoV-2019_57_RIGHT 1 - +MN908947.3 17381 17406 nCoV-2019_58_LEFT 2 + +MN908947.3 17738 17761 nCoV-2019_58_RIGHT 2 - +MN908947.3 17674 17697 nCoV-2019_59_LEFT 1 + +MN908947.3 18036 18062 nCoV-2019_59_RIGHT 1 - +MN908947.3 17966 17993 nCoV-2019_60_LEFT 2 + +MN908947.3 18324 18348 nCoV-2019_60_RIGHT 2 - +MN908947.3 18253 18275 nCoV-2019_61_LEFT 1 + +MN908947.3 18650 18672 nCoV-2019_61_RIGHT 1 - +MN908947.3 18596 18618 nCoV-2019_62_LEFT 2 + +MN908947.3 18957 18979 nCoV-2019_62_RIGHT 2 - +MN908947.3 18896 18918 nCoV-2019_63_LEFT 1 + +MN908947.3 19275 19297 nCoV-2019_63_RIGHT 1 - +MN908947.3 19204 19232 nCoV-2019_64_LEFT 2 + +MN908947.3 19591 19616 nCoV-2019_64_RIGHT 2 - +MN908947.3 19548 19570 nCoV-2019_65_LEFT 1 + +MN908947.3 19911 19939 nCoV-2019_65_RIGHT 1 - +MN908947.3 19844 19866 nCoV-2019_66_LEFT 2 + +MN908947.3 20231 20255 nCoV-2019_66_RIGHT 2 - +MN908947.3 20172 20200 nCoV-2019_67_LEFT 1 + +MN908947.3 20542 20572 nCoV-2019_67_RIGHT 1 - +MN908947.3 20472 20496 nCoV-2019_68_LEFT 2 + +MN908947.3 20867 20890 nCoV-2019_68_RIGHT 2 - +MN908947.3 20786 20813 nCoV-2019_69_LEFT 1 + +MN908947.3 21146 21169 nCoV-2019_69_RIGHT 1 - +MN908947.3 21075 21104 nCoV-2019_70_LEFT 2 + +MN908947.3 21427 21455 nCoV-2019_70_RIGHT 2 - +MN908947.3 21357 21386 nCoV-2019_71_LEFT 1 + +MN908947.3 21716 21743 nCoV-2019_71_RIGHT 1 - +MN908947.3 21658 21682 nCoV-2019_72_LEFT 2 + +MN908947.3 22013 22038 nCoV-2019_72_RIGHT 2 - +MN908947.3 21961 21990 nCoV-2019_73_LEFT 1 + +MN908947.3 22324 22346 nCoV-2019_73_RIGHT 1 - +MN908947.3 22262 22290 nCoV-2019_74_LEFT 2 + +MN908947.3 22626 22650 nCoV-2019_74_RIGHT 2 - +MN908947.3 22516 22542 nCoV-2019_75_LEFT 1 + +MN908947.3 22877 22903 nCoV-2019_75_RIGHT 1 - +MN908947.3 22797 22819 nCoV-2019_76_LEFT 2 + +MN908947.3 23192 23214 nCoV-2019_76_RIGHT 2 - +MN908947.3 23122 23144 nCoV-2019_77_LEFT 1 + +MN908947.3 23500 23522 nCoV-2019_77_RIGHT 1 - +MN908947.3 23443 23466 nCoV-2019_78_LEFT 2 + +MN908947.3 23822 23847 nCoV-2019_78_RIGHT 2 - +MN908947.3 23789 23812 nCoV-2019_79_LEFT 1 + +MN908947.3 24145 24169 nCoV-2019_79_RIGHT 1 - +MN908947.3 24078 24100 nCoV-2019_80_LEFT 2 + +MN908947.3 24443 24467 nCoV-2019_80_RIGHT 2 - +MN908947.3 24391 24416 nCoV-2019_81_LEFT 1 + +MN908947.3 24765 24789 nCoV-2019_81_RIGHT 1 - +MN908947.3 24696 24721 nCoV-2019_82_LEFT 2 + +MN908947.3 25052 25076 nCoV-2019_82_RIGHT 2 - +MN908947.3 24978 25003 nCoV-2019_83_LEFT 1 + +MN908947.3 25347 25369 nCoV-2019_83_RIGHT 1 - +MN908947.3 25279 25301 nCoV-2019_84_LEFT 2 + +MN908947.3 25646 25673 nCoV-2019_84_RIGHT 2 - +MN908947.3 25601 25623 nCoV-2019_85_LEFT 1 + +MN908947.3 25969 25994 nCoV-2019_85_RIGHT 1 - +MN908947.3 25902 25924 nCoV-2019_86_LEFT 2 + +MN908947.3 26290 26315 nCoV-2019_86_RIGHT 2 - +MN908947.3 26197 26219 nCoV-2019_87_LEFT 1 + +MN908947.3 26566 26590 nCoV-2019_87_RIGHT 1 - +MN908947.3 26520 26542 nCoV-2019_88_LEFT 2 + +MN908947.3 26890 26913 nCoV-2019_88_RIGHT 2 - +MN908947.3 26835 26857 nCoV-2019_89_LEFT 1 + +MN908947.3 27202 27227 nCoV-2019_89_RIGHT 1 - +MN908947.3 27141 27164 nCoV-2019_90_LEFT 2 + +MN908947.3 27511 27533 nCoV-2019_90_RIGHT 2 - +MN908947.3 27446 27471 nCoV-2019_91_LEFT 1 + +MN908947.3 27825 27854 nCoV-2019_91_RIGHT 1 - +MN908947.3 27784 27808 nCoV-2019_92_LEFT 2 + +MN908947.3 28145 28172 nCoV-2019_92_RIGHT 2 - +MN908947.3 28081 28104 nCoV-2019_93_LEFT 1 + +MN908947.3 28442 28464 nCoV-2019_93_RIGHT 1 - +MN908947.3 28394 28416 nCoV-2019_94_LEFT 2 + +MN908947.3 28756 28779 nCoV-2019_94_RIGHT 2 - +MN908947.3 28677 28699 nCoV-2019_95_LEFT 1 + +MN908947.3 29041 29063 nCoV-2019_95_RIGHT 1 - +MN908947.3 28985 29007 nCoV-2019_96_LEFT 2 + +MN908947.3 29356 29378 nCoV-2019_96_RIGHT 2 - +MN908947.3 29288 29316 nCoV-2019_97_LEFT 1 + +MN908947.3 29665 29693 nCoV-2019_97_RIGHT 1 - +MN908947.3 29486 29510 nCoV-2019_98_LEFT 2 + +MN908947.3 29836 29866 nCoV-2019_98_RIGHT 2 - diff --git a/resources/primers_schemes/bed/nCoV-2019/V3/nCoV-2019.primer.bed b/resources/primers_schemes/bed/nCoV-2019/V3/nCoV-2019.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..76691de9a14c582688785cce65747a7a04bd3d06 --- /dev/null +++ b/resources/primers_schemes/bed/nCoV-2019/V3/nCoV-2019.primer.bed @@ -0,0 +1,218 @@ +MN908947.3 30 54 nCoV-2019_1_LEFT 1 + +MN908947.3 385 410 nCoV-2019_1_RIGHT 1 - +MN908947.3 320 342 nCoV-2019_2_LEFT 2 + +MN908947.3 704 726 nCoV-2019_2_RIGHT 2 - +MN908947.3 642 664 nCoV-2019_3_LEFT 1 + +MN908947.3 1004 1028 nCoV-2019_3_RIGHT 1 - +MN908947.3 943 965 nCoV-2019_4_LEFT 2 + +MN908947.3 1312 1337 nCoV-2019_4_RIGHT 2 - +MN908947.3 1242 1264 nCoV-2019_5_LEFT 1 + +MN908947.3 1623 1651 nCoV-2019_5_RIGHT 1 - +MN908947.3 1573 1595 nCoV-2019_6_LEFT 2 + +MN908947.3 1942 1964 nCoV-2019_6_RIGHT 2 - +MN908947.3 1875 1897 nCoV-2019_7_LEFT 1 + +MN908947.3 1868 1890 nCoV-2019_7_LEFT_alt0 1 + +MN908947.3 2247 2269 nCoV-2019_7_RIGHT 1 - +MN908947.3 2242 2264 nCoV-2019_7_RIGHT_alt5 1 - +MN908947.3 2181 2205 nCoV-2019_8_LEFT 2 + +MN908947.3 2568 2592 nCoV-2019_8_RIGHT 2 - +MN908947.3 2505 2529 nCoV-2019_9_LEFT 1 + +MN908947.3 2504 2528 nCoV-2019_9_LEFT_alt4 1 + +MN908947.3 2882 2904 nCoV-2019_9_RIGHT 1 - +MN908947.3 2880 2902 nCoV-2019_9_RIGHT_alt2 1 - +MN908947.3 2826 2850 nCoV-2019_10_LEFT 2 + +MN908947.3 3183 3210 nCoV-2019_10_RIGHT 2 - +MN908947.3 3144 3166 nCoV-2019_11_LEFT 1 + +MN908947.3 3507 3531 nCoV-2019_11_RIGHT 1 - +MN908947.3 3460 3482 nCoV-2019_12_LEFT 2 + +MN908947.3 3826 3853 nCoV-2019_12_RIGHT 2 - +MN908947.3 3771 3795 nCoV-2019_13_LEFT 1 + +MN908947.3 4142 4164 nCoV-2019_13_RIGHT 1 - +MN908947.3 4054 4077 nCoV-2019_14_LEFT 2 + +MN908947.3 4044 4068 nCoV-2019_14_LEFT_alt4 2 + +MN908947.3 4428 4450 nCoV-2019_14_RIGHT 2 - +MN908947.3 4402 4424 nCoV-2019_14_RIGHT_alt2 2 - +MN908947.3 4294 4321 nCoV-2019_15_LEFT 1 + +MN908947.3 4296 4322 nCoV-2019_15_LEFT_alt1 1 + +MN908947.3 4674 4696 nCoV-2019_15_RIGHT 1 - +MN908947.3 4666 4689 nCoV-2019_15_RIGHT_alt3 1 - +MN908947.3 4636 4658 nCoV-2019_16_LEFT 2 + +MN908947.3 4995 5017 nCoV-2019_16_RIGHT 2 - +MN908947.3 4939 4966 nCoV-2019_17_LEFT 1 + +MN908947.3 5296 5321 nCoV-2019_17_RIGHT 1 - +MN908947.3 5230 5259 nCoV-2019_18_LEFT 2 + +MN908947.3 5257 5287 nCoV-2019_18_LEFT_alt2 2 + +MN908947.3 5620 5644 nCoV-2019_18_RIGHT 2 - +MN908947.3 5620 5643 nCoV-2019_18_RIGHT_alt1 2 - +MN908947.3 5563 5586 nCoV-2019_19_LEFT 1 + +MN908947.3 5932 5957 nCoV-2019_19_RIGHT 1 - +MN908947.3 5867 5894 nCoV-2019_20_LEFT 2 + +MN908947.3 6247 6272 nCoV-2019_20_RIGHT 2 - +MN908947.3 6167 6196 nCoV-2019_21_LEFT 1 + +MN908947.3 6168 6197 nCoV-2019_21_LEFT_alt2 1 + +MN908947.3 6528 6550 nCoV-2019_21_RIGHT 1 - +MN908947.3 6526 6548 nCoV-2019_21_RIGHT_alt0 1 - +MN908947.3 6466 6495 nCoV-2019_22_LEFT 2 + +MN908947.3 6846 6873 nCoV-2019_22_RIGHT 2 - +MN908947.3 6718 6745 nCoV-2019_23_LEFT 1 + +MN908947.3 7092 7117 nCoV-2019_23_RIGHT 1 - +MN908947.3 7035 7058 nCoV-2019_24_LEFT 2 + +MN908947.3 7389 7415 nCoV-2019_24_RIGHT 2 - +MN908947.3 7305 7332 nCoV-2019_25_LEFT 1 + +MN908947.3 7671 7694 nCoV-2019_25_RIGHT 1 - +MN908947.3 7626 7651 nCoV-2019_26_LEFT 2 + +MN908947.3 7997 8019 nCoV-2019_26_RIGHT 2 - +MN908947.3 7943 7968 nCoV-2019_27_LEFT 1 + +MN908947.3 8319 8341 nCoV-2019_27_RIGHT 1 - +MN908947.3 8249 8275 nCoV-2019_28_LEFT 2 + +MN908947.3 8635 8661 nCoV-2019_28_RIGHT 2 - +MN908947.3 8595 8619 nCoV-2019_29_LEFT 1 + +MN908947.3 8954 8983 nCoV-2019_29_RIGHT 1 - +MN908947.3 8888 8913 nCoV-2019_30_LEFT 2 + +MN908947.3 9245 9271 nCoV-2019_30_RIGHT 2 - +MN908947.3 9204 9226 nCoV-2019_31_LEFT 1 + +MN908947.3 9557 9585 nCoV-2019_31_RIGHT 1 - +MN908947.3 9477 9502 nCoV-2019_32_LEFT 2 + +MN908947.3 9834 9858 nCoV-2019_32_RIGHT 2 - +MN908947.3 9784 9806 nCoV-2019_33_LEFT 1 + +MN908947.3 10146 10171 nCoV-2019_33_RIGHT 1 - +MN908947.3 10076 10099 nCoV-2019_34_LEFT 2 + +MN908947.3 10437 10459 nCoV-2019_34_RIGHT 2 - +MN908947.3 10362 10384 nCoV-2019_35_LEFT 1 + +MN908947.3 10737 10763 nCoV-2019_35_RIGHT 1 - +MN908947.3 10666 10688 nCoV-2019_36_LEFT 2 + +MN908947.3 11048 11074 nCoV-2019_36_RIGHT 2 - +MN908947.3 10999 11022 nCoV-2019_37_LEFT 1 + +MN908947.3 11372 11394 nCoV-2019_37_RIGHT 1 - +MN908947.3 11306 11331 nCoV-2019_38_LEFT 2 + +MN908947.3 11668 11693 nCoV-2019_38_RIGHT 2 - +MN908947.3 11555 11584 nCoV-2019_39_LEFT 1 + +MN908947.3 11927 11949 nCoV-2019_39_RIGHT 1 - +MN908947.3 11863 11889 nCoV-2019_40_LEFT 2 + +MN908947.3 12234 12256 nCoV-2019_40_RIGHT 2 - +MN908947.3 12110 12133 nCoV-2019_41_LEFT 1 + +MN908947.3 12465 12490 nCoV-2019_41_RIGHT 1 - +MN908947.3 12417 12439 nCoV-2019_42_LEFT 2 + +MN908947.3 12779 12802 nCoV-2019_42_RIGHT 2 - +MN908947.3 12710 12732 nCoV-2019_43_LEFT 1 + +MN908947.3 13074 13096 nCoV-2019_43_RIGHT 1 - +MN908947.3 13005 13027 nCoV-2019_44_LEFT 2 + +MN908947.3 13007 13029 nCoV-2019_44_LEFT_alt3 2 + +MN908947.3 13378 13400 nCoV-2019_44_RIGHT 2 - +MN908947.3 13363 13385 nCoV-2019_44_RIGHT_alt0 2 - +MN908947.3 13319 13344 nCoV-2019_45_LEFT 1 + +MN908947.3 13307 13336 nCoV-2019_45_LEFT_alt2 1 + +MN908947.3 13669 13699 nCoV-2019_45_RIGHT 1 - +MN908947.3 13660 13689 nCoV-2019_45_RIGHT_alt7 1 - +MN908947.3 13599 13621 nCoV-2019_46_LEFT 2 + +MN908947.3 13602 13625 nCoV-2019_46_LEFT_alt1 2 + +MN908947.3 13962 13984 nCoV-2019_46_RIGHT 2 - +MN908947.3 13961 13984 nCoV-2019_46_RIGHT_alt2 2 - +MN908947.3 13918 13946 nCoV-2019_47_LEFT 1 + +MN908947.3 14271 14299 nCoV-2019_47_RIGHT 1 - +MN908947.3 14207 14232 nCoV-2019_48_LEFT 2 + +MN908947.3 14579 14601 nCoV-2019_48_RIGHT 2 - +MN908947.3 14545 14570 nCoV-2019_49_LEFT 1 + +MN908947.3 14898 14926 nCoV-2019_49_RIGHT 1 - +MN908947.3 14865 14895 nCoV-2019_50_LEFT 2 + +MN908947.3 15224 15246 nCoV-2019_50_RIGHT 2 - +MN908947.3 15171 15193 nCoV-2019_51_LEFT 1 + +MN908947.3 15538 15560 nCoV-2019_51_RIGHT 1 - +MN908947.3 15481 15503 nCoV-2019_52_LEFT 2 + +MN908947.3 15861 15886 nCoV-2019_52_RIGHT 2 - +MN908947.3 15827 15851 nCoV-2019_53_LEFT 1 + +MN908947.3 16186 16209 nCoV-2019_53_RIGHT 1 - +MN908947.3 16118 16144 nCoV-2019_54_LEFT 2 + +MN908947.3 16485 16510 nCoV-2019_54_RIGHT 2 - +MN908947.3 16416 16444 nCoV-2019_55_LEFT 1 + +MN908947.3 16804 16833 nCoV-2019_55_RIGHT 1 - +MN908947.3 16748 16770 nCoV-2019_56_LEFT 2 + +MN908947.3 17130 17152 nCoV-2019_56_RIGHT 2 - +MN908947.3 17065 17087 nCoV-2019_57_LEFT 1 + +MN908947.3 17430 17452 nCoV-2019_57_RIGHT 1 - +MN908947.3 17381 17406 nCoV-2019_58_LEFT 2 + +MN908947.3 17738 17761 nCoV-2019_58_RIGHT 2 - +MN908947.3 17674 17697 nCoV-2019_59_LEFT 1 + +MN908947.3 18036 18062 nCoV-2019_59_RIGHT 1 - +MN908947.3 17966 17993 nCoV-2019_60_LEFT 2 + +MN908947.3 18324 18348 nCoV-2019_60_RIGHT 2 - +MN908947.3 18253 18275 nCoV-2019_61_LEFT 1 + +MN908947.3 18650 18672 nCoV-2019_61_RIGHT 1 - +MN908947.3 18596 18618 nCoV-2019_62_LEFT 2 + +MN908947.3 18957 18979 nCoV-2019_62_RIGHT 2 - +MN908947.3 18896 18918 nCoV-2019_63_LEFT 1 + +MN908947.3 19275 19297 nCoV-2019_63_RIGHT 1 - +MN908947.3 19204 19232 nCoV-2019_64_LEFT 2 + +MN908947.3 19591 19616 nCoV-2019_64_RIGHT 2 - +MN908947.3 19548 19570 nCoV-2019_65_LEFT 1 + +MN908947.3 19911 19939 nCoV-2019_65_RIGHT 1 - +MN908947.3 19844 19866 nCoV-2019_66_LEFT 2 + +MN908947.3 20231 20255 nCoV-2019_66_RIGHT 2 - +MN908947.3 20172 20200 nCoV-2019_67_LEFT 1 + +MN908947.3 20542 20572 nCoV-2019_67_RIGHT 1 - +MN908947.3 20472 20496 nCoV-2019_68_LEFT 2 + +MN908947.3 20867 20890 nCoV-2019_68_RIGHT 2 - +MN908947.3 20786 20813 nCoV-2019_69_LEFT 1 + +MN908947.3 21146 21169 nCoV-2019_69_RIGHT 1 - +MN908947.3 21075 21104 nCoV-2019_70_LEFT 2 + +MN908947.3 21427 21455 nCoV-2019_70_RIGHT 2 - +MN908947.3 21357 21386 nCoV-2019_71_LEFT 1 + +MN908947.3 21716 21743 nCoV-2019_71_RIGHT 1 - +MN908947.3 21658 21682 nCoV-2019_72_LEFT 2 + +MN908947.3 22013 22038 nCoV-2019_72_RIGHT 2 - +MN908947.3 21961 21990 nCoV-2019_73_LEFT 1 + +MN908947.3 22324 22346 nCoV-2019_73_RIGHT 1 - +MN908947.3 22262 22290 nCoV-2019_74_LEFT 2 + +MN908947.3 22626 22650 nCoV-2019_74_RIGHT 2 - +MN908947.3 22516 22542 nCoV-2019_75_LEFT 1 + +MN908947.3 22877 22903 nCoV-2019_75_RIGHT 1 - +MN908947.3 22797 22819 nCoV-2019_76_LEFT 2 + +MN908947.3 22798 22821 nCoV-2019_76_LEFT_alt3 2 + +MN908947.3 23192 23214 nCoV-2019_76_RIGHT 2 - +MN908947.3 23189 23212 nCoV-2019_76_RIGHT_alt0 2 - +MN908947.3 23122 23144 nCoV-2019_77_LEFT 1 + +MN908947.3 23500 23522 nCoV-2019_77_RIGHT 1 - +MN908947.3 23443 23466 nCoV-2019_78_LEFT 2 + +MN908947.3 23822 23847 nCoV-2019_78_RIGHT 2 - +MN908947.3 23789 23812 nCoV-2019_79_LEFT 1 + +MN908947.3 24145 24169 nCoV-2019_79_RIGHT 1 - +MN908947.3 24078 24100 nCoV-2019_80_LEFT 2 + +MN908947.3 24443 24467 nCoV-2019_80_RIGHT 2 - +MN908947.3 24391 24416 nCoV-2019_81_LEFT 1 + +MN908947.3 24765 24789 nCoV-2019_81_RIGHT 1 - +MN908947.3 24696 24721 nCoV-2019_82_LEFT 2 + +MN908947.3 25052 25076 nCoV-2019_82_RIGHT 2 - +MN908947.3 24978 25003 nCoV-2019_83_LEFT 1 + +MN908947.3 25347 25369 nCoV-2019_83_RIGHT 1 - +MN908947.3 25279 25301 nCoV-2019_84_LEFT 2 + +MN908947.3 25646 25673 nCoV-2019_84_RIGHT 2 - +MN908947.3 25601 25623 nCoV-2019_85_LEFT 1 + +MN908947.3 25969 25994 nCoV-2019_85_RIGHT 1 - +MN908947.3 25902 25924 nCoV-2019_86_LEFT 2 + +MN908947.3 26290 26315 nCoV-2019_86_RIGHT 2 - +MN908947.3 26197 26219 nCoV-2019_87_LEFT 1 + +MN908947.3 26566 26590 nCoV-2019_87_RIGHT 1 - +MN908947.3 26520 26542 nCoV-2019_88_LEFT 2 + +MN908947.3 26890 26913 nCoV-2019_88_RIGHT 2 - +MN908947.3 26835 26857 nCoV-2019_89_LEFT 1 + +MN908947.3 26838 26860 nCoV-2019_89_LEFT_alt2 1 + +MN908947.3 27202 27227 nCoV-2019_89_RIGHT 1 - +MN908947.3 27190 27215 nCoV-2019_89_RIGHT_alt4 1 - +MN908947.3 27141 27164 nCoV-2019_90_LEFT 2 + +MN908947.3 27511 27533 nCoV-2019_90_RIGHT 2 - +MN908947.3 27446 27471 nCoV-2019_91_LEFT 1 + +MN908947.3 27825 27854 nCoV-2019_91_RIGHT 1 - +MN908947.3 27784 27808 nCoV-2019_92_LEFT 2 + +MN908947.3 28145 28172 nCoV-2019_92_RIGHT 2 - +MN908947.3 28081 28104 nCoV-2019_93_LEFT 1 + +MN908947.3 28442 28464 nCoV-2019_93_RIGHT 1 - +MN908947.3 28394 28416 nCoV-2019_94_LEFT 2 + +MN908947.3 28756 28779 nCoV-2019_94_RIGHT 2 - +MN908947.3 28677 28699 nCoV-2019_95_LEFT 1 + +MN908947.3 29041 29063 nCoV-2019_95_RIGHT 1 - +MN908947.3 28985 29007 nCoV-2019_96_LEFT 2 + +MN908947.3 29356 29378 nCoV-2019_96_RIGHT 2 - +MN908947.3 29288 29316 nCoV-2019_97_LEFT 1 + +MN908947.3 29665 29693 nCoV-2019_97_RIGHT 1 - +MN908947.3 29486 29510 nCoV-2019_98_LEFT 2 + +MN908947.3 29836 29866 nCoV-2019_98_RIGHT 2 - diff --git a/resources/primers_schemes/bed/nCoV-2019/V4.1/SARS-CoV-2.primer.bed b/resources/primers_schemes/bed/nCoV-2019/V4.1/SARS-CoV-2.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..5b8e1d481e7e83bb7f3fbddf4a2ee0c2ba5c51cc --- /dev/null +++ b/resources/primers_schemes/bed/nCoV-2019/V4.1/SARS-CoV-2.primer.bed @@ -0,0 +1,209 @@ +MN908947.3 25 50 SARS-CoV-2_1_LEFT 1 + AACAAACCAACCAACTTTCGATCTC +MN908947.3 324 344 SARS-CoV-2_2_LEFT 2 + TTTACAGGTTCGCGACGTGC +MN908947.3 408 431 SARS-CoV-2_1_RIGHT 1 - CTTCTACTAAGCCACAAGTGCCA +MN908947.3 644 666 SARS-CoV-2_3_LEFT 1 + GTAATAAAGGAGCTGGTGGCCA +MN908947.3 705 727 SARS-CoV-2_2_RIGHT 2 - ATAAGGATCAGTGCCAAGCTCG +MN908947.3 944 966 SARS-CoV-2_4_LEFT 2 + GTGTATACTGCTGCCGTGAACA +MN908947.3 1017 1044 SARS-CoV-2_3_RIGHT 1 - GCCAATTTAATTTCAAAAGGTGTCTGC +MN908947.3 1245 1266 SARS-CoV-2_5_LEFT 1 + TGAAACTTCATGGCAGACGGG +MN908947.3 1337 1362 SARS-CoV-2_4_RIGHT 2 - ACAACAGCATTTTGGGGTAAGTAAC +MN908947.3 1540 1562 SARS-CoV-2_6_LEFT 2 + CGTGCTAGCGCTAACATAGGTT +MN908947.3 1623 1650 SARS-CoV-2_5_RIGHT 1 - TTGATGTTGACTTTCTCTTTTTGGAGT +MN908947.3 1851 1875 SARS-CoV-2_7_LEFT 1 + ACTGAGTCCTCTTTATGCATTTGC +MN908947.3 1925 1948 SARS-CoV-2_6_RIGHT 2 - AACACGCACAGAATTTTGAGCAG +MN908947.3 2154 2180 SARS-CoV-2_8_LEFT 2 + GCTTGAAGAGAAGTTTAAGGAAGGTG +MN908947.3 2228 2250 SARS-CoV-2_7_RIGHT 1 - CCACCGACAATTTCACAAGCAC +MN908947.3 2483 2508 SARS-CoV-2_9_LEFT 1 + TCTTCTTAGAGGGAGAAACACTTCC +MN908947.3 2544 2571 SARS-CoV-2_8_RIGHT 2 - GGTTGTTCTAATGGTTGTAAATCACCA +MN908947.3 2780 2813 SARS-CoV-2_10_LEFT_alt1 2 + TGAATATCACTTTTGAACTTGATGAAAGGATTG +MN908947.3 2826 2850 SARS-CoV-2_10_LEFT 2 + TGAGAAGTGCTCTGCCTATACAGT +MN908947.3 2861 2885 SARS-CoV-2_9_RIGHT 1 - CACAGGCGAACTCATTTACTTCTG +MN908947.3 3078 3102 SARS-CoV-2_11_LEFT 1 + AGAAGAGTTTGAGCCATCAACTCA +MN908947.3 3156 3177 SARS-CoV-2_10_RIGHT_alt1 2 - GGTTGAAGAGCAGCAGAAGTG +MN908947.3 3183 3210 SARS-CoV-2_10_RIGHT 2 - TCATCTAACCAATCTTCTTCTTGCTCT +MN908947.3 3390 3412 SARS-CoV-2_12_LEFT 2 + TGCAGACATTGTGGAAGAAGCT +MN908947.3 3470 3492 SARS-CoV-2_11_RIGHT 1 - TTTAAGGCTCCTGCAACACCTC +MN908947.3 3683 3705 SARS-CoV-2_13_LEFT 1 + AGCACGAAGTTCTACTTGCACC +MN908947.3 3769 3794 SARS-CoV-2_12_RIGHT 2 - CAGCTAAGTAGACATTTGTGCGAAC +MN908947.3 3992 4018 SARS-CoV-2_14_LEFT 2 + TGGAAGAAACTAAGTTCCTCACAGAA +MN908947.3 4067 4093 SARS-CoV-2_13_RIGHT 1 - GATGTCAATGTCACTAACAAGAGTGG +MN908947.3 4312 4339 SARS-CoV-2_15_LEFT 1 + AAAAGTGCCTTTTACATTCTACCATCT +MN908947.3 4387 4409 SARS-CoV-2_14_RIGHT 2 - CATGTGCAAGCATTTCTCGCAA +MN908947.3 4620 4648 SARS-CoV-2_16_LEFT 2 + TGTAACACATGGCTTAAATTTGGAAGAA +MN908947.3 4685 4710 SARS-CoV-2_15_RIGHT 1 - GCATCAGGTGAAGAAACAGAAACTG +MN908947.3 4923 4953 SARS-CoV-2_17_LEFT 1 + TGACAATCTTAAGACACTTCTTTCTTTGAG +MN908947.3 4995 5017 SARS-CoV-2_16_RIGHT 2 - CACAACTTGCGTGTGGAGGTTA +MN908947.3 5230 5259 SARS-CoV-2_18_LEFT 2 + TGGAAATACCCACAAGTTAATGGTTTAAC +MN908947.3 5302 5331 SARS-CoV-2_17_RIGHT 1 - TTCAACTCTATTTGTTGGAGTGTTAACAA +MN908947.3 5561 5584 SARS-CoV-2_19_LEFT 1 + AAGCTGTTATGTACATGGGCACA +MN908947.3 5620 5643 SARS-CoV-2_18_RIGHT 2 - GCTTGTTTACCACACGTACAAGG +MN908947.3 5867 5894 SARS-CoV-2_20_LEFT 2 + ACAAAGAAAACAGTTACACAACAACCA +MN908947.3 5932 5957 SARS-CoV-2_19_RIGHT 1 - TGTCCAACTTAGGGTCAATTTCTGT +MN908947.3 6184 6210 SARS-CoV-2_21_LEFT 1 + CACTACACACCCTCTTTTAAGAAAGG +MN908947.3 6247 6272 SARS-CoV-2_20_RIGHT 2 - ACGTGGCTTTATTAGTTGCATTGTT +MN908947.3 6478 6507 SARS-CoV-2_22_LEFT 2 + GTAGGAGACATTATACTTAAACCAGCAAA +MN908947.3 6553 6582 SARS-CoV-2_21_RIGHT 1 - GTAAGACTAGAATTGTCTACATAAGCAGC +MN908947.3 6747 6776 SARS-CoV-2_23_LEFT 1 + AAACCGTGTTTGTACTAATTATATGCCTT +MN908947.3 6859 6885 SARS-CoV-2_22_RIGHT 2 - CCGACACTCTTAACAGTATTCTTTGC +MN908947.3 7057 7084 SARS-CoV-2_24_LEFT 2 + GGTTACAGAGAAGGCTATTTGAACTCT +MN908947.3 7122 7148 SARS-CoV-2_23_RIGHT 1 - AACCACTAAGACAAACACTACAAGGT +MN908947.3 7127 7156 SARS-CoV-2_23_RIGHT_alt1 1 - AGAATCTAAACCACTAAGACAAACACTAC +MN908947.3 7381 7403 SARS-CoV-2_25_LEFT 1 + CAAATGGCCCCGATTTCAGCTA +MN908947.3 7440 7467 SARS-CoV-2_24_RIGHT 2 - ACAACATGCACATAACTTTTCCATACA +MN908947.3 7672 7695 SARS-CoV-2_26_LEFT 2 + GCGAGAGACTTGTCACTACAGTT +MN908947.3 7747 7770 SARS-CoV-2_25_RIGHT 1 - TGGATGGAACCATTCTTCACTGT +MN908947.3 7997 8019 SARS-CoV-2_27_LEFT 1 + CTGATGTTGGTGATAGTGCGGA +MN908947.3 8063 8092 SARS-CoV-2_26_RIGHT 2 - GAGTTTTTCCATTGGTACGTTAAAAGTTG +MN908947.3 8304 8326 SARS-CoV-2_28_LEFT 2 + TGAAAACATGACACCCCGTGAC +MN908947.3 8367 8392 SARS-CoV-2_27_RIGHT_alt1 1 - AATGTTGTGACTTTTTGCTACCTGC +MN908947.3 8370 8395 SARS-CoV-2_27_RIGHT 1 - AGCAATGTTGTGACTTTTTGCTACC +MN908947.3 8596 8619 SARS-CoV-2_29_LEFT 1 + CTTGTGTTCCTTTTTGTTGCTGC +MN908947.3 8691 8714 SARS-CoV-2_28_RIGHT 2 - TGACACCACCATCAATAGCCTTG +MN908947.3 8919 8944 SARS-CoV-2_30_LEFT 2 + ACCTAGAGTTTTTAGTGCAGTTGGT +MN908947.3 8990 9013 SARS-CoV-2_29_RIGHT 1 - AGCCAAAACACAAGCTGATGTTG +MN908947.3 9168 9192 SARS-CoV-2_31_LEFT 1 + CCTTGAAGGTTCTGTTAGAGTGGT +MN908947.3 9306 9329 SARS-CoV-2_30_RIGHT 2 - CTACACCACAGAAAACTCCTGGT +MN908947.3 9470 9497 SARS-CoV-2_32_LEFT 2 + GAGCTTTTGGTGAATACAGTCATGTAG +MN908947.3 9535 9564 SARS-CoV-2_31_RIGHT 1 - AATGAGTAAACTGGTGTTAAACAGAGTAC +MN908947.3 9782 9805 SARS-CoV-2_33_LEFT 1 + GTACTTTTGAAGAAGCTGCGCTG +MN908947.3 9842 9866 SARS-CoV-2_32_RIGHT 2 - GAGGTAATAGCACATCACTACGCA +MN908947.3 10076 10099 SARS-CoV-2_34_LEFT 2 + TCCCATCTGGTAAAGTTGAGGGT +MN908947.3 10150 10176 SARS-CoV-2_33_RIGHT 1 - TGTCTTGGACAGTAAACTACGTCATC +MN908947.3 10393 10419 SARS-CoV-2_35_LEFT 1 + GTGTTAGCTTGTTACAATGGTTCACC +MN908947.3 10465 10491 SARS-CoV-2_34_RIGHT 2 - CCACATGAACCATTAAGGAATGAACC +MN908947.3 10713 10742 SARS-CoV-2_36_LEFT 2 + CAATCGATTTACCACAACTCTTAATGACT +MN908947.3 10785 10810 SARS-CoV-2_35_RIGHT 1 - AGGTCCTAGTATGTCAACATGGTCT +MN908947.3 11000 11023 SARS-CoV-2_37_LEFT 1 + CACACCACTGGTTGTTACTCACA +MN908947.3 11092 11116 SARS-CoV-2_36_RIGHT 2 - ACCCATAGCAAAAGGTAAAAAGGC +MN908947.3 11305 11330 SARS-CoV-2_38_LEFT 2 + GACTGTGTTATGTATGCATCAGCTG +MN908947.3 11388 11414 SARS-CoV-2_37_RIGHT 1 - GTGTCAAGACATTCATAAGTGTCCAC +MN908947.3 11624 11651 SARS-CoV-2_39_LEFT 1 + GCTATTTTTGTACTTGTTACTTTGGCC +MN908947.3 11689 11720 SARS-CoV-2_38_RIGHT 2 - CCTGTGTAGAAACTAAGTAATCATAAACACC +MN908947.3 11937 11963 SARS-CoV-2_40_LEFT 2 + TGTCCAGTTACACAATGACATTCTCT +MN908947.3 12011 12033 SARS-CoV-2_39_RIGHT 1 - CCCTGCATGGAAAGCAAAACAG +MN908947.3 12234 12255 SARS-CoV-2_41_LEFT 1 + ATTTGACCGTGATGCAGCCAT +MN908947.3 12317 12339 SARS-CoV-2_40_RIGHT 2 - ACTTTTGCCCTCTTGTCCTCAG +MN908947.3 12519 12546 SARS-CoV-2_42_LEFT 2 + TGGTACAACATTTACTTATGCATCAGC +MN908947.3 12618 12643 SARS-CoV-2_41_RIGHT 1 - AAGAGGCCATGCTAAATTAGGTGAA +MN908947.3 12831 12856 SARS-CoV-2_43_LEFT 1 + GGATTTGAAATGGGCTAGATTCCCT +MN908947.3 12895 12920 SARS-CoV-2_42_RIGHT 2 - TGTCTGTAACAAACCTACAAGGTGG +MN908947.3 13124 13148 SARS-CoV-2_44_LEFT 2 + GGGGACAACCAATCACTAATTGTG +MN908947.3 13218 13240 SARS-CoV-2_43_RIGHT 1 - CGATGCACCACCAAAGGATTCT +MN908947.3 13463 13485 SARS-CoV-2_45_LEFT 1 + TAAACGGGTTTGCGGTGTAAGT +MN908947.3 13506 13528 SARS-CoV-2_44_RIGHT 2 - CATCAGTACTAGTGCCTGTGCC +MN908947.3 13752 13775 SARS-CoV-2_46_LEFT 2 + AGAATAGACGGTGACATGGTACC +MN908947.3 13833 13859 SARS-CoV-2_45_RIGHT 1 - TCACAATTACCTTCATCAAAATGCCT +MN908947.3 14045 14075 SARS-CoV-2_47_LEFT 1 + TGGTGTACTGACATTAGATAATCAAGATCT +MN908947.3 14120 14144 SARS-CoV-2_46_RIGHT 2 - TCTACAACAGGAACTCCACTACCT +MN908947.3 14338 14362 SARS-CoV-2_48_LEFT 2 + ACTGTTTGGATGACAGATGCATTC +MN908947.3 14428 14457 SARS-CoV-2_47_RIGHT 1 - TGGAACACCATCAACAAATATTTTTCTCA +MN908947.3 14647 14674 SARS-CoV-2_49_LEFT 1 + ACAATGTTGCTTTTCAAACTGTCAAAC +MN908947.3 14717 14743 SARS-CoV-2_48_RIGHT 2 - CAGAACTTCCTTCCTTAAAGAAACCC +MN908947.3 14953 14983 SARS-CoV-2_50_LEFT 2 + CATTTAATAAATGGGGTAAGGCTAGACTTT +MN908947.3 15023 15050 SARS-CoV-2_49_RIGHT 1 - GGGATGACATTACGTTTTGTATATGCG +MN908947.3 15214 15237 SARS-CoV-2_51_LEFT 1 + GCAAATTCTATGGTGGTTGGCAC +MN908947.3 15336 15358 SARS-CoV-2_50_RIGHT 2 - GAGCAAGAACAAGTGAGGCCAT +MN908947.3 15535 15557 SARS-CoV-2_52_LEFT 2 + CTGTCACGGCCAATGTTAATGC +MN908947.3 15596 15619 SARS-CoV-2_51_RIGHT 1 - GTCTGTGTTGTAAATTGCGGACA +MN908947.3 15855 15881 SARS-CoV-2_53_LEFT 1 + ACTAAAGGACCTCATGAATTTTGCTC +MN908947.3 15917 15941 SARS-CoV-2_52_RIGHT 2 - GGATCTGGGTAAGGAAGGTACACA +MN908947.3 16112 16137 SARS-CoV-2_54_LEFT 2 + ACATGATGAGTTAACAGGACACATG +MN908947.3 16239 16260 SARS-CoV-2_53_RIGHT 1 - GCAAAGAACACAAGCCCCAAC +MN908947.3 16386 16408 SARS-CoV-2_55_LEFT 1 + AATGCTCCAGGTTGTGATGTCA +MN908947.3 16483 16508 SARS-CoV-2_54_RIGHT 2 - CCAAAAACTTGTCCATTAGCACACA +MN908947.3 16692 16714 SARS-CoV-2_56_LEFT 2 + ACTGTACGTGAAGTGCTGTCTG +MN908947.3 16767 16796 SARS-CoV-2_55_RIGHT 1 - ACACGATAACCAGTAAAGACATAATTTCG +MN908947.3 16986 17013 SARS-CoV-2_57_LEFT 1 + GGCTTATACCCAACACTCAATATCTCA +MN908947.3 17082 17105 SARS-CoV-2_56_RIGHT 2 - TGACTCTTACCAGTACCAGGTGG +MN908947.3 17323 17345 SARS-CoV-2_58_LEFT 2 + TGCCTGAGACGACAGCAGATAT +MN908947.3 17381 17405 SARS-CoV-2_57_RIGHT 1 - CTGGCATTGACAACACTCAAATCA +MN908947.3 17615 17642 SARS-CoV-2_59_LEFT 1 + GCTTAAAGCACATAAAGACAAATCAGC +MN908947.3 17688 17711 SARS-CoV-2_58_RIGHT 2 - TGTGGCCTGTTAATTGCAGATGA +MN908947.3 17911 17939 SARS-CoV-2_60_LEFT 2 + ACAGATTTAATGTTGCTATTACCAGAGC +MN908947.3 17997 18022 SARS-CoV-2_59_RIGHT 1 - TCCTACGTGGAATTTCAAGACTTGT +MN908947.3 18244 18267 SARS-CoV-2_61_LEFT 1 + ACCCTAACATGTTTATCACCCGC +MN908947.3 18307 18328 SARS-CoV-2_60_RIGHT 2 - TAGCATGACACCCCTCGACAT +MN908947.3 18550 18578 SARS-CoV-2_62_LEFT 2 + GTGACACACTTAAAAATCTCTCTGACAG +MN908947.3 18624 18652 SARS-CoV-2_61_RIGHT 1 - GCTCAGGTCCTATTTTCACAAAATACTT +MN908947.3 18869 18891 SARS-CoV-2_63_LEFT 1 + TAGGTGTCTAGCTGTCCACGAG +MN908947.3 18936 18961 SARS-CoV-2_62_RIGHT 2 - CCGCATTAATCTTCAGTTCATCACC +MN908947.3 19183 19208 SARS-CoV-2_64_LEFT 2 + GCCTATTTTGGAATTGCAATGTCGA +MN908947.3 19252 19277 SARS-CoV-2_63_RIGHT 1 - CCAGGCAAGTTAAGGTTAGATAGCA +MN908947.3 19485 19513 SARS-CoV-2_65_LEFT 1 + GTCTGTAGACATCATGCTAATGAGTACA +MN908947.3 19558 19586 SARS-CoV-2_64_RIGHT 2 - GTATCAAATTGTTTGTAAACCCACAAGC +MN908947.3 19810 19836 SARS-CoV-2_66_LEFT 2 + AACCAGTACCAGAGGTGAAAATACTC +MN908947.3 19877 19901 SARS-CoV-2_65_RIGHT 1 - GCTGGAGCATCTCTTTTGTAGTCC +MN908947.3 20090 20117 SARS-CoV-2_67_LEFT 1 + CAAACAAGCTAGTCTTAATGGAGTCAC +MN908947.3 20186 20216 SARS-CoV-2_66_RIGHT 2 - TTTCTACTCTGAGTAAAGTAAGTTTCAGGT +MN908947.3 20377 20405 SARS-CoV-2_68_LEFT 2 + GACTAGCTAAACGTTTTAAGGAATCACC +MN908947.3 20472 20497 SARS-CoV-2_67_RIGHT 1 - AACACACACACTTAGATGAACCTGT +MN908947.3 20677 20699 SARS-CoV-2_69_LEFT 1 + CGGGTGTTGCTATGCCTAATCT +MN908947.3 20766 20792 SARS-CoV-2_68_RIGHT 2 - GCGACATTCATCATTATGCCTTTAGG +MN908947.3 20988 21013 SARS-CoV-2_70_LEFT 2 + TTGATTGGTGATTGTGCAACTGTAC +MN908947.3 21050 21080 SARS-CoV-2_69_RIGHT 1 - TTTGTAACATTTTTAGTCTTAGGGTCGTAC +MN908947.3 21294 21316 SARS-CoV-2_71_LEFT 1 + GGCAAACCACGCGAACAAATAG +MN908947.3 21358 21387 SARS-CoV-2_70_RIGHT 2 - AGAATAGGAAGACAACTGAATTGGATTTG +MN908947.3 21532 21561 SARS-CoV-2_72_LEFT 2 + GTGATGTTCTTGTTAACAACTAAACGAAC +MN908947.3 21675 21700 SARS-CoV-2_71_RIGHT 1 - TGAGGATCTGAAAACTTTGTCAGGG +MN908947.3 21865 21889 SARS-CoV-2_73_LEFT 1 + AGAGGCTGGATTTTTGGTACTACT +MN908947.3 21904 21933 SARS-CoV-2_72_RIGHT 2 - GTAGCGTTATTAACAATAAGTAGGGACTG +MN908947.3 22091 22113 SARS-CoV-2_74_LEFT 2 + TGGACCTTGAAGGAAAACAGGG +MN908947.3 22247 22274 SARS-CoV-2_73_RIGHT 1 - ACCTAGTGATGTTAATACCTATTGGCA +MN908947.3 22402 22428 SARS-CoV-2_75_LEFT 1 + GAAAATGGAACCATTACAGATGCTGT +MN908947.3 22474 22503 SARS-CoV-2_74_RIGHT 2 - TGATAGATTCCTTTTTCTACAGTGAAGGA +MN908947.3 22648 22677 SARS-CoV-2_76_LEFT 2 + GCTGATTATTCTGTCCTATATAATTCCGC +MN908947.3 22742 22774 SARS-CoV-2_76_LEFT_alt1 2 + ATGTCTATGCAGATTCATTTGTAATTAGAGGT +MN908947.3 22785 22805 SARS-CoV-2_75_RIGHT 1 - TTTGCCCTGGAGCGATTTGT +MN908947.3 22944 22974 SARS-CoV-2_77_LEFT 1 + CAAACCTTTTGAGAGAGATATTTCAACTGA +MN908947.3 23028 23057 SARS-CoV-2_76_RIGHT 2 - GTTGGAAACCATATGATTGTAAAGGAAAG +MN908947.3 23120 23141 SARS-CoV-2_76_RIGHT_alt1 2 - GTCCACAAACAGTTGCTGGTG +MN908947.3 23219 23246 SARS-CoV-2_78_LEFT 2 + CTGAGTCTAACAAAAAGTTTCTGCCTT +MN908947.3 23327 23351 SARS-CoV-2_77_RIGHT 1 - CACTGACACCACCAAAAGAACATG +MN908947.3 23553 23575 SARS-CoV-2_79_LEFT 1 + ACCCATTGGTGCAGGTATATGC +MN908947.3 23611 23635 SARS-CoV-2_78_RIGHT 2 - GGATTGACTAGCTACACTACGTGC +MN908947.3 23853 23876 SARS-CoV-2_80_LEFT 2 + CCGTGCTTTAACTGGAATAGCTG +MN908947.3 23914 23944 SARS-CoV-2_79_RIGHT_alt1 1 - AATTGGTGGTGTTTTGTAAATTTGTTTGAC +MN908947.3 23927 23955 SARS-CoV-2_79_RIGHT 1 - CCAAAATCTTTAATTGGTGGTGTTTTGT +MN908947.3 24171 24194 SARS-CoV-2_81_LEFT 1 + TGCTCAATACACTTCTGCACTGT +MN908947.3 24233 24258 SARS-CoV-2_80_RIGHT 2 - GCAAATGGTATTTGTAATGCAGCAC +MN908947.3 24426 24448 SARS-CoV-2_82_LEFT 2 + TGCACAAGCTTTAAACACGCTT +MN908947.3 24545 24567 SARS-CoV-2_81_RIGHT 1 - TGAAGTCTGCCTGTGATCAACC +MN908947.3 24750 24772 SARS-CoV-2_83_LEFT 1 + GCATGTGACTTATGTCCCTGCA +MN908947.3 24814 24836 SARS-CoV-2_82_RIGHT 2 - CACGAGGAAAGTGTGCTTTTCC +MN908947.3 25051 25076 SARS-CoV-2_84_LEFT 2 + GTTGATTTAGGTGACATCTCTGGCA +MN908947.3 25122 25150 SARS-CoV-2_83_RIGHT 1 - AGATTCATTTAAATTCTTGGCAACCTCA +MN908947.3 25331 25353 SARS-CoV-2_85_LEFT 1 + ATGAAGACGACTCTGAGCCAGT +MN908947.3 25438 25461 SARS-CoV-2_84_RIGHT 2 - AGCATCCTTGATTTCACCTTGCT +MN908947.3 25645 25672 SARS-CoV-2_86_LEFT 2 + TGTTGTTTGTAACAGTTTACTCACACC +MN908947.3 25711 25740 SARS-CoV-2_85_RIGHT 1 - CTGCAAGAAGTAGACTAAAGCATAAAGAT +MN908947.3 25951 25979 SARS-CoV-2_87_LEFT 1 + GTGGTTATACTGAAAAATGGGAATCTGG +MN908947.3 26026 26050 SARS-CoV-2_86_RIGHT 2 - TCAATTGAGTTGAGTACAGCTGGT +MN908947.3 26242 26268 SARS-CoV-2_88_LEFT_alt1 2 + TTATGTACTCATTCGTTTCGGAAGAG +MN908947.3 26255 26277 SARS-CoV-2_88_LEFT 2 + CGTTTCGGAAGAGACAGGTACG +MN908947.3 26338 26360 SARS-CoV-2_87_RIGHT 1 - AATCGAAGCGCAGTAAGGATGG +MN908947.3 26564 26587 SARS-CoV-2_89_LEFT 1 + AAGCTCCTTGAACAATGGAACCT +MN908947.3 26592 26621 SARS-CoV-2_89_LEFT_alt1 1 + TAGGTTTCCTATTCCTTACATGGATTTGT +MN908947.3 26635 26661 SARS-CoV-2_88_RIGHT 2 - ACAAAAACCTATTCCTGTTGGCATAG +MN908947.3 26873 26895 SARS-CoV-2_90_LEFT 2 + ATTCTTCTCAACGTGCCACTCC +MN908947.3 26956 26979 SARS-CoV-2_89_RIGHT 1 - CAGCAATACGAAGATGTCCACGA +MN908947.3 26966 26991 SARS-CoV-2_89_RIGHT_alt1 1 - CTAGATGGTGTCCAGCAATACGAAG +MN908947.3 27152 27177 SARS-CoV-2_91_LEFT 1 + TCCAGTAGCAGTGACAATATTGCTT +MN908947.3 27218 27251 SARS-CoV-2_90_RIGHT_alt1 2 - ATTAGTAATATCTCTGCTATAGTAACCTGAAAG +MN908947.3 27256 27283 SARS-CoV-2_90_RIGHT 2 - TCCAAATGGAAACTTTAAAAGTCCTCA +MN908947.3 27447 27473 SARS-CoV-2_92_LEFT 2 + CACTACCAAGAGTGTGTTAGAGGTAC +MN908947.3 27534 27560 SARS-CoV-2_91_RIGHT 1 - AGTGCAAATTTGTTATCAGCTAGAGG +MN908947.3 27700 27726 SARS-CoV-2_93_LEFT 1 + TTGTTGCGGCAATAGTGTTTATAACA +MN908947.3 27826 27855 SARS-CoV-2_92_RIGHT 2 - GTTCAAGTGAGAACCAAAAGATAATAAGC +MN908947.3 27996 28021 SARS-CoV-2_94_LEFT 2 + ACCCGTGTCCTATTCACTTCTATTC +MN908947.3 28082 28104 SARS-CoV-2_93_RIGHT 1 - TGGGTGATTTAGAACCAGCCTC +MN908947.3 28190 28214 SARS-CoV-2_95_LEFT 1 + GTGCGTTGTTCGTTCTATGAAGAC +MN908947.3 28394 28416 SARS-CoV-2_94_RIGHT 2 - TTATTGGGTAAACCTTGGGGCC +MN908947.3 28512 28536 SARS-CoV-2_96_LEFT 2 + AGATGACCAAATTGGCTACTACCG +MN908947.3 28572 28598 SARS-CoV-2_95_RIGHT 1 - ACCATCTTGGACTGAGATCTTTCATT +MN908947.3 28827 28849 SARS-CoV-2_97_LEFT 1 + TTCCTCATCACGTAGTCGCAAC +MN908947.3 28893 28914 SARS-CoV-2_96_RIGHT 2 - CCATTGCCAGCCATTCTAGCA +MN908947.3 29136 29161 SARS-CoV-2_98_LEFT 2 + CCAGGAACTAATCAGACAAGGAACT +MN908947.3 29206 29227 SARS-CoV-2_97_RIGHT 1 - CGACATTCCGAAGAACGCTGA +MN908947.3 29452 29475 SARS-CoV-2_99_LEFT 1 + CTTCTTCCTGCTGCAGATTTGGA +MN908947.3 29512 29534 SARS-CoV-2_98_RIGHT 2 - TTTAGGCCTGAGTTGAGTCAGC +MN908947.3 29827 29854 SARS-CoV-2_99_RIGHT 1 - GCTATTAAAATCACATGGGGATAGCAC diff --git a/resources/primers_schemes/bed/nCoV-2019/V4/SARS-CoV-2.primer.bed b/resources/primers_schemes/bed/nCoV-2019/V4/SARS-CoV-2.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..c2149c0909e53f85fb5a54f78b9e9eafe84ceb7e --- /dev/null +++ b/resources/primers_schemes/bed/nCoV-2019/V4/SARS-CoV-2.primer.bed @@ -0,0 +1,198 @@ +MN908947.3 25 50 SARS-CoV-2_1_LEFT 1 + AACAAACCAACCAACTTTCGATCTC +MN908947.3 408 431 SARS-CoV-2_1_RIGHT 1 - CTTCTACTAAGCCACAAGTGCCA +MN908947.3 324 344 SARS-CoV-2_2_LEFT 2 + TTTACAGGTTCGCGACGTGC +MN908947.3 705 727 SARS-CoV-2_2_RIGHT 2 - ATAAGGATCAGTGCCAAGCTCG +MN908947.3 644 666 SARS-CoV-2_3_LEFT 1 + GTAATAAAGGAGCTGGTGGCCA +MN908947.3 1017 1044 SARS-CoV-2_3_RIGHT 1 - GCCAATTTAATTTCAAAAGGTGTCTGC +MN908947.3 944 966 SARS-CoV-2_4_LEFT 2 + GTGTATACTGCTGCCGTGAACA +MN908947.3 1337 1362 SARS-CoV-2_4_RIGHT 2 - ACAACAGCATTTTGGGGTAAGTAAC +MN908947.3 1245 1266 SARS-CoV-2_5_LEFT 1 + TGAAACTTCATGGCAGACGGG +MN908947.3 1623 1650 SARS-CoV-2_5_RIGHT 1 - TTGATGTTGACTTTCTCTTTTTGGAGT +MN908947.3 1540 1562 SARS-CoV-2_6_LEFT 2 + CGTGCTAGCGCTAACATAGGTT +MN908947.3 1925 1948 SARS-CoV-2_6_RIGHT 2 - AACACGCACAGAATTTTGAGCAG +MN908947.3 1851 1875 SARS-CoV-2_7_LEFT 1 + ACTGAGTCCTCTTTATGCATTTGC +MN908947.3 2228 2250 SARS-CoV-2_7_RIGHT 1 - CCACCGACAATTTCACAAGCAC +MN908947.3 2154 2180 SARS-CoV-2_8_LEFT 2 + GCTTGAAGAGAAGTTTAAGGAAGGTG +MN908947.3 2544 2571 SARS-CoV-2_8_RIGHT 2 - GGTTGTTCTAATGGTTGTAAATCACCA +MN908947.3 2483 2508 SARS-CoV-2_9_LEFT 1 + TCTTCTTAGAGGGAGAAACACTTCC +MN908947.3 2861 2885 SARS-CoV-2_9_RIGHT 1 - CACAGGCGAACTCATTTACTTCTG +MN908947.3 2826 2850 SARS-CoV-2_10_LEFT 2 + TGAGAAGTGCTCTGCCTATACAGT +MN908947.3 3183 3210 SARS-CoV-2_10_RIGHT 2 - TCATCTAACCAATCTTCTTCTTGCTCT +MN908947.3 3078 3102 SARS-CoV-2_11_LEFT 1 + AGAAGAGTTTGAGCCATCAACTCA +MN908947.3 3470 3492 SARS-CoV-2_11_RIGHT 1 - TTTAAGGCTCCTGCAACACCTC +MN908947.3 3390 3412 SARS-CoV-2_12_LEFT 2 + TGCAGACATTGTGGAAGAAGCT +MN908947.3 3769 3794 SARS-CoV-2_12_RIGHT 2 - CAGCTAAGTAGACATTTGTGCGAAC +MN908947.3 3683 3705 SARS-CoV-2_13_LEFT 1 + AGCACGAAGTTCTACTTGCACC +MN908947.3 4067 4093 SARS-CoV-2_13_RIGHT 1 - GATGTCAATGTCACTAACAAGAGTGG +MN908947.3 3992 4018 SARS-CoV-2_14_LEFT 2 + TGGAAGAAACTAAGTTCCTCACAGAA +MN908947.3 4387 4409 SARS-CoV-2_14_RIGHT 2 - CATGTGCAAGCATTTCTCGCAA +MN908947.3 4312 4339 SARS-CoV-2_15_LEFT 1 + AAAAGTGCCTTTTACATTCTACCATCT +MN908947.3 4685 4710 SARS-CoV-2_15_RIGHT 1 - GCATCAGGTGAAGAAACAGAAACTG +MN908947.3 4620 4648 SARS-CoV-2_16_LEFT 2 + TGTAACACATGGCTTAAATTTGGAAGAA +MN908947.3 4995 5017 SARS-CoV-2_16_RIGHT 2 - CACAACTTGCGTGTGGAGGTTA +MN908947.3 4923 4953 SARS-CoV-2_17_LEFT 1 + TGACAATCTTAAGACACTTCTTTCTTTGAG +MN908947.3 5302 5331 SARS-CoV-2_17_RIGHT 1 - TTCAACTCTATTTGTTGGAGTGTTAACAA +MN908947.3 5230 5259 SARS-CoV-2_18_LEFT 2 + TGGAAATACCCACAAGTTAATGGTTTAAC +MN908947.3 5620 5643 SARS-CoV-2_18_RIGHT 2 - GCTTGTTTACCACACGTACAAGG +MN908947.3 5561 5584 SARS-CoV-2_19_LEFT 1 + AAGCTGTTATGTACATGGGCACA +MN908947.3 5932 5957 SARS-CoV-2_19_RIGHT 1 - TGTCCAACTTAGGGTCAATTTCTGT +MN908947.3 5867 5894 SARS-CoV-2_20_LEFT 2 + ACAAAGAAAACAGTTACACAACAACCA +MN908947.3 6247 6272 SARS-CoV-2_20_RIGHT 2 - ACGTGGCTTTATTAGTTGCATTGTT +MN908947.3 6184 6210 SARS-CoV-2_21_LEFT 1 + CACTACACACCCTCTTTTAAGAAAGG +MN908947.3 6553 6582 SARS-CoV-2_21_RIGHT 1 - GTAAGACTAGAATTGTCTACATAAGCAGC +MN908947.3 6478 6507 SARS-CoV-2_22_LEFT 2 + GTAGGAGACATTATACTTAAACCAGCAAA +MN908947.3 6859 6885 SARS-CoV-2_22_RIGHT 2 - CCGACACTCTTAACAGTATTCTTTGC +MN908947.3 6747 6776 SARS-CoV-2_23_LEFT 1 + AAACCGTGTTTGTACTAATTATATGCCTT +MN908947.3 7122 7148 SARS-CoV-2_23_RIGHT 1 - AACCACTAAGACAAACACTACAAGGT +MN908947.3 7057 7084 SARS-CoV-2_24_LEFT 2 + GGTTACAGAGAAGGCTATTTGAACTCT +MN908947.3 7440 7467 SARS-CoV-2_24_RIGHT 2 - ACAACATGCACATAACTTTTCCATACA +MN908947.3 7381 7403 SARS-CoV-2_25_LEFT 1 + CAAATGGCCCCGATTTCAGCTA +MN908947.3 7747 7770 SARS-CoV-2_25_RIGHT 1 - TGGATGGAACCATTCTTCACTGT +MN908947.3 7672 7695 SARS-CoV-2_26_LEFT 2 + GCGAGAGACTTGTCACTACAGTT +MN908947.3 8063 8092 SARS-CoV-2_26_RIGHT 2 - GAGTTTTTCCATTGGTACGTTAAAAGTTG +MN908947.3 7997 8019 SARS-CoV-2_27_LEFT 1 + CTGATGTTGGTGATAGTGCGGA +MN908947.3 8370 8395 SARS-CoV-2_27_RIGHT 1 - AGCAATGTTGTGACTTTTTGCTACC +MN908947.3 8304 8326 SARS-CoV-2_28_LEFT 2 + TGAAAACATGACACCCCGTGAC +MN908947.3 8691 8714 SARS-CoV-2_28_RIGHT 2 - TGACACCACCATCAATAGCCTTG +MN908947.3 8596 8619 SARS-CoV-2_29_LEFT 1 + CTTGTGTTCCTTTTTGTTGCTGC +MN908947.3 8990 9013 SARS-CoV-2_29_RIGHT 1 - AGCCAAAACACAAGCTGATGTTG +MN908947.3 8919 8944 SARS-CoV-2_30_LEFT 2 + ACCTAGAGTTTTTAGTGCAGTTGGT +MN908947.3 9306 9329 SARS-CoV-2_30_RIGHT 2 - CTACACCACAGAAAACTCCTGGT +MN908947.3 9168 9192 SARS-CoV-2_31_LEFT 1 + CCTTGAAGGTTCTGTTAGAGTGGT +MN908947.3 9535 9564 SARS-CoV-2_31_RIGHT 1 - AATGAGTAAACTGGTGTTAAACAGAGTAC +MN908947.3 9470 9497 SARS-CoV-2_32_LEFT 2 + GAGCTTTTGGTGAATACAGTCATGTAG +MN908947.3 9842 9866 SARS-CoV-2_32_RIGHT 2 - GAGGTAATAGCACATCACTACGCA +MN908947.3 9782 9805 SARS-CoV-2_33_LEFT 1 + GTACTTTTGAAGAAGCTGCGCTG +MN908947.3 10150 10176 SARS-CoV-2_33_RIGHT 1 - TGTCTTGGACAGTAAACTACGTCATC +MN908947.3 10076 10099 SARS-CoV-2_34_LEFT 2 + TCCCATCTGGTAAAGTTGAGGGT +MN908947.3 10465 10491 SARS-CoV-2_34_RIGHT 2 - CCACATGAACCATTAAGGAATGAACC +MN908947.3 10393 10419 SARS-CoV-2_35_LEFT 1 + GTGTTAGCTTGTTACAATGGTTCACC +MN908947.3 10785 10810 SARS-CoV-2_35_RIGHT 1 - AGGTCCTAGTATGTCAACATGGTCT +MN908947.3 10713 10742 SARS-CoV-2_36_LEFT 2 + CAATCGATTTACCACAACTCTTAATGACT +MN908947.3 11092 11116 SARS-CoV-2_36_RIGHT 2 - ACCCATAGCAAAAGGTAAAAAGGC +MN908947.3 11000 11023 SARS-CoV-2_37_LEFT 1 + CACACCACTGGTTGTTACTCACA +MN908947.3 11388 11414 SARS-CoV-2_37_RIGHT 1 - GTGTCAAGACATTCATAAGTGTCCAC +MN908947.3 11305 11330 SARS-CoV-2_38_LEFT 2 + GACTGTGTTATGTATGCATCAGCTG +MN908947.3 11689 11720 SARS-CoV-2_38_RIGHT 2 - CCTGTGTAGAAACTAAGTAATCATAAACACC +MN908947.3 11624 11651 SARS-CoV-2_39_LEFT 1 + GCTATTTTTGTACTTGTTACTTTGGCC +MN908947.3 12011 12033 SARS-CoV-2_39_RIGHT 1 - CCCTGCATGGAAAGCAAAACAG +MN908947.3 11937 11963 SARS-CoV-2_40_LEFT 2 + TGTCCAGTTACACAATGACATTCTCT +MN908947.3 12317 12339 SARS-CoV-2_40_RIGHT 2 - ACTTTTGCCCTCTTGTCCTCAG +MN908947.3 12234 12255 SARS-CoV-2_41_LEFT 1 + ATTTGACCGTGATGCAGCCAT +MN908947.3 12618 12643 SARS-CoV-2_41_RIGHT 1 - AAGAGGCCATGCTAAATTAGGTGAA +MN908947.3 12519 12546 SARS-CoV-2_42_LEFT 2 + TGGTACAACATTTACTTATGCATCAGC +MN908947.3 12895 12920 SARS-CoV-2_42_RIGHT 2 - TGTCTGTAACAAACCTACAAGGTGG +MN908947.3 12831 12856 SARS-CoV-2_43_LEFT 1 + GGATTTGAAATGGGCTAGATTCCCT +MN908947.3 13218 13240 SARS-CoV-2_43_RIGHT 1 - CGATGCACCACCAAAGGATTCT +MN908947.3 13124 13148 SARS-CoV-2_44_LEFT 2 + GGGGACAACCAATCACTAATTGTG +MN908947.3 13506 13528 SARS-CoV-2_44_RIGHT 2 - CATCAGTACTAGTGCCTGTGCC +MN908947.3 13463 13485 SARS-CoV-2_45_LEFT 1 + TAAACGGGTTTGCGGTGTAAGT +MN908947.3 13833 13859 SARS-CoV-2_45_RIGHT 1 - TCACAATTACCTTCATCAAAATGCCT +MN908947.3 13752 13775 SARS-CoV-2_46_LEFT 2 + AGAATAGACGGTGACATGGTACC +MN908947.3 14120 14144 SARS-CoV-2_46_RIGHT 2 - TCTACAACAGGAACTCCACTACCT +MN908947.3 14045 14075 SARS-CoV-2_47_LEFT 1 + TGGTGTACTGACATTAGATAATCAAGATCT +MN908947.3 14428 14457 SARS-CoV-2_47_RIGHT 1 - TGGAACACCATCAACAAATATTTTTCTCA +MN908947.3 14338 14362 SARS-CoV-2_48_LEFT 2 + ACTGTTTGGATGACAGATGCATTC +MN908947.3 14717 14743 SARS-CoV-2_48_RIGHT 2 - CAGAACTTCCTTCCTTAAAGAAACCC +MN908947.3 14647 14674 SARS-CoV-2_49_LEFT 1 + ACAATGTTGCTTTTCAAACTGTCAAAC +MN908947.3 15023 15050 SARS-CoV-2_49_RIGHT 1 - GGGATGACATTACGTTTTGTATATGCG +MN908947.3 14953 14983 SARS-CoV-2_50_LEFT 2 + CATTTAATAAATGGGGTAAGGCTAGACTTT +MN908947.3 15336 15358 SARS-CoV-2_50_RIGHT 2 - GAGCAAGAACAAGTGAGGCCAT +MN908947.3 15214 15237 SARS-CoV-2_51_LEFT 1 + GCAAATTCTATGGTGGTTGGCAC +MN908947.3 15596 15619 SARS-CoV-2_51_RIGHT 1 - GTCTGTGTTGTAAATTGCGGACA +MN908947.3 15535 15557 SARS-CoV-2_52_LEFT 2 + CTGTCACGGCCAATGTTAATGC +MN908947.3 15917 15941 SARS-CoV-2_52_RIGHT 2 - GGATCTGGGTAAGGAAGGTACACA +MN908947.3 15855 15881 SARS-CoV-2_53_LEFT 1 + ACTAAAGGACCTCATGAATTTTGCTC +MN908947.3 16239 16260 SARS-CoV-2_53_RIGHT 1 - GCAAAGAACACAAGCCCCAAC +MN908947.3 16112 16137 SARS-CoV-2_54_LEFT 2 + ACATGATGAGTTAACAGGACACATG +MN908947.3 16483 16508 SARS-CoV-2_54_RIGHT 2 - CCAAAAACTTGTCCATTAGCACACA +MN908947.3 16386 16408 SARS-CoV-2_55_LEFT 1 + AATGCTCCAGGTTGTGATGTCA +MN908947.3 16767 16796 SARS-CoV-2_55_RIGHT 1 - ACACGATAACCAGTAAAGACATAATTTCG +MN908947.3 16692 16714 SARS-CoV-2_56_LEFT 2 + ACTGTACGTGAAGTGCTGTCTG +MN908947.3 17082 17105 SARS-CoV-2_56_RIGHT 2 - TGACTCTTACCAGTACCAGGTGG +MN908947.3 16986 17013 SARS-CoV-2_57_LEFT 1 + GGCTTATACCCAACACTCAATATCTCA +MN908947.3 17381 17405 SARS-CoV-2_57_RIGHT 1 - CTGGCATTGACAACACTCAAATCA +MN908947.3 17323 17345 SARS-CoV-2_58_LEFT 2 + TGCCTGAGACGACAGCAGATAT +MN908947.3 17688 17711 SARS-CoV-2_58_RIGHT 2 - TGTGGCCTGTTAATTGCAGATGA +MN908947.3 17615 17642 SARS-CoV-2_59_LEFT 1 + GCTTAAAGCACATAAAGACAAATCAGC +MN908947.3 17997 18022 SARS-CoV-2_59_RIGHT 1 - TCCTACGTGGAATTTCAAGACTTGT +MN908947.3 17911 17939 SARS-CoV-2_60_LEFT 2 + ACAGATTTAATGTTGCTATTACCAGAGC +MN908947.3 18307 18328 SARS-CoV-2_60_RIGHT 2 - TAGCATGACACCCCTCGACAT +MN908947.3 18244 18267 SARS-CoV-2_61_LEFT 1 + ACCCTAACATGTTTATCACCCGC +MN908947.3 18624 18652 SARS-CoV-2_61_RIGHT 1 - GCTCAGGTCCTATTTTCACAAAATACTT +MN908947.3 18550 18578 SARS-CoV-2_62_LEFT 2 + GTGACACACTTAAAAATCTCTCTGACAG +MN908947.3 18936 18961 SARS-CoV-2_62_RIGHT 2 - CCGCATTAATCTTCAGTTCATCACC +MN908947.3 18869 18891 SARS-CoV-2_63_LEFT 1 + TAGGTGTCTAGCTGTCCACGAG +MN908947.3 19252 19277 SARS-CoV-2_63_RIGHT 1 - CCAGGCAAGTTAAGGTTAGATAGCA +MN908947.3 19183 19208 SARS-CoV-2_64_LEFT 2 + GCCTATTTTGGAATTGCAATGTCGA +MN908947.3 19558 19586 SARS-CoV-2_64_RIGHT 2 - GTATCAAATTGTTTGTAAACCCACAAGC +MN908947.3 19485 19513 SARS-CoV-2_65_LEFT 1 + GTCTGTAGACATCATGCTAATGAGTACA +MN908947.3 19877 19901 SARS-CoV-2_65_RIGHT 1 - GCTGGAGCATCTCTTTTGTAGTCC +MN908947.3 19810 19836 SARS-CoV-2_66_LEFT 2 + AACCAGTACCAGAGGTGAAAATACTC +MN908947.3 20186 20216 SARS-CoV-2_66_RIGHT 2 - TTTCTACTCTGAGTAAAGTAAGTTTCAGGT +MN908947.3 20090 20117 SARS-CoV-2_67_LEFT 1 + CAAACAAGCTAGTCTTAATGGAGTCAC +MN908947.3 20472 20497 SARS-CoV-2_67_RIGHT 1 - AACACACACACTTAGATGAACCTGT +MN908947.3 20377 20405 SARS-CoV-2_68_LEFT 2 + GACTAGCTAAACGTTTTAAGGAATCACC +MN908947.3 20766 20792 SARS-CoV-2_68_RIGHT 2 - GCGACATTCATCATTATGCCTTTAGG +MN908947.3 20677 20699 SARS-CoV-2_69_LEFT 1 + CGGGTGTTGCTATGCCTAATCT +MN908947.3 21050 21080 SARS-CoV-2_69_RIGHT 1 - TTTGTAACATTTTTAGTCTTAGGGTCGTAC +MN908947.3 20988 21013 SARS-CoV-2_70_LEFT 2 + TTGATTGGTGATTGTGCAACTGTAC +MN908947.3 21358 21387 SARS-CoV-2_70_RIGHT 2 - AGAATAGGAAGACAACTGAATTGGATTTG +MN908947.3 21294 21316 SARS-CoV-2_71_LEFT 1 + GGCAAACCACGCGAACAAATAG +MN908947.3 21675 21700 SARS-CoV-2_71_RIGHT 1 - TGAGGATCTGAAAACTTTGTCAGGG +MN908947.3 21532 21561 SARS-CoV-2_72_LEFT 2 + GTGATGTTCTTGTTAACAACTAAACGAAC +MN908947.3 21904 21933 SARS-CoV-2_72_RIGHT 2 - GTAGCGTTATTAACAATAAGTAGGGACTG +MN908947.3 21865 21889 SARS-CoV-2_73_LEFT 1 + AGAGGCTGGATTTTTGGTACTACT +MN908947.3 22247 22274 SARS-CoV-2_73_RIGHT 1 - ACCTAGTGATGTTAATACCTATTGGCA +MN908947.3 22091 22113 SARS-CoV-2_74_LEFT 2 + TGGACCTTGAAGGAAAACAGGG +MN908947.3 22474 22503 SARS-CoV-2_74_RIGHT 2 - TGATAGATTCCTTTTTCTACAGTGAAGGA +MN908947.3 22402 22428 SARS-CoV-2_75_LEFT 1 + GAAAATGGAACCATTACAGATGCTGT +MN908947.3 22785 22805 SARS-CoV-2_75_RIGHT 1 - TTTGCCCTGGAGCGATTTGT +MN908947.3 22648 22677 SARS-CoV-2_76_LEFT 2 + GCTGATTATTCTGTCCTATATAATTCCGC +MN908947.3 23028 23057 SARS-CoV-2_76_RIGHT 2 - GTTGGAAACCATATGATTGTAAAGGAAAG +MN908947.3 22944 22974 SARS-CoV-2_77_LEFT 1 + CAAACCTTTTGAGAGAGATATTTCAACTGA +MN908947.3 23327 23351 SARS-CoV-2_77_RIGHT 1 - CACTGACACCACCAAAAGAACATG +MN908947.3 23219 23246 SARS-CoV-2_78_LEFT 2 + CTGAGTCTAACAAAAAGTTTCTGCCTT +MN908947.3 23611 23635 SARS-CoV-2_78_RIGHT 2 - GGATTGACTAGCTACACTACGTGC +MN908947.3 23553 23575 SARS-CoV-2_79_LEFT 1 + ACCCATTGGTGCAGGTATATGC +MN908947.3 23927 23955 SARS-CoV-2_79_RIGHT 1 - CCAAAATCTTTAATTGGTGGTGTTTTGT +MN908947.3 23853 23876 SARS-CoV-2_80_LEFT 2 + CCGTGCTTTAACTGGAATAGCTG +MN908947.3 24233 24258 SARS-CoV-2_80_RIGHT 2 - GCAAATGGTATTTGTAATGCAGCAC +MN908947.3 24171 24194 SARS-CoV-2_81_LEFT 1 + TGCTCAATACACTTCTGCACTGT +MN908947.3 24545 24567 SARS-CoV-2_81_RIGHT 1 - TGAAGTCTGCCTGTGATCAACC +MN908947.3 24426 24448 SARS-CoV-2_82_LEFT 2 + TGCACAAGCTTTAAACACGCTT +MN908947.3 24814 24836 SARS-CoV-2_82_RIGHT 2 - CACGAGGAAAGTGTGCTTTTCC +MN908947.3 24750 24772 SARS-CoV-2_83_LEFT 1 + GCATGTGACTTATGTCCCTGCA +MN908947.3 25122 25150 SARS-CoV-2_83_RIGHT 1 - AGATTCATTTAAATTCTTGGCAACCTCA +MN908947.3 25051 25076 SARS-CoV-2_84_LEFT 2 + GTTGATTTAGGTGACATCTCTGGCA +MN908947.3 25438 25461 SARS-CoV-2_84_RIGHT 2 - AGCATCCTTGATTTCACCTTGCT +MN908947.3 25331 25353 SARS-CoV-2_85_LEFT 1 + ATGAAGACGACTCTGAGCCAGT +MN908947.3 25711 25740 SARS-CoV-2_85_RIGHT 1 - CTGCAAGAAGTAGACTAAAGCATAAAGAT +MN908947.3 25645 25672 SARS-CoV-2_86_LEFT 2 + TGTTGTTTGTAACAGTTTACTCACACC +MN908947.3 26026 26050 SARS-CoV-2_86_RIGHT 2 - TCAATTGAGTTGAGTACAGCTGGT +MN908947.3 25951 25979 SARS-CoV-2_87_LEFT 1 + GTGGTTATACTGAAAAATGGGAATCTGG +MN908947.3 26338 26360 SARS-CoV-2_87_RIGHT 1 - AATCGAAGCGCAGTAAGGATGG +MN908947.3 26255 26277 SARS-CoV-2_88_LEFT 2 + CGTTTCGGAAGAGACAGGTACG +MN908947.3 26635 26661 SARS-CoV-2_88_RIGHT 2 - ACAAAAACCTATTCCTGTTGGCATAG +MN908947.3 26564 26587 SARS-CoV-2_89_LEFT 1 + AAGCTCCTTGAACAATGGAACCT +MN908947.3 26956 26979 SARS-CoV-2_89_RIGHT 1 - CAGCAATACGAAGATGTCCACGA +MN908947.3 26873 26895 SARS-CoV-2_90_LEFT 2 + ATTCTTCTCAACGTGCCACTCC +MN908947.3 27256 27283 SARS-CoV-2_90_RIGHT 2 - TCCAAATGGAAACTTTAAAAGTCCTCA +MN908947.3 27152 27177 SARS-CoV-2_91_LEFT 1 + TCCAGTAGCAGTGACAATATTGCTT +MN908947.3 27534 27560 SARS-CoV-2_91_RIGHT 1 - AGTGCAAATTTGTTATCAGCTAGAGG +MN908947.3 27447 27473 SARS-CoV-2_92_LEFT 2 + CACTACCAAGAGTGTGTTAGAGGTAC +MN908947.3 27826 27855 SARS-CoV-2_92_RIGHT 2 - GTTCAAGTGAGAACCAAAAGATAATAAGC +MN908947.3 27700 27726 SARS-CoV-2_93_LEFT 1 + TTGTTGCGGCAATAGTGTTTATAACA +MN908947.3 28082 28104 SARS-CoV-2_93_RIGHT 1 - TGGGTGATTTAGAACCAGCCTC +MN908947.3 27996 28021 SARS-CoV-2_94_LEFT 2 + ACCCGTGTCCTATTCACTTCTATTC +MN908947.3 28394 28416 SARS-CoV-2_94_RIGHT 2 - TTATTGGGTAAACCTTGGGGCC +MN908947.3 28190 28214 SARS-CoV-2_95_LEFT 1 + GTGCGTTGTTCGTTCTATGAAGAC +MN908947.3 28572 28598 SARS-CoV-2_95_RIGHT 1 - ACCATCTTGGACTGAGATCTTTCATT +MN908947.3 28512 28536 SARS-CoV-2_96_LEFT 2 + AGATGACCAAATTGGCTACTACCG +MN908947.3 28893 28914 SARS-CoV-2_96_RIGHT 2 - CCATTGCCAGCCATTCTAGCA +MN908947.3 28827 28849 SARS-CoV-2_97_LEFT 1 + TTCCTCATCACGTAGTCGCAAC +MN908947.3 29206 29227 SARS-CoV-2_97_RIGHT 1 - CGACATTCCGAAGAACGCTGA +MN908947.3 29136 29161 SARS-CoV-2_98_LEFT 2 + CCAGGAACTAATCAGACAAGGAACT +MN908947.3 29512 29534 SARS-CoV-2_98_RIGHT 2 - TTTAGGCCTGAGTTGAGTCAGC +MN908947.3 29452 29475 SARS-CoV-2_99_LEFT 1 + CTTCTTCCTGCTGCAGATTTGGA +MN908947.3 29827 29854 SARS-CoV-2_99_RIGHT 1 - GCTATTAAAATCACATGGGGATAGCAC diff --git a/resources/primers_schemes/bed/nCoV-2019/V5.3.2/SARS-CoV-2.primer.bed b/resources/primers_schemes/bed/nCoV-2019/V5.3.2/SARS-CoV-2.primer.bed new file mode 100644 index 0000000000000000000000000000000000000000..b4e9c18ed37ace2092115d14de1e6a210c3847c2 --- /dev/null +++ b/resources/primers_schemes/bed/nCoV-2019/V5.3.2/SARS-CoV-2.primer.bed @@ -0,0 +1,192 @@ +MN908947.3 47 78 SARS-CoV-2_400_1_LEFT_1 1 + CTCTTGTAGATCTGTTCTCTAAACGAACTTT +MN908947.3 419 447 SARS-CoV-2_400_1_RIGHT_1 1 - AAAACGCCTTTTTCAACTTCTACTAAGC +MN908947.3 344 366 SARS-CoV-2_400_2_LEFT_0 2 + TCGTACGTGGCTTTGGAGACTC +MN908947.3 707 732 SARS-CoV-2_400_2_RIGHT_0 2 - TCTTCATAAGGATCAGTGCCAAGCT +MN908947.3 638 661 SARS-CoV-2_400_3_LEFT_1 1 + AGAACGGTAATAAAGGAGCTGGT +MN908947.3 1018 1047 SARS-CoV-2_400_3_RIGHT_0 1 - TTTGCCAATTTAATTTCAAAAGGTGTCTG +MN908947.3 970 995 SARS-CoV-2_400_4_LEFT_0 2 + CATGAAATTGCTTGGTACACGGAAC +MN908947.3 1340 1370 SARS-CoV-2_400_4_RIGHT_0 2 - AAATTTTAACAACAGCATTTTGGGGTAAGT +MN908947.3 1292 1320 SARS-CoV-2_400_5_LEFT_0 1 + TTTGTGGCACTGAGAATTTGACTAAAGA +MN908947.3 1660 1692 SARS-CoV-2_400_5_RIGHT_0 1 - ATAATGGCGATCTCTTCATTAAGTTTAAAGTC +MN908947.3 1574 1596 SARS-CoV-2_400_6_LEFT_1 2 + GTGTTGTTGGAGAAGGTTCCGA +MN908947.3 1945 1972 SARS-CoV-2_400_6_RIGHT_1 2 - TATTGTTATAGCGGCCTTCTGTAAAAC +MN908947.3 1882 1905 SARS-CoV-2_400_7_LEFT_2 1 + GCTGCTCGTGTTGTACGATCAAT +MN908947.3 2259 2284 SARS-CoV-2_400_7_RIGHT_2 1 - CTCCTTAATTTCCTTTGCACAGGTG +MN908947.3 2229 2252 SARS-CoV-2_400_8_LEFT_0 2 + TGCTTGTGAAATTGTCGGTGGAC +MN908947.3 2603 2629 SARS-CoV-2_400_8_RIGHT_0 2 - AAGCCCGTTAATACAAACTGGTGTAC +MN908947.3 2533 2563 SARS-CoV-2_400_9_LEFT_0 1 + GTCTTGAAAACTGGTGATTTACAACCATTA +MN908947.3 2900 2933 SARS-CoV-2_400_9_RIGHT_0 1 - GTAATTCAGATACTGGTTGCAAAGTTTTTATGA +MN908947.3 2854 2880 SARS-CoV-2_400_10_LEFT_0 2 + CTCGGTACAGAAGTAAATGAGTTCGC +MN908947.3 3233 3254 SARS-CoV-2_400_10_RIGHT_0 2 - TGTCCTCACTGCCGTCTTGTT +MN908947.3 3184 3213 SARS-CoV-2_400_11_LEFT_0 1 + GAGCAAGAAGAAGATTGGTTAGATGATGA +MN908947.3 3560 3584 SARS-CoV-2_400_11_RIGHT_0 1 - CGCTTAAAACACAACTACCACCCA +MN908947.3 3510 3540 SARS-CoV-2_400_12_LEFT_0 2 + CATGCAAGTTGAATCTGATGATTACATAGC +MN908947.3 3883 3913 SARS-CoV-2_400_12_RIGHT_0 2 - AGTTATAAATGGCTTAACTTCCTCTTTAGG +MN908947.3 3791 3824 SARS-CoV-2_400_13_LEFT_0 1 + CTGTCTTTGATAAAAATCTCTATGACAAACTTG +MN908947.3 4147 4180 SARS-CoV-2_400_13_RIGHT_0 1 - CTTTTTAGTAGGTATAACCACAGCAGTTAAAAC +MN908947.3 4079 4108 SARS-CoV-2_400_14_LEFT_0 2 + GTGACATTGACATCACTTTCTTAAAGAAA +MN908947.3 4457 4488 SARS-CoV-2_400_14_RIGHT_0 2 - CCCTTATATTTACGCTGTATAGTTGAAACTA +MN908947.3 4403 4425 SARS-CoV-2_400_15_LEFT_0 1 + CACATGCAGAAGAAACACGCAA +MN908947.3 4776 4803 SARS-CoV-2_400_15_RIGHT_0 1 - TCTTTATAGGAACCAGCAAGTGAGATG +MN908947.3 4723 4756 SARS-CoV-2_400_16_LEFT_0 2 + AATGGTTATCTTACTTCTTCTTCTAAAACACCT +MN908947.3 5089 5119 SARS-CoV-2_400_16_RIGHT_0 2 - AAATGTTTTACCTTCATGTGAATTATGAGG +MN908947.3 5036 5063 SARS-CoV-2_400_17_LEFT_0 1 + GACAACAGTTTGGTCCAACTTATTTGG +MN908947.3 5398 5429 SARS-CoV-2_400_17_RIGHT_0 1 - CTGTCTTATTACAGTAGGCTAAGATAAGTGC +MN908947.3 5344 5370 SARS-CoV-2_400_18_LEFT_0 2 + GCTCTACAAGATGCTTATTACAGAGC +MN908947.3 5716 5744 SARS-CoV-2_400_18_RIGHT_0 2 - ACTCACTAGCACAAGTAAATGTACCATG +MN908947.3 5671 5696 SARS-CoV-2_400_19_LEFT_0 1 + CCTTTTGTTATGATGTCAGCACCAC +MN908947.3 6031 6062 SARS-CoV-2_400_19_RIGHT_0 1 - CACATACAAACTTAAAATTATCGAAGCTTGC +MN908947.3 5891 5923 SARS-CoV-2_400_20_LEFT_0 2 + CCATAAAACCAGTTACTTATAAATTGGATGGT +MN908947.3 6257 6288 SARS-CoV-2_400_20_RIGHT_0 2 - CAGGTATTTGGTTTATACGTGGCTTTATTAG +MN908947.3 6204 6237 SARS-CoV-2_400_21_LEFT_0 1 + GAAAGGAGCTAAATTGTTACATAAACCTATTGT +MN908947.3 6562 6595 SARS-CoV-2_400_21_RIGHT_0 1 - AGGTTTCTTAATAGTAAGACTAGAATTGTCTAC +MN908947.3 6515 6542 SARS-CoV-2_400_22_LEFT_0 2 + TAAAAATTACAGAAGAGGTTGGCCACA +MN908947.3 6882 6915 SARS-CoV-2_400_22_RIGHT_0 2 - TAATTAAATGAAGCCTCTAGACAAAATTTACCG +MN908947.3 6823 6854 SARS-CoV-2_400_23_LEFT_0 1 + AATTCTAGAATTAAAGCATCTATGCCGACTA +MN908947.3 7199 7229 SARS-CoV-2_400_23_RIGHT_0 1 - CAAAAGCAGTTAAATCCCATTTAAAAGATG +MN908947.3 7145 7179 SARS-CoV-2_400_24_LEFT_0 2 + GTTTAGATTCTTTAGACACCTATCCTTCTTTAGA +MN908947.3 7518 7545 SARS-CoV-2_400_24_RIGHT_0 2 - ACAATAGTTGTACATTCGACTCTTGTT +MN908947.3 7456 7482 SARS-CoV-2_400_25_LEFT_0 1 + GTGCATGTTGTAGACGGTTGTAATTC +MN908947.3 7819 7850 SARS-CoV-2_400_25_RIGHT_0 1 - CTCTCAGGTTGTCTAAGTTAACAAAATGAGA +MN908947.3 7768 7797 SARS-CoV-2_400_26_LEFT_0 2 + CATCTTTACTTTGATAAAGCTGGTCAAAA +MN908947.3 8136 8169 SARS-CoV-2_400_26_RIGHT_0 2 - GAAATAAAAGTAGATAAGACATTGTCTAAGGAC +MN908947.3 8085 8112 SARS-CoV-2_400_27_LEFT_0 1 + AAAACTCAAAACACTAGTTGCAACTGC +MN908947.3 8468 8498 SARS-CoV-2_400_27_RIGHT_0 1 - CACATGTCAACTTAAAAGGTAAGTTATTCT +MN908947.3 8406 8436 SARS-CoV-2_400_28_LEFT_0 2 + CGTTAAAGATTTCATGTCATTGTCTGAACA +MN908947.3 8781 8806 SARS-CoV-2_400_28_RIGHT_0 2 - ATTAGTATAACTACCACCACGCTGG +MN908947.3 8732 8761 SARS-CoV-2_400_29_LEFT_0 1 + CAGATACTTGTTTTGCTAACAAACATGCT +MN908947.3 9107 9129 SARS-CoV-2_400_29_RIGHT_0 1 - ACATAACGTGTGTCAGGGCGTA +MN908947.3 9023 9052 SARS-CoV-2_400_30_LEFT_0 2 + CAATTTTTAAAGATGCTTCTGGTAAGCCA +MN908947.3 9397 9423 SARS-CoV-2_400_30_RIGHT_0 2 - ACAATACCACCAGCTACTATAGATGC +MN908947.3 9299 9324 SARS-CoV-2_400_31_LEFT_1 1 + GATCTTTACCAGGAGTTTTCTGTGG +MN908947.3 9673 9706 SARS-CoV-2_400_31_RIGHT_0 1 - ACAAATGATATAAGCAATTGTTATCCAGAAAGG +MN908947.3 9571 9604 SARS-CoV-2_400_32_LEFT_0 2 + GGTGTTTATTCTGTTATTTACTTGTACTTGACA +MN908947.3 9949 9971 SARS-CoV-2_400_32_RIGHT_0 2 - TTGCGAGATGACAACAAGCAGC +MN908947.3 9896 9929 SARS-CoV-2_400_33_LEFT_0 1 + ATAATAAGTACAAGTATTTTAGTGGAGCAATGG +MN908947.3 10266 10295 SARS-CoV-2_400_33_RIGHT_0 1 - AATGTCCAATAACCCTGAGTTGAACATTA +MN908947.3 10215 10245 SARS-CoV-2_400_34_LEFT_0 2 + TGAAGATTTACTCATTCGTAAGTCTAATCA +MN908947.3 10587 10615 SARS-CoV-2_400_34_RIGHT_0 2 - GTCAACAAAAGGTCCATAAAAGTTACCT +MN908947.3 10527 10557 SARS-CoV-2_400_35_LEFT_0 1 + TTTTTGTTACATGCACCATATGGAATTACC +MN908947.3 10897 10927 SARS-CoV-2_400_35_RIGHT_0 1 - AAATTCATCTTCTAATAAAGCACTACCCAA +MN908947.3 10832 10865 SARS-CoV-2_400_36_LEFT_0 2 + CCGTTTTAGATATGTGTGCTTCATTAAAAGAAT +MN908947.3 11201 11232 SARS-CoV-2_400_36_RIGHT_0 2 - GGCATATAGACCATATTAAAATAAGCTACAG +MN908947.3 11152 11181 SARS-CoV-2_400_37_LEFT_0 1 + AAACATAAGCATGCATTTCTCTGTTTGTT +MN908947.3 11514 11536 SARS-CoV-2_400_37_RIGHT_0 1 - ACCTCTGGCCAAAAACATGACA +MN908947.3 11463 11494 SARS-CoV-2_400_38_LEFT_0 2 + GTGGGCTCTTATAATCTCTGTTACTTCTAAC +MN908947.3 11832 11863 SARS-CoV-2_400_38_RIGHT_0 2 - CTTTACATCTGACATTTTAGACTGTACAGTG +MN908947.3 11785 11811 SARS-CoV-2_400_39_LEFT_0 1 + AACATTAAATTGTTGGGTGTTGGTGG +MN908947.3 12161 12185 SARS-CoV-2_400_39_RIGHT_0 1 - CAGAATCACCATTAGCAACAGCCT +MN908947.3 12112 12137 SARS-CoV-2_400_40_LEFT_0 2 + TCCCTTCCATCATATGCAGCTTTTG +MN908947.3 12477 12510 SARS-CoV-2_400_40_RIGHT_0 2 - TTTTTATATGTGTTATAGTCTGGTATGACAACC +MN908947.3 12419 12444 SARS-CoV-2_400_41_LEFT_0 1 + CAAGAGATGGTTGTGTTCCCTTGAA +MN908947.3 12794 12819 SARS-CoV-2_400_41_RIGHT_0 1 - AACAGTGCAAGTACAAACCTACCTC +MN908947.3 12752 12774 SARS-CoV-2_400_42_LEFT_0 2 + GCACTGATGACAATGCGTTAGC +MN908947.3 13121 13146 SARS-CoV-2_400_42_RIGHT_0 2 - CAATTAGTGATTGGTTGTCCCCCAC +MN908947.3 13075 13099 SARS-CoV-2_400_43_LEFT_0 1 + GCTTTTGCTGTAGATGCTGCTAAA +MN908947.3 13458 13480 SARS-CoV-2_400_43_RIGHT_0 1 - CACCGCAAACCCGTTTAAAAAC +MN908947.3 13415 13435 SARS-CoV-2_400_44_LEFT_0 2 + ATCAACTCCGCGAACCCATG +MN908947.3 13787 13815 SARS-CoV-2_400_44_RIGHT_0 2 - TGCCATTGTGTATTTAGTAAGACGTTGA +MN908947.3 13738 13767 SARS-CoV-2_400_45_LEFT_0 1 + ACTTCTTTAAGTTTAGAATAGACGGTGAC +MN908947.3 14120 14144 SARS-CoV-2_400_45_RIGHT_0 1 - TCTACAACAGGAACTCCACTACCT +MN908947.3 14073 14100 SARS-CoV-2_400_46_LEFT_0 2 + CTCAATGGTAACTGGTATGATTTCGGT +MN908947.3 14427 14457 SARS-CoV-2_400_46_RIGHT_0 2 - TGGAACACCATCAACAAATATTTTTCTCAC +MN908947.3 14375 14407 SARS-CoV-2_400_47_LEFT_0 1 + CTTTAATGTTTTATTCTCTACAGTGTTCCCAC +MN908947.3 14745 14775 SARS-CoV-2_400_47_RIGHT_0 1 - ATCCTGAGCAAAGAAGAAGTGTTTTAATTC +MN908947.3 14700 14725 SARS-CoV-2_400_48_LEFT_0 2 + GACTTTGCTGTGTCTAAGGGTTTCT +MN908947.3 15065 15095 SARS-CoV-2_400_48_RIGHT_0 2 - TTCTTTGCACTAATGGCATACTTAAGATTC +MN908947.3 15016 15045 SARS-CoV-2_400_49_LEFT_0 1 + CACTTTTCGCATATACAAAACGTAATGTC +MN908947.3 15386 15416 SARS-CoV-2_400_49_RIGHT_0 1 - CACTCATTAGCTAATCTATAGAAACGGTGT +MN908947.3 15342 15366 SARS-CoV-2_400_50_LEFT_0 2 + TCACTTGTTCTTGCTCGCAAACAT +MN908947.3 15716 15742 SARS-CoV-2_400_50_RIGHT_0 2 - TATTGAAACACACAACAGCATCGTCA +MN908947.3 15659 15688 SARS-CoV-2_400_51_LEFT_0 1 + CTTTGTGAATGAGTTTTACGCATATTTGC +MN908947.3 16028 16059 SARS-CoV-2_400_51_RIGHT_0 1 - AGGATGTTTAGTAAGTGGGTAAGCATCTATA +MN908947.3 15992 16018 SARS-CoV-2_400_52_LEFT_2 2 + TGGTACACTTATGATTGAACGGTTCG +MN908947.3 16386 16409 SARS-CoV-2_400_52_RIGHT_2 2 - GTGACATCACAACCTGGAGCATT +MN908947.3 16285 16311 SARS-CoV-2_400_53_LEFT_0 1 + GTGCTTGCATACGTAGACCATTCTTA +MN908947.3 16650 16679 SARS-CoV-2_400_53_RIGHT_0 1 - GACAGTTTAAATGTCTCCTCAGTAGCTTT +MN908947.3 16624 16647 SARS-CoV-2_400_54_LEFT_1 2 + TCAAGCTTTTTGCAGCAGAAACG +MN908947.3 17004 17033 SARS-CoV-2_400_54_RIGHT_1 2 - ACATTGCTAGAAAACTCATCTGAGATATT +MN908947.3 16962 16994 SARS-CoV-2_400_55_LEFT_1 1 + CAAGAGCACTATGTTAGAATTACTGGCTTATA +MN908947.3 17333 17362 SARS-CoV-2_400_55_RIGHT_1 1 - TTTCATCAAAGACAACTATATCTGCTGTC +MN908947.3 17182 17212 SARS-CoV-2_400_56_LEFT_0 2 + CACTATGTGAGAAGGCATTAAAATATTTGC +MN908947.3 17560 17582 SARS-CoV-2_400_56_RIGHT_0 2 - ACAATTTCAGCAGGACAACGCC +MN908947.3 17478 17507 SARS-CoV-2_400_57_LEFT_0 1 + GGCACACTAGAACCAGAATATTTCAATTC +MN908947.3 17859 17886 SARS-CoV-2_400_57_RIGHT_0 1 - AGTGGTTTGAGTGAATATGACATAGTC +MN908947.3 17813 17839 SARS-CoV-2_400_58_LEFT_0 2 + GGGACTACCAACTCAAACTGTTGATT +MN908947.3 18181 18212 SARS-CoV-2_400_58_RIGHT_0 2 - ATCATAGAGATGAGTCTTCTATAGGTCATGT +MN908947.3 18121 18153 SARS-CoV-2_400_59_LEFT_0 1 + GTGTTGACACTAAATTCAAAACTGAAGGTTTA +MN908947.3 18504 18527 SARS-CoV-2_400_59_RIGHT_0 1 - CGCACTACATTCCAAGGAAGTCC +MN908947.3 18460 18484 SARS-CoV-2_400_60_LEFT_0 2 + CGCCTGGAGATCAATTTAAACACC +MN908947.3 18835 18860 SARS-CoV-2_400_60_RIGHT_0 2 - GCATCACAACTAGCTACATGTGCAT +MN908947.3 18789 18815 SARS-CoV-2_400_61_LEFT_0 1 + GGTAACCTACAAAGCAACCATGATCT +MN908947.3 19170 19195 SARS-CoV-2_400_61_RIGHT_0 1 - TCCAAAATAGGCATACACCATCTGT +MN908947.3 19087 19112 SARS-CoV-2_400_62_LEFT_2 2 + TCTATGATGCACAGCCTTGTAGTGA +MN908947.3 19469 19495 SARS-CoV-2_400_62_RIGHT_0 2 - GTCTACAGACAGCACCACCTAAATTG +MN908947.3 19415 19449 SARS-CoV-2_400_63_LEFT_0 1 + AGTGTCAGATATAGATTATGTACCACTAAAGTCT +MN908947.3 19770 19796 SARS-CoV-2_400_63_RIGHT_0 1 - GCCCAAAGCTCAAATGCTACATTAAC +MN908947.3 19721 19750 SARS-CoV-2_400_64_LEFT_0 2 + AGTTGATGGTGTTGATGTAGAATTGTTTG +MN908947.3 20091 20121 SARS-CoV-2_400_64_RIGHT_0 2 - TAATGTGACTCCATTAAGACTAGCTTGTTT +MN908947.3 20028 20054 SARS-CoV-2_400_65_LEFT_0 1 + GCCCGTAATGGTGTTCTTATTACAGA +MN908947.3 20408 20441 SARS-CoV-2_400_65_RIGHT_0 1 - GTACTGTCCATAGGAATAAAATCTTCTAATTCA +MN908947.3 20358 20388 SARS-CoV-2_400_66_LEFT_0 2 + GGTTTACATCTACTGATTGGACTAGCTAAA +MN908947.3 20729 20758 SARS-CoV-2_400_66_RIGHT_0 2 - CACTATCACCATAATTTTGAAGGTCACAC +MN908947.3 20650 20676 SARS-CoV-2_400_67_LEFT_1 1 + AATTACAATCTAGTCAAGCGTGGCAA +MN908947.3 21018 21051 SARS-CoV-2_400_67_RIGHT_1 1 - CATATCACTAATAATGAGATCCCATTTATTAGC +MN908947.3 20991 21018 SARS-CoV-2_400_68_LEFT_0 2 + ATTGGTGATTGTGCAACTGTACATACA +MN908947.3 21372 21402 SARS-CoV-2_400_68_RIGHT_0 2 - ACTCATGTCAAATAAAGAATAGGAAGACAA +MN908947.3 21322 21352 SARS-CoV-2_400_69_LEFT_0 1 + ATGTCATGCATGCAAATTACATATTTTGGA +MN908947.3 21696 21722 SARS-CoV-2_400_69_RIGHT_0 1 - AGTCCTGAGTTGAATGTAAAACTGAG +MN908947.3 21579 21607 SARS-CoV-2_400_70_LEFT_0 2 + TTTATTGCCACTAGTCTCTAGTCAGTGT +MN908947.3 21927 21960 SARS-CoV-2_400_70_RIGHT_0 2 - AATTCACAGACTTTAATAACAACATTAGTAGCG +MN908947.3 21866 21894 SARS-CoV-2_400_71_LEFT_0 1 + GAGGCTGGATTTTTGGTACTACTTTAGA +MN908947.3 22238 22266 SARS-CoV-2_400_71_RIGHT_0 1 - ATGTTAATACCTATTGGCAAATCTACCA +MN908947.3 22156 22189 SARS-CoV-2_400_72_LEFT_0 2 + GGTTATTTTAAAATATATTCTAAGCACACGCCT +MN908947.3 22517 22547 SARS-CoV-2_400_72_RIGHT_0 2 - ATCTAACAATAGATTCTGTTGGTTGGACTC +MN908947.3 22466 22494 SARS-CoV-2_400_73_LEFT_0 1 + CGTTGAAATCCTTCACTGTAGAAAAAGG +MN908947.3 22839 22866 SARS-CoV-2_400_73_RIGHT_0 1 - GCTATAACGCAGCCTGTAAAATCATCT +MN908947.3 22742 22774 SARS-CoV-2_400_74_LEFT_0 2 + ATGTCTATGCAGATTCATTTGTAATTAGAGGT +MN908947.3 23119 23140 SARS-CoV-2_400_74_RIGHT_0 2 - TCCACAAACAGTTGCTGGTGC +MN908947.3 23078 23109 SARS-CoV-2_400_75_LEFT_1 1 + AACCATACAGAGTAGTAGTACTTTCTTTTGA +MN908947.3 23452 23478 SARS-CoV-2_400_75_RIGHT_1 1 - CCTGTAGAATAAACACGCCAAGTAGG +MN908947.3 23229 23258 SARS-CoV-2_400_76_LEFT_0 2 + CAAAAAGTTTCTGCCTTTCCAACAATTTG +MN908947.3 23609 23631 SARS-CoV-2_400_76_RIGHT_0 2 - TGACTAGCTACACTACGTGCCC +MN908947.3 23563 23589 SARS-CoV-2_400_77_LEFT_0 1 + GCAGGTATATGCGCTAGTTATCAGAC +MN908947.3 23914 23944 SARS-CoV-2_400_77_RIGHT_0 1 - AATTGGTGGTGTTTTGTAAATTTGTTTGAC +MN908947.3 23823 23853 SARS-CoV-2_400_78_LEFT_0 2 + GCAATATGGCAGTTTTTGTACACAATTAAA +MN908947.3 24209 24231 SARS-CoV-2_400_78_RIGHT_0 2 - GCACCAAAGGTCCAACCAGAAG +MN908947.3 24160 24189 SARS-CoV-2_400_79_LEFT_0 1 + GATGAAATGATTGCTCAATACACTTCTGC +MN908947.3 24535 24560 SARS-CoV-2_400_79_RIGHT_0 1 - TGCCTGTGATCAACCTATCAATTTG +MN908947.3 24442 24468 SARS-CoV-2_400_80_LEFT_0 2 + ACGCTTGTTAAACAACTTAGCTCCAA +MN908947.3 24815 24839 SARS-CoV-2_400_80_RIGHT_0 2 - CTTCACGAGGAAAGTGTGCTTTTC +MN908947.3 24751 24774 SARS-CoV-2_400_81_LEFT_0 1 + CATGTGACTTATGTCCCTGCACA +MN908947.3 25120 25151 SARS-CoV-2_400_81_RIGHT_0 1 - GAGATTCATTTAAATTCTTGGCAACCTCATT +MN908947.3 25053 25082 SARS-CoV-2_400_82_LEFT_0 2 + TGATTTAGGTGACATCTCTGGCATTAATG +MN908947.3 25423 25452 SARS-CoV-2_400_82_RIGHT_0 2 - GATTTCACCTTGCTTCAAAGTTACAGTTC +MN908947.3 25372 25402 SARS-CoV-2_400_83_LEFT_0 1 + CATTACACATAAACGAACTTATGGATTTGT +MN908947.3 25744 25777 SARS-CoV-2_400_83_RIGHT_0 1 - GCCAAAGCCTCATTATTATTCTTACAAAGTTTA +MN908947.3 25653 25680 SARS-CoV-2_400_84_LEFT_2 2 + GTAACAGTTTACTCACACCTTTTGCTC +MN908947.3 26048 26072 SARS-CoV-2_400_84_RIGHT_2 2 - TGTTCAACACCARTGTCTGTACTC +MN908947.3 26011 26039 SARS-CoV-2_400_85_LEFT_0 1 + TCACTTCAGACTATTACCAGCTGTACTC +MN908947.3 26382 26411 SARS-CoV-2_400_85_RIGHT_0 1 - AAAGAAGGTTTTACAAGACTCACGTTAAC +MN908947.3 26339 26362 SARS-CoV-2_400_86_LEFT_0 2 + CATCCTTACTGCGCTTCGATTGT +MN908947.3 26730 26756 SARS-CoV-2_400_86_RIGHT_0 2 - ACCGGTGATCCAATTTATTCTGTAAA +MN908947.3 26593 26621 SARS-CoV-2_400_87_LEFT_1 1 + AGGTTTCCTATTCCTTACATGGATTTGT +MN908947.3 26989 27009 SARS-CoV-2_400_87_RIGHT_1 1 - CCTTGATGTCACAGCGTCCT +MN908947.3 26958 26981 SARS-CoV-2_400_88_LEFT_2 2 + GTGGACATCTTCGTATTGCTGGA +MN908947.3 27349 27376 SARS-CoV-2_400_88_RIGHT_2 2 - CCATTGGTTGCTCTTCATCTAATTGAG +MN908947.3 27200 27226 SARS-CoV-2_400_89_LEFT_2 1 + GATGTTTCATCTCGTTGACTTTCAGG +MN908947.3 27583 27603 SARS-CoV-2_400_89_RIGHT_0 1 - GCCGTCAGGACAAGCAAAAG +MN908947.3 27530 27558 SARS-CoV-2_400_90_LEFT_0 2 + TCATCCTCTAGCTGATAACAAATTTGCA +MN908947.3 27927 27950 SARS-CoV-2_400_90_RIGHT_0 2 - TTCTTGGTGAAATGCAGCTACAG +MN908947.3 27832 27860 SARS-CoV-2_400_91_LEFT_0 1 + TATCTTTTGGTTCTCACTTGAACTGCAA +MN908947.3 28209 28237 SARS-CoV-2_400_91_RIGHT_0 1 - CGAACGTCATGATACTCTAAAAAGTCTT +MN908947.3 28135 28166 SARS-CoV-2_400_92_LEFT_0 2 + TTCCTGTTTACCTTTTACAATTAATTGCCAG +MN908947.3 28513 28539 SARS-CoV-2_400_92_RIGHT_0 2 - CTTCGGTAGTAGCCAATTTGGTCATC +MN908947.3 28473 28493 SARS-CoV-2_400_93_LEFT_0 1 + TCGAGGACAAGGCGTTCCAA +MN908947.3 28849 28873 SARS-CoV-2_400_93_RIGHT_0 1 - GCCTGGAGTTGAATTTCTTGAACT +MN908947.3 28808 28829 SARS-CoV-2_400_94_LEFT_0 2 + GCAGTCAAGCCTCTTCTCGTT +MN908947.3 29203 29224 SARS-CoV-2_400_94_RIGHT_0 2 - CATTCCGAAGAACGCTGAAGC +MN908947.3 29159 29183 SARS-CoV-2_400_95_LEFT_0 1 + CTGATTACAAACATTGGCCGCAAA +MN908947.3 29538 29559 SARS-CoV-2_400_95_RIGHT_0 1 - ATCTGCCTTGTGTGGTCTGCA +MN908947.3 29462 29486 SARS-CoV-2_400_96_LEFT_1 2 + CTGCAGATTTGGATGATTTCTCCA +MN908947.3 29840 29873 SARS-CoV-2_400_96_RIGHT_0 2 - TTTGTCATTCTCCTAAGAAGCTATTAAAATCAC \ No newline at end of file diff --git a/resources/primers/bed/.gitkeep b/resources/primers_schemes/bedpe/.gitkeep similarity index 100% rename from resources/primers/bed/.gitkeep rename to resources/primers_schemes/bedpe/.gitkeep diff --git a/resources/primers/bedpe/Ebola-virus_Zaire_AF-272001-1_artic-primers-V2.bedpe b/resources/primers_schemes/bedpe/Ebola-virus_Zaire_AF-272001-1_artic-primers-V2.bedpe similarity index 100% rename from resources/primers/bedpe/Ebola-virus_Zaire_AF-272001-1_artic-primers-V2.bedpe rename to resources/primers_schemes/bedpe/Ebola-virus_Zaire_AF-272001-1_artic-primers-V2.bedpe diff --git a/resources/primers/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V1.bedpe b/resources/primers_schemes/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V1.bedpe similarity index 100% rename from resources/primers/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V1.bedpe rename to resources/primers_schemes/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V1.bedpe diff --git a/resources/primers/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V3.bedpe b/resources/primers_schemes/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V3.bedpe similarity index 100% rename from resources/primers/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V3.bedpe rename to resources/primers_schemes/bedpe/Ebola-virus_Zaire_KR-063671-1_artic-primers-V3.bedpe diff --git a/resources/primers/bedpe/Nipah-virus_Malaysia_AJ-564622-1_artic-primers-V1.bedpe b/resources/primers_schemes/bedpe/Nipah-virus_Malaysia_AJ-564622-1_artic-primers-V1.bedpe similarity index 100% rename from resources/primers/bedpe/Nipah-virus_Malaysia_AJ-564622-1_artic-primers-V1.bedpe rename to resources/primers_schemes/bedpe/Nipah-virus_Malaysia_AJ-564622-1_artic-primers-V1.bedpe diff --git a/resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V1.bedpe b/resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V1.bedpe similarity index 100% rename from resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V1.bedpe rename to resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V1.bedpe diff --git a/resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V2.bedpe b/resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V2.bedpe similarity index 100% rename from resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V2.bedpe rename to resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V2.bedpe diff --git a/resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V3.bedpe b/resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V3.bedpe similarity index 100% rename from resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V3.bedpe rename to resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V3.bedpe diff --git a/resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4-1.bedpe b/resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4-1.bedpe similarity index 100% rename from resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4-1.bedpe rename to resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4-1.bedpe diff --git a/resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4.bedpe b/resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4.bedpe similarity index 100% rename from resources/primers/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4.bedpe rename to resources/primers_schemes/bedpe/SARS-CoV-2_Wuhan_MN-908947-3_artic-primers-V4.bedpe diff --git a/workflow/Snakefile b/workflow/Snakefile index db6dfd0d788fed8dfe1e122c3367d649baa65ccf..aff4e43bc86ed43b24b08ccfd467bec866c69f83 100644 --- a/workflow/Snakefile +++ b/workflow/Snakefile @@ -8,19 +8,20 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ gevarli.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Snakefile running GeVarLi rules # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### ### CONFIGURATION ### ##################### +# Config file configfile: "config/config.yaml" ############################################################################### @@ -34,36 +35,40 @@ from snakemake.utils import min_version from snakemake.utils import validate from scripts.functions import get_valid_fastq -from scripts.functions import get_final_outputs +from scripts.functions import get_settings from scripts.functions import get_bam_input from scripts.functions import get_bai_input +from scripts.functions import get_final_outputs +from scripts.functions import get_time # Local FASTQ_DIR = config["fastq_dir"] -VALID_FASTQ = get_valid_fastq(FASTQ_DIR) +VALID_FASTQ, SAMPLE_WARNINGS = get_valid_fastq(FASTQ_DIR) SAMPLE = list(VALID_FASTQ.keys()) MATE = ["1", "2"] START_TIME = time.time() # Exports import scripts.functions as functions +functions.FASTQ_DIR = FASTQ_DIR +functions.SAMPLE_WARNINGS = SAMPLE_WARNINGS functions.SAMPLE = SAMPLE functions.MATE = MATE +functions.START_TIME = START_TIME functions.MODULES = config["modules"] # Modules -functions.REFERENCE = config["consensus"]["reference"] # Genome reference sequence, in fasta format -functions.QC_REF = config["fastq_screen"]["reference"] # FastqScreen config file genomes to index -functions.MAPPER = config["consensus"]["mapper"] # Mapper ('bwa' 'minimap2' 'bowtie2') -functions.MIN_COV = config["consensus"]["min_cov"] # Minimum coverage, mask lower regions with 'N' -functions.CALLER = config["consensus"]["caller"] # Variants caller ('ivar') -functions.ASSIGNER = config["consensus"]["assigner"] # Tools ('nextclade' 'pangolin') - +functions.MAPPER = config["tools"]["mapper"] # Reads mapper ('bwa', 'minimap2' or 'bowtie2') +functions.CALLER = config["tools"]["caller"] # Variants caller ('ivar' or 'ivar') +functions.ASSIGNER = config["tools"]["assigner"] # Lineages assigner ('nextclade' or 'pangolin') +functions.REFERENCE = config["reference"] # Genome reference sequence, in fasta format +functions.MIN_DEPTH = config["consensus"]["min_depth"] # Minimum depth to call consensus, mark lower regions with 'N' +functions.QC_REF = config["fastq_screen"]["reference"] # FastqScreen config file genomes to index functions.STAT_EXT = config["report"]["stat"]["extention"] # Stat reports extentions ('txt' 'tsv' 'json') # Snakemake version -min_version("8.27.0") +min_version("9.1.3") # Schemas -validate(config, schema="schemas/config.schema.yaml") +#validate(config, schema="schemas/config.schema.yaml") ############################################################################### ### WILDCARDS ### @@ -84,7 +89,6 @@ TMP_DIR = config["resources"]["tmp_dir"] # Temporary directory ### ENVIRONMENTS ### #################### -YQ = config["envs"]["yq"] # YQ conda environment FASTQ_SCREEN = config["envs"]["fastq_screen"] # Fastq-Screen conda environment FASTQC= config["envs"]["fastqc"] # FastQC conda environment CUTADAPT = config["envs"]["cutadapt"] # Cutadapt conda environment @@ -96,7 +100,7 @@ SAMTOOLS = config["envs"]["samtools"] # SamTools conda environment BEDTOOLS = config["envs"]["bedtools"] # BedTools conda environment BAMCLIPPER = config["envs"]["bamclipper"] # BAMClipper onda environment GAWK = config["envs"]["gawk"] # Awk (GNU) conda environment -IVAR = config["envs"]["ivar"] # iVar conda environment +IVAR = config["envs"] # iVar conda environment TSV2VCF = config["envs"]["tsv2vcf"] # tsv2vcf conda environment BCFTOOLS = config["envs"]["bcftools"] # BcfTools conda environment PANGOLIN = config["envs"]["pangolin"] # Pangolin conda environment @@ -108,65 +112,55 @@ WORKFLOW = config["envs"]["workflow"] # Workflow conda environment ### PARAMETERS ### ################## -SUBSET = config["fastq_screen"]["subset"] # Fastq-Screen --subset +MAPPER = config["tools"]["mapper"] # Mapper ('bwa', 'minimap2' or 'bowtie2') +CALLER = config["tools"]["caller"] # Variant Caller ('ivar' or 'ivar') +ASSIGNER = config["tools"]["assigner"] # Lineage assigner ('nextclade' or 'pangolin') +REFERENCE = config["reference"] # Genome reference sequence, in fasta format + +FQC_SUBSET = config["fastq_screen"]["subset"] # Fastq-Screen --subset FQC_CONFIG = config["fastq_screen"]["config"] # Fastq-Screen --conf #MQC_PATH = config["multiqc"]["path"] # MultiQC --conf #MQC_CONF = config["multiqc"]["config"] # MultiQC --conf #TAG = config["multiqc"]["tag"] # MultiQC --tag -KMER_SIZE = config["minimap2"]["algorithm"]["k-mer_size"] # MM2 k-mer size -MINIMIZER_SIZE = config["minimap2"]["algorithm"]["minimizer_size"] # MM2 minimizer window size -SPLIT_SIZE = config["minimap2"]["algorithm"]["split_size"] # MM2 split index -#HOMOPOLYMER = config["minimap2"]["algorithm"]["homopolymer"] # MM2 if PacBio - -BWA_ALGO = config["bwa"]["algorithm"] # BWA indexing algorithm -BT2_ALGO = config["bowtie2"]["algorithm"] # BT2 indexing algorithm - -#REFERENCE = config["consensus"]["reference"] # Genome reference sequence, in fasta format -MIN_COV = config["consensus"]["min_cov"] # Minimum coverage, mask lower regions with 'N' -IUPAC = config["consensus"]["iupac"] # Output variants in the form of IUPAC ambiguity codes -MAPPER = config["consensus"]["mapper"] # Mapper ('minimap2', 'bwa' or 'bowtie2') -CALLER = config["consensus"]["caller"] # Variant Caller ('lofreq' or 'ivar') -ASSIGNER = config["consensus"]["assigner"] # Lineage assigner ('nextclade' or 'pangolin') - -CUT_LENGTH = config["cutadapt"]["length"] # Cutadapt --minimum-length -CUT_TRUSEQ = config["cutadapt"]["kits"]["truseq"] # Cutadapt --adapter Illumina TruSeq -CUT_NEXTERA = config["cutadapt"]["kits"]["nextera"] # Cutadapt --adapter Illumina Nextera -CUT_SMALL = config["cutadapt"]["kits"]["small"] # Cutadapt --adapter Illumina Small CUT_CLIPPING = config["cutadapt"]["clipping"] # Cutadapt --cut +CUT_LENGTH = config["cutadapt"]["length"] # Cutadapt --minimum-length +CUT_ADAPTERS = config["cutadapt"]["adapters"] # Cutadapt --adapter SIC_COMMAND = config["sickle_trim"]["command"] # Sickle-trim command SIC_ENCODING = config["sickle_trim"]["encoding"] # Sickle-trim --qual-type SIC_QUALITY = config["sickle_trim"]["quality"] # Sickle-trim --qual-threshold SIC_LENGTH = config["sickle_trim"]["length"] # Sickle-trim --length-treshold -MM2_PRESET = config["minimap2"]["preset"] # Minimap2 preset -#MM2_LENGTH = config["minimap2"]["length"] # Minimap2 length -#MM2_KMER_SIZE = config["minimap2"]["algorithm"]["k-mer_size"] # Minimap2 k-mer size -#MM2_MINIMIZER_SIZE = config["minimap2"]["algorithm"]["minimizer_size"] # Minimap2 minimizer window size -#MM2_SPLIT_SIZE = config["minimap2"]["algorithm"]["split_size"] # Minimap2 split index -#MM2_HOMOPOLYMER = config["minimap2"]["algorithm"]["homopolymer"] # Minimap2 for PacBio - BWA_ALGO = config["bwa"]["algorithm"] # BWA indexing algorithm +MM2_KMER_SIZE = config["minimap2"]["algorithm"]["k-mer_size"] # MM2 k-mer size +MM2_MINIMIZER_SIZE = config["minimap2"]["algorithm"]["minimizer_size"] # MM2 minimizer window size +MM2_SPLIT_SIZE = config["minimap2"]["algorithm"]["split_size"] # MM2 split index +MM2_PRESET = config["minimap2"]["preset"] # Minimap2 presetv # MM2 preset +#MM2_LENGTH = config["minimap2"]["length"] # Minimap2 length +#MM2_HOMOPOLYMER = config["minimap2"]["algorithm"]["homopolymer"] # MM2 homopolymer if PacBio + BT2_ALGO = config["bowtie2"]["algorithm"] # Bowtie2 indexing algorithm BT2_SENSITIVITY = config["bowtie2"]["sensitivity"] # Bowtie2 sensitivity preset -CLIPPATH = config["bamclipper"]["path"] # Bamclipper path to primers -PRIMERS = config["bamclipper"]["primers"] # Bamclipper primers bed files -UPSTREAM = config["bamclipper"]["upstream"] # Bamclipper upstream nucleotides -DOWNSTREAM = config["bamclipper"]["downstream"] # Bamclipper downstream nucleotides - -IVAR_MIN_DEPTH = config["consensus"]["min_cov"] # iVar -IVAR_MIN_FREQ = config["consensus"]["min_freq"] # iVar minimum allele frequency allowed -IVAR_MIN_INSERT = config["consensus"]["min_freq"] # iVar minimum insertion frequency allowed -#IVAR_MIN_DEPTH = config["ivar"]["min_depth"] # iVar -#IVAR_MIN_FREQ = config["ivar"]["min_freq"] # iVar minimum allele frequency allowed -#IVAR_MIN_INSERT = config["ivar"]["min_insert"] # iVar minimum insertion frequency allowed -IVAR_MAX_DEPTH = config["ivar"]["max_depth"] # iVar -IVAR_MIN_BQ = config["ivar"]["min_bq"] # iVar -IVAR_MIN_QUAL = config["ivar"]["min_qual"] # iVar -IVAR_MAP_QUAL = config["ivar"]["map_qual"] # iVar mapping quality +IVAR_OFFSET = config["primers"]["offset"] # iVar offset +IVAR_MIN_LENGTH = config["primers"]["min_length"] # iVar minimum length +IVAR_MIN_QUAL = config["primers"]["min_qual"] # iVar minimum quality +IVAR_SLIDE = config["primers"]["slide"] # iVar slide windows + +PRIMER_BED_PATH = config["primers"]["bed"]["path"] # primer kit bed path +PRIMER_BED_SCHEME = config["primers"]["bed"]["scheme"] # primer kit bed scheme +PRIMER_BEDPE_PATH = config["primers"]["bedpe"]["path"] # primer kit bedpe path +PRIMER_BEDPE_SCHEME = config["primers"]["bedpe"]["scheme"] # primer kit bedpe scheme + +MIN_DEPTH = config["consensus"]["min_depth"] # iVar minimum depth +IVAR_MIN_FREQ = config["consensus"]["min_freq"] # iVar minimum allele frequency +IVAR_MIN_INSERT = config["consensus"]["min_insert"] # iVar minimum insert frequency +IVAR_MAX_DEPTH = config["consensus"]["max_depth"] # iVar maximum depth +IVAR_MIN_BQ = config["consensus"]["min_bq"] # iVar minimum base quality +IVAR_MIN_QUAL = config["consensus"]["min_qual"] # iVar minimum mapping quality +IVAR_MAP_QUAL = config["consensus"]["map_qual"] # iVar minimum mapping quality NEXT_PATH = config["nextclade"]["path"] # Path to nextclade dataset NEXT_DATASET = config["nextclade"]["dataset"] # Nextclade dataset @@ -178,7 +172,7 @@ GRAPH_EXT = config["report"]["graph"]["extention"] ### LOAD RULES ### ################## -include: "rules/symlinks_renamming.smk" +include: "rules/samples_prep.smk" include: "rules/quality_controls.smk" include: "rules/reads_cleanning.smk" include: "rules/genomes_indexing.smk" @@ -200,6 +194,31 @@ include: "rules/workflow_reporting.smk" rule all: input: - tarball = "results/Reports_archive.tar.gz" + html_report = "results/10_Reports/workflow-report.html" + +############################################################################### +### HOOKS ### +############# + +onstart: + print("onstart") + get_settings(config, START_TIME) + +onsuccess: + print("onsuccess") + get_time(START_TIME) + shell("mkdir -p results/10_Reports/envs/ 2> /dev/null") + shell("cp workflow/envs/*.yaml results/10_Reports/envs/ 2> /dev/null") + shell("cp config/config.yaml results/10_Reports/config.log 2> /dev/null") + shell("tar -zfc results/Reports_archive.tar.gz -C results/ 10_Reports/") + +onerror: + print("onerror") + get_time(START_TIME) + shell("mkdir -p results/10_Reports/envs/ 2> /dev/null") + shell("cp workflow/envs/*.yaml results/10_Reports/envs/ 2> /dev/null") + shell("cp config/config.yaml results/10_Reports/config.log 2> /dev/null") + shell("tar -zfc results/Reports_archive.tar.gz -C results/ 10_Reports/") ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/envs/workflow-core.yaml b/workflow/envs/workflow-core.yaml index f1d73667a81a33fd2c70e1791287d26c502d5c70..ec056469fba1c7b0a00978039141379c35f773d9 100644 --- a/workflow/envs/workflow-core.yaml +++ b/workflow/envs/workflow-core.yaml @@ -4,10 +4,9 @@ channels: - bioconda - nodefaults dependencies: - - snakemake=8.27.1 + - snakemake=9.1.3 - snakedeploy=0.10.3 - snakemake-executor-plugin-slurm - snakemake-interface-report-plugins - snakemake-interface-storage-plugins - - graphviz=12.0.0 - - yq=3.4.3 \ No newline at end of file + - graphviz=12.0.0 \ No newline at end of file diff --git a/workflow/envs/yq_v.3.4.3.yaml b/workflow/envs/yq_v.3.4.3.yaml deleted file mode 100644 index 03f26621918bb540ad99a704373eaadb85df7891..0000000000000000000000000000000000000000 --- a/workflow/envs/yq_v.3.4.3.yaml +++ /dev/null @@ -1,7 +0,0 @@ -name: yq -channels: - - conda-forge - - bioconda - - nodefaults -dependencies: - - yq=3.4.3 \ No newline at end of file diff --git a/workflow/rules/consensus_calling.smk b/workflow/rules/consensus_calling.smk index 4d9d031bde235262348d0c2e6689b1907b5edfe9..d6e9c818b9ea8429faff779e53910612ce2265c0 100644 --- a/workflow/rules/consensus_calling.smk +++ b/workflow/rules/consensus_calling.smk @@ -8,43 +8,15 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ consensus_calling.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Call a consensus genome # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### -############################################################################### -rule sed_rename_headers: - # Aim: rename all fasta header with sample name - # Use: sed 's/[OLD]/[NEW]/' [IN] > [OUT] - message: - """ - ~ Sed ∞ Rename Fasta Header ~ - Sample: __________ {wildcards.sample} - Reference: _______ {wildcards.reference} - Mapper: __________ {wildcards.mapper} - Min. cov.: _______ {wildcards.min_cov}X - Caller: __________ {wildcards.caller} - """ - conda: - GAWK - input: - cons_tmp = "results/05_Consensus/{reference}/{sample}_{mapper}_{min_cov}X_{caller}_consensus.fasta.tmp" - output: - consensus = "results/05_Consensus/{reference}/{sample}_{mapper}_{min_cov}X_{caller}_consensus.fasta" - log: - "results/10_Reports/tools-log/sed/{reference}/{sample}_{mapper}_{min_cov}X_{caller}_fasta-header.log" - shell: - "sed " # Sed, a Stream EDitor used to perform basic text transformations on an input stream - "'s/^>.*$/>{wildcards.sample}_{wildcards.mapper}_{wildcards.min_cov}X_{wildcards.caller}/' " - "{input.cons_tmp} " # Input file - "1> {output.consensus} " # Output file - "2> {log}" # Log redirection - ############################################################################### rule ivar_consensus: # Aim: call a consensus genome @@ -52,16 +24,16 @@ rule ivar_consensus: message: """ ~ iVar ∞ Call Consensus ~ - Sample: __________ {wildcards.sample} - Reference: _______ {wildcards.reference} - Mapper: _________ {wildcards.mapper} - Min. cov.: _______ {wildcards.min_cov}X - Caller: __ iVar + Sample: _______ {wildcards.sample} + Reference: ____ {wildcards.reference} + Mapper: _______ {wildcards.mapper} + Min. depth: ___ {wildcards.min_depth}x + Caller: _______ iVar """ conda: IVAR params: - min_depth = IVAR_MIN_DEPTH, + min_depth = MIN_DEPTH, min_freq = IVAR_MIN_FREQ, min_insert = IVAR_MIN_INSERT, max_depth = IVAR_MAX_DEPTH, @@ -70,13 +42,14 @@ rule ivar_consensus: baq = IVAR_MAP_QUAL input: mark_dup = get_bam_input, - variant_call = "results/04_Variants/{reference}/{sample}_{mapper}_{min_cov}X_ivar_variant-call.tsv" + variant_call = "results/04_Variants/{reference}/{sample}_{mapper}_{min_depth}X_ivar_variant-call.tsv" output: - prefix = temp("results/05_Consensus/{reference}/{sample}_{mapper}_{min_cov}X_ivar_consensus"), - cons_tmp = temp("results/05_Consensus/{reference}/{sample}_{mapper}_{min_cov}X_ivar_consensus.fasta.tmp"), - qual_txt = "results/05_Consensus/{reference}/ivar_consensus-quality/{sample}_{mapper}_{min_cov}X_ivar_consensus.qual.txt", + prefix = temp("results/05_Consensus/{reference}/{sample}_{mapper}_{min_depth}X_ivar_consensus"), + header = temp("{sample}_{reference}_{mapper}_{min_depth}X_ivar_consensus"), + consensus = "results/05_Consensus/{reference}/{sample}_{mapper}_{min_depth}X_ivar_consensus.fasta", + qual_txt = "results/05_Consensus/ivar_consensus-quality/{sample}_{reference}_{mapper}_{min_depth}X_ivar_consensus.qual.txt" log: - "results/10_Reports/tools-log/ivar/{reference}/{sample}_{mapper}_{min_cov}X_ivar_consensus.log" + "results/10_Reports/tools-log/ivar/{reference}/{sample}_{mapper}_{min_depth}x_ivar_consensus.log" shell: "samtools mpileup " # Samtools mpileup, tools for alignments in the SAM format with command multi-way pileup "--verbosity 0 " # Set level of verbosity [INT] @@ -92,15 +65,17 @@ rule ivar_consensus: "| " ### PIPE to iVar "ivar consensus " # iVar, with command 'consensus': Call consensus from aligned BAM file "-p {output.prefix} " # -p: prefix + "-i {output.header} " # -i: Name of fasta header (default: Consensus_<prefix>_threshold_<min_freq>_quality_<min_qual>_<min_insert>) "-q {params.min_qual} " # -q: Minimum quality score threshold to count base [INT] (Default: 20) - "-t {params.min_freq} " # -t: Minimum frequency threshold to call variants [FLOAT] (Default: 0.03) - "-c {params.min_insert} " # -c: Minimum insertion frequency threshold to call consensus [FLOAT] (Default: 0.8) - "-m {params.min_depth} " # -m: Minimum read depth to call variants [INT] (Default: 0) + "-t {params.min_freq} " # -t: Minimum frequency threshold (0 to 1) to call consensus [FLOAT] (Default: 0) + "-c {params.min_insert} " # -c: Minimum insertion frequency threshold (0 to 1) to call consensus [FLOAT] (Default: 0.8) + "-m {params.min_depth} " # -m: Minimum depth to call consensus [INT] (Default: 10) "-n N " # -n: Character to print in regions with less than minimum coverage (Default: N) - #"-i {wildcards.sample} " # -i: Name of fasta header (default: Consensus_<prefix>_threshold_<min_freq>_quality_<min_qual>_<min_insert> "&> {log} " # Log redirection - "&& mv {output.prefix}.fa {output.cons_tmp} " # copy consensus.fa (temp) to consensus.fasta.tmp (tmp) - "&& mv {output.prefix}.qual.txt {output.qual_txt} " # cppty consensus.qual.txt (tmp) to ivar_consensus-quality/ directory - "&& touch {output.prefix}" # Touch done + "&& mv {output.prefix}.fa {output.consensus} " # move consensus.fa (temp) to consensus.fasta + "&& mv {output.prefix}.qual.txt {output.qual_txt} " # move consensus.qual.txt (tmp) to ivar_consensus-quality/ directory + "&& touch {output.prefix} " # Touch prefix (temp) + "&& touch {output.header} " # Touch header (temp) ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/coverage_stats.smk b/workflow/rules/coverage_stats.smk index bafcbf73cda6cfe54bcd70817d6ed11b7469c29a..97b7134f795e5d439246e49b37cc4629a6b2931a 100644 --- a/workflow/rules/coverage_stats.smk +++ b/workflow/rules/coverage_stats.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ coverage_stats.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Compute Genome Coverage Statistics from BED file # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -33,7 +33,7 @@ rule awk_coverage_statistics: input: cutadapt = "results/10_Reports/tools-log/cutadapt/{sample}.log", sickle = "results/10_Reports/tools-log/sickle-trim/{sample}.log", - samtools = "results/10_Reports/tools-log/samtools/{reference}/{sample}_{mapper}_mark-dup.log", + samtools = "results/10_Reports/tools-log/samtools/{reference}/{sample}_{mapper}_markdup.log", flagstat = "results/03_Coverage/{reference}/flagstat/{sample}_{mapper}_flagstat.json", histogram = "results/03_Coverage/{reference}/histogram/{sample}_{mapper}_coverage-histogram.txt", genome_cov = "results/02_Mapping/{reference}/{sample}_{mapper}_genome-cov.bed" @@ -234,3 +234,4 @@ rule samtools_flagstat_ext: "2> {log}" # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/duplicates_removing.smk b/workflow/rules/duplicates_removing.smk index 53b692cde698bafb3750882ffdd5e0f97986c7f8..65f849f874a643de40ff65b29438f91fa575769e 100644 --- a/workflow/rules/duplicates_removing.smk +++ b/workflow/rules/duplicates_removing.smk @@ -33,11 +33,11 @@ rule samtools_index_markdup: resources: cpus = 6 input: - mark_dup = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam" + mark_dup = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam" output: - index = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam.bai" + index = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam.bai" log: - "results/10_Reports/tools-log/samtools/{reference}/{sample}_{mapper}_mark-dup-index.log" + "results/10_Reports/tools-log/samtools/{reference}/{sample}_{mapper}_markdup-index.log" shell: "samtools index " # Samtools index, tools for alignments in the SAM format with command to index alignment "-@ {resources.cpus} " # --threads: Number of additional threads to use (default: 1)(NB, --threads form dose'nt work) @@ -64,9 +64,9 @@ rule samtools_markdup: input: sorted = "results/02_Mapping/{reference}/{sample}_{mapper}_sorted.bam" output: - mark_dup = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam" + mark_dup = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam" log: - "results/10_Reports/tools-log/samtools/{reference}/{sample}_{mapper}_mark-dup.log" + "results/10_Reports/tools-log/samtools/{reference}/{sample}_{mapper}_markdup.log" shell: "samtools markdup " # Samtools markdup, tools for alignments in the SAM format with command mark duplicates "--threads {resources.cpus} " # -@: Number of additional threads to use (default: 1) diff --git a/workflow/rules/genomes_indexing.smk b/workflow/rules/genomes_indexing.smk index 200c3899c4ae66aa2d9134fa25cc5e32bd298d79..1defd03b1d38c641ede42727316b65e5b4e48d14 100644 --- a/workflow/rules/genomes_indexing.smk +++ b/workflow/rules/genomes_indexing.smk @@ -87,10 +87,10 @@ rule minimap2_genome_indexing: conda: MINIMAP2 params: - kmer_size = KMER_SIZE, - minimizer_size = MINIMIZER_SIZE, - split_size = SPLIT_SIZE - #homopolymer = HOMOPOLYMER + kmer_size = MM2_KMER_SIZE, + minimizer_size = MM2_MINIMIZER_SIZE, + split_size = MM2_SPLIT_SIZE + #homopolymer = MM2_HOMOPOLYMER input: fasta = "resources/genomes/{reference}.fasta" output: diff --git a/workflow/rules/gisaid_submission.smk b/workflow/rules/gisaid_submission.smk index c944725dee61d79960608810d61e464116b17dff..f35ed775179b3282bb83bef1a05cbe259f7099be 100644 --- a/workflow/rules/gisaid_submission.smk +++ b/workflow/rules/gisaid_submission.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ gisaid_submission.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Create a Gisaid submission template file # Date ___________________ 2025.01.31 -# Latest modifications ___ 2025.01.31 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -33,3 +33,4 @@ rule gisaid_submission: "" ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/lineages_calling.smk b/workflow/rules/lineages_calling.smk index 5dbc7c03753547cda0f68c06665dac79d9960a9c..ad9cd585aff15d8667ed88b0084da926b8fc27cf 100644 --- a/workflow/rules/lineages_calling.smk +++ b/workflow/rules/lineages_calling.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ lineages_calling.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Assign lineage to consensus (Nextclade or Pangolin) # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -92,3 +92,4 @@ rule pangolin_lineage: "2> /dev/null" # Errors redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/lowcov_masking.smk b/workflow/rules/lowcov_masking.smk index 9c440b5205d5caa8e6bfe022a76ba35cdbdc976f..4c57a00d14ca357058fbcd4c8d386298fcc5792e 100644 --- a/workflow/rules/lowcov_masking.smk +++ b/workflow/rules/lowcov_masking.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ lowcov_masking.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Mask low coverage regions # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -99,3 +99,4 @@ rule awk_min_covfilt: "2> {log} " # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/primers_clipping.smk b/workflow/rules/primers_clipping.smk index 69853a823bcc6623f51c5ff91273070715b6133c..c122863f48f3a1670e7f8f26e876e8cc780f0c34 100644 --- a/workflow/rules/primers_clipping.smk +++ b/workflow/rules/primers_clipping.smk @@ -8,53 +8,62 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ primers_clipping.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Soft clip amplicons primers # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### -rule bamclipper_amplicon_primers: +rule ivar_trim: # Aim: soft-clip amplicon PCR primers from BAM alignments - # Use: bamclipper.sh -n [THREADS] -b [MARKDUP.bam] -p [PRIMER.bed] -u [UPSTREAM] -d [DOWNSTREAM] + # Use: ivar trim -i [INPUT.bam] -b [PRIMER.bed] -p [PREFIX] -e -m 20 -q 20 message: """ - ~ BAMClipper ∞ soft-clipping amplicon PCR primers from BAM alignments ~ - Sample: __________ {wildcards.sample} - Reference: _______ {wildcards.reference} - Mapper: __________ {wildcards.mapper} + ~ iVar ∞ soft-clipping amplicon PCR primers from BAM alignments ~ + Sample _________ {wildcards.sample} + Reference ______ {wildcards.reference} + Mapper _________ {wildcards.mapper} """ conda: - BAMCLIPPER - resources: - cpus = CPUS + IVAR params: - path = CLIPPATH, - primers = PRIMERS, - upstream = UPSTREAM, - downstream = DOWNSTREAM + path = PRIMER_BED_PATH, + bed = PRIMER_BED_SCHEME, + #path = PRIMER_BEDPE_PATH, + #bedpe = PRIMER_BEDPE_SCHEME, + offset = IVAR_OFFSET, + min_len = IVAR_MIN_LENGTH, + min_qual = IVAR_MIN_QUAL, + slide = IVAR_SLIDE input: - markdup = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam", - index = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam.bai" + bam = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam", + bai = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam.bai" output: - bamclip = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.primerclipped.bam", - baiclip = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.primerclipped.bam.bai" + prefix = temp("results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed"), + trimmed_bam = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed.bam", + trimmed_bai = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed.bam.bai" log: - "results/10_Reports/tools-log/bamclipper/{reference}/{sample}_{mapper}_primers-clip.log" + "results/10_Reports/tools-log/ivar_trim/{reference}/{sample}_{mapper}.log" shell: - "bamclipper.sh " # BAMClipper, remove primer sequences from BAM alignments of PCR amplicons by soft-clipping - "-b {input.markdup} " # Indexed BAM alignment file - "-p {params.path}{params.primers}.bedpe " # BEDPE of primer pair locations - "-n {resources.cpus} " # Number of threads (default: 1) - "-u {params.upstream} " # Number of nuc. upstream for assigning alignments to primers (default: 5) - "-d {params.downstream} " # Number of nuc. downstream for assigning alignments to primers (default: 5) - #"-o results/02_Mapping/ " # Path to write output (if BamClipper v.1.1.2) (todo) - "&> {log} " # Log redirection - "&& mv {wildcards.sample}_{wildcards.mapper}_mark-dup.primerclipped.bam {output.bamclip} " # because BamClipper v.1 default output system... - "&& mv {wildcards.sample}_{wildcards.mapper}_mark-dup.primerclipped.bam.bai {output.baiclip}" # because BamClipper v.1 default output system... + "ivar trim " # iVar, with command 'trim': soft-clip amplicon PCR primers from BAM alignments + "-i {input.bam} " # Input BAM file, with aligned reads, to trim primers and quality + "-p {output.prefix} " # Prefix for the output BAM file + "-b {params.path}{params.bed} " # BED file with primer sequences and positions + # If no BED file is specified, only quality trimming will be done. + #"-f {params.path}{params.bedpe} " # Primer pair information file containing left and right primer names for the same amplicon separated by a tab + # If provided, reads that do not fall within atleat one amplicon will be ignored prior to primer trimming. + "-x {params.offset} " # primer position offset (Default: 0) + "-m {params.min_len} " # Minimum length of read to retain after trimming (Default: 50% average length of the first 1000 reads) + "-q {params.min_qual} " # Minimum quality threshold for sliding window to pass (Default: 20) + "-s {params.slide} " # Width of sliding window (Default: 4) + "-e " # Include reads with no primers. By default, reads with no primers are excluded + "-k " # Keep reads to allow for reanalysis + # Keep reads which would be dropped by alignment length filter or primer requirements, but mark them QCFAIL + "&> {log}" # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/quality_controls.smk b/workflow/rules/quality_controls.smk index 63b4368e6eaafd2747a29a9259447af45160f822..21e0288078b4cabdae0189c20b97d4634557d83f 100644 --- a/workflow/rules/quality_controls.smk +++ b/workflow/rules/quality_controls.smk @@ -33,7 +33,7 @@ rule fastqscreen_contamination_check: cpus = CPUS params: config = FQC_CONFIG, - subset = SUBSET + subset = FQC_SUBSET input: fastq = "results/symlinks/{sample}_R{mate}.fastq.gz" output: diff --git a/workflow/rules/reads_cleanning.smk b/workflow/rules/reads_cleanning.smk index 62711dc0ad5be4f9a47d755464956c6db2c14fb9..ee6e1e0c7dcba3e901ee371add8337cfcdb1263c 100644 --- a/workflow/rules/reads_cleanning.smk +++ b/workflow/rules/reads_cleanning.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ reads_cleanning.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Perform Illumina reads quality trimming # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -34,12 +34,12 @@ rule sickle_trim_quality: quality = SIC_QUALITY, length = SIC_LENGTH input: - fwd_reads = "results/01_Trimming/cutadapt/{sample}_cutadapt-removed_R1.fastq.gz", - rev_reads = "results/01_Trimming/cutadapt/{sample}_cutadapt-removed_R2.fastq.gz" + fwd_reads = "results/01_Trimming/cutadapt/{sample}_cutadapt_R1.fastq.gz", + rev_reads = "results/01_Trimming/cutadapt/{sample}_cutadapt_R2.fastq.gz" output: - fwd_reads = temp("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R1.fastq.gz"), - rev_reads = temp("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R2.fastq.gz"), - single = temp("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_SE.fastq.gz") + fwd_reads = temp("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R1.fastq.gz"), + rev_reads = temp("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R2.fastq.gz"), + single = temp("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_SE.fastq.gz") log: "results/10_Reports/tools-log/sickle-trim/{sample}.log" shell: @@ -54,7 +54,7 @@ rule sickle_trim_quality: "-o {output.fwd_reads} " # --output-pe1: Output trimmed forward fastq file "-p {output.rev_reads} " # --output-pe2: Output trimmed reverse fastq file (must use -s option) "-s {output.single} " # --output-single: Output trimmed singles fastq file - "&> {log} " # Log redirection + "&> {log}" # Log redirection ############################################################################### rule cutadapt_adapters_removing: @@ -71,17 +71,15 @@ rule cutadapt_adapters_removing: resources: cpus = CPUS params: + cut = CUT_CLIPPING, length = CUT_LENGTH, - truseq = CUT_TRUSEQ, - nextera = CUT_NEXTERA, - small = CUT_SMALL, - cut = CUT_CLIPPING + adapter_opts = lambda wildcards: " ".join(f"--adapter {a} -A {a}" for a in CUT_ADAPTERS) input: fwd_reads = "results/symlinks/{sample}_R1.fastq.gz", rev_reads = "results/symlinks/{sample}_R2.fastq.gz" output: - fwd_reads = temp("results/01_Trimming/cutadapt/{sample}_cutadapt-removed_R1.fastq.gz"), - rev_reads = temp("results/01_Trimming/cutadapt/{sample}_cutadapt-removed_R2.fastq.gz") + fwd_reads = temp("results/01_Trimming/cutadapt/{sample}_cutadapt_R1.fastq.gz"), + rev_reads = temp("results/01_Trimming/cutadapt/{sample}_cutadapt_R2.fastq.gz") log: "results/10_Reports/tools-log/cutadapt/{sample}.log" shell: @@ -91,16 +89,12 @@ rule cutadapt_adapters_removing: "-U {params.cut} " # -U: Remove 'n' first bases (5') from reverse R2 (hard-clipping, default: 0) "--trim-n " # --trim-n: Trim N's on ends (3') of reads "--minimum-length {params.length} " # -m: Discard reads shorter than length - "--adapter {params.truseq} " # -a: Sequence of an adapter ligated to the 3' end of the first read - "-A {params.truseq} " # -A: 3' adapter to be removed from second read in a pair - "--adapter {params.nextera} " # -a: Sequence of an adapter ligated to the 3' end of the first read - "-A {params.nextera} " # -A: 3' adapter to be removed from second read in a pair - "--adapter {params.small} " # -a: Sequence of an adapter ligated to the 3' end of the first read - "-A {params.small} " # -A: 3' adapter to be removed from second read in a pair + "{params.adapter_opts} " # -a/-A: Adapters sequences ligated to the 3' end of the first or second read in a pair "--output {output.fwd_reads} " # -o: Write trimmed reads to FILE "--paired-output {output.rev_reads} " # -p: Write second read in a pair to FILE "{input.fwd_reads} " # Input forward reads R1.fastq "{input.rev_reads} " # Input reverse reads R2.fastq - "&> {log} " # Log redirection + "&> {log}" # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/reads_mapping.smk b/workflow/rules/reads_mapping.smk index 834e15686e6d91afe5172d552b82db40e9f80247..c97387c22e84c6c21184b13adcaaf4f6eeaf4d0b 100644 --- a/workflow/rules/reads_mapping.smk +++ b/workflow/rules/reads_mapping.smk @@ -37,8 +37,8 @@ rule minimap2_mapping: #length = LENGTH input: mm2_indexes = "resources/indexes/minimap2/{reference}.mmi", - fwd_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R1.fastq.gz", - rev_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R2.fastq.gz" + fwd_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R1.fastq.gz", + rev_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R2.fastq.gz" output: mapped = temp("results/02_Mapping/{reference}/{sample}_minimap2-mapped.sam") log: @@ -78,8 +78,8 @@ rule bwa_mapping: cpus = CPUS input: bwa_indexes = "resources/indexes/bwa/{reference}", - fwd_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R1.fastq.gz", - rev_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R2.fastq.gz" + fwd_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R1.fastq.gz", + rev_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R2.fastq.gz" output: mapped = temp("results/02_Mapping/{reference}/{sample}_bwa-mapped.sam") log: @@ -113,8 +113,8 @@ rule bowtie2_mapping: sensitivity = BT2_SENSITIVITY input: bt2_indexes = "resources/indexes/bowtie2/{reference}", - fwd_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R1.fastq.gz", - rev_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R2.fastq.gz" + fwd_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R1.fastq.gz", + rev_reads = "results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R2.fastq.gz" output: mapped = temp("results/02_Mapping/{reference}/{sample}_bowtie2-mapped.sam") log: diff --git a/workflow/rules/results_merging.smk b/workflow/rules/results_merging.smk index 73f5bfebc40a5c463b7b9aa1471c8d3a013de9f6..6b7e05e212a1e3327d24e0e5352b8800a92251f3 100644 --- a/workflow/rules/results_merging.smk +++ b/workflow/rules/results_merging.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ results_merging.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Merge results # Date ___________________ 2025.01.31 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -24,7 +24,7 @@ rule merge_consensus: ~ Merge ∞ Concatenating all samples consensus sequences ~ Reference: _______ {wildcards.reference} Mapper: __________ {wildcards.mapper} - Min. cov.: _______ {wildcards.min_cov}X + Min. cov.: _______ {wildcards.min_cov}x Caller: __________ {wildcards.caller} """ input: @@ -39,10 +39,10 @@ rule merge_consensus: log: "results/10_Reports/tools-log/merge_consensus/{reference}/{mapper}_{min_cov}X_{caller}_consensus.log" shell: - "cat " # Concatenate all consensus sequences - "{input.consensus} " # Input files - "> {output.all_consensus} " # Output file - "2> {log}" # Log redirection + "cat " # Concatenate all consensus sequences + "{input.consensus} " # Input files + "1> {output.all_consensus} " # Output file + "2> {log}" # Log redirection ############################################################################### rule merge_coverage: @@ -51,7 +51,7 @@ rule merge_coverage: ~ Merge ∞ Concatenating genome coverage statistics ~ Reference: _______ {wildcards.reference} Mapper: __________ {wildcards.mapper} - Min. cov.: _______ {wildcards.min_cov}X + Min. cov.: _______ {wildcards.min_cov}x """ input: covstats = lambda wildcards: expand("results/03_Coverage/{reference}/{sample}_{mapper}_{min_cov}X_coverage-stats.tsv", @@ -60,23 +60,23 @@ rule merge_coverage: mapper = wildcards.mapper, min_cov = wildcards.min_cov) output: - all_covstats = "results/All_{reference}_{mapper}_{min_cov}X_genome_coverages.tsv", - temp_covstats = temp("results/All_{reference}_{mapper}_{min_cov}X_genome_coverages.temp") - log: + all_covstats = "results/All_{reference}_{mapper}_{min_cov}X_genome_coverages.tsv" + log: "results/10_Reports/tools-log/merge_coverage/{reference}/{mapper}_{min_cov}X_covstats.log" shell: - "cat {input.covstats} > {output.temp_covstats} && " # Concatenate all coverage statistics - "awk 'NR==1 || NR%2==0' {output.temp_covstats} 1> {output.all_covstats} " # Keep only even lines - "2> {log}" # Log redirection + "cat {input.covstats} | " # Concatenate all coverage statistics + "awk 'NR==1 || NR%2==0' " # Keep only even lines + "1> {output.all_covstats} " # Output file + "2> {log}" # Log redirection ############################################################################### rule merge_clade: message: """ - ~ Merge ∞ Concatenating Pangolin lineage assignments ~ + ~ Merge ∞ Concatenating lineage assignments ~ Reference: _______ {wildcards.reference} Mapper: __________ {wildcards.mapper} - Min. cov.: _______ {wildcards.min_cov}X + Min. cov.: _______ {wildcards.min_cov}x Variant caller: __ {wildcards.caller} Assigner: ________ {wildcards.assigner} """ @@ -89,13 +89,14 @@ rule merge_clade: caller = wildcards.caller, assigner = wildcards.assigner) output: - all_lineages = "results/All_{reference}_{mapper}_{min_cov}X_{caller}_{assigner}-lineages.tsv", - temp_lineages = temp("results/All_{reference}_{mapper}_{min_cov}X_{caller}_{assigner}-lineages.temp") + all_lineages = "results/All_{reference}_{mapper}_{min_cov}X_{caller}_{assigner}-lineages.tsv" log: "results/10_Reports/tools-log/merge_clade/{reference}/{mapper}_{min_cov}X_{caller}_{assigner}-lineages.log" shell: - "cat {input.lineages} > {output.temp_lineages} && " # Concatenate all clade assignments - "awk 'NR==1 || NR%2==0' {output.temp_lineages} 1> {output.all_lineages} " # Keep only even lines - "2> {log}" # Log redirection + "cat {input.lineages} | " # Concatenate all lineage assignments + "awk 'NR==1 || NR%2==0' {output.temp_lineages} " # Keep only even lines + "1> {output.all_lineages} " # Output file + "2> {log}" # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/symlinks_renamming.smk b/workflow/rules/samples_prep.smk similarity index 68% rename from workflow/rules/symlinks_renamming.smk rename to workflow/rules/samples_prep.smk index f4bfce3e3426f9a6c5c2ab9b773c81920f757421..88a556004637731c1829e24b4f4943b6f2a375eb 100644 --- a/workflow/rules/symlinks_renamming.smk +++ b/workflow/rules/samples_prep.smk @@ -7,31 +7,16 @@ ### \/ \/ ### ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### -# Name ___________________ symlinks_renamming.smk -# Version ________________ v.2025.01 +# Name ___________________ sample_prep.smk +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI -# Aim ____________________ Create fastq symlinks +# Aim ____________________ Prepare samples # Date ___________________ 2025.01.31 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### -############################################################################### -rule config: - # Aim: Load configuration file - # Use: - message: - """ - ~ Configuration ∞ Show analyses settings ~ - """ - input: - config_file = "config/config.yaml" - output: - setting_log = "results/10_Reports/settings.log" - script: - "workflow/scripts/settings.py " - ############################################################################### rule symlinks: # Aim: Create fastq files symlinks @@ -43,18 +28,18 @@ rule symlinks: Reads: ___________ R{wildcards.mate} """ input: - setting_log = "results/10_Reports/settings.log", valid_fastq = lambda wildcards: os.path.abspath(VALID_FASTQ[wildcards.sample][wildcards.mate]) output: symlink = temp("results/symlinks/{sample}_R{mate}.fastq.gz") log: "results/10_Reports/tools-log/symlinks/{sample}_R{mate}.log" shell: - "mkdir -p $(dirname {output.symlink}) " - "&& " - "ln -sf " - "{input.valid_fastq} " - "{output.symlink} " - "&> {log}" + "mkdir -p $(dirname {output.symlink}) " # Create output directory + "&& " # Create symlink directory + "ln -sf " # Create symbolic link + "{input.valid_fastq} " # Source file + "{output.symlink} " # Link + "&> {log}" # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/variants_calling.smk b/workflow/rules/variants_calling.smk index 29993e99873ebff79188bd65b4b43846b7227b9b..096b049a115a813577974cbce5bc533446372e0d 100644 --- a/workflow/rules/variants_calling.smk +++ b/workflow/rules/variants_calling.smk @@ -8,13 +8,13 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ variants_calling.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ SNVs and Indels calling # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### ############################################################################### @@ -32,6 +32,8 @@ rule convert_tsv2vcf: """ conda: TSV2VCF + params: + tsv2vcf = "workflow/scripts/ivar_variants_to_vcf.py" # Script (from viralrecon) input: tsv = "results/04_Variants/{reference}/{sample}_{mapper}_{min_cov}X_ivar_variant-call.tsv" output: @@ -39,11 +41,11 @@ rule convert_tsv2vcf: log: "results/10_Reports/tools-log/tsv2vcf/{reference}/{sample}_{mapper}_{min_cov}X_ivar_tsv2vcf.log" shell: - "python3 " # Python 3 - "workflow/scripts/ivar_variants_to_vcf.py " # Script (from viralrecon) - "{input.tsv} " # TSV input - "{output.vcf} " # VCF output - "&> {log}" # Log redirection + "python3 " # Python 3 + "{params.tsv2vcf} " # Script (from viralrecon) + "{input.tsv} " # TSV input + "{output.vcf} " # VCF output + "&> {log}" # Log redirection ############################################################################### rule ivar_variant_calling: @@ -62,7 +64,7 @@ rule ivar_variant_calling: conda: IVAR params: - min_depth = IVAR_MIN_DEPTH, + min_depth = MIN_DEPTH, min_freq = IVAR_MIN_FREQ, min_insert = IVAR_MIN_INSERT, max_depth = IVAR_MAX_DEPTH, @@ -90,12 +92,13 @@ rule ivar_variant_calling: "2>&1 | grep -v '[mpileup] 1 samples in 1 input files' " # Remove this stdout "| " ### pipe to iVar "ivar variants " # iVar, with command 'variants': Call variants from aligned BAM file - "-p {output.variant_call} " # -p: prefix + "-p {output.variant_call} " # -p: Prefix for the output tsv variant file "-q {params.min_qual} " # -q: Minimum quality score threshold to count base (Default: 20) [INT] - "-t {params.min_freq} " # -t: Minimum frequency threshold to call variants (Default: 0.03) [FLOAT] + "-t {params.min_freq} " # -t: Minimum frequency threshold (0 to 1) to call variants (Default: 0.03) [FLOAT] "-m {params.min_depth} " # -m: Minimum read depth to call variants (Default: 0) [INT] "-r {input.masked_ref} " # -r: Reference file used for alignment (translate the nuc. sequences and identify intra host single nuc. variants) #"-g " # -g: A GFF file in the GFF3 format can be supplied to specify coordinates of open reading frames (ORFs) "&> {log}" # Log redirection ############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/rules/workflow_reporting.smk b/workflow/rules/workflow_reporting.smk index da31bbb6217f7d9f98ca5bd01b4dfe53d63a82d3..8601e88c5301f2886d2b1566b59116402f12f203 100644 --- a/workflow/rules/workflow_reporting.smk +++ b/workflow/rules/workflow_reporting.smk @@ -8,40 +8,15 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ workflow_reporting.smk -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Generate workflow reports # Date ___________________ 2025.01.31 -# Latest modifications ___ 2025.03.12 -# Use ____________________ snakemake -s Snakefile --use-conda -j -############################################################################### - - - +# Latest modifications ___ 2025.04.04 +# Use ____________________ snakemake -s Snakefile --use-conda ############################################################################### -############################################################################### -rule tar_reports: - # Aim: compresses reports into a tarball - # Use: tar -zcf 10_Reports_archive.tar.gz 10_Reports/ - message: - """ - ~ Archive ∞ Compress reports ~ - """ - input: - html_report = "results/10_Reports/workflow-report.html" - output: - tarball = "results/Reports_archive.tar.gz" - shell: - "tar " # Tar command - "-z " # Gzip compression - "-c " # Create a new archive - "-f " # Use archive file or device ARCHIVE - "{output.tarball} " # Output archive - "-C results/ " # Change to directory 'results/' - "10_Reports/" # Input directory to compress - ############################################################################### rule snakemake_report: # Aim: generates a workflow report in HTML format @@ -50,13 +25,12 @@ rule snakemake_report: """ ~ Report ∞ Generate a workflow report in HTML format ~ """ - #conda: - # WORKFLOW + conda: + WORKFLOW params: #style_sheet = STYLE_SHEET input: multiqc = "results/10_Reports/multiqc/", - time = "results/10_Reports/time.log", summary = "results/10_Reports/files-summary.tsv", graph = expand("results/10_Reports/graphs/{graph_type}.{ext}", graph_type = GRAPH_TYPE, @@ -72,28 +46,6 @@ rule snakemake_report: " {output.html_report} " # Output report "2> {log}" # Log redirection -############################################################################### -rule snakemake_summary: - # Aim: generates a workflow summary in txt format - # Use: snakemake --summary - message: - """ - ~ Summary ∞ Generate a files summary in txt format ~ - """ - conda: - WORKFLOW - input: - final_outputs = get_final_outputs() - output: - summary = "results/10_Reports/files-summary.tsv" - log: - "results/10_Reports/tools-log/files-summary.log" - shell: - "snakemake " # Snakemake - "--summary " # Print a summary of all files created by the workflow - "1> {output.summary} " # Output files summary - "2> {log}" # Log redirection - ############################################################################### rule snakemake_graph: # Aim: generates a workflow graph in png, svg or pdf format @@ -118,6 +70,28 @@ rule snakemake_graph: "1> {output.graph} " # Output graph "2> {log}" # Log redirection +############################################################################### +rule snakemake_summary: + # Aim: generates a workflow summary in txt format + # Use: snakemake --summary + message: + """ + ~ Summary ∞ Generate a files summary in txt format ~ + """ + conda: + WORKFLOW + input: + final_outputs = get_final_outputs() + output: + summary = "results/10_Reports/files-summary.tsv" + log: + "results/10_Reports/tools-log/files-summary.log" + shell: + "snakemake " # Snakemake + "--summary " # Print a summary of all files created by the workflow + "1> {output.summary} " # Output files summary + "2> {log}" # Log redirection + ############################################################################### rule multiqc_aggregation: # Aim: aggregates bioinformatics analyses results into a single report @@ -154,70 +128,4 @@ rule multiqc_aggregation: "2> /dev/null" # Suppress error messages ############################################################################### -rule log_time: - # Aim: log workflow start and end time - # Use: date +"%Y-%m-%d %H:%M" - message: - """ - ~ Log ∞ Workflow time ~ - """ - input: - final_outputs = get_final_outputs() - output: - time_log = "results/10_Reports/time.log" - run: - time_stamp_start = time.strftime("%Y-%m-%d %H:%M", time.localtime(START_TIME)) - time_stamp_end = time.strftime("%Y-%m-%d %H:%M", time.localtime()) - elapsed_time = int(time.time() - START_TIME) - hours = elapsed_time // 3600 - minutes = (elapsed_time % 3600) // 60 - seconds = elapsed_time % 60 - formatted_time = f"{hours:02d}:{minutes:02d}:{seconds:02d}" - green = "\033[32m" - ylo = "\033[33m" - nc = "\033[0m" - message_time = f""" -{green}Start time{nc} _____________ {time_stamp_start} -{green}End time{nc} _______________ {time_stamp_end} -{green}Processing time{nc} ________ {ylo}{formatted_time}{nc} -""" - print(message_time) - ansi_escape = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]') - message_clean = ansi_escape.sub('', message_time) - with open(output.time_log, "w") as f: - f.write(message_clean) - -############################################################################### -rule log_environments: - # Aim: copy conda environments files to results - # Use: cp workflow/envs/*.yaml results/10_Reports/envs/ - message: - """ - ~ Log ∞ Workflow environments ~ - """ - input: - envs = "workflow/envs" - output: - envs_log = directory("results/10_Reports/envs/") - shell: - "mkdir -p {output.envs_log} && " # Create directory - "cp {input.envs}/*.yaml {output.envs_log} " # Copy envs files - "2> /dev/null" # Suppress error messages - -############################################################################### -rule log_config: - # Aim: copy settings file to results - # Use: cp config/config.yaml results/10_Reports/config.log - message: - """ - ~ Log ∞ Workflow configuration ~ - """ - input: - config = "config/config.yaml" - output: - config_log = "results/10_Reports/config.log" - shell: - "cp {input.config} {output.config_log} " # Copy config file - "2> /dev/null" # Suppress error messages - -############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/schemas/config.schema.yaml b/workflow/schemas/config.schema.yaml index a399a7cd8b8f464e4be1f3b76b7586a49eecd92b..fe384c2ae632f683430f0be7c6cf256edbb4da7e 100644 --- a/workflow/schemas/config.schema.yaml +++ b/workflow/schemas/config.schema.yaml @@ -1,39 +1,11 @@ $schema: "http://json-schema.org/draft-07/schema#" -title: "GeVarLi Configuration Schema" +title: "GeVarLi Config Schema" type: object -required: - - fastq_dir - - modules - - consensus - - gisaid - - nextclade - - ivar - - bamclipper - - bwa - - bowtie2 - - minimap2 - - sickle_trim - - cutadapt - - multiqc - - fastq_screen - - rename - - resources - - envs - - report properties: fastq_dir: type: string - modules: type: object - required: - - qualities - - keeptrim - - clipping - - covstats - - consensus - - lineages - - gisaid properties: qualities: type: boolean @@ -49,42 +21,36 @@ properties: type: boolean gisaid: type: boolean - - consensus: - type: object required: - - reference - - min_cov - - min_freq - - iupac - - mapper - - caller - - assigner + - qualities + - keeptrim + - clipping + - covstats + - consensus + - lineages + - gisaid + tools: + type: object properties: - reference: - type: string - min_cov: - type: string - min_freq: - type: string - iupac: - type: string mapper: type: string caller: type: string assigner: type: string - - gisaid: + required: + - mapper + - caller + - assigner + consensus: type: object + properties: + reference: + type: string required: - - username - - threshold - - name - - country - - identifier - - year + - reference + gisaid: + type: object properties: username: type: string @@ -98,42 +64,78 @@ properties: type: string year: type: string - + required: + - username + - threshold + - name + - country + - identifier + - year nextclade: type: object - required: - - path - - dataset properties: path: type: string dataset: type: string - + required: + - path + - dataset ivar: type: object - required: - - max_depth - - min_bq - - min_qual - - map_qual properties: - max_depth: - type: string - min_bq: - type: string - min_qual: - type: string - map_qual: - type: string - + consensus: + type: object + properties: + min_depth: + type: string + max_depth: + type: string + min_freq: + type: string + map_qual: + type: string + min_bq: + type: string + min_qual: + type: string + required: + - min_depth + - max_depth + - min_freq + - map_qual + - min_bq + - min_qual + variant: + type: object + properties: + min_depth: + type: string + max_depth: + type: string + min_freq: + type: string + map_qual: + type: string + min_bq: + type: string + min_qual: + type: string + required: + - min_depth + - max_depth + - min_freq + - map_qual + - min_bq + - min_qual + primerclipping: + type: [ "object", "null" ] + required: + - consensus + - variant + - primerclipping bamclipper: type: object - required: - - path - - primers - - upstream - - downstream properties: path: type: string @@ -143,43 +145,35 @@ properties: type: string downstream: type: string - + required: + - path + - primers + - upstream + - downstream bwa: type: object - required: - - algorithm properties: algorithm: type: string - - bowtie2: - type: object required: - algorithm - - sensitivity + bowtie2: + type: object properties: algorithm: type: string sensitivity: type: string - - minimap2: - type: object required: - - preset - algorithm + - sensitivity + minimap2: + type: object properties: - preset: - type: string algorithm: type: object - required: - - "k-mer_size" - - minimizer_size - - split_size - - homopolymer properties: - "k-mer_size": + k-mer_size: type: string minimizer_size: type: string @@ -187,14 +181,18 @@ properties: type: string homopolymer: type: string - + required: + - k-mer_size + - minimizer_size + - split_size + - homopolymer + preset: + type: string + required: + - algorithm + - preset sickle_trim: type: object - required: - - quality - - length - - command - - encoding properties: quality: type: string @@ -204,13 +202,13 @@ properties: type: string encoding: type: string - - cutadapt: - type: object required: - - clipping + - quality - length - - kits + - command + - encoding + cutadapt: + type: object properties: clipping: type: string @@ -218,10 +216,6 @@ properties: type: string kits: type: object - required: - - truseq - - nextera - - small properties: truseq: type: string @@ -229,13 +223,16 @@ properties: type: string small: type: string - + required: + - truseq + - nextera + - small + required: + - clipping + - length + - kits multiqc: type: object - required: - - path - - config - - tag properties: path: type: string @@ -243,13 +240,12 @@ properties: type: string tag: type: string - - fastq_screen: - type: object required: + - path - config - - subset - - reference + - tag + fastq_screen: + type: object properties: config: type: string @@ -259,13 +255,12 @@ properties: type: array items: type: string - + required: + - config + - subset + - reference rename: type: object - required: - - barcode_id - - line_id - - end_id properties: barcode_id: type: boolean @@ -273,13 +268,12 @@ properties: type: boolean end_id: type: boolean - + required: + - barcode_id + - line_id + - end_id resources: type: object - required: - - cpus - - ram - - tmp_dir properties: cpus: type: string @@ -287,28 +281,12 @@ properties: type: string tmp_dir: type: string - + required: + - cpus + - ram + - tmp_dir envs: type: object - required: - - bamclipper - - bcftools - - bedtools - - bowtie2 - - bwa - - cutadapt - - fastq_screen - - fastqc - - gawk - - ivar - - minimap2 - - multiqc - - nextclade - - pangolin - - samtools - - sickle_trim - - tsv2vcf - - workflow properties: bamclipper: type: string @@ -346,27 +324,39 @@ properties: type: string workflow: type: string - + required: + - bamclipper + - bcftools + - bedtools + - bowtie2 + - bwa + - cutadapt + - fastq_screen + - fastqc + - gawk + - ivar + - minimap2 + - multiqc + - nextclade + - pangolin + - samtools + - sickle_trim + - tsv2vcf + - workflow report: type: object - required: - - stat - - graph properties: stat: type: object - required: - - extention properties: extention: type: array items: type: string - graph: - type: object required: - - type - extention + graph: + type: object properties: type: type: array @@ -375,4 +365,30 @@ properties: extention: type: array items: - type: string \ No newline at end of file + type: string + required: + - type + - extention + required: + - stat + - graph +required: + - fastq_dir + - modules + - tools + - consensus + - gisaid + - nextclade + - ivar + - bamclipper + - bwa + - bowtie2 + - minimap2 + - sickle_trim + - cutadapt + - multiqc + - fastq_screen + - rename + - resources + - envs + - report \ No newline at end of file diff --git a/workflow/scripts/__pycache__/__init__.cpython-312.pyc b/workflow/scripts/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 80e6722fd8b0751239f5fedd373affaa5933c5a7..0000000000000000000000000000000000000000 Binary files a/workflow/scripts/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/workflow/scripts/__pycache__/functions.cpython-312.pyc b/workflow/scripts/__pycache__/functions.cpython-312.pyc deleted file mode 100644 index 039460ac12bd9424bf39c41de31f949261905bb6..0000000000000000000000000000000000000000 Binary files a/workflow/scripts/__pycache__/functions.cpython-312.pyc and /dev/null differ diff --git a/workflow/scripts/functions.py b/workflow/scripts/functions.py index e55beb169b5b19cd9843e28afde84fac33321cd1..a3b26ef24ad3e4066e273b65623d896c4828f201 100644 --- a/workflow/scripts/functions.py +++ b/workflow/scripts/functions.py @@ -8,12 +8,12 @@ ### ### ###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### # Name ___________________ functions.py -# Version ________________ v.2025.01 +# Version ________________ v.2025.04 # Author _________________ Nicolas Fernandez # Affiliation ____________ IRD_U233_TransVIHMI # Aim ____________________ Snakefile functions # Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 +# Latest modifications ___ 2025.04.04 # Use ____________________ import scripts.functions as functions ############################################################################### @@ -21,9 +21,7 @@ ### IMPORTS ### ############### -import os -import re -import glob +import os, re, glob, time, sys, subprocess, platform, yaml from snakemake.io import expand from collections import defaultdict @@ -31,12 +29,19 @@ from collections import defaultdict ### GLOBAL VARIABLES ### ######################## +# Define colors +blue = "\033[1;34m" +green = "\033[1;32m" +red = "\033[1;31m" +ylo = "\033[1;33m" +nc = "\033[0m" ############################################################################### ### FUNCTIONS ### ################## -# get_valid_fastq +############################################################################### +# GET_VALID_FASTQ def get_valid_fastq(fastq_dir): fastq_files = glob.glob(os.path.join(fastq_dir, "*.fastq.gz")) sample_dict = defaultdict(dict) @@ -51,8 +56,7 @@ def get_valid_fastq(fastq_dir): mate = match.group("mate") sample_dict[sample][mate] = fastq else: - warnings.append(f"[WARNING] File '{basename}' does not match the expected naming pattern. Skipping.") - + warnings.append(f"{red}[WARNING]{nc} File '{basename}' does not match the expected naming pattern. Skipping.") # Is paired ? valid_fastq = {} for sample, mates in sample_dict.items(): @@ -60,27 +64,29 @@ def get_valid_fastq(fastq_dir): valid_fastq[sample] = mates else: missing = "R1" if "1" not in mates else "R2" - warnings.append(f"[WARNING] Sample '{sample}' is incomplete (missing {missing}). Skipping.") + warnings.append(f"{red}[WARNING]{nc} Sample '{sample}' is incomplete (missing {missing}). Skipping.") + warnings.append(f"\n{blue}[INFO]{nc} Total valid samples: {len(valid_fastq)}") - warnings.append(f"\n[INFO] Total valid samples: {len(valid_fastq)}") + return valid_fastq, warnings - return valid_fastq - -# get_bam_input +############################################################################### +## GET_BAM_INPUT def get_bam_input(wildcards): - markdup = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam" + markdup = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam" if "cleapping" in MODULES: - markdup = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.primerclipped.bam" + markdup = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed.bam" return markdup -# get_bai_input +############################################################################### +## GET_BAI_INPUT def get_bai_input(wildcards): - index = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.bam.bai" + index = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup.bam.bai" if "cleapping" in MODULES: - index = "results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.primerclipped.bam.bai" + index = "results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed.bam.bai" return index -# GET_FINAL_OUTPUTS +############################################################################### +## GET_FINAL_OUTPUTS def get_final_outputs(): final_outputs = [] # quality_controls @@ -93,11 +99,11 @@ def get_final_outputs(): mate = MATE)) # reads_trimming if MODULES["keeptrim"]: - final_outputs.append(expand("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R1.fastq.gz", + final_outputs.append(expand("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R1.fastq.gz", sample = SAMPLE)) - final_outputs.append(expand("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_R2.fastq.gz", + final_outputs.append(expand("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_R2.fastq.gz", sample = SAMPLE)) - final_outputs.append(expand("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trimmed_SE.fastq.gz", + final_outputs.append(expand("results/01_Trimming/sickle/{sample}_cutadapt-sickle-trim_SE.fastq.gz", sample = SAMPLE)) # genomes_indexing final_outputs.append(expand("resources/indexes/fastq-screen/{qc_ref}", @@ -105,21 +111,21 @@ def get_final_outputs(): # reads_mapping # primers_clipping if MODULES["clipping"]: - final_outputs.append(expand("results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.primerclipped.bam", + final_outputs.append(expand("results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed.bam", reference = REFERENCE, sample = SAMPLE, mapper = MAPPER)) - final_outputs.append(expand("results/02_Mapping/{reference}/{sample}_{mapper}_mark-dup.primerclipped.bam.bai", + final_outputs.append(expand("results/02_Mapping/{reference}/{sample}_{mapper}_markdup_trimmed.bam.bai", reference = REFERENCE, sample = SAMPLE, mapper = MAPPER)) # duplicates_removing # coverage_stats if MODULES["covstats"]: - final_outputs.append(expand("results/03_Coverage/{reference}/{sample}_{mapper}_{min_cov}X_coverage-stats.tsv", + final_outputs.append(expand("results/03_Coverage/{reference}/{sample}_{mapper}_{min_depth}X_coverage-stats.tsv", reference = REFERENCE, sample = SAMPLE, - min_cov=MIN_COV, + min_depth=MIN_DEPTH, mapper = MAPPER)) final_outputs.append(expand("results/03_Coverage/{reference}/histogram/{sample}_{mapper}_coverage-histogram.txt", reference = REFERENCE, @@ -134,49 +140,319 @@ def get_final_outputs(): # variants_calling # consensus_calling if MODULES["consensus"]: - final_outputs.append(expand("results/05_Consensus/{reference}/{sample}_{mapper}_{min_cov}X_{caller}_consensus.fasta", + final_outputs.append(expand("results/05_Consensus/{reference}/{sample}_{mapper}_{min_depth}X_{caller}_consensus.fasta", reference = REFERENCE, sample = SAMPLE, mapper = MAPPER, - min_cov=MIN_COV, + min_depth=MIN_DEPTH, caller=CALLER)) - final_outputs.append(expand("results/04_Variants/{reference}/{sample}_{mapper}_{min_cov}X_{caller}_variant-filt.vcf", + final_outputs.append(expand("results/04_Variants/{reference}/{sample}_{mapper}_{min_depth}X_{caller}_variant-filt.vcf", reference = REFERENCE, sample = SAMPLE, mapper = MAPPER, - min_cov = MIN_COV, + min_depth = MIN_DEPTH, caller = CALLER)) # lineages_calling if MODULES["lineages"]: - final_outputs.append(expand("results/06_Lineages/{reference}/{sample}_{mapper}_{min_cov}X_{caller}_{assigner}-report.tsv", + final_outputs.append(expand("results/06_Lineages/{reference}/{sample}_{mapper}_{min_depth}X_{caller}_{assigner}-report.tsv", reference = REFERENCE, sample = SAMPLE, mapper = MAPPER, - min_cov = MIN_COV, + min_depth = MIN_DEPTH, caller = CALLER, assigner = ASSIGNER)) # results_merging - final_outputs.append(expand("results/All_{reference}_{mapper}_{min_cov}X_{caller}_consensus_sequences.fasta", + final_outputs.append(expand("results/All_{reference}_{mapper}_{min_depth}X_{caller}_consensus_sequences.fasta", reference = REFERENCE, mapper = MAPPER, - min_cov = MIN_COV, + min_depth = MIN_DEPTH, caller = CALLER)) - final_outputs.append(expand("results/All_{reference}_{mapper}_{min_cov}X_genome_coverages.tsv", + final_outputs.append(expand("results/All_{reference}_{mapper}_{min_depth}X_genome_coverages.tsv", reference = REFERENCE, mapper = MAPPER, - min_cov = MIN_COV)) - final_outputs.append(expand("results/All_{reference}_{mapper}_{min_cov}X_{caller}_{assigner}-lineages.tsv", + min_depth = MIN_DEPTH)) + final_outputs.append(expand("results/All_{reference}_{mapper}_{min_depth}X_{caller}_{assigner}-lineages.tsv", reference = REFERENCE, mapper = MAPPER, - min_cov = MIN_COV, + min_depth = MIN_DEPTH, caller = CALLER, assigner = ASSIGNER)) - # logs - #final_outputs.append("results/10_Reports/setup.log") - final_outputs.append("results/10_Reports/settings.log") - final_outputs.append("results/10_Reports/config.log") - final_outputs.append("results/10_Reports/envs/") # return final_outpus return final_outputs ############################################################################### +# GET_SETTINGS +def get_settings(config, start_time): + # Get working directory + workdir = os.getcwd() + + # Get GeVarLi version + version_file = os.path.join(workdir, "VERSION.txt") + try: + with open(version_file, "r") as vf: + version = vf.read().strip() + except Exception: + version = "N/A" + + # Get + shell = os.environ.get("SHELL", "N/A") + + # Get system information + system_platform = platform.system().lower() + if "darwin" in system_platform: + os_type = "osx" + elif "linux" in system_platform: + os_type = "linux" + elif "bsd" in system_platform: + os_type = "bsd" + elif "sunos" in system_platform: + os_type = "solaris" + elif "windows" in system_platform: + os_type = "windows" + else: + os_type = "unknown (" + system_platform + ")" + + # Get hardware information + if os_type == "osx": + try: + model_name = subprocess.check_output(["sysctl", "-n", "machdep.cpu.brand_string"]).decode().strip() + physical_cpu = subprocess.check_output(["sysctl", "-n", "hw.physicalcpu"]).decode().strip() + logical_cpu = subprocess.check_output(["sysctl", "-n", "hw.logicalcpu"]).decode().strip() + mem_size = subprocess.check_output(["sysctl", "-n", "hw.memsize"]).decode().strip() # en octets + ram_gb = int(mem_size) // (1024 ** 3) + except Exception: + model_name = physical_cpu = logical_cpu = ram_gb = "N/A" + elif os_type in ["linux", "bsd", "solaris"]: + try: + lscpu_out = subprocess.check_output(["lscpu"]).decode() + model_name = "" + physical_cpu = "" + threads_cpu = "" + for line in lscpu_out.splitlines(): + if "Model name:" in line: + model_name = line.split(":", 1)[1].strip() + if line.startswith("CPU(s):"): + physical_cpu = line.split(":", 1)[1].strip() + if "Thread(s) per core:" in line: + threads_cpu = line.split(":", 1)[1].strip() + if physical_cpu and threads_cpu: + logical_cpu = int(physical_cpu) * int(threads_cpu) + else: + logical_cpu = "N/A" + except Exception: + model_name = physical_cpu = logical_cpu = "N/A" + try: + with open("/proc/meminfo", "r") as meminfo: + for line in meminfo: + if line.startswith("MemTotal:"): + mem_kb = int(re.findall(r'\d+', line)[0]) + ram_gb = mem_kb // (1024 ** 2) + break + except Exception: + ram_gb = "N/A" + else: + print(f"\nPlease, use a UNIX-like operating system (linux, osx, WSL).") + sys.exit(0) + + # Get network status + def is_online(): + for host in ["google.com", "cloudflare.com"]: + try: + subprocess.check_call( + ["ping", "-c", "1", "-W", "5", host], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + return True + except subprocess.CalledProcessError: + continue + return False + + network = "Online" if is_online() else "Offline" + + # Get Conda / Snakemake version + def get_version(cmd, fallback="N/A"): + try: + return subprocess.check_output(cmd).decode().strip() + except Exception: + return fallback + + conda_version = get_version(["conda", "--version"]) + mamba_version = get_version(["mamba", "--version"]).splitlines()[0] + snakemake_version = get_version(["snakemake", "--version"]) + + # Get resources + resources = config.get("resources", {}) + max_threads = resources.get("cpus", "N/A") + max_memory = resources.get("ram", "N/A") + tmp_dir = resources.get("tmp_dir", "N/A") + + # Get modules + modules = config.get("modules", {}) + qualities = modules.get("qualities", "N/A") + keeptrim = modules.get("keeptrim", "N/A") + clipping = modules.get("clipping", "N/A") + covstats = modules.get("covstats", "N/A") + consensus = modules.get("consensus", "N/A") + lineages = modules.get("lineages", "N/A") + gisaid = modules.get("gisaid", "N/A") + + # Get tools + + tools = config.get("tools", {}) + mapper = tools.get("mapper", "N/A") + caller = tools.get("caller", "N/A") + assigner = tools.get("assigner", "N/A") + + # Get consensus parameters + reference = config.get("consensus", {}).get("reference", "N/A") + + ivar_consensus = config.get("ivar", {}).get("consensus", {}) + min_depth = ivar_consensus.get("min_depth", "N/A") + max_depth = ivar_consensus.get("max_depth", "N/A") + min_freq = ivar_consensus.get("min_freq", "N/A") + min_insert = ivar_consensus.get("min_insert", "N/A") + + # Get other parameters + nextclade_dataset = config.get("nextclade", {}).get("dataset", "N/A") + fastqscreen_subset = config.get("fastq_screen", {}).get("subset", "N/A") + cutadapt_clipping = config.get("cutadapt", {}).get("clipping", "N/A") + + # Get time stamp + time_stamp_start = time.strftime("%Y-%m-%d %H:%M", time.localtime(start_time)) + + # Définir les listes de samples et warnings formatées + samples_list = "\n".join(SAMPLE) if SAMPLE else "No samples" + warnings_list = "\n".join(SAMPLE_WARNINGS) if SAMPLE_WARNINGS else "No warnings" + + # Create message + message_settings = f""" + {blue}------------------------------------------------------------------------{nc} + {blue}#####{nc} {red}About{nc} {blue}#####{nc} + {blue}-----------------{nc} + + {green}Name{nc} _________________________ GeVarLi + {green}Version{nc} ______________________ {ylo}{version}{nc} + {green}Author{nc} _______________________ Nicolas Fernandez + {green}Affiliation{nc} __________________ IRD_U233_TransVIHMI + {green}Aim{nc} __________________________ {red}Ge{nc}nome assembling, {red}Var{nc}iant calling and {red}Li{nc}neage assignation + {green}Date{nc} _________________________ 2021.10.12 + {green}Latest modifications{nc} _________ 2025.03.26 + {green}Use{nc} __________________________ '{ylo}snakemake --use-conda{nc}' + + + {blue}------------------------------------------------------------------------{nc} + {blue}#####{nc} {red}Operating System{nc} {blue}#####{nc} + {blue}----------------------------{nc} + + {green}Operating system{nc} _____________ {red}{os_type}{nc} + {green}Shell{nc} ________________________ '{ylo}{shell}{nc}' + + + {blue}------------------------------------------------------------------------{nc} + {blue}#####{nc} {red}Hardware{nc} {blue}#####{nc} + {blue}--------------------{nc} + + {ylo}Brand(R){nc} | {ylo}Type(R){nc} | {ylo}Model{nc} | {ylo}@ Speed GHz{nc} + {green}Chip Model Name{nc} ______________ {model_name} + {green}Physical CPUs{nc} ________________ {red}{physical_cpu}{nc} + {green}Logical CPUs{nc} _________________ {red}{logical_cpu}{nc} threads + {green}System Memory{nc} ________________ {red}{ram_gb}{nc} Gb of RAM + + + {blue}------------------------------------------------------------------------{nc} + {blue}#####{nc} {red}Configuration{nc} {blue}#####{nc} + {blue}-------------------------{nc} + + {green}Starting time{nc} ________________ {time_stamp_start} + + {green}Conda version{nc} ________________ {ylo}{conda_version}{nc} + {green}Mamba version{nc} ________________ {ylo}{mamba_version}{nc} + {green}Snakemake version{nc} ____________ {ylo}{snakemake_version}{nc} + + {green}Max threads{nc} __________________ {red}{max_threads}{nc} of {ylo}{logical_cpu}{nc} threads available + {green}Max memory{nc} ___________________ {red}{max_memory}{nc} Gb of {ylo}{ram_gb}{nc} Gb available + {green}Temp directory{nc} _______________ '{ylo}{tmp_dir}{nc}' + + {green}Network{nc} ______________________ {red}{network}{nc} + + {green}Working directory{nc} ____________ '{ylo}{workdir}{nc}' + {green}Fastq directory{nc} ______________ '{ylo}{FASTQ_DIR}{nc}' + + {green} > Warnings:{nc} + +{warnings_list} + + {green} > Samples list:{nc} + +{samples_list} + + {blue}Modules:{nc} + {green} > Quality Control{nc} ___________ {ylo}{qualities}{nc} + {green} > Keep Trim{nc} _________________ {ylo}{keeptrim}{nc} + {green} > Soft Clipping{nc} _____________ {ylo}{clipping}{nc} + {green} > Cov Stats{nc} _________________ {ylo}{covstats}{nc} + {green} > Consensus{nc} _________________ {ylo}{consensus}{nc} + {green} > Lineages{nc} __________________ {ylo}{lineages}{nc} + {green} > Gisaid{nc} ____________________ {ylo}{gisaid}{nc} + + {blue}Tools:{nc} + {green} > Mapper{nc} ____________________ {ylo}{mapper}{nc} + {green} > Caller{nc} ____________________ {ylo}{caller}{nc} + {green} > Assigner{nc} __________________ {ylo}{assigner}{nc} + + {blue}Params:{nc} + {green} > Reference genome{nc} __________ {ylo}{reference}{nc} + {green} > Min depth{nc} _________________ {red}{min_depth}{nc}x + {green} > Max depth{nc} _________________ {red}{max_depth}{nc}x + {green} > Min allele frequency{nc} ______ {red}{min_freq}{nc} + {green} > Min insertion frequency{nc} ___ {red}{min_insert}{nc} + + {green} > Nextclade dataset{nc} _________ {ylo}{nextclade_dataset}{nc} + {green} > Fastq-Screen subset{nc} _______ {red}{fastqscreen_subset}{nc} reads/sample + {green} > Hard clipping{nc} _____________ {red}{cutadapt_clipping}{nc}nt (with cutadapt) + """ + + # Clean message + ansi_escape = re.compile(r'\x1B\[[0-9;]*[mK]') + message_clean = ansi_escape.sub('', message_settings) + + # Create log file + results_dir = os.path.join(workdir, "results", "10_Reports") + os.makedirs(results_dir, exist_ok=True) + + # Write log file + log_file = os.path.join(results_dir, "settings.log") + with open(log_file, "w") as logf: + logf.write(message_clean) + + # Print message + print(message_settings) + +############################################################################### +# GET_TIME +def get_time(start_time): + time_stamp_start = time.strftime("%Y-%m-%d %H:%M", time.localtime(start_time)) + time_stamp_end = time.strftime("%Y-%m-%d %H:%M", time.localtime()) + elapsed_time = int(time.time() - start_time) + hours = elapsed_time // 3600 + minutes = (elapsed_time % 3600) // 60 + seconds = elapsed_time % 60 + formatted_time = f"{hours:02d}:{minutes:02d}:{seconds:02d}" + green = "\033[32m" + ylo = "\033[33m" + nc = "\033[0m" + message_time = f""" +{green}Start time{nc} _____________ {time_stamp_start} +{green}End time{nc} _______________ {time_stamp_end} + {green}Processing time{nc} ________ {ylo}{formatted_time}{nc} + {green} > Hard clipping{nc} _____________ {red}{cutadapt_clipping} nt{nc} (with cutadapt) +""" + print(message_time) + ansi_escape = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]') + message_clean = ansi_escape.sub('', message_time) + with open("results/10_Reports/time.log", "w") as f: + f.write(message_clean) + +############################################################################### +############################################################################### \ No newline at end of file diff --git a/workflow/scripts/settings.py b/workflow/scripts/settings.py deleted file mode 100644 index 5d9a94bcc4abe4e005c30c391f601710c1d9377e..0000000000000000000000000000000000000000 --- a/workflow/scripts/settings.py +++ /dev/null @@ -1,214 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys -import subprocess -import platform -import re -import glob -import time -import yaml - -# Get working directory -workdir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../")) - -# Get version -version_file = os.path.join(workdir, "VERSION.txt") -try: - with open(version_file, "r") as vf: - version = vf.read().strip() -except Exception: - version = "N/A" - -# Define colors -blue = "\033[1;34m" -green = "\033[1;32m" -red = "\033[1;31m" -ylo = "\033[1;33m" -nc = "\033[0m" - -# Get system information -system_platform = platform.system().lower() -if "darwin" in system_platform: - os_type = "osx" -elif "linux" in system_platform: - os_type = "linux" -elif "bsd" in system_platform: - os_type = "bsd" -elif "sunos" in system_platform: - os_type = "solaris" -elif "windows" in system_platform: - os_type = "windows" -else: - os_type = "unknown (" + system_platform + ")" - -# Get hardware information -if os_type == "osx": - try: - model_name = subprocess.check_output(["sysctl", "-n", "machdep.cpu.brand_string"]).decode().strip() - physical_cpu = subprocess.check_output(["sysctl", "-n", "hw.physicalcpu"]).decode().strip() - logical_cpu = subprocess.check_output(["sysctl", "-n", "hw.logicalcpu"]).decode().strip() - mem_size = subprocess.check_output(["sysctl", "-n", "hw.memsize"]).decode().strip() # en octets - ram_gb = int(mem_size) // (1024 ** 3) - except Exception: - model_name = physical_cpu = logical_cpu = ram_gb = "N/A" -elif os_type in ["linux", "bsd", "solaris"]: - try: - lscpu_out = subprocess.check_output(["lscpu"]).decode() - model_name = "" - physical_cpu = "" - threads_cpu = "" - for line in lscpu_out.splitlines(): - if "Model name:" in line: - model_name = line.split(":", 1)[1].strip() - if line.startswith("CPU(s):"): - physical_cpu = line.split(":", 1)[1].strip() - if "Thread(s) per core:" in line: - threads_cpu = line.split(":", 1)[1].strip() - if physical_cpu and threads_cpu: - logical_cpu = int(physical_cpu) * int(threads_cpu) - else: - logical_cpu = "N/A" - except Exception: - model_name = physical_cpu = logical_cpu = "N/A" - try: - with open("/proc/meminfo", "r") as meminfo: - for line in meminfo: - if line.startswith("MemTotal:"): - mem_kb = int(re.findall(r'\d+', line)[0]) - ram_gb = mem_kb // (1024 ** 2) - break - except Exception: - ram_gb = "N/A" -else: - print(f"\nPlease, use a UNIX-like operating system (linux, osx, WSL).") - sys.exit(0) - -# Get network status -def is_online(): - for host in ["google.com", "cloudflare.com"]: - try: - subprocess.check_call( - ["ping", "-c", "1", "-W", "5", host], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL, - ) - return True - except subprocess.CalledProcessError: - continue - return False - -network = "Online" if is_online() else "Offline" - -# Get version -def get_version(cmd, fallback="N/A"): - try: - return subprocess.check_output(cmd).decode().strip() - except Exception: - return fallback - -conda_version = get_version(["conda", "--version"]) -mamba_version = get_version(["mamba", "--version"]).splitlines()[0] -snakemake_version = get_version(["snakemake", "--version"]) - -# Get configuration -config_file = os.path.join(workdir, "config", "config.yaml") -with open(config_file, "r") as cf: - config_data = yaml.safe_load(cf) - -# Get fastq directory -fastq_dir = config_data.get("fastq_dir", "") -fastq_files = len(glob.glob(os.path.join(fastq_dir, "*.fastq.gz"))) -fastq_R1 = len(glob.glob(os.path.join(fastq_dir, "*R1*.fastq.gz"))) -fastq_R2 = len(glob.glob(os.path.join(fastq_dir, "*R2*.fastq.gz"))) - -# Get resources -resources = config_data.get("resources", {}) -max_threads = resources.get("cpus", "N/A") -max_memory = resources.get("ram", "N/A") - -# Get modules -modules = config_data.get("modules", {}) -qualities = modules.get("qualities", "N/A") -keeptrim = modules.get("keeptrim", "N/A") -cleapping = modules.get("cleapping", "N/A") -covstats = modules.get("covstats", "N/A") -consensus = modules.get("consensus", "N/A") -lineages = modules.get("lineages", "N/A") -gisaid = modules.get("gisaid", "N/A") - -# Get consensus parameters -consensus_params = config_data.get("consensus", {}) -reference_conf = consensus_params.get("reference", "N/A") -mapper = consensus_params.get("mapper", "N/A") -min_cov = consensus_params.get("min_cov", "N/A") -min_freq = consensus_params.get("min_freq", "N/A") -assigner = consensus_params.get("assigner", "N/A") - -# Get other parameters -nextclade_dataset = config_data.get("nextclade", {}).get("dataset", "N/A") -fastqscreen_subset = config_data.get("fastq_screen", {}).get("subset", "N/A") -cutadapt_clipping = config_data.get("cutadapt", {}).get("clipping", "N/A") - -# Get time stamp -time_stamp_start = time.strftime("%Y-%m-%d %H:%M", time.localtime()) - -# Create message -message_settings = f"""{blue}------------------------------------------------------------------------{nc} -{blue}#####{nc} {red}Configuration{nc} {blue}#####{nc} -{blue}-------------------------{nc} - -{green}Starting time{nc} ______________ {time_stamp_start} - -{green}Conda version{nc} ______________ {ylo}{conda_version}{nc} -{green}Mamba version{nc} ______________ {ylo}{mamba_version}{nc} -{green}Snakemake version{nc} __________ {ylo}{snakemake_version}{nc} - -{green}Max threads{nc} ________________ {red}{max_threads}{nc} of {ylo}{logical_cpu}{nc} threads available -{green}Max memory{nc} _________________ {red}{max_memory}{nc} of {ylo}{ram_gb}{nc} Gb available -{green}Jobs memory{nc} ________________ {red}N/A{nc} Gb per job - -{green}Network{nc} ____________________ {red}{network}{nc} - -{green}Working directory{nc} _________ '{ylo}{workdir}{nc}' - -{green}Fastq directory{nc} ___________ '{ylo}{fastq_dir}{nc}' -{green} > Fastq processed{nc} ________ {red}{fastq_files}{nc} fastq files -{green} > Forward reads{nc} __________ {red}{fastq_R1}{nc} R1 -{green} > Reverse reads{nc} __________ {red}{fastq_R2}{nc} R2 - -{blue}Modules:{nc} -{green} > Quality Control{nc} ________ {red}{qualities}{nc} -{green} > Keep Trim{nc} ______________ {red}{keeptrim}{nc} -{green} > Soft Clipping{nc} __________ {red}{cleapping}{nc} -{green} > Cov Stats{nc} ______________ {red}{covstats}{nc} -{green} > Consensus{nc} ______________ {red}{consensus}{nc} -{green} > Lineages{nc} _______________ {red}{lineages}{nc} -{green} > Gisaid{nc} _________________ {red}{gisaid}{nc} - -{blue}Params:{nc} -{green} > Reference genome{nc} _______ {ylo}{reference_conf}{nc} -{green} > Mapper{nc} ________________ {ylo}{mapper}{nc} -{green} > Min coverage{nc} ___________ {red}{min_cov}{nc} X -{green} > Min allele frequency{nc} ___ {red}{min_freq}{nc} -{green} > Assigner{nc} ______________ {red}{assigner}{nc} -{green} - Nextclade dataset{nc} _____ {red}{nextclade_dataset}{nc} -{green} > Fastq-Screen subset{nc} ____ {red}{fastqscreen_subset}{nc} -{green} > Cutadapt clipping{nc} ______ {red}{cutadapt_clipping} nt{nc} -""" - -# Print message -print(message_settings) - -# Clean message -ansi_escape = re.compile(r'\x1B\[[0-9;]*[mK]') -message_clean = ansi_escape.sub('', message_settings) - -# Create log file -results_dir = os.path.join(workdir, "results", "10_Reports") -os.makedirs(results_dir, exist_ok=True) - -# Write log file -log_file = os.path.join(results_dir, "settings.log") -with open(log_file, "w") as logf: - logf.write(message_clean) \ No newline at end of file diff --git a/workflow/scripts/settings.sh b/workflow/scripts/settings.sh deleted file mode 100644 index 55863c84b7bf589e289d471466b5ff0c489b98a9..0000000000000000000000000000000000000000 --- a/workflow/scripts/settings.sh +++ /dev/null @@ -1,196 +0,0 @@ -#!/bin/bash - -###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### -### ### -### /\ ______ ___ ____ _ _ __ ____ __ ____ ______ /\ ### -### || \ \ \ \ / __( ___( \/ )__\ ( _ ( ) (_ _) / / / / || ### -### || > > > > ( (_-.)__) \ /(__)\ ) /)(__ _)(_ < < < < || ### -### || /_/_/_/ \___(____) \(__)(__(_)\_(____(____) \_\_\_\ || ### -### \/ \/ ### -### ### -###I###R###D######U###2###3###3#######T###R###A###N###S###V###I###H###M###I#### -# Name ___________________ Run_GeVarLi.sh -# Version ________________ v.2025.03 -# Author _________________ Nicolas Fernandez -# Affiliation ____________ IRD_U233_TransVIHMI -# Aim ____________________ Bash script running GeVarLi snakefile -# Date ___________________ 2021.10.12 -# Latest modifications ___ 2025.03.12 -# Use ____________________ '. Run_GeVarLi.sh' -############################################################################### - -############################################################################### -### ABOUT ### -############# - -workdir=$(cd "$(dirname "${BASH_SOURCE[0]}" )"/../../ && pwd) # Get working directory -version=$(<${workdir}/VERSION.txt) # Get version - -blue="\033[1;34m" # blue -green="\033[1;32m" # green -red="\033[1;31m" # red -ylo="\033[1;33m" # yellow -nc="\033[0m" # no color - -############################################################################### -### OPERATING SYSTEM ### -######################## - -shell=$SHELL # Get shell - -# Get operating system -case "$OSTYPE" in - darwin*) os="osx" ;; - linux*) os="linux" ;; - bsd*) os="bsd" ;; - solaris*) os="solaris" ;; - msys*) os="windows" ;; - cygwin*) os="windows" ;; - *) os="unknown (${OSTYPE})" ;; -esac - -############################################################################### -### HARDWARE ### -################ - -if [[ ${os} == "osx" ]] -then - model_name=$(sysctl -n machdep.cpu.brand_string) # Get chip model name - physical_cpu=$(sysctl -n hw.physicalcpu) # Get physical cpu - logical_cpu=$(sysctl -n hw.logicalcpu) # Get logical cpu - mem_size=$(sysctl -n hw.memsize) # Get memory size (bit) - ram_gb=$(expr ${mem_size} \/ $((1024**3))) # mem_size / 1024**3 = Gb -elif [[ ${os} == "linux" || ${os} == "bsd" || ${os} == "solaris" ]] -then - model_name=$(lscpu | grep -o -E "Model name: +.+" | sed -E "s/Model name: +//") # Get chip model name - physical_cpu=$(lscpu | grep -o -E "^CPU\(s\): +[0-9]+" | sed -E "s/CPU\(s\): +//") # Get physical cpu - threads_cpu=$(lscpu | grep -o -E "^Thread\(s\) per core: +[0-9]+" | sed -E "s/Thread\(s\) per core: +//") # Get thread(s) per core - logical_cpu=$(expr ${physical_cpu} \* ${threads_cpu}) # Calcul logical cpu - mem_size=$(grep -o -E "MemTotal: +[0-9]+" /proc/meminfo | sed -E "s/MemTotal: +//") # Get memory size (Kb) - ram_gb=$(expr ${mem_size} \/ $((1024**2))) # mem_size / 1024**2 = Gb -else - echo -e "\n Please, use an '${ylo}UNIX${nc}' operating system, like: - > '${green}linux${nc}' - > '${green}osx${nc}' - > '${green}WSL${nc}' \n" - return 0 -fi - -############################################################################### -### NETWORK ### -############### - -if ping -c 1 -W 5 google.com > /dev/null 2>&1 || \ - ping -c 1 -W 5 cloudflare.com > /dev/null 2>&1 -then - network="Online" -else - network="Offline" -fi - -############################################################################### -### CONDA ### -############# - -message_conda=" -$(conda --version) -Path: $(which conda) -$(conda config --show channels) -" - -############################################################################### -### CONFIGURATION ### -##################### - -conda_version=$(conda --version | sed 's/conda //') # Conda version -mamba_version=$(mamba --version | head -n 1 | sed 's/mamba //') # Mamba version -snakemake_version=$(snakemake --version) # Snakemake version - -fastq_dir=$(yq -Mr '.fastq_dir' ${config_file}) # Get path to fastq files directory -fastq_files=$(/bin/ls -l ${fastq_dir}/*.fastq.gz 2> /dev/null | wc -l | sed 's/ //') # Get fastq.gz files count -fastq_R1=$(/bin/ls -l ${fastq_dir}/*R1*.fastq.gz 2> /dev/null | wc -l | sed 's/ //') # Get R1 fastq files count -fastq_R2=$(/bin/ls -l ${fastq_dir}/*R2*.fastq.gz 2> /dev/null | wc -l | sed 's/ //') # Get R2 fastq files count - -max_threads=$(yq -Mr '.resources.cpus' ${config_file}) # Get user config: max threads -max_memory=$(yq -Mr '.resources.ram' ${config_file}) # Get user config: max memory (Gb) - -qualities=$(yq -Mr '.modules.qualities' ${config_file}) # Reads QC -keeptrim=$(yq -Mr '.modules.keeptrim' ${config_file}) # Keep trimmed reads -cleapping=$(yq -Mr '.modules.cleapping' ${config_file}) # Reads cleapping -covstats=$(yq -Mr '.modules.covstats' ${config_file}) # Mapping coverage stats -consensus=$(yq -Mr '.modules.consensus' ${config_file}) # Consensus -lineages=$(yq -Mr '.modules.lineages' ${config_file}) # Lineages assignation -gisaid=$(yq -Mr '.modules.gisaid' ${config_file}) # Gisaid submission file - -# Get user config: genome reference -reference=$(yq -Mc '.consensus.reference' ${config_file} | sed 's/\[\"//' | sed 's/\"\]//' | sed 's/\"\,\"/ ; /g') -# Get user config: mapper -mapper=$(yq -Mc '.consensus.mapper' ${config_file} | sed 's/\[\"//' | sed 's/\"\]//' | sed 's/\"\,\"/ ; /g') -# Get user config: minimum coverage -min_cov=$(yq -Mc '.consensus.min_cov' ${config_file} | sed 's/\[\"//' | sed 's/\"\]//' | sed 's/\"\,\"/ ; /g') -# Get user config: minimum allele frequency -min_freq=$(yq -Mr '.consensus.min_freq' ${config_file}) -# Get user config: assigner tool -assigner=$(yq -Mc '.consensus.assigner' ${config_file} | sed 's/\[\"//' | sed 's/\"\]//' | sed 's/\"\,\"/ ; /g') -# Get user config: hard clipping option -hard_clipping=$(yq -Mr '.cutadapt.clipping' ${config_file}) -# Get user config: dataset for nextclade -nextclade_dataset=$(yq -Mc '.nextclade.dataset' ${config_file} | sed 's/\[\"//' | sed 's/\"\]//') -# Get user config: fastq_screen subsetption -fastqscreen_subset=$(yq -Mr '.fastq_screen.subset' ${config_file}) -# Get user config: cutadapt clipping -cutadapt_clipping=$(yq -Mr '.cutadapt.clipping' ${config_file}) - - -message_settings=""" -${blue}------------------------------------------------------------------------${nc} -${blue}#####${nc} ${red}Configuration${nc} ${blue}#####${nc} -${blue}-------------------------${nc} - -${green}Starting time${nc} ______________ ${time_stamp_start} - -${green}Conda version${nc} ______________ ${ylo}${conda_version}${nc} -${green}Mamba version${nc} ______________ ${ylo}${mamba_version}${nc} -${green}Snakemake version${nc} __________ ${ylo}${snakemake_version}${nc} - -${green}Max threads${nc} ________________ ${red}${max_threads}${nc} of ${ylo}${logical_cpu}${nc} threads available -${green}Max memory${nc} _________________ ${red}${max_memory}${nc} of ${ylo}${ram_gb}${nc} Gb available -${green}Jobs memory${nc} ________________ ${red}${memory_per_job}${nc} Gb per job - -${green}Network${nc} ____________________ ${red}${network}${nc} - -${green}Working directory${nc} _________ '${ylo}${workdir}/${nc}' - -${green}Fastq directory${nc} ___________ '${ylo}${fastq_dir}${nc}' -${green} > Fastq processed${nc} ________ ${red}${fastq_files}${nc} fastq files -${green} > Forward reads${nc} __________ ${red}${fastq_R1}${nc} R1 -${green} > Reverse reads${nc} __________ ${red}${fastq_R2}${nc} R2 - -${blue}Modules:${nc} -${green} > Quality Control${nc} ________ ${red}${qualities}${nc} -${green} > Keep Trim${nc} ______________ ${red}${keeptrim}${nc} -${green} > Soft Clipping${nc} __________ ${red}${cleapping}${nc} -${green} > Cov Stats${nc} ______________ ${red}${covstats}${nc} -${green} > Consensus${nc} ______________ ${red}${consensus}${nc} -${green} > Lineages${nc} _______________ ${red}${lineages}${nc} -${green} > Gisaid${nc} _________________ ${red}${gisaid}${nc} - -${blue}Params:${nc} -${green} > Reference genome${nc} _______ ${ylo}${reference}${nc} -${green} > Mapper${nc} ________________ ${ylo}${mapper}${nc} -${green} > Min coverage${nc} ___________ ${red}${min_cov}${nc} X -${green} > Min allele frequency${nc} ___ ${red}${min_freq}${nc} -${green} > Assigner${nc} _ ${red}${assigner}${nc} -${green} - Nextclade dataset${nc} _____ ${red}${nextclade_dataset}${nc} -${green} > Fastq-Screen subset${nc} ____ ${red}${fastqscreen_subset}${nc} -${green} > Cutadapt clipping${nc} ______ ${red}${cutadapt_clipping} nt${nc} -""" - -# Print settings message -echo -e "${message}" - -# Log settings message -mkdir -p ${workdir}/results/10_Reports/ 2> /dev/null -echo -e "${message}" \ - | sed "s/\x1B\[[0-9;]*[mK]//g" \ - > ${workdir}/results/10_Reports/settings.log \ No newline at end of file