Mercurial > repos > iuc > cooc_pubmut
changeset 1:f193fef5b19d draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/cojac commit 5b54fc7af13196445abda407054e01dd3e5603c6
author | iuc |
---|---|
date | Mon, 31 Jul 2023 15:23:17 +0000 |
parents | d04ea6b052c5 |
children | 0349d8981030 |
files | cooc_pubmut.xml macros.xml test-data/ampl_info.tsv test-data/bed_cojac.bed test-data/primers.bed |
diffstat | 5 files changed, 516 insertions(+), 64 deletions(-) [+] |
line wrap: on
line diff
--- a/cooc_pubmut.xml Thu Aug 11 13:49:40 2022 +0000 +++ b/cooc_pubmut.xml Mon Jul 31 15:23:17 2023 +0000 @@ -1,69 +1,131 @@ <tool id="cooc_pubmut" name="Cojac: pubmut" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@"> <description> - render a JSON or YAML file to a pretty table + pretty-prints cojac mutbamscan co-occurrence results </description> <macros> <import>macros.xml</import> </macros> <expand macro="biotools"/> <expand macro="requirements"> - <requirement type="package" version="2.12">pandoc</requirement> + <requirement type="package" version="3.1.3">pandoc</requirement> + <requirement type="package" version="6.2.1">gmp</requirement> </expand> <expand macro="version"/> <command detect_errors="exit_code"><![CDATA[ -@VOCDIR_COMMAND@ -#for $input_file in $cooc_file - #set $cooc_ext = $input_file.ext -#end for -cooc-pubmut - -m '$vocdir' - -a '$amplicons' - #if $cooc_ext == 'json' - -j '$cooc_file' - #else if $cooc_ext == 'yaml' - -y '$cooc_file' +#if $annotations.availability == 'full': + #set $voc_config = $annotations.voc_source + @VOCDIR_COMMAND@ +#end if +cojac cooc-pubmut + #if $annotations.availability == 'full': + -m voc/ + #end if + #if $annotations.availability != 'none': + -a '$annotations.in_amp' #end if - -o cooc-table.csv + #if $cooc_data.ext == 'json': + -j '$cooc_data' + #else + -y '$cooc_data' + #end if -q - $escape - #if $add_html + #if $out_opts.format == 'tsv': + -o cooc-table.tsv + #else: + -o cooc-table.csv + #if $out_opts.format == 'html': && pandoc cooc-table.csv -o cooc-table.html - && mkdir -p '$html.files_path' - && cp cooc-table.html '$html.files_path' + #end if #end if ]]></command> <inputs> - <expand macro="vocdir_input"/> - <param name="amplicons" type="data" format="yaml" label="List of query amplicons" - help="File generated by the Cojac mutbamscan tool"/> - <param name="cooc_file" type="data" format="json,yaml" multiple="true" - label="Results generated by mutbamscan"/> - <param argument="--escape" type="boolean" truevalue="--escape" falsevalue="" - checked="false" label="Use escape characters for newlines"/> - <param name="add_html" type="boolean" checked="false" - label="Convert CSV output table to HTML format"/> + <param name="cooc_data" type="data" format="json,yaml" label="Co-occurrence results generated by mutbamscan" + help="The tool can work with json- or yaml-formatted output of cojac mutbamscan."/> + <conditional name="annotations"> + <param name="availability" type="select" label="Available amplicon and lineage annotations" + help="For best readability of its report the tool requires a per-lineage amplicon info dataset (in yaml format) produced by the mutbamscan tool and the original lineage definitions. If all you have is the per-lineage amplicon info, you can use it to obtain a nearly identical report, but cojac-internal lineage identifiers won't be translated into standard lineage names. With no available annotations a limited report can still be generated, but this is not recommended."> + <option value="full">per-lineage amplicon info and original lineage definitions</option> + <option value="amplicon">per-lineage amplicon info only</option> + <option value="none">no annotations</option> + </param> + <when value="full"> + <param name="in_amp" type="data" format="yaml" label="Combined cojac per-amplicon lineage definitions"/> + <expand macro="vocdir_input"/> + </when> + <when value="amplicon"> + <param name="in_amp" type="data" format="yaml" label="Combined per-amplicon lineage definitions"/> + </when> + <when value="none" /> + </conditional> + <section name="out_opts" title="Output formatting" expanded="true"> + <param name="format" type="select" label="Type of output to produce"> + <option value="tsv">Tab-separated (TSV)</option> + <option value="csv">Comma-separated (CSV)</option> + <option value="html">HTML (for display in browsers)</option> + </param> + </section> </inputs> <outputs> - <data name="table" format="csv" - label="${tool.name} on ${on_string}: Mutation cooccurrence (CSV table)" - from_work_dir="cooc-table.csv"> + <data name="table_tsv" format="tsv" label="${tool.name} on ${on_string}: Mutation co-occurrence (TSV table)" from_work_dir="cooc-table.tsv"> + <filter>out_opts['format'] == 'tsv'</filter> </data> - <data name="html" format="html" - label="${tool.name} on ${on_string}: Mutation cooccurrence (HTML)" - from_work_dir="cooc-table.html"> - <filter>add_html</filter> + <data name="table_csv" format="csv" label="${tool.name} on ${on_string}: Mutation co-occurrence (CSV table)" from_work_dir="cooc-table.csv"> + <filter>out_opts['format'] == 'csv'</filter> + </data> + <data name="table_html" format="html" label="${tool.name} on ${on_string}: Mutation co-occurrence (HTML)" from_work_dir="cooc-table.html"> + <filter>out_opts['format'] == 'html'</filter> </data> </outputs> <tests> <test expect_num_outputs="1"> - <conditional name="vocdir_option"> - <param name="choice" value="custom"/> - <param name="voc_file" value="omicron_ba1_mutations.yaml"/> + <param name="cooc_data" value="cooc-test111.json"/> + <conditional name="annotations"> + <conditional name="vocdir_option"> + <param name="choice" value="custom"/> + <param name="voc_file" value="omicron_ba1_mutations.yaml"/> + </conditional> + <param name="in_amp" value="amplicons111.yaml"/> + </conditional> + <output name="table_tsv" ftype="tsv"> + <assert_contents> + <has_text text="Amplicon 76"/> + <has_text text="Amplicon 81"/> + </assert_contents> + </output> + </test> + <test expect_num_outputs="1"> + <param name="cooc_data" value="cooc-test111.json"/> + <conditional name="annotations"> + <conditional name="vocdir_option"> + <param name="choice" value="custom"/> + <param name="voc_file" value="omicron_ba1_mutations.yaml"/> + </conditional> + <param name="in_amp" value="amplicons111.yaml"/> </conditional> - <param name="amplicons" value="amplicons111.yaml"/> - <param name="cooc_file" value="cooc-test111.json"/> - <output name="table" ftype="csv"> + <section name="out_opts"> + <param name="format" value="csv"/> + </section> + <output name="table_csv" ftype="csv"> + <assert_contents> + <has_text text="Amplicon 76"/> + <has_text text="Amplicon 81"/> + </assert_contents> + </output> + </test> + <test expect_num_outputs="1"> + <param name="cooc_data" value="cooc-test111.json"/> + <conditional name="annotations"> + <conditional name="vocdir_option"> + <param name="choice" value="custom"/> + <param name="voc_file" value="omicron_ba1_mutations.yaml"/> + </conditional> + <param name="in_amp" value="amplicons111.yaml"/> + </conditional> + <section name="out_opts"> + <param name="format" value="html"/> + </section> + <output name="table_html" ftype="html"> <assert_contents> <has_text text="Amplicon 76"/> <has_text text="Amplicon 81"/> @@ -74,12 +136,12 @@ <help><![CDATA[ @HELP_HEADER@ -Information about **cooc-pubmut** method -======================================== +Information about **cojac cooc-pubmut** +======================================= -The method renders a JSON or YAML file to a table as in the publication. -You need to open the output CSV in a spreadsheet that understands linebreaks. +The tool pretty-prints json or yaml output of cojac cooc-mutbamscan. +Hint: The output (unless you select html format) is best viewed in spreadsheet software that understands linebreaks. ]]></help> <expand macro="citations"/> </tool>
--- a/macros.xml Thu Aug 11 13:49:40 2022 +0000 +++ b/macros.xml Mon Jul 31 15:23:17 2023 +0000 @@ -1,6 +1,6 @@ <?xml version="1.0"?> <macros> - <token name="@TOOL_VERSION@">0.2</token> + <token name="@TOOL_VERSION@">0.9</token> <token name="@VERSION_SUFFIX@">0</token> <token name="@PROFILE@">21.01</token> <xml name="biotools"> @@ -18,34 +18,28 @@ <version_command>echo @TOOL_VERSION@</version_command> </xml> <xml name="vocdir_input"> - <conditional name="vocdir_option"> + <conditional name="voc_source"> <param name="choice" type="select" - label="Source of YAML files with definition of the variant of concerns" - help="Cojac ships with a directory with variant definitions yaml files (https://github.com/cbg-ethz/cojac/tree/master/voc), which the tool can access internally. You can also download the latest version of the yaml files from https://github.com/phe-genomics/variant_definitions and use it as a custom yamls defining the variant of concerns."> - <option value="cache">Definitions shipped with the tool (can be outdated)</option> - <option value="custom">From history</option> + label="Source of lineage definitions" + help="Cojac detects lineage evidence based on lineage mutation patterns deined in tool-specific yaml format. You can choose between the (possibly outdated) definitions shipped with the tool or definitions provided as a collection of yaml datasets in your history. See the tool help below for more details."> + <option value="builtin">Lineage definitions shipped with the tool</option> + <option value="custom">YAML dataset collection in history</option> </param> - <when value="cache"/> + <when value="builtin"/> <when value="custom"> - <param name="voc_file" type="data" format="yaml" multiple="true" - label="YAML defining the variant of concern"/> + <param name="collection" type="data_collection" collection_type="list" format="yaml" label="Collection of lineage definitions" /> </when> </conditional> </xml> <token name="@VOCDIR_COMMAND@"><![CDATA[ -#if $vocdir_option.choice == 'custom' - #set vocdir = 'voc/' - #set file_paths1 = [] +#if $voc_config.choice == 'custom' mkdir -p voc && - #for $input_file in $voc_file - #set $file_path = $vocdir + $input_file.element_identifier - ln -s '$input_file' '$file_path' && - $file_paths1.append($file_path) + #for $input_file in $voc_config.collection + ln -s '$input_file' 'voc/$input_file.element_identifier' && #end for #else - DB_PATH="\$(dirname "\$(dirname "\$(which cooc-mutbamscan)")")/share/cojac" && - ln -s "\$DB_PATH" db && - #set $vocdir = 'db/voc' + DB_PATH="\$(dirname "\$(dirname "\$(which cojac)")")/share/cojac/voc" && + ln -s "\$DB_PATH" voc && #end if ]]></token> <token name="@HELP_HEADER@"><![CDATA[ @@ -59,4 +53,4 @@ <citation type="doi">10.1101/2021.01.08.21249379</citation> </citations> </xml> -</macros> \ No newline at end of file +</macros>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/ampl_info.tsv Mon Jul 31 15:23:17 2023 +0000 @@ -0,0 +1,99 @@ +SARS-CoV-2_1_LEFT SARS-CoV-2_1_RIGHT +SARS-CoV-2_2_LEFT SARS-CoV-2_2_RIGHT +SARS-CoV-2_3_LEFT SARS-CoV-2_3_RIGHT +SARS-CoV-2_4_LEFT SARS-CoV-2_4_RIGHT +SARS-CoV-2_5_LEFT SARS-CoV-2_5_RIGHT +SARS-CoV-2_6_LEFT SARS-CoV-2_6_RIGHT +SARS-CoV-2_7_LEFT SARS-CoV-2_7_RIGHT +SARS-CoV-2_8_LEFT SARS-CoV-2_8_RIGHT +SARS-CoV-2_9_LEFT SARS-CoV-2_9_RIGHT +SARS-CoV-2_10_LEFT SARS-CoV-2_10_RIGHT +SARS-CoV-2_11_LEFT SARS-CoV-2_11_RIGHT +SARS-CoV-2_12_LEFT SARS-CoV-2_12_RIGHT +SARS-CoV-2_13_LEFT SARS-CoV-2_13_RIGHT +SARS-CoV-2_14_LEFT SARS-CoV-2_14_RIGHT +SARS-CoV-2_15_LEFT SARS-CoV-2_15_RIGHT +SARS-CoV-2_16_LEFT SARS-CoV-2_16_RIGHT +SARS-CoV-2_17_LEFT SARS-CoV-2_17_RIGHT +SARS-CoV-2_18_LEFT SARS-CoV-2_18_RIGHT +SARS-CoV-2_19_LEFT SARS-CoV-2_19_RIGHT +SARS-CoV-2_20_LEFT SARS-CoV-2_20_RIGHT +SARS-CoV-2_21_LEFT SARS-CoV-2_21_RIGHT +SARS-CoV-2_22_LEFT SARS-CoV-2_22_RIGHT +SARS-CoV-2_23_LEFT SARS-CoV-2_23_RIGHT +SARS-CoV-2_24_LEFT SARS-CoV-2_24_RIGHT +SARS-CoV-2_25_LEFT SARS-CoV-2_25_RIGHT +SARS-CoV-2_26_LEFT SARS-CoV-2_26_RIGHT +SARS-CoV-2_27_LEFT SARS-CoV-2_27_RIGHT +SARS-CoV-2_28_LEFT SARS-CoV-2_28_RIGHT +SARS-CoV-2_29_LEFT SARS-CoV-2_29_RIGHT +SARS-CoV-2_30_LEFT SARS-CoV-2_30_RIGHT +SARS-CoV-2_31_LEFT SARS-CoV-2_31_RIGHT +SARS-CoV-2_32_LEFT SARS-CoV-2_32_RIGHT +SARS-CoV-2_33_LEFT SARS-CoV-2_33_RIGHT +SARS-CoV-2_34_LEFT SARS-CoV-2_34_RIGHT +SARS-CoV-2_35_LEFT SARS-CoV-2_35_RIGHT +SARS-CoV-2_36_LEFT SARS-CoV-2_36_RIGHT +SARS-CoV-2_37_LEFT SARS-CoV-2_37_RIGHT +SARS-CoV-2_38_LEFT SARS-CoV-2_38_RIGHT +SARS-CoV-2_39_LEFT SARS-CoV-2_39_RIGHT +SARS-CoV-2_40_LEFT SARS-CoV-2_40_RIGHT +SARS-CoV-2_41_LEFT SARS-CoV-2_41_RIGHT +SARS-CoV-2_42_LEFT SARS-CoV-2_42_RIGHT +SARS-CoV-2_43_LEFT SARS-CoV-2_43_RIGHT +SARS-CoV-2_44_LEFT SARS-CoV-2_44_RIGHT +SARS-CoV-2_45_LEFT SARS-CoV-2_45_RIGHT +SARS-CoV-2_46_LEFT SARS-CoV-2_46_RIGHT +SARS-CoV-2_47_LEFT SARS-CoV-2_47_RIGHT +SARS-CoV-2_48_LEFT SARS-CoV-2_48_RIGHT +SARS-CoV-2_49_LEFT SARS-CoV-2_49_RIGHT +SARS-CoV-2_50_LEFT SARS-CoV-2_50_RIGHT +SARS-CoV-2_51_LEFT SARS-CoV-2_51_RIGHT +SARS-CoV-2_52_LEFT SARS-CoV-2_52_RIGHT +SARS-CoV-2_53_LEFT SARS-CoV-2_53_RIGHT +SARS-CoV-2_54_LEFT SARS-CoV-2_54_RIGHT +SARS-CoV-2_55_LEFT SARS-CoV-2_55_RIGHT +SARS-CoV-2_56_LEFT SARS-CoV-2_56_RIGHT +SARS-CoV-2_57_LEFT SARS-CoV-2_57_RIGHT +SARS-CoV-2_58_LEFT SARS-CoV-2_58_RIGHT +SARS-CoV-2_59_LEFT SARS-CoV-2_59_RIGHT +SARS-CoV-2_60_LEFT SARS-CoV-2_60_RIGHT +SARS-CoV-2_61_LEFT SARS-CoV-2_61_RIGHT +SARS-CoV-2_62_LEFT SARS-CoV-2_62_RIGHT +SARS-CoV-2_63_LEFT SARS-CoV-2_63_RIGHT +SARS-CoV-2_64_LEFT SARS-CoV-2_64_RIGHT +SARS-CoV-2_65_LEFT SARS-CoV-2_65_RIGHT +SARS-CoV-2_66_LEFT SARS-CoV-2_66_RIGHT +SARS-CoV-2_67_LEFT SARS-CoV-2_67_RIGHT +SARS-CoV-2_68_LEFT SARS-CoV-2_68_RIGHT +SARS-CoV-2_69_LEFT SARS-CoV-2_69_RIGHT +SARS-CoV-2_70_LEFT SARS-CoV-2_70_RIGHT +SARS-CoV-2_71_LEFT SARS-CoV-2_71_RIGHT +SARS-CoV-2_72_LEFT SARS-CoV-2_72_RIGHT +SARS-CoV-2_73_LEFT SARS-CoV-2_73_RIGHT +SARS-CoV-2_74_LEFT SARS-CoV-2_74_RIGHT +SARS-CoV-2_75_LEFT SARS-CoV-2_75_RIGHT +SARS-CoV-2_76_LEFT SARS-CoV-2_76_RIGHT +SARS-CoV-2_77_LEFT SARS-CoV-2_77_RIGHT +SARS-CoV-2_78_LEFT SARS-CoV-2_78_RIGHT +SARS-CoV-2_79_LEFT SARS-CoV-2_79_RIGHT +SARS-CoV-2_80_LEFT SARS-CoV-2_80_RIGHT +SARS-CoV-2_81_LEFT SARS-CoV-2_81_RIGHT +SARS-CoV-2_82_LEFT SARS-CoV-2_82_RIGHT +SARS-CoV-2_83_LEFT SARS-CoV-2_83_RIGHT +SARS-CoV-2_84_LEFT SARS-CoV-2_84_RIGHT +SARS-CoV-2_85_LEFT SARS-CoV-2_85_RIGHT +SARS-CoV-2_86_LEFT SARS-CoV-2_86_RIGHT +SARS-CoV-2_87_LEFT SARS-CoV-2_87_RIGHT +SARS-CoV-2_88_LEFT SARS-CoV-2_88_RIGHT +SARS-CoV-2_89_LEFT SARS-CoV-2_89_RIGHT +SARS-CoV-2_90_LEFT SARS-CoV-2_90_RIGHT +SARS-CoV-2_91_LEFT SARS-CoV-2_91_RIGHT +SARS-CoV-2_92_LEFT SARS-CoV-2_92_RIGHT +SARS-CoV-2_93_LEFT SARS-CoV-2_93_RIGHT +SARS-CoV-2_94_LEFT SARS-CoV-2_94_RIGHT +SARS-CoV-2_95_LEFT SARS-CoV-2_95_RIGHT +SARS-CoV-2_96_LEFT SARS-CoV-2_96_RIGHT +SARS-CoV-2_97_LEFT SARS-CoV-2_97_RIGHT +SARS-CoV-2_98_LEFT SARS-CoV-2_98_RIGHT +SARS-CoV-2_99_LEFT SARS-CoV-2_99_RIGHT
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/bed_cojac.bed Mon Jul 31 15:23:17 2023 +0000 @@ -0,0 +1,99 @@ +MN908947.3 50 408 SARS-CoV-2_INSERT_1 1 + +MN908947.3 344 705 SARS-CoV-2_INSERT_2 2 + +MN908947.3 666 1017 SARS-CoV-2_INSERT_3 1 + +MN908947.3 966 1337 SARS-CoV-2_INSERT_4 2 + +MN908947.3 1266 1623 SARS-CoV-2_INSERT_5 1 + +MN908947.3 1562 1925 SARS-CoV-2_INSERT_6 2 + +MN908947.3 1875 2228 SARS-CoV-2_INSERT_7 1 + +MN908947.3 2180 2544 SARS-CoV-2_INSERT_8 2 + +MN908947.3 2508 2861 SARS-CoV-2_INSERT_9 1 + +MN908947.3 2850 3183 SARS-CoV-2_INSERT_10 2 + +MN908947.3 3102 3470 SARS-CoV-2_INSERT_11 1 + +MN908947.3 3412 3769 SARS-CoV-2_INSERT_12 2 + +MN908947.3 3705 4067 SARS-CoV-2_INSERT_13 1 + +MN908947.3 4018 4387 SARS-CoV-2_INSERT_14 2 + +MN908947.3 4339 4685 SARS-CoV-2_INSERT_15 1 + +MN908947.3 4648 4995 SARS-CoV-2_INSERT_16 2 + +MN908947.3 4953 5302 SARS-CoV-2_INSERT_17 1 + +MN908947.3 5259 5620 SARS-CoV-2_INSERT_18 2 + +MN908947.3 5584 5932 SARS-CoV-2_INSERT_19 1 + +MN908947.3 5894 6247 SARS-CoV-2_INSERT_20 2 + +MN908947.3 6210 6553 SARS-CoV-2_INSERT_21 1 + +MN908947.3 6507 6859 SARS-CoV-2_INSERT_22 2 + +MN908947.3 6776 7122 SARS-CoV-2_INSERT_23 1 + +MN908947.3 7084 7440 SARS-CoV-2_INSERT_24 2 + +MN908947.3 7403 7747 SARS-CoV-2_INSERT_25 1 + +MN908947.3 7695 8063 SARS-CoV-2_INSERT_26 2 + +MN908947.3 8019 8370 SARS-CoV-2_INSERT_27 1 + +MN908947.3 8326 8691 SARS-CoV-2_INSERT_28 2 + +MN908947.3 8619 8990 SARS-CoV-2_INSERT_29 1 + +MN908947.3 8944 9306 SARS-CoV-2_INSERT_30 2 + +MN908947.3 9192 9535 SARS-CoV-2_INSERT_31 1 + +MN908947.3 9497 9842 SARS-CoV-2_INSERT_32 2 + +MN908947.3 9805 10150 SARS-CoV-2_INSERT_33 1 + +MN908947.3 10099 10465 SARS-CoV-2_INSERT_34 2 + +MN908947.3 10419 10785 SARS-CoV-2_INSERT_35 1 + +MN908947.3 10742 11092 SARS-CoV-2_INSERT_36 2 + +MN908947.3 11023 11388 SARS-CoV-2_INSERT_37 1 + +MN908947.3 11330 11689 SARS-CoV-2_INSERT_38 2 + +MN908947.3 11651 12011 SARS-CoV-2_INSERT_39 1 + +MN908947.3 11963 12317 SARS-CoV-2_INSERT_40 2 + +MN908947.3 12255 12618 SARS-CoV-2_INSERT_41 1 + +MN908947.3 12546 12895 SARS-CoV-2_INSERT_42 2 + +MN908947.3 12856 13218 SARS-CoV-2_INSERT_43 1 + +MN908947.3 13148 13506 SARS-CoV-2_INSERT_44 2 + +MN908947.3 13485 13833 SARS-CoV-2_INSERT_45 1 + +MN908947.3 13775 14120 SARS-CoV-2_INSERT_46 2 + +MN908947.3 14075 14428 SARS-CoV-2_INSERT_47 1 + +MN908947.3 14362 14717 SARS-CoV-2_INSERT_48 2 + +MN908947.3 14674 15023 SARS-CoV-2_INSERT_49 1 + +MN908947.3 14983 15336 SARS-CoV-2_INSERT_50 2 + +MN908947.3 15237 15596 SARS-CoV-2_INSERT_51 1 + +MN908947.3 15557 15917 SARS-CoV-2_INSERT_52 2 + +MN908947.3 15881 16239 SARS-CoV-2_INSERT_53 1 + +MN908947.3 16137 16483 SARS-CoV-2_INSERT_54 2 + +MN908947.3 16408 16767 SARS-CoV-2_INSERT_55 1 + +MN908947.3 16714 17082 SARS-CoV-2_INSERT_56 2 + +MN908947.3 17013 17381 SARS-CoV-2_INSERT_57 1 + +MN908947.3 17345 17688 SARS-CoV-2_INSERT_58 2 + +MN908947.3 17642 17997 SARS-CoV-2_INSERT_59 1 + +MN908947.3 17939 18307 SARS-CoV-2_INSERT_60 2 + +MN908947.3 18267 18624 SARS-CoV-2_INSERT_61 1 + +MN908947.3 18578 18936 SARS-CoV-2_INSERT_62 2 + +MN908947.3 18891 19252 SARS-CoV-2_INSERT_63 1 + +MN908947.3 19208 19558 SARS-CoV-2_INSERT_64 2 + +MN908947.3 19513 19877 SARS-CoV-2_INSERT_65 1 + +MN908947.3 19836 20186 SARS-CoV-2_INSERT_66 2 + +MN908947.3 20117 20472 SARS-CoV-2_INSERT_67 1 + +MN908947.3 20405 20766 SARS-CoV-2_INSERT_68 2 + +MN908947.3 20699 21050 SARS-CoV-2_INSERT_69 1 + +MN908947.3 21013 21358 SARS-CoV-2_INSERT_70 2 + +MN908947.3 21316 21675 SARS-CoV-2_INSERT_71 1 + +MN908947.3 21561 21904 SARS-CoV-2_INSERT_72 2 + +MN908947.3 21889 22247 SARS-CoV-2_INSERT_73 1 + +MN908947.3 22113 22474 SARS-CoV-2_INSERT_74 2 + +MN908947.3 22428 22785 SARS-CoV-2_INSERT_75 1 + +MN908947.3 22677 23028 SARS-CoV-2_INSERT_76 2 + +MN908947.3 22974 23327 SARS-CoV-2_INSERT_77 1 + +MN908947.3 23246 23611 SARS-CoV-2_INSERT_78 2 + +MN908947.3 23575 23927 SARS-CoV-2_INSERT_79 1 + +MN908947.3 23876 24233 SARS-CoV-2_INSERT_80 2 + +MN908947.3 24194 24545 SARS-CoV-2_INSERT_81 1 + +MN908947.3 24448 24814 SARS-CoV-2_INSERT_82 2 + +MN908947.3 24772 25122 SARS-CoV-2_INSERT_83 1 + +MN908947.3 25076 25438 SARS-CoV-2_INSERT_84 2 + +MN908947.3 25353 25711 SARS-CoV-2_INSERT_85 1 + +MN908947.3 25672 26026 SARS-CoV-2_INSERT_86 2 + +MN908947.3 25979 26338 SARS-CoV-2_INSERT_87 1 + +MN908947.3 26277 26635 SARS-CoV-2_INSERT_88 2 + +MN908947.3 26587 26956 SARS-CoV-2_INSERT_89 1 + +MN908947.3 26895 27256 SARS-CoV-2_INSERT_90 2 + +MN908947.3 27177 27534 SARS-CoV-2_INSERT_91 1 + +MN908947.3 27473 27826 SARS-CoV-2_INSERT_92 2 + +MN908947.3 27726 28082 SARS-CoV-2_INSERT_93 1 + +MN908947.3 28021 28394 SARS-CoV-2_INSERT_94 2 + +MN908947.3 28214 28572 SARS-CoV-2_INSERT_95 1 + +MN908947.3 28536 28893 SARS-CoV-2_INSERT_96 2 + +MN908947.3 28849 29206 SARS-CoV-2_INSERT_97 1 + +MN908947.3 29161 29512 SARS-CoV-2_INSERT_98 2 + +MN908947.3 29475 29827 SARS-CoV-2_INSERT_99 1 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/primers.bed Mon Jul 31 15:23:17 2023 +0000 @@ -0,0 +1,198 @@ +MN908947.3 25 50 SARS-CoV-2_1_LEFT pool_1 + +MN908947.3 408 431 SARS-CoV-2_1_RIGHT pool_1 - +MN908947.3 324 344 SARS-CoV-2_2_LEFT pool_2 + +MN908947.3 705 727 SARS-CoV-2_2_RIGHT pool_2 - +MN908947.3 644 666 SARS-CoV-2_3_LEFT pool_1 + +MN908947.3 1017 1044 SARS-CoV-2_3_RIGHT pool_1 - +MN908947.3 944 966 SARS-CoV-2_4_LEFT pool_2 + +MN908947.3 1337 1362 SARS-CoV-2_4_RIGHT pool_2 - +MN908947.3 1245 1266 SARS-CoV-2_5_LEFT pool_1 + +MN908947.3 1623 1650 SARS-CoV-2_5_RIGHT pool_1 - +MN908947.3 1540 1562 SARS-CoV-2_6_LEFT pool_2 + +MN908947.3 1925 1948 SARS-CoV-2_6_RIGHT pool_2 - +MN908947.3 1851 1875 SARS-CoV-2_7_LEFT pool_1 + +MN908947.3 2228 2250 SARS-CoV-2_7_RIGHT pool_1 - +MN908947.3 2154 2180 SARS-CoV-2_8_LEFT pool_2 + +MN908947.3 2544 2571 SARS-CoV-2_8_RIGHT pool_2 - +MN908947.3 2483 2508 SARS-CoV-2_9_LEFT pool_1 + +MN908947.3 2861 2885 SARS-CoV-2_9_RIGHT pool_1 - +MN908947.3 2826 2850 SARS-CoV-2_10_LEFT pool_2 + +MN908947.3 3183 3210 SARS-CoV-2_10_RIGHT pool_2 - +MN908947.3 3078 3102 SARS-CoV-2_11_LEFT pool_1 + +MN908947.3 3470 3492 SARS-CoV-2_11_RIGHT pool_1 - +MN908947.3 3390 3412 SARS-CoV-2_12_LEFT pool_2 + +MN908947.3 3769 3794 SARS-CoV-2_12_RIGHT pool_2 - +MN908947.3 3683 3705 SARS-CoV-2_13_LEFT pool_1 + +MN908947.3 4067 4093 SARS-CoV-2_13_RIGHT pool_1 - +MN908947.3 3992 4018 SARS-CoV-2_14_LEFT pool_2 + +MN908947.3 4387 4409 SARS-CoV-2_14_RIGHT pool_2 - +MN908947.3 4312 4339 SARS-CoV-2_15_LEFT pool_1 + +MN908947.3 4685 4710 SARS-CoV-2_15_RIGHT pool_1 - +MN908947.3 4620 4648 SARS-CoV-2_16_LEFT pool_2 + +MN908947.3 4995 5017 SARS-CoV-2_16_RIGHT pool_2 - +MN908947.3 4923 4953 SARS-CoV-2_17_LEFT pool_1 + +MN908947.3 5302 5331 SARS-CoV-2_17_RIGHT pool_1 - +MN908947.3 5230 5259 SARS-CoV-2_18_LEFT pool_2 + +MN908947.3 5620 5643 SARS-CoV-2_18_RIGHT pool_2 - +MN908947.3 5561 5584 SARS-CoV-2_19_LEFT pool_1 + +MN908947.3 5932 5957 SARS-CoV-2_19_RIGHT pool_1 - +MN908947.3 5867 5894 SARS-CoV-2_20_LEFT pool_2 + +MN908947.3 6247 6272 SARS-CoV-2_20_RIGHT pool_2 - +MN908947.3 6184 6210 SARS-CoV-2_21_LEFT pool_1 + +MN908947.3 6553 6582 SARS-CoV-2_21_RIGHT pool_1 - +MN908947.3 6478 6507 SARS-CoV-2_22_LEFT pool_2 + +MN908947.3 6859 6885 SARS-CoV-2_22_RIGHT pool_2 - +MN908947.3 6747 6776 SARS-CoV-2_23_LEFT pool_1 + +MN908947.3 7122 7148 SARS-CoV-2_23_RIGHT pool_1 - +MN908947.3 7057 7084 SARS-CoV-2_24_LEFT pool_2 + +MN908947.3 7440 7467 SARS-CoV-2_24_RIGHT pool_2 - +MN908947.3 7381 7403 SARS-CoV-2_25_LEFT pool_1 + +MN908947.3 7747 7770 SARS-CoV-2_25_RIGHT pool_1 - +MN908947.3 7672 7695 SARS-CoV-2_26_LEFT pool_2 + +MN908947.3 8063 8092 SARS-CoV-2_26_RIGHT pool_2 - +MN908947.3 7997 8019 SARS-CoV-2_27_LEFT pool_1 + +MN908947.3 8370 8395 SARS-CoV-2_27_RIGHT pool_1 - +MN908947.3 8304 8326 SARS-CoV-2_28_LEFT pool_2 + +MN908947.3 8691 8714 SARS-CoV-2_28_RIGHT pool_2 - +MN908947.3 8596 8619 SARS-CoV-2_29_LEFT pool_1 + +MN908947.3 8990 9013 SARS-CoV-2_29_RIGHT pool_1 - +MN908947.3 8919 8944 SARS-CoV-2_30_LEFT pool_2 + +MN908947.3 9306 9329 SARS-CoV-2_30_RIGHT pool_2 - +MN908947.3 9168 9192 SARS-CoV-2_31_LEFT pool_1 + +MN908947.3 9535 9564 SARS-CoV-2_31_RIGHT pool_1 - +MN908947.3 9470 9497 SARS-CoV-2_32_LEFT pool_2 + +MN908947.3 9842 9866 SARS-CoV-2_32_RIGHT pool_2 - +MN908947.3 9782 9805 SARS-CoV-2_33_LEFT pool_1 + +MN908947.3 10150 10176 SARS-CoV-2_33_RIGHT pool_1 - +MN908947.3 10076 10099 SARS-CoV-2_34_LEFT pool_2 + +MN908947.3 10465 10491 SARS-CoV-2_34_RIGHT pool_2 - +MN908947.3 10393 10419 SARS-CoV-2_35_LEFT pool_1 + +MN908947.3 10785 10810 SARS-CoV-2_35_RIGHT pool_1 - +MN908947.3 10713 10742 SARS-CoV-2_36_LEFT pool_2 + +MN908947.3 11092 11116 SARS-CoV-2_36_RIGHT pool_2 - +MN908947.3 11000 11023 SARS-CoV-2_37_LEFT pool_1 + +MN908947.3 11388 11414 SARS-CoV-2_37_RIGHT pool_1 - +MN908947.3 11305 11330 SARS-CoV-2_38_LEFT pool_2 + +MN908947.3 11689 11720 SARS-CoV-2_38_RIGHT pool_2 - +MN908947.3 11624 11651 SARS-CoV-2_39_LEFT pool_1 + +MN908947.3 12011 12033 SARS-CoV-2_39_RIGHT pool_1 - +MN908947.3 11937 11963 SARS-CoV-2_40_LEFT pool_2 + +MN908947.3 12317 12339 SARS-CoV-2_40_RIGHT pool_2 - +MN908947.3 12234 12255 SARS-CoV-2_41_LEFT pool_1 + +MN908947.3 12618 12643 SARS-CoV-2_41_RIGHT pool_1 - +MN908947.3 12519 12546 SARS-CoV-2_42_LEFT pool_2 + +MN908947.3 12895 12920 SARS-CoV-2_42_RIGHT pool_2 - +MN908947.3 12831 12856 SARS-CoV-2_43_LEFT pool_1 + +MN908947.3 13218 13240 SARS-CoV-2_43_RIGHT pool_1 - +MN908947.3 13124 13148 SARS-CoV-2_44_LEFT pool_2 + +MN908947.3 13506 13528 SARS-CoV-2_44_RIGHT pool_2 - +MN908947.3 13463 13485 SARS-CoV-2_45_LEFT pool_1 + +MN908947.3 13833 13859 SARS-CoV-2_45_RIGHT pool_1 - +MN908947.3 13752 13775 SARS-CoV-2_46_LEFT pool_2 + +MN908947.3 14120 14144 SARS-CoV-2_46_RIGHT pool_2 - +MN908947.3 14045 14075 SARS-CoV-2_47_LEFT pool_1 + +MN908947.3 14428 14457 SARS-CoV-2_47_RIGHT pool_1 - +MN908947.3 14338 14362 SARS-CoV-2_48_LEFT pool_2 + +MN908947.3 14717 14743 SARS-CoV-2_48_RIGHT pool_2 - +MN908947.3 14647 14674 SARS-CoV-2_49_LEFT pool_1 + +MN908947.3 15023 15050 SARS-CoV-2_49_RIGHT pool_1 - +MN908947.3 14953 14983 SARS-CoV-2_50_LEFT pool_2 + +MN908947.3 15336 15358 SARS-CoV-2_50_RIGHT pool_2 - +MN908947.3 15214 15237 SARS-CoV-2_51_LEFT pool_1 + +MN908947.3 15596 15619 SARS-CoV-2_51_RIGHT pool_1 - +MN908947.3 15535 15557 SARS-CoV-2_52_LEFT pool_2 + +MN908947.3 15917 15941 SARS-CoV-2_52_RIGHT pool_2 - +MN908947.3 15855 15881 SARS-CoV-2_53_LEFT pool_1 + +MN908947.3 16239 16260 SARS-CoV-2_53_RIGHT pool_1 - +MN908947.3 16112 16137 SARS-CoV-2_54_LEFT pool_2 + +MN908947.3 16483 16508 SARS-CoV-2_54_RIGHT pool_2 - +MN908947.3 16386 16408 SARS-CoV-2_55_LEFT pool_1 + +MN908947.3 16767 16796 SARS-CoV-2_55_RIGHT pool_1 - +MN908947.3 16692 16714 SARS-CoV-2_56_LEFT pool_2 + +MN908947.3 17082 17105 SARS-CoV-2_56_RIGHT pool_2 - +MN908947.3 16986 17013 SARS-CoV-2_57_LEFT pool_1 + +MN908947.3 17381 17405 SARS-CoV-2_57_RIGHT pool_1 - +MN908947.3 17323 17345 SARS-CoV-2_58_LEFT pool_2 + +MN908947.3 17688 17711 SARS-CoV-2_58_RIGHT pool_2 - +MN908947.3 17615 17642 SARS-CoV-2_59_LEFT pool_1 + +MN908947.3 17997 18022 SARS-CoV-2_59_RIGHT pool_1 - +MN908947.3 17911 17939 SARS-CoV-2_60_LEFT pool_2 + +MN908947.3 18307 18328 SARS-CoV-2_60_RIGHT pool_2 - +MN908947.3 18244 18267 SARS-CoV-2_61_LEFT pool_1 + +MN908947.3 18624 18652 SARS-CoV-2_61_RIGHT pool_1 - +MN908947.3 18550 18578 SARS-CoV-2_62_LEFT pool_2 + +MN908947.3 18936 18961 SARS-CoV-2_62_RIGHT pool_2 - +MN908947.3 18869 18891 SARS-CoV-2_63_LEFT pool_1 + +MN908947.3 19252 19277 SARS-CoV-2_63_RIGHT pool_1 - +MN908947.3 19183 19208 SARS-CoV-2_64_LEFT pool_2 + +MN908947.3 19558 19586 SARS-CoV-2_64_RIGHT pool_2 - +MN908947.3 19485 19513 SARS-CoV-2_65_LEFT pool_1 + +MN908947.3 19877 19901 SARS-CoV-2_65_RIGHT pool_1 - +MN908947.3 19810 19836 SARS-CoV-2_66_LEFT pool_2 + +MN908947.3 20186 20216 SARS-CoV-2_66_RIGHT pool_2 - +MN908947.3 20090 20117 SARS-CoV-2_67_LEFT pool_1 + +MN908947.3 20472 20497 SARS-CoV-2_67_RIGHT pool_1 - +MN908947.3 20377 20405 SARS-CoV-2_68_LEFT pool_2 + +MN908947.3 20766 20792 SARS-CoV-2_68_RIGHT pool_2 - +MN908947.3 20677 20699 SARS-CoV-2_69_LEFT pool_1 + +MN908947.3 21050 21080 SARS-CoV-2_69_RIGHT pool_1 - +MN908947.3 20988 21013 SARS-CoV-2_70_LEFT pool_2 + +MN908947.3 21358 21387 SARS-CoV-2_70_RIGHT pool_2 - +MN908947.3 21294 21316 SARS-CoV-2_71_LEFT pool_1 + +MN908947.3 21675 21700 SARS-CoV-2_71_RIGHT pool_1 - +MN908947.3 21532 21561 SARS-CoV-2_72_LEFT pool_2 + +MN908947.3 21904 21933 SARS-CoV-2_72_RIGHT pool_2 - +MN908947.3 21865 21889 SARS-CoV-2_73_LEFT pool_1 + +MN908947.3 22247 22274 SARS-CoV-2_73_RIGHT pool_1 - +MN908947.3 22091 22113 SARS-CoV-2_74_LEFT pool_2 + +MN908947.3 22474 22503 SARS-CoV-2_74_RIGHT pool_2 - +MN908947.3 22402 22428 SARS-CoV-2_75_LEFT pool_1 + +MN908947.3 22785 22805 SARS-CoV-2_75_RIGHT pool_1 - +MN908947.3 22648 22677 SARS-CoV-2_76_LEFT pool_2 + +MN908947.3 23028 23057 SARS-CoV-2_76_RIGHT pool_2 - +MN908947.3 22944 22974 SARS-CoV-2_77_LEFT pool_1 + +MN908947.3 23327 23351 SARS-CoV-2_77_RIGHT pool_1 - +MN908947.3 23219 23246 SARS-CoV-2_78_LEFT pool_2 + +MN908947.3 23611 23635 SARS-CoV-2_78_RIGHT pool_2 - +MN908947.3 23553 23575 SARS-CoV-2_79_LEFT pool_1 + +MN908947.3 23927 23955 SARS-CoV-2_79_RIGHT pool_1 - +MN908947.3 23853 23876 SARS-CoV-2_80_LEFT pool_2 + +MN908947.3 24233 24258 SARS-CoV-2_80_RIGHT pool_2 - +MN908947.3 24171 24194 SARS-CoV-2_81_LEFT pool_1 + +MN908947.3 24545 24567 SARS-CoV-2_81_RIGHT pool_1 - +MN908947.3 24426 24448 SARS-CoV-2_82_LEFT pool_2 + +MN908947.3 24814 24836 SARS-CoV-2_82_RIGHT pool_2 - +MN908947.3 24750 24772 SARS-CoV-2_83_LEFT pool_1 + +MN908947.3 25122 25150 SARS-CoV-2_83_RIGHT pool_1 - +MN908947.3 25051 25076 SARS-CoV-2_84_LEFT pool_2 + +MN908947.3 25438 25461 SARS-CoV-2_84_RIGHT pool_2 - +MN908947.3 25331 25353 SARS-CoV-2_85_LEFT pool_1 + +MN908947.3 25711 25740 SARS-CoV-2_85_RIGHT pool_1 - +MN908947.3 25645 25672 SARS-CoV-2_86_LEFT pool_2 + +MN908947.3 26026 26050 SARS-CoV-2_86_RIGHT pool_2 - +MN908947.3 25951 25979 SARS-CoV-2_87_LEFT pool_1 + +MN908947.3 26338 26360 SARS-CoV-2_87_RIGHT pool_1 - +MN908947.3 26255 26277 SARS-CoV-2_88_LEFT pool_2 + +MN908947.3 26635 26661 SARS-CoV-2_88_RIGHT pool_2 - +MN908947.3 26564 26587 SARS-CoV-2_89_LEFT pool_1 + +MN908947.3 26956 26979 SARS-CoV-2_89_RIGHT pool_1 - +MN908947.3 26873 26895 SARS-CoV-2_90_LEFT pool_2 + +MN908947.3 27256 27283 SARS-CoV-2_90_RIGHT pool_2 - +MN908947.3 27152 27177 SARS-CoV-2_91_LEFT pool_1 + +MN908947.3 27534 27560 SARS-CoV-2_91_RIGHT pool_1 - +MN908947.3 27447 27473 SARS-CoV-2_92_LEFT pool_2 + +MN908947.3 27826 27855 SARS-CoV-2_92_RIGHT pool_2 - +MN908947.3 27700 27726 SARS-CoV-2_93_LEFT pool_1 + +MN908947.3 28082 28104 SARS-CoV-2_93_RIGHT pool_1 - +MN908947.3 27996 28021 SARS-CoV-2_94_LEFT pool_2 + +MN908947.3 28394 28416 SARS-CoV-2_94_RIGHT pool_2 - +MN908947.3 28190 28214 SARS-CoV-2_95_LEFT pool_1 + +MN908947.3 28572 28598 SARS-CoV-2_95_RIGHT pool_1 - +MN908947.3 28512 28536 SARS-CoV-2_96_LEFT pool_2 + +MN908947.3 28893 28914 SARS-CoV-2_96_RIGHT pool_2 - +MN908947.3 28827 28849 SARS-CoV-2_97_LEFT pool_1 + +MN908947.3 29206 29227 SARS-CoV-2_97_RIGHT pool_1 - +MN908947.3 29136 29161 SARS-CoV-2_98_LEFT pool_2 + +MN908947.3 29512 29534 SARS-CoV-2_98_RIGHT pool_2 - +MN908947.3 29452 29475 SARS-CoV-2_99_LEFT pool_1 + +MN908947.3 29827 29854 SARS-CoV-2_99_RIGHT pool_1 -