Repository 'ena_upload'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/ena_upload

Changeset 0:382518f24d6d (2020-11-28)
Next changeset 1:57251c760cab (2021-04-30)
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ena_upload commit 57b434bcf493554d060a99b65e66f274d5c00e0a"
added:
README.md
ena_upload.xml
extract_tables.py
process_xlsx.py
samples_macros.xml
test-data/1.fastqsanger.gz
test-data/metadata_test_nonviral.xlsx
test-data/metadata_test_viral.xlsx
test-data/sample.fq
tool-data/geographic_location_1.loc.sample
tool-data/host_health_state_1.loc.sample
tool-data/host_sex_1.loc.sample
tool-data/instrument_model.loc.sample
tool-data/library_layout.loc.sample
tool-data/library_selection.loc.sample
tool-data/library_source.loc.sample
tool-data/library_strategy.loc.sample
tool-data/study_type.loc.sample
tool_data_table_conf.xml.sample
tool_data_table_conf.xml.test
b
diff -r 000000000000 -r 382518f24d6d README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md Sat Nov 28 09:45:44 2020 +0000
[
@@ -0,0 +1,31 @@
+# ena-upload-wrapper
+Galaxy wrapper for ena-cli-upload
+
+This tool is shipped in a ready to use Galaxy container found [here](https://github.com/ELIXIR-Belgium/ena-upload-container).
+
+## Setting up credentials on Galaxy
+
+The admin of the server can set up global credentials through a file with the format:
+```
+username: webin_id
+password: webin_password
+```
+
+The path to this file must be exported as an environment variable called $GALAXY_ENA_SECRETS
+
+Alternatively, the admin can enable users to set their own credentials for this tool.
+To enable it, make sure the file `config/user_preferences_extra_conf.yml` has the following section:
+
+```
+    ena_webin_account:
+        description: Your ENA Webin account details
+        inputs:
+            - name: webin_id
+              label: ENA Webin ID
+              type: text
+              required: False
+            - name: password
+              label: Password
+              type:  password
+              required: False
+```
b
diff -r 000000000000 -r 382518f24d6d ena_upload.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ena_upload.xml Sat Nov 28 09:45:44 2020 +0000
[
b'@@ -0,0 +1,549 @@\n+<tool id="ena_upload" name="ENA Upload tool" version="0.3" profile="20.01" license="MIT">\n+    <macros>\n+        <token name="@VERSION@">0.2.4</token>\n+        <import>samples_macros.xml</import>\n+    </macros>\n+    <requirements>\n+        <requirement type="package" version="@VERSION@">ena-upload-cli</requirement>\n+        <requirement type="package" version="1.2.0">xlrd</requirement>\n+    </requirements>\n+    <command detect_errors="exit_code"><![CDATA[\n+mkdir ./submission_files; \n+\n+#set working_dir = os.getcwd()\n+#set $dry_run_option = "False"\n+#set viral_submission = "False"\n+#if $action_options.input_format_conditional.input_format == "build_tables":\n+  python \'$__tool_directory__/extract_tables.py\' --action $action_options.action --out_dir ./submission_files --studies $studies_json;\n+  #set $studies_table_path = \'./submission_files/studies.tsv\'\n+  #set $samples_table_path =   \'./submission_files/samples.tsv\'\n+  #set $experiments_table_path = \'./submission_files/experiments.tsv\'\n+  #set $runs_table_path =  \'./submission_files/runs.tsv\'\n+#end if\n+\n+#if $action_options.input_format_conditional.input_format == "excel_tables":\n+    python \'$__tool_directory__/process_xlsx.py\'\n+    #if $action_options.input_format_conditional.viral_submission == "true":\n+        --vir \n+    #end if\n+    --action \'$action_options.action\' --form \'$action_options.input_format_conditional.xlsx_file\' --out_dir ./submission_files ;\n+    #set $studies_table_path = \'./submission_files/studies.tsv\'\n+    #set $samples_table_path =   \'./submission_files/samples.tsv\'\n+    #set $experiments_table_path = \'./submission_files/experiments.tsv\'\n+    #set $runs_table_path =  \'./submission_files/runs.tsv\'\n+    #if $action_options.input_format_conditional.dry_run == "true":\n+      #set $dry_run_option = "True"\n+    #end if\n+#end if\n+\n+#if $action_options.input_format_conditional.input_format != "user_generated_tables":\n+    cp $studies_table_path $studies_table_out;\n+    cp $samples_table_path $samples_table_out;\n+    cp $experiments_table_path $experiments_table_out;\n+    cp $runs_table_path $runs_table_out;\n+    #if $action_options.input_format_conditional.dry_run == "true":\n+      #set $dry_run_option = "True"\n+    #end if\n+#end if\n+\n+\n+#if $dry_run_option == "False" and $action_options.test_submit == "False":\n+    webin_id=`grep \'username\' $credentials`;\n+    if [ "\\$webin_id" = "" ]; then\n+      ## No credentials in user defined preferences    \n+      ## Fallback to global defined credentials (if exist)   \n+      #import os\n+      #if os.path.isfile(os.environ.get(\'GALAXY_ENA_SECRETS\', \'\')):\n+          credentials_path=\\${ENA_SECRETS};     \n+          webin_id=`grep \'username\' \\$GALAXY_ENA_SECRETS`;\n+          if [ "\\$webin_id" = "" ]; then\n+              echo "No global credentials defined. Check your GALAXY_ENA_SECRETS file or set your credentials via: User -> Preferences -> Manage Information";\n+              exit 1;\n+          fi;\n+      #else:\n+          echo "No ENA credentials defined. Set your credentials via: User -> Preferences -> Manage Information";\n+          exit 1;\n+      #end if\n+    else\n+      credentials_path=\'$credentials\';\n+    fi;\n+#end if\n+\n+#if $action_options.test_submit == "True":\n+    credentials_path=\'test_fake_path\';\n+#end if\n+\n+## create the list of files to upload and make the symlinks \n+#import re      \n+#set $files_to_upload = list()\n+#if $action_options.input_format_conditional.input_format == "build_tables":\n+    #for $study in $action_options.input_format_conditional.conditional_viral_metadata.rep_study:\n+      #for $sample in $study.rep_sample:\n+        #for $experiment in $sample.rep_experiment:\n+          #for $run in $experiment.rep_runs:\n+            #for $file in $run.upload_files:\n+                #set $safename_reads_file = re.sub(\'[^\\w\\-_\\.]\', \'_\', $file.element_identifier)\n+                ln -s \'$file\' $safename_reads_file &&\n+                $files_to_upload.append(str($safename_reads_file))'..b'repeat name="rep_sample">\n+                                <param name="sample_title" value="Test Sample title"/>\n+                                <param name="sample_description" value="Test Sample description"/>\n+                                <param name="scientific_name" value="Test Sample scientific name"/>\n+                                <param name="tax_id" value="Test Sample tax_id"/>\n+                                <param name="collection_date" value="2020"/>\n+                                <param name="geo_location_country" value="Belgium"/>\n+                                <param name="host_common_name" value="Human"/>\n+                                <param name="host_subject_id" value="Patient_001"/>\n+                                <param name="host_health_state" value="healthy"/>\n+                                <param name="host_sex" value="female"/>\n+                                <param name="host_scientific_name" value="homo sapiens"/>\n+                                <param name="collector_name" value="John The Collector"/>\n+                                <param name="collecting_institution" value="Hospital 01"/>\n+                                <param name="isolate" value="sample_001"/>\n+                                <repeat name="rep_experiment">\n+                                    <param name="experiment_title" value="Test experiment title"/>\n+                                    <param name="experiment_design" value="Test experiment design description"/>\n+                                    <param name="library_strategy" value="CTS"/>\n+                                    <param name="library_source" value="GENOMIC"/>\n+                                    <param name="library_selection" value="PCR"/>\n+                                    <param name="library_layout" value="SINGLE"/>\n+                                    <param name="insert_size" value="150"/>\n+                                    <param name="library_construction_protocol" value="Test library construction"/>\n+                                    <param name="platform" value="ILLUMINA"/>\n+                                    <param name="instrument_model" value="Illumina HiSeq 4000"/>\n+                                    <repeat name="rep_runs">\n+                                        <param name="upload_files" value="1.fastqsanger.gz,sample.fq" ftype="fastqsanger"/>\n+                                    </repeat>\n+                                </repeat>\n+                            </repeat>\n+                        </repeat>\n+                    </conditional>\n+                </conditional>\n+            </conditional>\n+            <param name="center" value="Some research center"/>\n+            <assert_command>\n+                <has_text_matching expression="ena-upload-cli"/>\n+                <has_text_matching expression="--data \'1.fastqsanger.gz\' \'sample.fq\'"/>\n+                <has_text_matching expression="--action \'add\' --center \'Some research center\'"/>\n+                <has_text_matching expression="--vir"/>\n+            </assert_command>\n+            <assert_stderr>\n+                <has_text_matching expression="ENA_upload: error: Oops, the file test_fake_path does not exist"/>\n+            </assert_stderr>\n+        </test>\n+    </tests>\n+    <help><![CDATA[\n+        This is a wrapper for the ENA upload tool in https://github.com/usegalaxy-eu/ena-upload-cli\n+        The input metadata can be submitted following the tabular format of the templates in https://github.com/usegalaxy-eu/ena-upload-cli/tree/master/example_tables\n+        It is also possible to submit an excel file by following the template in https://drive.google.com/file/d/1ncC22--tW2v-EI-te_r86sAZujIPAjlX/view?usp=sharing\n+        For viral submissions a larger set of metadata is required, you can find the template in https://drive.google.com/file/d/1U4VdcczsIecIXxseV8svE1zO_CBUadog/view?usp=sharing \n+    ]]></help>\n+    <citations>\n+    </citations>\n+</tool>\n'
b
diff -r 000000000000 -r 382518f24d6d extract_tables.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/extract_tables.py Sat Nov 28 09:45:44 2020 +0000
[
@@ -0,0 +1,93 @@
+import argparse
+import json
+import pathlib
+from datetime import datetime
+
+FILE_FORMAT = 'fastq'
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--studies', dest='studies_json_path', required=True)
+parser.add_argument('--out_dir', dest='out_path', required=True)
+parser.add_argument('--action', dest='action', required=True)
+args = parser.parse_args()
+
+with open(args.studies_json_path, 'r') as studies_json_file:
+    studies_dict = json.load(studies_json_file)
+studies_table = open(pathlib.Path(args.out_path) / 'studies.tsv', 'w')
+studies_table.write('\t'.join(['alias', 'status', 'accession', 'title', 'study_type',
+                               'study_abstract', 'pubmed_id', 'submission_date']) + '\n')
+samples_table = open(pathlib.Path(args.out_path) / 'samples.tsv', 'w')
+experiments_table = open(pathlib.Path(args.out_path) / 'experiments.tsv', 'w')
+experiments_table.write('\t'.join(['alias', 'status', 'accession', 'title', 'study_alias',
+                                   'sample_alias', 'design_description', 'library_name',
+                                   'library_strategy', 'library_source', 'library_selection',
+                                   'library_layout', 'insert_size',
+                                   'library_construction_protocol', 'platform', 'instrument_model',
+                                   'submission_date']) + '\n')
+runs_table = open(pathlib.Path(args.out_path) / 'runs.tsv', 'w')
+runs_table.write('\t'.join(['alias', 'status', 'accession', 'experiment_alias', 'file_name',
+                            'file_format', 'file_checksum', 'submission_date']) + '\n')
+
+action = args.action
+
+dt_oobj = datetime.now(tz=None)
+timestamp = dt_oobj.strftime("%Y%m%d_%H:%M:%S")
+for study_index, study in enumerate(studies_dict):
+    study_alias = 'study_' + str(study_index) + '_' + timestamp
+    studies_table.write('\t'.join([study_alias, action, 'ENA_accession', study['title'],
+                                   study['type'], study['abstract'], study['pubmed_id'],
+                                   'ENA_submission_data']))
+    if "geo_location" in study['samples'][0].keys():           # sample belongs to a viral sample
+        samples_table.write('\t'.join(['alias', 'status', 'accession', 'title', 'scientific_name',
+                                       'taxon_id', 'sample_description', 'collection_date',
+                                       'geographic_location', 'host_common_name', 'host_subject_id',
+                                       'host_health_state', 'host_sex', 'host_scientific_name',
+                                       'collector_name', 'collecting_institution', 'isolate',
+                                       'submission_date']) + '\n')
+    else:
+        samples_table.write('\t'.join(['alias', 'status', 'accession', 'title', 'scientific_name',
+                                       'taxon_id', 'sample_description', 'submission_date']) + '\n')
+    for sample_index, sample in enumerate(study['samples']):
+        sample_alias = 'sample_' + str(sample_index) + '_' + timestamp
+        if "geo_location" in sample.keys():  # sample belongs to a viral sample
+            if sample['collector_name'] == '':
+                sample['collector_name'] = 'unknown'
+            samples_table.write('\t'.join([sample_alias, action, 'ena_accession', sample['title'],
+                                           sample['tax_name'], sample['tax_id'],
+                                           sample['description'], sample['collection_date'],
+                                           sample['geo_location'], sample['host_common_name'],
+                                           sample['host_subject_id'], sample['host_health_state'],
+                                           sample['host_sex'], sample['host_scientific_name'],
+                                           sample['collector_name'],
+                                           sample['collecting_institution'], sample['isolate'],
+                                           'ENA_submission_date']) + '\n')
+        else:
+            samples_table.write('\t'.join([sample_alias, action, 'ena_accession', sample['title'],
+                                           sample['tax_name'], sample['tax_id'],
+                                           sample['description'], 'ENA_submission_date']) + '\n')
+        for exp_index, exp in enumerate(sample['experiments']):
+            exp_alias = 'experiment_' + str(exp_index) + '.' + str(sample_index) + '_' + timestamp
+            lib_alias = 'library_' + str(exp_index) + '_' + str(sample_index)
+            experiments_table.write('\t'.join([exp_alias, action, 'accession_ena', exp['title'],
+                                               study_alias, sample_alias, exp['experiment_design'],
+                                               lib_alias, exp['library_strategy'],
+                                               exp['library_source'], exp['library_selection'],
+                                               exp['library_layout'].lower(), exp['insert_size'],
+                                               exp['library_construction_protocol'],
+                                               exp['platform'], exp['instrument_model'],
+                                               'submission_date_ENA']) + '\n')
+            run_index = 0
+            # exp['runs'] is a list of lists
+            for run in exp['runs']:
+                run_index += 1
+                run_alias = '.'.join(['run_' + str(run_index), str(exp_index), str(sample_index)]) \
+                            + '_' + timestamp
+                for file_entry in run:
+                    runs_table.write('\t'.join([run_alias, action, 'ena_run_accession', exp_alias,
+                                                file_entry, FILE_FORMAT, 'file_checksum',
+                                                'submission_date_ENA']) + '\n')
+
+studies_table.close()
+samples_table.close()
+experiments_table.close()
+runs_table.close()
b
diff -r 000000000000 -r 382518f24d6d process_xlsx.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/process_xlsx.py Sat Nov 28 09:45:44 2020 +0000
[
b'@@ -0,0 +1,173 @@\n+import argparse\n+import pathlib\n+import sys\n+\n+import xlrd\n+\n+\n+FILE_FORMAT = \'fastq\'\n+\n+\n+def extract_data(xl_sheet, expected_columns):\n+    """\n+    1. Check that the columns I expect are present in the sheet\n+    (any order and mixed with others, it\'s just a verification that\n+    the user filled the correct template)\n+    2. Fill a dictionary with the rows data indexed by first column in list"""\n+    sheet_columns = {}\n+    for sh_col in range(xl_sheet.ncols):\n+        if xl_sheet.cell(0, sh_col).value in expected_columns:\n+            if xl_sheet.cell(0, sh_col).value in sheet_columns.keys():\n+                sys.exit("Duplicated columns")\n+            else:\n+                sheet_columns[xl_sheet.cell(0, sh_col).value] = sh_col\n+    for col in range(len(expected_columns)):\n+        assert expected_columns[col] in sheet_columns.keys(), \\\n+            "Expected column %s not found" % expected_columns[col]\n+\n+    # fetch rows in a dict\n+    data_dict = {}\n+    # the first of the expected columns will be the index\n+    index_col = sheet_columns[expected_columns[0]]\n+    # skip first 2 rows: column names + comments rows\n+    for row_id in range(2, xl_sheet.nrows):\n+        row_dict = {}\n+        for col in range(1, len(expected_columns)):\n+            sheet_col_index = sheet_columns[expected_columns[col]]\n+            row_dict[expected_columns[col]] = xl_sheet.cell(row_id, sheet_col_index).value\n+        # should check for duplicate alias/ids?\n+        data_dict[xl_sheet.cell(row_id, index_col).value] = row_dict\n+    return data_dict\n+\n+\n+parser = argparse.ArgumentParser()\n+parser.add_argument(\'--form\', dest=\'xlsx_path\', required=True)\n+parser.add_argument(\'--out_dir\', dest=\'out_path\', required=True)\n+parser.add_argument(\'--action\', dest=\'action\', required=True)\n+parser.add_argument(\'--vir\', dest=\'viral_submission\', required=False, action=\'store_true\')\n+args = parser.parse_args()\n+\n+xl_workbook = xlrd.open_workbook(args.xlsx_path)\n+\n+# PARSE STUDIES\n+#################\n+xl_sheet = xl_workbook.sheet_by_name(\'ENA_study\')\n+if xl_sheet.nrows < 3:\n+    raise ValueError(\'No entries found in studies sheet\')\n+studies_dict = {}\n+studies_col = [\'alias\', \'title\', \'study_type\', \'study_abstract\']\n+studies_dict = extract_data(xl_sheet, studies_col)\n+\n+# PARSE SAMPLES\n+#################\n+xl_sheet = xl_workbook.sheet_by_name(\'ENA_sample\')\n+if xl_sheet.nrows < 3:\n+    raise ValueError(\'No entries found in samples\')\n+if args.viral_submission:\n+    samples_cols = [\'alias\', \'title\', \'scientific_name\', \'sample_description\',\n+                    \'geographic location (country and/or sea)\', \'host common name\',\n+                    \'host health state\', \'host sex\', \'host scientific name\', \'collector name\',\n+                    \'collection date\', \'collecting institution\', \'isolate\']\n+else:\n+    samples_cols = [\'alias\', \'title\', \'scientific_name\', \'sample_description\']\n+samples_dict = extract_data(xl_sheet, samples_cols)\n+\n+# PARSE EXPERIMENTS\n+#################\n+xl_sheet = xl_workbook.sheet_by_name(\'ENA_experiment\')\n+if xl_sheet.nrows < 3:\n+    raise ValueError(\'No experiments found in experiments sheet\')\n+exp_columns = [\'alias\', \'title\', \'study_alias\', \'sample_alias\', \'design_description\', \'library_name\',\n+               \'library_strategy\', \'library_source\', \'library_selection\', \'library_layout\',\n+               \'insert_size\', \'library_construction_protocol\', \'platform\', \'instrument_model\']\n+experiments_dict = extract_data(xl_sheet, exp_columns)\n+\n+# PARSE RUNS SHEET\n+#################\n+xl_sheet = xl_workbook.sheet_by_name(\'ENA_run\')\n+if xl_sheet.nrows < 3:\n+    raise ValueError(\'No entries found in runs sheet\')\n+run_cols = [\'alias\', \'experiment_alias\', \'file_name\', \'file_format\']\n+runs_dict = extract_data(xl_sheet, run_cols)\n+\n+# WRITE HEADERS TO TABLES\n+studies_table = open(pathlib.Path(args.out_path) / \'studies.tsv\', \'w\')\n+studies_table.write(\'\\t\'.join([\'alias\', \'status\', \'accession\', \'title\', \'study_type\',\n+                     '..b'                                   \'platform\', \'instrument_model\', \'submission_date\']) + \'\\n\')\n+\n+runs_table = open(pathlib.Path(args.out_path) / \'runs.tsv\', \'w\')\n+runs_table.write(\'\\t\'.join([\'alias\', \'status\', \'accession\', \'experiment_alias\', \'file_name\',\n+                            \'file_format\', \'file_checksum\', \'submission_date\']) + \'\\n\')\n+action = args.action\n+\n+# WRITE  DICTIONARIES TO TABLE FILES\n+\n+# ADD A TIMESTAMP TO THE ALIAS? SEEMS LIKE ENA REQUIRES ALL ENTRIES FOR A WEBIN TO HAVE UNIQUE IDS?\n+# dt_oobj = datetime.now(tz=None)\n+# timestamp = dt_oobj.strftime("%Y%m%d_%H:%M:%S")\n+for study_alias, study in studies_dict.items():\n+    # study_alias = study_alias + \'_\' + timestamp\n+    studies_table.write(\'\\t\'.join([study_alias, action, \'ENA_accession\', study[\'title\'],\n+                                   study[\'study_type\'], study[\'study_abstract\'], \'\',\n+                                   \'ENA_submission_data\']) + \'\\n\')  # assuming no pubmed_id\n+for sample_alias, sample in samples_dict.items():\n+    # sample_alias = sample_alias + \'_\' + timestamp\n+    if args.viral_submission:\n+        if sample[\'collector name\'] == \'\':\n+            sample[\'collector name\'] = \'unknown\'\n+        samples_table.write(\'\\t\'.join([sample_alias, action, \'ena_accession\', sample[\'title\'],\n+                                       sample[\'scientific_name\'], \'tax_id_updated_by_ENA\',\n+                                       sample[\'sample_description\'], sample[\'collection date\'],\n+                                       sample[\'geographic location (country and/or sea)\'],\n+                                       sample[\'host common name\'], \'host subject id\',\n+                                       sample[\'host health state\'], sample[\'host sex\'],\n+                                       sample[\'host scientific name\'], sample[\'collector name\'],\n+                                       sample[\'collecting institution\'], sample[\'isolate\'],\n+                                       \'ENA_submission_date\']) + \'\\n\')\n+    else:\n+        samples_table.write(\'\\t\'.join([sample_alias, action, \'ena_accession\', sample[\'title\'],\n+                                       sample[\'scientific_name\'], \'tax_id_updated_by_ENA\',\n+                                       sample[\'sample_description\']]) + \'\\n\')\n+    for exp_alias, exp in experiments_dict.items():\n+        # should I check here if any experiment has a study or sample alias that is incorrect?\n+        # (not listed in the samples or study dict)\n+        # process the experiments for this sample\n+        if exp[\'sample_alias\'] == sample_alias:\n+            lib_alias = \'library_\' + exp_alias + \'_\' + exp[\'sample_alias\']\n+            experiments_table.write(\'\\t\'.join([exp_alias, action, \'accession_ena\', exp[\'title\'],\n+                                               exp[\'study_alias\'], sample_alias,\n+                                               exp[\'design_description\'], lib_alias,\n+                                               exp[\'library_strategy\'], exp[\'library_source\'],\n+                                               exp[\'library_selection\'],\n+                                               exp[\'library_layout\'].lower(),\n+                                               str(int(exp[\'insert_size\'])),\n+                                               exp[\'library_construction_protocol\'],\n+                                               exp[\'platform\'], exp[\'instrument_model\'],\n+                                               \'submission_date_ENA\']) + \'\\n\')\n+            for run_alias, run in runs_dict.items():\n+                if run[\'experiment_alias\'] == exp_alias:\n+                    runs_table.write(\'\\t\'.join([run_alias, action, \'ena_run_accession\', exp_alias,\n+                                                run[\'file_name\'], FILE_FORMAT, \'file_checksum\',\n+                                                \'submission_date_ENA\']) + \'\\n\')\n+studies_table.close()\n+samples_table.close()\n+experiments_table.close()\n+runs_table.close()\n'
b
diff -r 000000000000 -r 382518f24d6d samples_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/samples_macros.xml Sat Nov 28 09:45:44 2020 +0000
b
b'@@ -0,0 +1,191 @@\n+<macros>\n+\n+    <xml name="table_inputs_macro">\n+        <conditional name="input_format_conditional">\n+            <param name="input_format" type="select" label="Would you like to submit pregenerated table files or interactively define the input structures?">\n+                <option value="excel_tables" selected="True">User generated metadata tables based on Excel templates</option>\n+                <option value="build_tables" selected="False">Interactive generation of the study structure (recommended for small studies)</option>\n+                <option value="user_generated_tables" selected="False">User generated tabular files (studies - samples - experiments - runs) </option>\n+            </param>\n+            <when value="excel_tables">\n+                <param name="viral_submission" type="boolean" label="Does your submission data belong to a viral sample?" help="If you select yes then your data will be submitted using the ENA virus pathogen reporting standard checklist (see: https://ena-browser-docs.readthedocs.io/en/latest/help_and_guides/sars-cov-2-submissions.html)" />\n+                <param name="dry_run" type="boolean" label="Print the tables but do not submit the datasets" help="If yes is selected then NO submission will be performed."/>\n+                <param name="xlsx_file" type="data" format="xlsx" />\n+                <param name="data" type="data" format="fastqsanger.gz,fastqsanger.bz2,fastq.gz,fastq.bz2" multiple="true" label="Select all datasets to upload" help="Compressed reads files listed in the runs table"/>\n+            </when>\n+            <when value="user_generated_tables">\n+                <param name="viral_submission" type="boolean" label="Does your submission data belong to a viral sample?" help="If you select yes then your data will be submitted using the ENA virus pathogen reporting standard checklist (see: https://ena-browser-docs.readthedocs.io/en/latest/help_and_guides/sars-cov-2-submissions.html)" />\n+                <param name="data" type="data" format="fastqsanger.gz,fastqsanger.bz2,fastq.gz,fastq.bz2" multiple="true" label="Select all datasets to upload" help="Compressed reads files listed in the runs table"/>\n+                <param name="studies_users_table" type="data" format="tabular" multiple="false" label="Studies table" help="Studies metadata file"/>\n+                <param name="samples_users_table" type="data" format="tabular" multiple="false" label="Samples table" help="Samples metadata file"/>\n+                <param name="experiments_users_table" type="data" format="tabular" multiple="false" label="Experiments table" help="Experiments metadata file"/>\n+                <param name="runs_users_table" type="data" format="tabular" multiple="false" label="Runs table" help="Runs metadata file"/>\n+            </when>\n+            <when value="build_tables">\n+                <param name="dry_run" type="boolean" label="Print the tables but do not submit the datasets" help="If yes is selected then NO submission will be performed."/>\n+                <conditional name="conditional_viral_metadata">\n+                    <param name="viral_sample" type="boolean" label="Does your submission contains viral samples?" />\n+                    <when value="true">\n+                        <expand macro="viral_samples" />\n+                    </when>\n+                    <when value="false">\n+                        <expand macro="nonviral_samples" />\n+                    </when>\n+                </conditional>\n+            </when>\n+        </conditional>\n+        <param name="center" type="text" optional="False" label="Affiliation center"/>\n+    </xml>\n+    <xml name="viral_samples">\n+        <repeat name="rep_study" title="Study" min="1">\n+            <param name="study_title" type="text" optional="False" label="Please provide a short descriptive title for the study"/>\n+            <param name="study_abstract" type="text" optional="True" label="Please provide an abstract'..b'+        <repeat name="rep_sample" title="Samples associated with this study" min="1" >\n+            <param name="sample_title" type="text" label="Sample title"/>\n+            <param name="sample_description" type="text" help="e.g: liver cells" label="Describe the type of sample"/>\n+            <param name="scientific_name" type="text" label="Enter the species of the sample" help="e.g Severe acute respiratory syndrome coronavirus 2"/>\n+            <param name="tax_id" type="text" label="Enter the taxonomic ID corresponding to the sample species" />\n+            <repeat name="rep_experiment" title="Sequencing experiments performed with this sample" min="1" >\n+                <param name="experiment_title" type="text" label="Specify an experiment title" />\n+                <param name="experiment_design" type="text" label="Describe the experiment design" />\n+                <param name="library_strategy" type="select" label="Library strategy" help="The\xc2\xa0library\xc2\xa0strategy\xc2\xa0specifies\xc2\xa0the\xc2\xa0sequencing\xc2\xa0technique\xc2\xa0intended\xc2\xa0for\xc2\xa0this\xc2\xa0library">\n+                    <options from_data_table="library_strategy">\n+                        <column name="value" index="0"/>\n+                    </options>\n+                </param>\n+                <param name="library_source" type="select" label="Select library source" help="The\xc2\xa0library\xc2\xa0source\xc2\xa0specifies\xc2\xa0the\xc2\xa0type\xc2\xa0of\xc2\xa0source\xc2\xa0material\xc2\xa0that\xc2\xa0is\xc2\xa0being\xc2\xa0sequenced">\n+                    <options from_data_table="library_source">\n+                        <column name="value" index="0"/>\n+                    </options>\n+                </param>\n+                <param name="library_selection" type="select" label="Library selection" help="The\xc2\xa0library\xc2\xa0selection\xc2\xa0specifies\xc2\xa0whether\xc2\xa0any\xc2\xa0method\xc2\xa0was\xc2\xa0used\xc2\xa0to\xc2\xa0select\xc2\xa0for\xc2\xa0or\xc2\xa0against,\xc2\xa0enrich,\xc2\xa0or\xc2\xa0screen\xc2\xa0the\xc2\xa0material\xc2\xa0being\xc2\xa0sequenced">\n+                    <options from_data_table="library_selection">\n+                        <column name="value" index="0"/>\n+                    </options>\n+                </param>\n+                <param name="library_layout" type="select" label="Library layout">\n+                    <options from_data_table="library_layout">\n+                        <column name="value" index="0"/>\n+                    </options>\n+                </param>\n+                <param name="insert_size" type="integer" value="0" label="Specify the insert size"/>\n+                <param name="library_construction_protocol" type="text" label="Please describe the library construction protocol"/>\n+                <param name="platform" type="select" label="Select the sequencing platform used">\n+                    <option value="LS454">LS454</option>\n+                    <option value="ILLUMINA">Illumina</option>\n+                    <option value="HELICOS">Helicos</option>\n+                    <option value="ABI_SOLID">ABI Solid</option>\n+                    <option value="COMPLETE_GENOMICS">Complete Genomics</option>\n+                    <option value="BGISEQ">BGI Seq</option>\n+                    <option value="OXFORD_NANOPORE">Oxford Nanopore</option>\n+                    <option value="PACBIO_SMRT">PacBio</option>\n+                    <option value="ION_TORRENT">Ion Torrent</option>\n+                    <option value="CAPILLARY">Capillary sequencing</option>\n+                </param>\n+                <param name="instrument_model" type="select" label="Instrument model">\n+                    <options from_data_table="instrument_model">\n+                        <column name="value" index="0"/>\n+                    </options>\n+                </param>\n+                <repeat name="rep_runs" title="Runs executed within this experiment" min="1" >\n+                    <param name="upload_files" type="data" format="fastqsanger.gz,fastqsanger.bz2,fastq.gz,fastq.bz2" multiple="true" label="File(s) associated with this run"/>\n+                </repeat>\n+            </repeat>\n+        </repeat>\n+    </repeat>\n+    </xml>\n+</macros>\n'
b
diff -r 000000000000 -r 382518f24d6d test-data/1.fastqsanger.gz
b
Binary file test-data/1.fastqsanger.gz has changed
b
diff -r 000000000000 -r 382518f24d6d test-data/metadata_test_nonviral.xlsx
b
Binary file test-data/metadata_test_nonviral.xlsx has changed
b
diff -r 000000000000 -r 382518f24d6d test-data/metadata_test_viral.xlsx
b
Binary file test-data/metadata_test_viral.xlsx has changed
b
diff -r 000000000000 -r 382518f24d6d test-data/sample.fq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sample.fq Sat Nov 28 09:45:44 2020 +0000
b
b'@@ -0,0 +1,400 @@\n+@M01368:8:000000000-A3GHV:1:1101:6911:8255/1\n+ATCTGGTTCCTACTTCAGGGCCATAAAACCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATT\n++\n+BCCCCFFFFFFFGGGGGGGGGGGHHHHGHGHHHHHHHHHGGGGGGHHHHGHHHHHHHHHHGHHHHHHGGHGGHHHGHHHHFHHGHHHHHHHHHGHEHEFFGHHEGGCEFGGFHHHBGHHGHHHHGHFHHHGHGHGHGGCDFDDACGGGGGGGAAFFFFFFFFFBAFFFFFB;FFFFFFADDFFFFFFFFFFEFFFFFFFFFFBFFFFFFFFFFFFFFEFFFFFFFFBFEFFFFEFE;DFFFDFBFF/9BFB\n+@M01368:8:000000000-A3GHV:1:1101:14518:9998/1\n+GTTATTATTATGTCCTACAAGCATTAATTAATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGGGATAGACCTGTGATCCATCGTGAT\n++\n+AAAAAFFFFFFFGGGGGGGGGGHGGHHHHGHHHHHHHGCGHHHHHHHHHHHHHHHGGGGGHHHHHHHHHGHHGFHFE5BGEEHFGGGHHHHHHHHFBHHGGGGFHGHHFGHHHHGHHHHHHGEGGGGFHFHGEGHHGGCDGDGHGGGDGGHGGCGGGHGHHH/ACDG?.1FGCDCCGCA.CC@CDCHFHGFFGGGEBFGAB//CEFBFGG.:;D;;A0AFFFFFB..:@ABFF//;BFFFFFBF/9D:A//\n+@M01368:8:000000000-A3GHV:1:1101:18422:19051/1\n+GTATCCGACATCTGGTTCCTACTTCAGGGTCATAAAACCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACG\n++\n+CCCCCFDDDDDFGGGGGGGGGGHHHHHHHHHHHHHHHHGHHHHHHFHHHHGGGGHHHHHHHHHGHHHHHHHHHHHHGGHGGHHHHHHHHHHHHHHHHHHHHHHHHHHHGHHHHHGCGGGHHHHHHHHHHHHHHHHHHHHHHGFDHGFHCFGGGGFGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFFFFFFFFF:FFF.\n+@M01368:8:000000000-A3GHV:1:1101:25545:21098/1\n+ATTAATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATAAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCGTGATGGCTTATTTAAGGGGAACGGGTGGGG\n++\n+33AA?DFD5BDFGGGFEBDGEGHEGHGEGHCEGGHHCHGHHFFHHGFGAGE53FF2FAFFGDE5FFFE5GFBFGAEE1GHHHGHHHEHE3FGHF@GEGEGGHHGG3FAGFFDE?EEE3GFEGFGFGGCG?GHHHFHGGGC@DHFFHD/A<C@EGFDCGGGHFHHHEGFGHBFHG0:CEHFCHGGED.;0CEF.F99B0CFFEEFGGG0FBFBBF0F/FFBDE?/9//9B.FFBFFFFFFBF..A..;@B--\n+@M01368:8:000000000-A3GHV:1:1101:5446:12248/1\n+AATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCGTGATGTCTTATTTAAGGGGAACGTGTGGGCTAT\n++\n+CCCCDFFFFCCFGGGGGGGGFGHHHHHGGGGHHHHHHHHHHHHHHHHGBGHGGHGGHHHHHHHHHHGHGHGGGGGHHHHHHHHGHHHHHHHHHGGGGGHHHHFFGHHHGGGGGGHHHGFGGHHGGGGHHHHHHGGGGGGHGHHGGGGGGGHGGGGGGHHHHHHHHHHHHHFHGGGHHHHGGGGGG:FE;EGEGGGGG/;?FGGGGGGGFFFFGGFFFFFFFFFBFFFFFFFFFFBFFFFFFEFFFFFEFFF\n+@M01368:8:000000000-A3GHV:1:1101:5861:6452/1\n+ATTATGTCCTACAAGCATTAATTAATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCGTGATGTCTTT\n++\n+ABCCCFFFFFFFGGGGGGGGGGHHHHHHHHHHHGHHHHGHHHHHHHHHHHGGGGHHHHHHHHFHHHHHHGGHGHGGHGGHHHHHHHGGHFHHHGGGGGHHHHHHHHHHHHHHHHHHGGGGGHHHHHEGGHHGGGGGGHHHGGGGHGGGGGHHHHHHGGGDCGHHHHGGGGGGGHEFGGGGHGHHHGHGGGFGGGGGGGEGGGGGGG?E0CEFGGGGGFEE9EEFFFFFBFFFFFFFBFFBD.AFFFFFFF0\n+@M01368:8:000000000-A3GHV:1:1102:10403:6021/1\n+CGCTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGACATCTGGTTCCTACTTCAGGGTCATAAAACCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTG\n++\n+>A@AAAAD2ADDFFGGGGGFGGHA?EAEFBEAGHFABFGG5FDF5DB1EEGAFDFB53FF5FH@G5FFEHGHEFHFFHBE333GF43GCGGGGE@0?BFGGB0B?FHGFDGGHHHBFFDEGGHGFFFDFE@<1>@FFFGHHHHFHEFGDABFFGG/@DCE<CG1<GF0/DD000=<DHGBDFDCECE/:AC?-;-;9B/ABBB-AD9BFB99AB?BDFBAD-.9..@;=;;..9..9/9;BEF;A:9/BFF\n+@M01368:8:000000000-A3GHV:1:1102:10677:23253/1\n+CCTTAAATAAGACATCACGATGGATCACAGGTCTATCACC'..b'FHGDF@@?CGFHCEGGGFD.CCC?EGHBHHHFHHFBCFFGEB/CEGGGGDAA.90C9CEBFGGBBF/9.9FBFFFBBFF//99FFFFEABF//99FFEFFFBFF\n+@M01368:8:000000000-A3GHV:1:1113:5741:16959/1\n+TAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCGTGATGTCTTATTTAAGGGGAACGTGTGGGCTATTTAGGTTTTATGA\n++\n+ABBBBFFFFFFFGGGFGGGGGGHHHGHHGGHBGHGAGFFCAFGHGFFGHHGFHHHHHGGGGGHGHHHHHHHHE3BFFHHHGG0EDF@GHFFGGGHGGGGGGGGGGGGGHHGGEEFHGFHHDDG@DGGGHHGDGGGGGHGG?CF?HHGHHHGHGHHHFFHGGGHHHHGGCD.;0<C;CGGGGEFF/.;0;FFFBF/0;0CFGFFB..9B/;0CBFFBBFFFFBAC?DED9;B9AD;.FFFB/B/;FBA/B//\n+@M01368:8:000000000-A3GHV:1:1114:10130:11959/1\n+CGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTCTGATCTGTCTCTTATACACATCTCCGAGCCCACGAGACTAAGGCGAATCTCGTATGCCGTCTTCTGCTTGCAACAAACACACATCCAGA\n++\n+>A33>FFFFFF@FFFGGGGFGGD4EGGGGGHHGFFGHFGGHHHFEFHECFHHHEHGAGBCCGCCEGGHGHEGFBFHFHHHHGGGHFHGHEGGGFEGEGG??@DBGHGGC-@FFGHFHFHB-??DA-DD@9:BEBG@B?E?A.ABBFBFA??F.FF/BFFB/B9B/9;BF9FF9FFFFFFFFFFFFFF?BB?;9EE;-;DDB9//;B-B@;ABFFEFFFF/-.9A.;//9/BF./B/..9.9:...//////\n+@M01368:8:000000000-A3GHV:1:1114:14540:5315/1\n+CTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCGTGATGTCTTATTTAAGGGGAACGTGGGGGCTATTTAGGTTTTT\n++\n+AABCCFFFFFFFGGGGGGGGGGHHHHHHHFHHHHGHHGHHGGGHGGHHHHHHHGHHHHHHGGGGGHHFHHHFGHHGGFHHHHHGGGGGHHHGHGGHHHGGGGGGHGHGGGGHHGGGGHHHHHEGDDFGFFFHHGGGGGCDAFCFGFDHHHHGGHGHHHHHHBCGEHHHHGGHG.ACGEHGG0CBFFF:A;BB0;09CGF00CFFFE0AA?//CFFFFFFFFFFFFFFFBEF;A.-=A--:BBFB90;;FE.\n+@M01368:8:000000000-A3GHV:1:1114:15066:16302/1\n+TAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACTTACTAACGGTTGTTAATTAATTATTGCTTGTAGGACA\n++\n+BBBBAFFBDFBFBGGGGGFGGGBGFFFHGFHHGFFFHGHHHGHHHHFFHHHGHGC?AEFFHEFBFFFGHHHHH1FDGFFHGHGHFEGCGC-<<AHHHGGGGGGGFHH0GHFCCCADGGG?.9/A-???DGGFFF.9F9/EE-;;BBBFFBFFFFFFFFFEFFFFBFFBBFFFFF/BFFBFFFFF-DBFFF;/BFF//BB//9/BEA---9:BFFFFFF/F/.;.:@9.BBFF/;BFF/;/////9/////.\n+@M01368:8:000000000-A3GHV:1:1114:16639:15258/1\n+CCTAAATAGCCCACACGTTCCCCTTAAATAAGACATCACGATGGATCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCATTTGGTATTTTCGTCTGGGGGGTGCGCACGCGATAGCATTGCGAGACGCTGGAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATCCTATTATTTATCGCACCTACGTCCAATATTACAGGCGAACATACTTACTAAATTGTGT\n++\n+11>>ABFFFFFFGGCGC1BBF1GHHHBHHHHGFHGH1A100AA/GGEHGFBAA1FFD2FHHHHECG2F1BB/E0FC/A>EE/FGGFGEF1EGBBEHHCGGGHBGEHFHE0B?E--;C?CCGGG@A@GBFBBBB09?@??A-AB--ABE@=-=-9AE9A;FFFFFE=9-//;//;9FF/////;;///9B///;/B////9FFBB;--A@-;/9;9-:-/;;FFFE9BF?@;-9-99/B9F/://///99/;\n+@M01368:8:000000000-A3GHV:1:1114:2404:13066/1\n+TCCTACAAGCATTAATTAATTAACACACTTTAGTAAGTATGTTCGCCTGTAATATTGAACGTAGGTGCGATAAATAATAGGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCTGTCTATTATACACATC\n++\n+CCCCCFFFFCFFGGGGGGGGGGHHHHHGHHHHHHHHHFFHHHHHGGGGHHHHHHHHFHHHHHHFGGHHGGHGGHHHHHHGHHFHHHHGGGGGGHHHHHHGHHHHHHHHHHGGGGGGGHH?FGHHHGGGGGGHHGGFGGHHGGGGHHHHHFGGGGFGHGHHGGGGGGGHGGGEGGHHGHHHHHHHHHGFBFFDA0FGGGFFGG0:EFGGGGGGGG;AEBF0B0BFFBFFFFFFFFFFFFFFFFFFFFFEFF0\n+@M01368:8:000000000-A3GHV:1:1114:9184:6959/1\n+GGATGAGGCAGGAATCAAAGACAGATACTGCGACATAGGGTGCTCCGGCTCCAGCGTCTCGCAATGCTATCGCGTGCACACCCCCCAGACGAAAATACCAAATGCATGGAGAGCTCCCGTGAGTGGTTAATAGGGTGATAGACCTGTGATCCATCGTGATGTCTTATTTAAGGGGAACGTGTGGGCTATTTAGGTTTTATGACCCTGAAGTAGGAACCAGATGTCGGATACAGTTCACTTTCTGTCTCTTA\n++\n+AABBBFFFCCCBFGGGGGGGGGHHHHHHHHGGGGGGHHHG3FFHHHFGFGGGHHHGGGEHHGGGGHHHHHHGGGGGGHGHGGGGGGGDEGGGGEGGFHHHHHHHHHHHHGGGFGEHHGGFDGGGDFFGFHHHHGFCFHHHHHEFHFHGGFFGHHGGGHHHHDGHHHFHHHFFFFGFGGG.EFGGGGFGEBFGGGFGFGGGGFFBFGGBBFFFFFB/FEFF?///;A::AABBFFFBFFFFFFFFFBFFFF/\n'
b
diff -r 000000000000 -r 382518f24d6d tool-data/geographic_location_1.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/geographic_location_1.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,279 @@
+not applicable
+not collected
+not provided
+restricted access
+Afghanistan
+Albania
+Algeria
+American Samoa
+Andorra
+Angola
+Anguilla
+Antarctica
+Antigua and Barbuda
+Arctic Ocean
+Argentina
+Armenia
+Aruba
+Ashmore and Cartier Islands
+Atlantic Ocean
+Australia
+Austria
+Azerbaijan
+Bahamas
+Bahrain
+Baker Island
+Baltic Sea
+Bangladesh
+Barbados
+Bassas da India
+Belarus
+Belgium
+Belize
+Benin
+Bermuda
+Bhutan
+Bolivia
+Borneo
+Bosnia and Herzegovina
+Botswana
+Bouvet Island
+Brazil
+British Virgin Islands
+Brunei
+Bulgaria
+Burkina Faso
+Burundi
+Cambodia
+Cameroon
+Canada
+Cape Verde
+Cayman Islands
+Central African Republic
+Chad
+Chile
+China
+Christmas Island
+Clipperton Island
+Cocos Islands
+Colombia
+Comoros
+Cook Islands
+Coral Sea Islands
+Costa Rica
+Cote d'Ivoire
+Croatia
+Cuba
+Curacao
+Cyprus
+Czech Republic
+Democratic Republic of the Congo
+Denmark
+Djibouti
+Dominica
+Dominican Republic
+East Timor
+Ecuador
+Egypt
+El Salvador
+Equatorial Guinea
+Eritrea
+Estonia
+Ethiopia
+Europa Island
+Falkland Islands (Islas Malvinas)
+Faroe Islands
+Fiji
+Finland
+France
+French Guiana
+French Polynesia
+French Southern and Antarctic Lands
+Gabon
+Gambia
+Gaza Strip
+Georgia
+Germany
+Ghana
+Gibraltar
+Glorioso Islands
+Greece
+Greenland
+Grenada
+Guadeloupe
+Guam
+Guatemala
+Guernsey
+Guinea
+Guinea-Bissau
+Guyana
+Haiti
+Heard Island and McDonald Islands
+Honduras
+Hong Kong
+Howland Island
+Hungary
+Iceland
+India
+Indian Ocean
+Indonesia
+Iran
+Iraq
+Ireland
+Isle of Man
+Israel
+Italy
+Jamaica
+Jan Mayen
+Japan
+Jarvis Island
+Jersey
+Johnston Atoll
+Jordan
+Juan de Nova Island
+Kazakhstan
+Kenya
+Kerguelen Archipelago
+Kingman Reef
+Kiribati
+Kosovo
+Kuwait
+Kyrgyzstan
+Laos
+Latvia
+Lebanon
+Lesotho
+Liberia
+Libya
+Liechtenstein
+Lithuania
+Luxembourg
+Macau
+Macedonia
+Madagascar
+Malawi
+Malaysia
+Maldives
+Mali
+Malta
+Marshall Islands
+Martinique
+Mauritania
+Mauritius
+Mayotte
+Mediterranean Sea
+Mexico
+Micronesia
+Midway Islands
+Moldova
+Monaco
+Mongolia
+Montenegro
+Montserrat
+Morocco
+Mozambique
+Myanmar
+Namibia
+Nauru
+Navassa Island
+Nepal
+Netherlands
+New Caledonia
+New Zealand
+Nicaragua
+Niger
+Nigeria
+Niue
+Norfolk Island
+North Korea
+North Sea
+Northern Mariana Islands
+Norway
+Oman
+Pacific Ocean
+Pakistan
+Palau
+Palmyra Atoll
+Panama
+Papua New Guinea
+Paracel Islands
+Paraguay
+Peru
+Philippines
+Pitcairn Islands
+Poland
+Portugal
+Puerto Rico
+Qatar
+Republic of the Congo
+Reunion
+Romania
+Ross Sea
+Russia
+Rwanda
+Saint Helena
+Saint Kitts and Nevis
+Saint Lucia
+Saint Pierre and Miquelon
+Saint Vincent and the Grenadines
+Samoa
+San Marino
+Sao Tome and Principe
+Saudi Arabia
+Senegal
+Serbia
+Seychelles
+Sierra Leone
+Singapore
+Sint Maarten
+Slovakia
+Slovenia
+Solomon Islands
+Somalia
+South Africa
+South Georgia and the South Sandwich Islands
+South Korea
+Southern Ocean
+Spain
+Spratly Islands
+Sri Lanka
+Sudan
+Suriname
+Svalbard
+Swaziland
+Sweden
+Switzerland
+Syria
+Taiwan
+Tajikistan
+Tanzania
+Tasman Sea
+Thailand
+Togo
+Tokelau
+Tonga
+Trinidad and Tobago
+Tromelin Island
+Tunisia
+Turkey
+Turkmenistan
+Turks and Caicos Islands
+Tuvalu
+USA
+Uganda
+Ukraine
+United Arab Emirates
+United Kingdom
+Uruguay
+Uzbekistan
+Vanuatu
+Venezuela
+Viet Nam
+Virgin Islands
+Wake Island
+Wallis and Futuna
+West Bank
+Western Sahara
+Yemen
+Zambia
+Zimbabwe
b
diff -r 000000000000 -r 382518f24d6d tool-data/host_health_state_1.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/host_health_state_1.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,6 @@
+not applicable
+diseased
+healthy
+not provided
+not collected
+restricted access
b
diff -r 000000000000 -r 382518f24d6d tool-data/host_sex_1.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/host_sex_1.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,9 @@
+other
+not applicable
+not provided
+neuter
+not collected
+female
+restricted access
+male
+hermaphrodite
b
diff -r 000000000000 -r 382518f24d6d tool-data/instrument_model.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/instrument_model.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,58 @@
+minION
+GridION
+PromethION
+454 GS
+454 GS 20
+454 GS FLX
+454 GS FLX+
+454 GS FLX Titanium
+454 GS Junior
+Illumina Genome Analyzer
+Illumina Genome Analyzer II
+Illumina Genome Analyzer IIx
+Illumina HiSeq 1000
+Illumina HiSeq 1500
+Illumina HiSeq 2000
+Illumina HiSeq 2500
+Illumina HiSeq 3000
+Illumina HiSeq 4000
+Illumina iSeq 100
+Illumina HiScanSQ
+Illumina NextSeq 500
+Illumina NextSeq 550
+Illumina NovaSeq 6000
+Illumina HiSeq X Five
+Illumina HiSeq X Ten
+Illumina MiSeq
+Illumina MiniSeq
+AB SOLiD System
+AB SOLiD System 2.0
+AB SOLiD System 3.0
+AB SOLiD 3 Plus System
+AB SOLiD 4 System
+AB SOLiD 4hq System
+AB SOLiD PI System
+AB 5500 Genetic Analyzer
+AB 5500xl Genetic Analyzer
+AB 5500xl-W Genetic Analysis System
+Ion Torrent PGM
+Ion Torrent Proton
+Ion Torrent S5
+Ion Torrent S5 XL
+Complete Genomics
+PacBio RS
+PacBio RS II
+Sequel
+Sequel II
+AB 3730xL Genetic Analyzer
+AB 3730 Genetic Analyzer
+AB 3500xL Genetic Analyzer
+AB 3500 Genetic Analyzer
+AB 3130xL Genetic Analyzer
+AB 3130 Genetic Analyzer
+AB 310 Genetic Analyzer
+BGISEQ-500
+DNBSEQ-T7
+DNBSEQ-G400
+DNBSEQ-G50
+DNBSEQ-G400 FAST
b
diff -r 000000000000 -r 382518f24d6d tool-data/library_layout.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/library_layout.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,2 @@
+SINGLE
+PAIRED
b
diff -r 000000000000 -r 382518f24d6d tool-data/library_selection.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/library_selection.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,27 @@
+RANDOM
+PCR
+RANDOM PCR
+RT-PCR
+HMPR
+MF
+repeat fractionation
+size fractionation
+MSLL
+cDNA
+ChIP
+MNase
+DNase
+Hybrid Selection
+Reduced Representation
+Restriction Digest
+5-methylcytidine antibody
+MBD2 protein methyl-CpG binding domain
+CAGE
+RACE
+MDA
+padlock probes capture method
+Oligo-dT
+Inverse rRNA selection
+ChIP-Seq
+other
+unspecified
b
diff -r 000000000000 -r 382518f24d6d tool-data/library_source.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/library_source.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,7 @@
+GENOMIC
+TRANSCRIPTOMIC
+METAGENOMIC
+METATRANSCRIPTOMIC
+SYNTHETIC
+VIRAL RNA
+OTHER
b
diff -r 000000000000 -r 382518f24d6d tool-data/library_strategy.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/library_strategy.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,38 @@
+WGS
+WGA
+WXS
+RNA-Seq
+ssRNA-seq
+miRNA-Seq
+ncRNA-Seq
+FL-cDNA
+EST
+Hi-C
+ATAC-seq
+WCS
+RAD-Seq
+CLONE
+POOLCLONE
+AMPLICON
+CLONEEND
+FINISHING
+ChIP-Seq
+MNase-Seq
+DNase-Hypersensitivity
+Bisulfite-Seq
+CTS
+MRE-Seq
+MeDIP-Seq
+MBD-Seq
+Tn-Seq
+VALIDATION
+FAIRE-seq
+SELEX
+RIP-Seq
+ChIA-PET
+Synthetic-Long-Read
+Targeted-Capture
+Tethered Chromatin Conformation Capture
+ChM-Seq
+GBS
+OTHER
b
diff -r 000000000000 -r 382518f24d6d tool-data/study_type.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/study_type.loc.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,14 @@
+Whole Genome Sequencing
+Metagenomics
+Transcriptome Analysis
+Resequencing
+Epigenetics
+Synthetic Genomics
+Forensic or Paleo-genomics
+Gene Regulation Study
+Cancer Genomics
+Population Genomics
+RNASeq
+Exome Sequencing
+Pooled Clone Sequencing
+Transcriptome Sequencing
b
diff -r 000000000000 -r 382518f24d6d tool_data_table_conf.xml.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+    <tables>
+        <table name="study_type" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/study_type.loc" /></table>
+        <table name="library_layout" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/library_layout.loc" /></table>
+        <table name="library_selection" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/library_selection.loc" /></table>
+        <table name="instrument_model" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/instrument_model.loc" /></table>
+        <table name="library_source" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/library_source.loc" /></table>
+        <table name="library_strategy" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/library_strategy.loc" /></table>
+        <table name="geographic_location_1" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/geographic_location_1.loc" /></table>
+        <table name="host_sex_1" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/host_sex_1.loc" /></table>
+        <table name="host_health_state_1" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="tool-data/host_health_state_1.loc" /></table>
+    </tables>
+
b
diff -r 000000000000 -r 382518f24d6d tool_data_table_conf.xml.test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.test Sat Nov 28 09:45:44 2020 +0000
b
@@ -0,0 +1,12 @@
+<!-- Paths are relative to the value of `tool_data_path` in galaxy.ini -->
+<tables>
+    <table name="study_type" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/study_type.loc.sample" /></table>
+    <table name="library_layout" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/library_layout.loc.sample" /></table>
+    <table name="library_selection" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/library_selection.loc.sample" /></table>
+    <table name="instrument_model" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/instrument_model.loc.sample" /></table>
+    <table name="library_source" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/library_source.loc.sample" /></table>
+    <table name="library_strategy" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/library_strategy.loc.sample" /></table>
+    <table name="geographic_location_1" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/geographic_location_1.loc.sample" /></table>
+    <table name="host_sex_1" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/host_sex_1.loc.sample" /></table>
+    <table name="host_health_state_1" comment_char="#" allow_duplicate_entries="False"><columns>value</columns><file path="${__HERE__}/tool-data/host_health_state_1.loc.sample" /></table>
+</tables>