comparison pima_report.py @ 12:99613333fd1f draft

Uploaded
author greg
date Fri, 10 Mar 2023 16:35:16 +0000
parents 4a7c31f28197
children f03c80bb22e9
comparison
equal deleted inserted replaced
11:4a7c31f28197 12:99613333fd1f
14 14
15 15
16 class PimaReport: 16 class PimaReport:
17 17
18 def __init__(self, analysis_name=None, amr_deletions_file=None, amr_matrix_files=None, assembly_fasta_file=None, 18 def __init__(self, analysis_name=None, amr_deletions_file=None, amr_matrix_files=None, assembly_fasta_file=None,
19 assembly_name=None, blastn_version=None, compute_sequence_length_file=None, contig_coverage_file=None, 19 assembly_name=None, bedtools_version=None, blastn_version=None, compute_sequence_length_file=None,
20 dbkey=None, dnadiff_snps_file=None, dnadiff_version=None, feature_bed_files=None, feature_png_files=None, 20 contig_coverage_file=None, dbkey=None, dnadiff_snps_file=None, dnadiff_version=None,
21 flye_assembly_info_file=None, flye_version=None, genome_insertions_file=None, gzipped=None, 21 feature_bed_files=None, feature_png_files=None, flye_assembly_info_file=None, flye_version=None,
22 illumina_fastq_file=None, kraken2_report_file=None, kraken2_version=None, mutation_regions_bed_file=None, 22 genome_insertions_file=None, gzipped=None, illumina_fastq_file=None, kraken2_report_file=None,
23 mutation_regions_tsv_files=None, pima_css=None, plasmids_file=None, reference_insertions_file=None): 23 kraken2_version=None, minimap2_version=None, mutation_regions_bed_file=None,
24 mutation_regions_tsv_files=None, pima_css=None, plasmids_file=None, reference_insertions_file=None,
25 samtools_version=None, varscan_version=None):
24 self.ofh = open("process_log.txt", "w") 26 self.ofh = open("process_log.txt", "w")
25 27
26 self.ofh.write("amr_deletions_file: %s\n" % str(amr_deletions_file)) 28 self.ofh.write("amr_deletions_file: %s\n" % str(amr_deletions_file))
27 self.ofh.write("amr_matrix_files: %s\n" % str(amr_matrix_files)) 29 self.ofh.write("amr_matrix_files: %s\n" % str(amr_matrix_files))
28 self.ofh.write("analysis_name: %s\n" % str(analysis_name)) 30 self.ofh.write("analysis_name: %s\n" % str(analysis_name))
29 self.ofh.write("assembly_fasta_file: %s\n" % str(assembly_fasta_file)) 31 self.ofh.write("assembly_fasta_file: %s\n" % str(assembly_fasta_file))
30 self.ofh.write("assembly_name: %s\n" % str(assembly_name)) 32 self.ofh.write("assembly_name: %s\n" % str(assembly_name))
33 self.ofh.write("bedtools_version: %s\n" % str(bedtools_version))
31 self.ofh.write("blastn_version: %s\n" % str(blastn_version)) 34 self.ofh.write("blastn_version: %s\n" % str(blastn_version))
32 self.ofh.write("compute_sequence_length_file: %s\n" % str(compute_sequence_length_file)) 35 self.ofh.write("compute_sequence_length_file: %s\n" % str(compute_sequence_length_file))
33 self.ofh.write("contig_coverage_file: %s\n" % str(contig_coverage_file)) 36 self.ofh.write("contig_coverage_file: %s\n" % str(contig_coverage_file))
34 self.ofh.write("dbkey: %s\n" % str(dbkey)) 37 self.ofh.write("dbkey: %s\n" % str(dbkey))
35 self.ofh.write("dnadiff_snps_file: %s\n" % str(dnadiff_snps_file)) 38 self.ofh.write("dnadiff_snps_file: %s\n" % str(dnadiff_snps_file))
41 self.ofh.write("gzipped: %s\n" % str(gzipped)) 44 self.ofh.write("gzipped: %s\n" % str(gzipped))
42 self.ofh.write("genome_insertions_file: %s\n" % str(genome_insertions_file)) 45 self.ofh.write("genome_insertions_file: %s\n" % str(genome_insertions_file))
43 self.ofh.write("illumina_fastq_file: %s\n" % str(illumina_fastq_file)) 46 self.ofh.write("illumina_fastq_file: %s\n" % str(illumina_fastq_file))
44 self.ofh.write("kraken2_report_file: %s\n" % str(kraken2_report_file)) 47 self.ofh.write("kraken2_report_file: %s\n" % str(kraken2_report_file))
45 self.ofh.write("kraken2_version: %s\n" % str(kraken2_version)) 48 self.ofh.write("kraken2_version: %s\n" % str(kraken2_version))
49 self.ofh.write("minimap2_version: %s\n" % str(minimap2_version))
46 self.ofh.write("mutation_regions_bed_file: %s\n" % str(mutation_regions_bed_file)) 50 self.ofh.write("mutation_regions_bed_file: %s\n" % str(mutation_regions_bed_file))
47 self.ofh.write("mutation_regions_tsv_files: %s\n" % str(mutation_regions_tsv_files)) 51 self.ofh.write("mutation_regions_tsv_files: %s\n" % str(mutation_regions_tsv_files))
48 self.ofh.write("pima_css: %s\n" % str(pima_css)) 52 self.ofh.write("pima_css: %s\n" % str(pima_css))
49 self.ofh.write("plasmids_file: %s\n" % str(plasmids_file)) 53 self.ofh.write("plasmids_file: %s\n" % str(plasmids_file))
50 # self.ofh.write("reference_genome: %s\n" % str(reference_genome))
51 self.ofh.write("reference_insertions_file: %s\n" % str(reference_insertions_file)) 54 self.ofh.write("reference_insertions_file: %s\n" % str(reference_insertions_file))
55 self.ofh.write("samtools_version: %s\n" % str(samtools_version))
56 self.ofh.write("varscan_version: %s\n" % str(varscan_version))
52 57
53 # General 58 # General
54 self.doc = None 59 self.doc = None
55 self.report_md = 'pima_report.md' 60 self.report_md = 'pima_report.md'
56 61
57 # Inputs 62 # Inputs
58 self.amr_deletions_file = amr_deletions_file 63 self.amr_deletions_file = amr_deletions_file
59 self.amr_matrix_files = amr_matrix_files 64 self.amr_matrix_files = amr_matrix_files
60 self.analysis_name = analysis_name 65 self.analysis_name = re.sub('_', '.', analysis_name.rstrip(' _consensus_'))
61 self.assembly_fasta_file = assembly_fasta_file 66 self.assembly_fasta_file = assembly_fasta_file
62 self.assembly_name = assembly_name 67 self.assembly_name = re.sub('_', '.', assembly_name.rstrip(' _consensus_'))
63 self.blastn_version = blastn_version 68 if bedtools_version is None:
69 self.bedtools_version = 'bedtools (version unknown)'
70 else:
71 self.bedtools_version = re.sub('_', '.', bedtools_version.rstrip(' _genome insertions'))
72 if blastn_version is None:
73 self.blastn_version = 'blastn (version unknown)'
74 else:
75 self.blastn_version = re.sub('_', '.', blastn_version.rstrip(' _features_'))
64 self.compute_sequence_length_file = compute_sequence_length_file 76 self.compute_sequence_length_file = compute_sequence_length_file
65 self.contig_coverage_file = contig_coverage_file 77 self.contig_coverage_file = contig_coverage_file
66 self.dbkey = dbkey 78 self.dbkey = dbkey
67 self.dnadiff_snps_file = dnadiff_snps_file 79 self.dnadiff_snps_file = dnadiff_snps_file
68 self.dnadiff_version = dnadiff_version 80 if dnadiff_version is None:
81 self.dnadiff_version = 'dnadiff (version unknown)'
82 else:
83 self.dnadiff_version = re.sub('_', '.', dnadiff_version.rstrip(' _snps_'))
69 self.feature_bed_files = feature_bed_files 84 self.feature_bed_files = feature_bed_files
70 self.feature_png_files = feature_png_files 85 self.feature_png_files = feature_png_files
71 self.flye_assembly_info_file = flye_assembly_info_file 86 self.flye_assembly_info_file = flye_assembly_info_file
72 self.flye_version = flye_version 87 if flye_version is None:
88 self.flye_version = 'flye (version unknown)'
89 else:
90 self.flye_version = re.sub('_', '.', flye_version.rstrip(' _assembly info_'))
73 self.gzipped = gzipped 91 self.gzipped = gzipped
74 self.genome_insertions_file = genome_insertions_file 92 self.genome_insertions_file = genome_insertions_file
75 self.illumina_fastq_file = illumina_fastq_file 93 self.illumina_fastq_file = illumina_fastq_file
76 self.kraken2_report_file = kraken2_report_file 94 self.kraken2_report_file = kraken2_report_file
77 self.kraken2_version = kraken2_version 95 if kraken2_version is None:
96 self.kraken2_version = 'kraken2 (version unknown)'
97 else:
98 self.kraken2_version = re.sub('_', '.', kraken2_version.rstrip(' _report_'))
99 if minimap2_version is None:
100 self.minimap2_version = 'minimap2 (version unknown)'
101 else:
102 self.minimap2_version = re.sub('_', '.', minimap2_version)
78 self.mutation_regions_bed_file = mutation_regions_bed_file 103 self.mutation_regions_bed_file = mutation_regions_bed_file
79 self.mutation_regions_tsv_files = mutation_regions_tsv_files 104 self.mutation_regions_tsv_files = mutation_regions_tsv_files
80 self.read_type = 'Illumina' 105 self.read_type = 'Illumina'
81 self.ont_bases = None 106 self.ont_bases = None
82 self.ont_n50 = None 107 self.ont_n50 = None
83 self.ont_read_count = None 108 self.ont_read_count = None
84 self.pima_css = pima_css 109 self.pima_css = pima_css
85 self.plasmids_file = plasmids_file 110 self.plasmids_file = plasmids_file
86 # self.reference_genome = reference_genome
87 self.reference_insertions_file = reference_insertions_file 111 self.reference_insertions_file = reference_insertions_file
112 if samtools_version is None:
113 self.samtools_version = 'samtools (version unknown)'
114 else:
115 self.samtools_version = re.sub('_', '.', samtools_version)
116 if varscan_version is None:
117 self.varscan_version = 'varscan (version unknown)'
118 else:
119 self.varscan_version = re.sub('_', '.', varscan_version)
88 120
89 # Titles 121 # Titles
90 self.alignment_title = 'Comparison with reference' 122 self.alignment_title = 'Comparison with reference'
91 self.alignment_notes_title = 'Alignment notes' 123 self.alignment_notes_title = 'Alignment notes'
92 self.amr_matrix_title = 'AMR matrix' 124 self.amr_matrix_title = 'AMR matrix'
520 row_count = int(len(Table_List) / 5) 552 row_count = int(len(Table_List) / 5)
521 self.ofh.write("row_count: %s\n" % str(row_count)) 553 self.ofh.write("row_count: %s\n" % str(row_count))
522 self.doc.new_line() 554 self.doc.new_line()
523 self.ofh.write("Before new_table, len(Table_List):: %s\n" % str(len(Table_List))) 555 self.ofh.write("Before new_table, len(Table_List):: %s\n" % str(len(Table_List)))
524 self.doc.new_table(columns=5, rows=row_count, text=Table_List, text_align='left') 556 self.doc.new_table(columns=5, rows=row_count, text=Table_List, text_align='left')
525 if self.blastn_version is not None: 557 blastn_version = 'The genome assembly was queried for features using %s.' % self.blastn_version
526 blastn_version = 'The genome assembly was queried for features using %s.' % self.blastn_version 558 bedtools_version = 'Feature hits were clustered using %s and the highest scoring hit for each cluster was reported.' % self.bedtools_version
527 bedtools_version = 'Feature hits were clustered using bedtools and the highest scoring hit for each cluster was reported.'
528 method = '%s %s' % (blastn_version, bedtools_version) 559 method = '%s %s' % (blastn_version, bedtools_version)
529 self.methods[self.feature_methods_title] = self.methods[self.feature_methods_title].append(pandas.Series(method)) 560 self.methods[self.feature_methods_title] = self.methods[self.feature_methods_title].append(pandas.Series(method))
530 561
531 def add_feature_plots(self): 562 def add_feature_plots(self):
532 self.ofh.write("\nXXXXXX In add_feature_plots\n\n") 563 self.ofh.write("\nXXXXXX In add_feature_plots\n\n")
608 Table_List = ['Reference contig', 'Position', 'Reference', 'Alternate', 'Drug', 'Note'] 639 Table_List = ['Reference contig', 'Position', 'Reference', 'Alternate', 'Drug', 'Note']
609 for i in range(region_mutations.shape[0]): 640 for i in range(region_mutations.shape[0]):
610 Table_List = Table_List + region_mutations.iloc[i, [0, 1, 3, 4, 5, 6]].values.tolist() 641 Table_List = Table_List + region_mutations.iloc[i, [0, 1, 3, 4, 5, 6]].values.tolist()
611 row_count = int(len(Table_List) / 6) 642 row_count = int(len(Table_List) / 6)
612 self.doc.new_table(columns=6, rows=row_count, text=Table_List, text_align='left') 643 self.doc.new_table(columns=6, rows=row_count, text=Table_List, text_align='left')
613 method = '%s reads were mapped to the reference sequence using minimap2.' % self.read_type 644 method = '%s reads were mapped to the reference sequence using %s.' % (self.read_type, self.minimap2_version)
614 self.methods[self.mutation_methods_title] = self.methods[self.mutation_methods_title].append(pandas.Series(method)) 645 self.methods[self.mutation_methods_title] = self.methods[self.mutation_methods_title].append(pandas.Series(method))
615 method = 'Mutations were identified using samtools mpileup and varscan.' 646 method = 'Mutations were identified using %s mpileup and %s.' % (self.samtools_version, self.varscan_version)
616 self.methods[self.mutation_methods_title] = self.methods[self.mutation_methods_title].append(pandas.Series(method)) 647 self.methods[self.mutation_methods_title] = self.methods[self.mutation_methods_title].append(pandas.Series(method))
617 648
618 def add_amr_matrix(self): 649 def add_amr_matrix(self):
619 self.ofh.write("\nXXXXXX In add_amr_matrix\n\n") 650 self.ofh.write("\nXXXXXX In add_amr_matrix\n\n")
620 # Make sure that we have an AMR matrix to plot 651 # Make sure that we have an AMR matrix to plot
674 ] 705 ]
675 for i in range(genome_indels.shape[0]): 706 for i in range(genome_indels.shape[0]):
676 Table_List = Table_List + genome_indels.iloc[i, :].values.tolist() 707 Table_List = Table_List + genome_indels.iloc[i, :].values.tolist()
677 row_count = int(len(Table_List) / 4) 708 row_count = int(len(Table_List) / 4)
678 self.doc.new_table(columns=4, rows=row_count, text=Table_List, text_align='left') 709 self.doc.new_table(columns=4, rows=row_count, text=Table_List, text_align='left')
679 method = 'Large insertions or deletions were found as the complement of aligned regions using bedtools.' 710 method = 'Large insertions or deletions were found as the complement of aligned regions using %s.' % self.bedtools_version
680 self.methods[self.reference_methods_title] = self.methods[self.reference_methods_title].append(pandas.Series(method)) 711 self.methods[self.reference_methods_title] = self.methods[self.reference_methods_title].append(pandas.Series(method))
681 self.doc.new_line() 712 self.doc.new_line()
682 self.doc.new_line('<div style="page-break-after: always;"></div>') 713 self.doc.new_line('<div style="page-break-after: always;"></div>')
683 self.doc.new_line() 714 self.doc.new_line()
684 715
699 Table_List = ['Genome contig', 'Plasmid hit', 'Plasmid acc.', 'Contig size', 'Aliged', 'Plasmid size'] 730 Table_List = ['Genome contig', 'Plasmid hit', 'Plasmid acc.', 'Contig size', 'Aliged', 'Plasmid size']
700 for i in range(plasmids.shape[0]): 731 for i in range(plasmids.shape[0]):
701 Table_List = Table_List + plasmids.iloc[i, 0:6].values.tolist() 732 Table_List = Table_List + plasmids.iloc[i, 0:6].values.tolist()
702 row_count = int(len(Table_List) / 6) 733 row_count = int(len(Table_List) / 6)
703 self.doc.new_table(columns=6, rows=row_count, text=Table_List, text_align='left') 734 self.doc.new_table(columns=6, rows=row_count, text=Table_List, text_align='left')
704 method = 'The plasmid reference database was queried against the genome assembly using minimap2.' 735 method = 'The plasmid reference database was queried against the genome assembly using %s.' % self.minimap2_version
705 self.methods[self.plasmid_methods_title] = self.methods[self.plasmid_methods_title].append(pandas.Series(method)) 736 self.methods[self.plasmid_methods_title] = self.methods[self.plasmid_methods_title].append(pandas.Series(method))
706 method = 'The resulting BAM was converted to a PSL using a custom version of sam2psl.' 737 method = 'The resulting BAM was converted to a PSL using a custom version of sam2psl.'
707 self.methods[self.plasmid_methods_title] = self.methods[self.plasmid_methods_title].append(pandas.Series(method)) 738 self.methods[self.plasmid_methods_title] = self.methods[self.plasmid_methods_title].append(pandas.Series(method))
708 method = 'Plasmid-to-genome hits were resolved using the pChunks algorithm.' 739 method = 'Plasmid-to-genome hits were resolved using the pChunks algorithm.'
709 self.methods[self.plasmid_methods_title] = self.methods[self.plasmid_methods_title].append(pandas.Series(method)) 740 self.methods[self.plasmid_methods_title] = self.methods[self.plasmid_methods_title].append(pandas.Series(method))
800 parser.add_argument('--amr_deletions_file', action='store', dest='amr_deletions_file', help='AMR deletions BED file') 831 parser.add_argument('--amr_deletions_file', action='store', dest='amr_deletions_file', help='AMR deletions BED file')
801 parser.add_argument('--amr_matrix_png_dir', action='store', dest='amr_matrix_png_dir', help='Directory of AMR matrix PNG files') 832 parser.add_argument('--amr_matrix_png_dir', action='store', dest='amr_matrix_png_dir', help='Directory of AMR matrix PNG files')
802 parser.add_argument('--analysis_name', action='store', dest='analysis_name', help='Sample identifier') 833 parser.add_argument('--analysis_name', action='store', dest='analysis_name', help='Sample identifier')
803 parser.add_argument('--assembly_fasta_file', action='store', dest='assembly_fasta_file', help='Assembly fasta file') 834 parser.add_argument('--assembly_fasta_file', action='store', dest='assembly_fasta_file', help='Assembly fasta file')
804 parser.add_argument('--assembly_name', action='store', dest='assembly_name', help='Assembly identifier') 835 parser.add_argument('--assembly_name', action='store', dest='assembly_name', help='Assembly identifier')
836 parser.add_argument('--bedtools_version', action='store', dest='bedtools_version', default=None, help='Bedtools version string')
805 parser.add_argument('--blastn_version', action='store', dest='blastn_version', default=None, help='Blastn version string') 837 parser.add_argument('--blastn_version', action='store', dest='blastn_version', default=None, help='Blastn version string')
806 parser.add_argument('--compute_sequence_length_file', action='store', dest='compute_sequence_length_file', help='Comnpute sequence length tabular file') 838 parser.add_argument('--compute_sequence_length_file', action='store', dest='compute_sequence_length_file', help='Comnpute sequence length tabular file')
807 parser.add_argument('--contig_coverage_file', action='store', dest='contig_coverage_file', help='Contig coverage TSV file') 839 parser.add_argument('--contig_coverage_file', action='store', dest='contig_coverage_file', help='Contig coverage TSV file')
808 parser.add_argument('--dbkey', action='store', dest='dbkey', help='Reference genome identifier') 840 parser.add_argument('--dbkey', action='store', dest='dbkey', help='Reference genome identifier')
809 parser.add_argument('--dnadiff_snps_file', action='store', dest='dnadiff_snps_file', help='DNAdiff snps tabular file') 841 parser.add_argument('--dnadiff_snps_file', action='store', dest='dnadiff_snps_file', help='DNAdiff snps tabular file')
810 parser.add_argument('--dnadiff_version', action='store', dest='dnadiff_version', help='DNAdiff version string') 842 parser.add_argument('--dnadiff_version', action='store', dest='dnadiff_version', default=None, help='DNAdiff version string')
811 parser.add_argument('--feature_bed_dir', action='store', dest='feature_bed_dir', help='Directory of best feature hits bed files') 843 parser.add_argument('--feature_bed_dir', action='store', dest='feature_bed_dir', help='Directory of best feature hits bed files')
812 parser.add_argument('--feature_png_dir', action='store', dest='feature_png_dir', help='Directory of best feature hits png files') 844 parser.add_argument('--feature_png_dir', action='store', dest='feature_png_dir', help='Directory of best feature hits png files')
813 parser.add_argument('--flye_assembly_info_file', action='store', dest='flye_assembly_info_file', default=None, help='Flye assembly info tabular file') 845 parser.add_argument('--flye_assembly_info_file', action='store', dest='flye_assembly_info_file', default=None, help='Flye assembly info tabular file')
814 parser.add_argument('--flye_version', action='store', dest='flye_version', default=None, help='Flye version string') 846 parser.add_argument('--flye_version', action='store', dest='flye_version', default=None, help='Flye version string')
815 parser.add_argument('--genome_insertions_file', action='store', dest='genome_insertions_file', help='Genome insertions BED file') 847 parser.add_argument('--genome_insertions_file', action='store', dest='genome_insertions_file', help='Genome insertions BED file')
816 parser.add_argument('--gzipped', action='store_true', dest='gzipped', default=False, help='Input sample is gzipped') 848 parser.add_argument('--gzipped', action='store_true', dest='gzipped', default=False, help='Input sample is gzipped')
817 parser.add_argument('--illumina_fastq_file', action='store', dest='illumina_fastq_file', help='Input sample') 849 parser.add_argument('--illumina_fastq_file', action='store', dest='illumina_fastq_file', help='Input sample')
818 parser.add_argument('--kraken2_report_file', action='store', dest='kraken2_report_file', default=None, help='kraken2 report file') 850 parser.add_argument('--kraken2_report_file', action='store', dest='kraken2_report_file', default=None, help='kraken2 report file')
819 parser.add_argument('--kraken2_version', action='store', dest='kraken2_version', default=None, help='kraken2 version string') 851 parser.add_argument('--kraken2_version', action='store', dest='kraken2_version', default=None, help='kraken2 version string')
852 parser.add_argument('--minimap2_version', action='store', dest='minimap2_version', default=None, help='minimap2 version string')
820 parser.add_argument('--mutation_regions_bed_file', action='store', dest='mutation_regions_bed_file', help='AMR mutation regions BRD file') 853 parser.add_argument('--mutation_regions_bed_file', action='store', dest='mutation_regions_bed_file', help='AMR mutation regions BRD file')
821 parser.add_argument('--mutation_regions_dir', action='store', dest='mutation_regions_dir', help='Directory of mutation regions TSV files') 854 parser.add_argument('--mutation_regions_dir', action='store', dest='mutation_regions_dir', help='Directory of mutation regions TSV files')
822 parser.add_argument('--pima_css', action='store', dest='pima_css', help='PIMA css stypesheet') 855 parser.add_argument('--pima_css', action='store', dest='pima_css', help='PIMA css stypesheet')
823 parser.add_argument('--plasmids_file', action='store', dest='plasmids_file', help='pChunks plasmids TSV file') 856 parser.add_argument('--plasmids_file', action='store', dest='plasmids_file', help='pChunks plasmids TSV file')
824 parser.add_argument('--reference_insertions_file', action='store', dest='reference_insertions_file', help='Reference insertions BED file') 857 parser.add_argument('--reference_insertions_file', action='store', dest='reference_insertions_file', help='Reference insertions BED file')
825 # parser.add_argument('--reference_genome', action='store', dest='reference_genome', help='Reference genome fasta file') 858 parser.add_argument('--samtools_version', action='store', dest='samtools_version', default=None, help='Samtools version string')
859 parser.add_argument('--varscan_version', action='store', dest='varscan_version', default=None, help='Varscan version string')
826 860
827 args = parser.parse_args() 861 args = parser.parse_args()
828 862
829 # Prepare the AMR matrix PNG files. 863 # Prepare the AMR matrix PNG files.
830 amr_matrix_files = [] 864 amr_matrix_files = []
850 markdown_report = PimaReport(args.analysis_name, 884 markdown_report = PimaReport(args.analysis_name,
851 args.amr_deletions_file, 885 args.amr_deletions_file,
852 amr_matrix_files, 886 amr_matrix_files,
853 args.assembly_fasta_file, 887 args.assembly_fasta_file,
854 args.assembly_name, 888 args.assembly_name,
889 args.bedtools_version,
855 args.blastn_version, 890 args.blastn_version,
856 args.compute_sequence_length_file, 891 args.compute_sequence_length_file,
857 args.contig_coverage_file, 892 args.contig_coverage_file,
858 args.dbkey, 893 args.dbkey,
859 args.dnadiff_snps_file, 894 args.dnadiff_snps_file,
865 args.genome_insertions_file, 900 args.genome_insertions_file,
866 args.gzipped, 901 args.gzipped,
867 args.illumina_fastq_file, 902 args.illumina_fastq_file,
868 args.kraken2_report_file, 903 args.kraken2_report_file,
869 args.kraken2_version, 904 args.kraken2_version,
905 args.minimap2_version,
870 args.mutation_regions_bed_file, 906 args.mutation_regions_bed_file,
871 mutation_regions_files, 907 mutation_regions_files,
872 args.pima_css, 908 args.pima_css,
873 args.plasmids_file, 909 args.plasmids_file,
874 args.reference_insertions_file) 910 args.reference_insertions_file,
911 args.samtools_version,
912 args.varscan_version)
875 markdown_report.make_report() 913 markdown_report.make_report()