diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e32edb1..35aa33b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - `agat/agat_sp_filter_feature_from_kill_list`: remove features in a GFF file based on a kill list (PR #105). - `agat/agat_sp_merge_annotations`: merge different gff annotation files in one (PR #106). - `agat/agat_sp_statistics`: provides exhaustive statistics of a gft/gff file (PR #107). + - `agat/agat_sq_stat_basic`: provide basic statistics of a gtf/gff file (PR #110). * `bd_rhapsody/bd_rhapsody_sequence_analysis`: BD Rhapsody Sequence Analysis CWL pipeline (PR #96). @@ -64,11 +65,11 @@ - `agat_convert_embl2gff`: convert an EMBL file into GFF format (PR #99). - `agat/agat_convert_sp_gff2gtf`: convert any GTF/GFF file into a proper GTF file (PR #76). - `agat/agat_convert_bed2gff`: convert bed file to gff format (PR #97). + - `agat/agat_convert_mfannot2gff`: convert MFannot "masterfile" annotation to gff format (PR #112). - `agat/agat_convert_embl2gff`: convert an EMBL file into GFF format (PR #99). - `agat/agat_convert_sp_gff2tsv`: convert gtf/gff file into tabulated file (PR #102). - `agat/agat_convert_sp_gxf2gxf`: fixes and/or standardizes any GTF/GFF file into full sorted GTF/GFF file (PR #103). - * `bedtools`: - `bedtools/bedtools_intersect`: Allows one to screen for overlaps between two sets of genomic features (PR #94). - `bedtools/bedtools_sort`: Sorts a feature file (bed/gff/vcf) by chromosome and other criteria (PR #98). diff --git a/src/agat/agat_convert_mfannot2gff/config.vsh.yaml b/src/agat/agat_convert_mfannot2gff/config.vsh.yaml new file mode 100644 index 00000000..625c4613 --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/config.vsh.yaml @@ -0,0 +1,66 @@ +name: agat_convert_mfannot2gff +namespace: agat +description: | + Conversion utility for MFannot "masterfile" annotation produced by the + [MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports + GFF3 format. +keywords: [gene annotations, GFF , Mfannot] +links: + homepage: https://github.com/NBISweden/AGAT + documentation: https://agat.readthedocs.io/en/latest/tools/agat_convert_mfannot2gff.html + issue_tracker: https://github.com/NBISweden/AGAT/issues + repository: https://github.com/NBISweden/AGAT +references: + doi: 10.5281/zenodo.3552717 +license: GPL-3. +requirements: + - command: [agat] +authors: + - __merge__: /src/_authors/leila_paquay.yaml + roles: [ author, maintainer ] +argument_groups: + - name: Inputs + arguments: + - name: --mfannot + alternatives: [-m, -i] + description: The mfannot input file. + type: file + required: true + direction: input + example: input.mfannot + - name: Outputs + arguments: + - name: --gff + alternatives: [-g, -o] + description: The GFF output file. + type: file + direction: output + required: true + example: output.gff + - name: Arguments + arguments: + - name: --config + alternatives: [-c] + description: | + AGAT config file. By default AGAT takes the original agat_config.yaml shipped with AGAT. The `--config` option gives you the possibility to use your own AGAT config file (located elsewhere or named differently). + type: file + required: false + example: custom_agat_config.yaml +resources: + - type: bash_script + path: script.sh +test_resources: + - type: bash_script + path: test.sh + - type: file + path: test_data +engines: + - type: docker + image: quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0 + setup: + - type: docker + run: | + agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.txt +runners: + - type: executable + - type: nextflow \ No newline at end of file diff --git a/src/agat/agat_convert_mfannot2gff/help.txt b/src/agat/agat_convert_mfannot2gff/help.txt new file mode 100644 index 00000000..83536c5a --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/help.txt @@ -0,0 +1,67 @@ +```sh +agat_convert_mfannot2gff.pl --help +``` + + ------------------------------------------------------------------------------ +| Another GFF Analysis Toolkit (AGAT) - Version: v1.4.0 | +| https://github.com/NBISweden/AGAT | +| National Bioinformatics Infrastructure Sweden (NBIS) - www.nbis.se | + ------------------------------------------------------------------------------ + + +Name: + agat_convert_mfannot2gff.pl + +Description: + Conversion utility for MFannot "masterfile" annotation produced by the + MFannot pipeline (http://megasun.bch.umontreal.ca/RNAweasel/). Reports + GFF3 format. + +Usage: + agat_convert_mfannot2gff.pl -m -o + agat_convert_mfannot2gff.pl --help + +Copyright and License: + Copyright (C) 2015, Brandon Seah (kbseah@mpi-bremen.de) ... GPL-3 ... + modified by jacques dainat 2017-11 + +Options: + -m or -i or --mfannot + The mfannot input file + + -g or -o or --gff + the gff output file + + -c or --config + String - Input agat config file. By default AGAT takes as input + agat_config.yaml file from the working directory if any, + otherwise it takes the orignal agat_config.yaml shipped with + AGAT. To get the agat_config.yaml locally type: "agat config + --expose". The --config option gives you the possibility to use + your own AGAT config file (located elsewhere or named + differently). + + -h or --help + Display this helpful text. + +Feedback: + Did you find a bug?: + Do not hesitate to report bugs to help us keep track of the bugs and + their resolution. Please use the GitHub issue tracking system available + at this address: + + https://github.com/NBISweden/AGAT/issues + + Ensure that the bug was not already reported by searching under Issues. + If you're unable to find an (open) issue addressing the problem, open a new one. + Try as much as possible to include in the issue when relevant: + - a clear description, + - as much relevant information as possible, + - the command used, + - a data sample, + - an explanation of the expected behaviour that is not occurring. + + Do you want to contribute?: + You are very welcome, visit this address for the Contributing + guidelines: + https://github.com/NBISweden/AGAT/blob/master/CONTRIBUTING.md \ No newline at end of file diff --git a/src/agat/agat_convert_mfannot2gff/script.sh b/src/agat/agat_convert_mfannot2gff/script.sh new file mode 100644 index 00000000..e4a32b1e --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/script.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eo pipefail + +## VIASH START +## VIASH END + +agat_convert_mfannot2gff.pl \ + --mfannot "$par_mfannot" \ + --gff "$par_gff" \ + ${par_config:+--config "${par_config}"} diff --git a/src/agat/agat_convert_mfannot2gff/test.sh b/src/agat/agat_convert_mfannot2gff/test.sh new file mode 100644 index 00000000..19f79b6d --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/test.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -eo pipefail + +## VIASH START +## VIASH END + +test_dir="${meta_resources_dir}/test_data" + +# create temporary directory and clean up on exit +TMPDIR=$(mktemp -d "$meta_temp_dir/$meta_functionality_name-XXXXXX") +function clean_up { + [[ -d "$TMPDIR" ]] && rm -rf "$TMPDIR" +} +trap clean_up EXIT + +echo "> Run $meta_name with test data" +"$meta_executable" \ + --mfannot "$test_dir/test.mfannot" \ + --gff "$TMPDIR/output.gff" + +echo ">> Checking output" +[ ! -f "$TMPDIR/output.gff" ] && echo "Output file output.gff does not exist" && exit 1 + +echo ">> Check if output is empty" +[ ! -s "$TMPDIR/output.gff" ] && echo "Output file output.gff is empty" && exit 1 + +echo ">> Check if output matches expected output" +diff "$TMPDIR/output.gff" "$test_dir/agat_convert_mfannot2gff_1.gff" +if [ $? -ne 0 ]; then + echo "Output file output.gff does not match expected output" + exit 1 +fi + +echo "> Test successful" \ No newline at end of file diff --git a/src/agat/agat_convert_mfannot2gff/test_data/agat_convert_mfannot2gff_1.gff b/src/agat/agat_convert_mfannot2gff/test_data/agat_convert_mfannot2gff_1.gff new file mode 100644 index 00000000..6c6c6e2f --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/test_data/agat_convert_mfannot2gff_1.gff @@ -0,0 +1,240 @@ +##gff-version 3 +tig00000088 mfannot mRNA 375 3557 . - . ID=mRNA_1;Name=atp1;gene=atp1;transl_table=4 +tig00000088 mfannot exon 375 3557 . - . ID=exon_1;Parent=atp1;Name=atp1;gene=atp1;transl_table=4 +tig00000088 mfannot mRNA 2947 3618 . + . ID=mRNA_2;Name=orf223;gene=orf223;transl_table=4 +tig00000088 mfannot exon 2947 3618 . + . ID=exon_2;Parent=orf223;Name=orf223;gene=orf223;transl_table=4 +tig00000088 mfannot mRNA 3948 8683 . - . ID=mRNA_3;Name=cox3;gene=cox3;transl_table=4 +tig00000088 mfannot exon 3948 8683 . - . ID=exon_3;Parent=cox3;Name=cox3;gene=cox3;transl_table=4 +tig00000088 mfannot group_II_intron 8789 9291 . + . ID=group_II_intron_1;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot mRNA 9292 9432 . - . ID=mRNA_4;Name=nad9;gene=nad9;transl_table=4 +tig00000088 mfannot exon 9292 9432 . - . ID=exon_4;Parent=nad9;Name=nad9;gene=nad9;transl_table=4 +tig00000088 mfannot group_II_intron 9491 9970 . + . ID=group_II_intron_2;Name=group%3DII(derived);gene=group%3DII(derived);transl_table=4 +tig00000088 mfannot mRNA 9971 10423 . - . ID=mRNA_5;Name=nad9;gene=nad9;transl_table=4 +tig00000088 mfannot exon 9971 10423 . - . ID=exon_5;Parent=nad9;Name=nad9;gene=nad9;transl_table=4 +tig00000088 mfannot mRNA 10429 10545 . - . ID=mRNA_6;Name=cox2;gene=cox2;transl_table=4 +tig00000088 mfannot exon 10429 10545 . - . ID=exon_6;Parent=cox2;Name=cox2;gene=cox2;transl_table=4 +tig00000088 mfannot group_II_intron 10613 11201 . + . ID=group_II_intron_3;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot mRNA 11202 11519 . - . ID=mRNA_7;Name=cox2;gene=cox2;transl_table=4 +tig00000088 mfannot exon 11202 11519 . - . ID=exon_7;Parent=cox2;Name=cox2;gene=cox2;transl_table=4 +tig00000088 mfannot group_II_intron 11584 12755 . + . ID=group_II_intron_4;Name=group%3DII(derived);gene=group%3DII(derived);transl_table=4 +tig00000088 mfannot mRNA 12756 13190 . - . ID=mRNA_8;Name=cox2;gene=cox2;transl_table=4 +tig00000088 mfannot exon 12756 13190 . - . ID=exon_8;Parent=cox2;Name=cox2;gene=cox2;transl_table=4 +tig00000088 mfannot mRNA 13595 15460 . - . ID=mRNA_9;Name=orf621;gene=orf621;transl_table=4 +tig00000088 mfannot exon 13595 15460 . - . ID=exon_9;Parent=orf621;Name=orf621;gene=orf621;transl_table=4 +tig00000088 mfannot mRNA 15841 33346 . - . ID=mRNA_10;Name=cox1;gene=cox1;transl_table=4 +tig00000088 mfannot exon 15841 33346 . - . ID=exon_10;Parent=cox1;Name=cox1;gene=cox1;transl_table=4 +tig00000088 mfannot group_II_intron 33462 34862 . + . ID=group_II_intron_5;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot group_II_intron 35352 35430 . + . ID=group_II_intron_6;Name=group%3DII(derived);gene=group%3DII(derived);transl_table=4 +tig00000088 mfannot mRNA 35431 37011 . - . ID=mRNA_11;Name=orf526;gene=orf526;transl_table=4 +tig00000088 mfannot exon 35431 37011 . - . ID=exon_11;Parent=orf526;Name=orf526;gene=orf526;transl_table=4 +tig00000088 mfannot mRNA 37784 38089 . - . ID=mRNA_12;Name=nad4L;gene=nad4L;transl_table=4 +tig00000088 mfannot exon 37784 38089 . - . ID=exon_12;Parent=nad4L;Name=nad4L;gene=nad4L;transl_table=4 +tig00000088 mfannot group_II_intron 38283 38632 . + . ID=group_II_intron_7;Name=group%3DII(derived);gene=group%3DII(derived);transl_table=4 +tig00000088 mfannot mRNA 38633 40147 . - . ID=mRNA_13;Name=orf504;gene=orf504;transl_table=4 +tig00000088 mfannot exon 38633 40147 . - . ID=exon_13;Parent=orf504;Name=orf504;gene=orf504;transl_table=4 +tig00000088 mfannot mRNA 43290 43955 . - . ID=mRNA_14;Name=nad1;gene=nad1;transl_table=4 +tig00000088 mfannot exon 43290 43955 . - . ID=exon_14;Parent=nad1;Name=nad1;gene=nad1;transl_table=4 +tig00000088 mfannot group_II_intron 44168 44599 . + . ID=group_II_intron_8;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot mRNA 44600 53026 . - . ID=mRNA_15;Name=cob;gene=cob;transl_table=4 +tig00000088 mfannot exon 44600 53026 . - . ID=exon_15;Parent=cob;Name=cob;gene=cob;transl_table=4 +tig00000088 mfannot mRNA 54956 55507 . - . ID=mRNA_16;Name=rpl5;gene=rpl5;transl_table=4 +tig00000088 mfannot exon 54956 55507 . - . ID=exon_16;Parent=rpl5;Name=rpl5;gene=rpl5;transl_table=4 +tig00000088 mfannot mRNA 55526 55897 . - . ID=mRNA_17;Name=rpl14;gene=rpl14;transl_table=4 +tig00000088 mfannot exon 55526 55897 . - . ID=exon_17;Parent=rpl14;Name=rpl14;gene=rpl14;transl_table=4 +tig00000088 mfannot mRNA 56168 56542 . - . ID=mRNA_18;Name=atp8;gene=atp8;transl_table=4 +tig00000088 mfannot exon 56168 56542 . - . ID=exon_18;Parent=atp8;Name=atp8;gene=atp8;transl_table=4 +tig00000088 mfannot mRNA 57298 58023 . - . ID=mRNA_19;Name=orf241;gene=orf241;transl_table=4 +tig00000088 mfannot exon 57298 58023 . - . ID=exon_19;Parent=orf241;Name=orf241;gene=orf241;transl_table=4 +tig00000088 mfannot mRNA 58024 58434 . - . ID=mRNA_20;Name=rpl16;gene=rpl16;transl_table=4 +tig00000088 mfannot exon 58024 58434 . - . ID=exon_20;Parent=rpl16;Name=rpl16;gene=rpl16;transl_table=4 +tig00000088 mfannot mRNA 58447 59346 . - . ID=mRNA_21;Name=rps3;gene=rps3;transl_table=4 +tig00000088 mfannot exon 58447 59346 . - . ID=exon_21;Parent=rps3;Name=rps3;gene=rps3;transl_table=4 +tig00000088 mfannot mRNA 58447 59430 . - . ID=mRNA_22;Name=orf327;gene=orf327;transl_table=4 +tig00000088 mfannot exon 58447 59430 . - . ID=exon_22;Parent=orf327;Name=orf327;gene=orf327;transl_table=4 +tig00000088 mfannot mRNA 59324 59578 . - . ID=mRNA_23;Name=rps19;gene=rps19;transl_table=4 +tig00000088 mfannot exon 59324 59578 . - . ID=exon_23;Parent=rps19;Name=rps19;gene=rps19;transl_table=4 +tig00000088 mfannot mRNA 62407 64761 . - . ID=mRNA_24;Name=orf784;gene=orf784;transl_table=4 +tig00000088 mfannot exon 62407 64761 . - . ID=exon_24;Parent=orf784;Name=orf784;gene=orf784;transl_table=4 +tig00000088 mfannot mRNA 62484 64694 . - . ID=mRNA_25;Name=orf736;gene=orf736;transl_table=4 +tig00000088 mfannot exon 62484 64694 . - . ID=exon_25;Parent=orf736;Name=orf736;gene=orf736;transl_table=4 +tig00000088 mfannot mRNA 62497 64800 . + . ID=mRNA_26;Name=orf767;gene=orf767;transl_table=4 +tig00000088 mfannot exon 62497 64800 . + . ID=exon_26;Parent=orf767;Name=orf767;gene=orf767;transl_table=4 +tig00000088 mfannot mRNA 62505 64790 . + . ID=mRNA_27;Name=orf761;gene=orf761;transl_table=4 +tig00000088 mfannot exon 62505 64790 . + . ID=exon_27;Parent=orf761;Name=orf761;gene=orf761;transl_table=4 +tig00000088 mfannot mRNA 62579 64786 . + . ID=mRNA_28;Name=orf735;gene=orf735;transl_table=4 +tig00000088 mfannot exon 62579 64786 . + . ID=exon_28;Parent=orf735;Name=orf735;gene=orf735;transl_table=4 +tig00000088 mfannot mRNA 67403 71938 . - . ID=mRNA_29;Name=orf1511;gene=orf1511;transl_table=4 +tig00000088 mfannot exon 67403 71938 . - . ID=exon_29;Parent=orf1511;Name=orf1511;gene=orf1511;transl_table=4 +tig00000088 mfannot mRNA 67413 71873 . - . ID=mRNA_30;Name=orf1486;gene=orf1486;transl_table=4 +tig00000088 mfannot exon 67413 71873 . - . ID=exon_30;Parent=orf1486;Name=orf1486;gene=orf1486;transl_table=4 +tig00000088 mfannot mRNA 67417 71835 . - . ID=mRNA_31;Name=orf1472;gene=orf1472;transl_table=4 +tig00000088 mfannot exon 67417 71835 . - . ID=exon_31;Parent=orf1472;Name=orf1472;gene=orf1472;transl_table=4 +tig00000088 mfannot mRNA 68331 70100 . + . ID=mRNA_32;Name=orf589;gene=orf589;transl_table=4 +tig00000088 mfannot exon 68331 70100 . + . ID=exon_32;Parent=orf589;Name=orf589;gene=orf589;transl_table=4 +tig00000088 mfannot mRNA 68495 70594 . + . ID=mRNA_33;Name=orf699;gene=orf699;transl_table=4 +tig00000088 mfannot exon 68495 70594 . + . ID=exon_33;Parent=orf699;Name=orf699;gene=orf699;transl_table=4 +tig00000088 mfannot mRNA 69979 71091 . + . ID=mRNA_34;Name=orf370;gene=orf370;transl_table=4 +tig00000088 mfannot exon 69979 71091 . + . ID=exon_34;Parent=orf370;Name=orf370;gene=orf370;transl_table=4 +tig00000088 mfannot tRNA 72094 72164 . + . ID=tRNA_1;Name=trnW(uca)_1;gene=trnW(uca)_1;transl_table=4 +tig00000088 mfannot exon 72094 72164 . + . ID=exon_35;Parent=tRNA_1;Name=trnW(uca)_1;gene=trnW(uca)_1;transl_table=4 +tig00000088 mfannot mRNA 72179 72577 . + . ID=mRNA_35;Name=rps13_1;gene=rps13_1;transl_table=4 +tig00000088 mfannot exon 72179 72577 . + . ID=exon_36;Parent=rps13_1;Name=rps13_1;gene=rps13_1;transl_table=4 +tig00000088 mfannot mRNA 72669 91559 . + . ID=mRNA_36;Name=rps11;gene=rps11;transl_table=4 +tig00000088 mfannot exon 72669 91559 . + . ID=exon_37;Parent=rps11;Name=rps11;gene=rps11;transl_table=4 +tig00000088 mfannot mRNA 72981 73280 . + . ID=mRNA_37;Name=rps14_1;gene=rps14_1;transl_table=4 +tig00000088 mfannot exon 72981 73280 . + . ID=exon_38;Parent=rps14_1;Name=rps14_1;gene=rps14_1;transl_table=4 +tig00000088 mfannot mRNA 73309 74238 . + . ID=mRNA_38;Name=rps8_1;gene=rps8_1;transl_table=4 +tig00000088 mfannot exon 73309 74238 . + . ID=exon_39;Parent=rps8_1;Name=rps8_1;gene=rps8_1;transl_table=4 +tig00000088 mfannot mRNA 73708 74238 . + . ID=mRNA_39;Name=rpl6_1;gene=rpl6_1;transl_table=4 +tig00000088 mfannot exon 73708 74238 . + . ID=exon_40;Parent=rpl6_1;Name=rpl6_1;gene=rpl6_1;transl_table=4 +tig00000088 mfannot mRNA 74288 74656 . + . ID=mRNA_40;Name=rps12_1;gene=rps12_1;transl_table=4 +tig00000088 mfannot exon 74288 74656 . + . ID=exon_41;Parent=rps12_1;Name=rps12_1;gene=rps12_1;transl_table=4 +tig00000088 mfannot mRNA 74597 74917 . - . ID=mRNA_41;Name=orf106;gene=orf106;transl_table=4 +tig00000088 mfannot exon 74597 74917 . - . ID=exon_42;Parent=orf106;Name=orf106;gene=orf106;transl_table=4 +tig00000088 mfannot tRNA 75137 75208 . + . ID=tRNA_2;Name=trnP(ugg)_1;gene=trnP(ugg)_1;transl_table=4 +tig00000088 mfannot exon 75137 75208 . + . ID=exon_43;Parent=tRNA_2;Name=trnP(ugg)_1;gene=trnP(ugg)_1;transl_table=4 +tig00000088 mfannot mRNA 76605 77011 . - . ID=mRNA_42;Name=rpl16;gene=rpl16;transl_table=4 +tig00000088 mfannot exon 76605 77011 . - . ID=exon_44;Parent=rpl16;Name=rpl16;gene=rpl16;transl_table=4 +tig00000088 mfannot mRNA 81073 83373 . + . ID=mRNA_43;Name=orf766;gene=orf766;transl_table=4 +tig00000088 mfannot exon 81073 83373 . + . ID=exon_45;Parent=orf766;Name=orf766;gene=orf766;transl_table=4 +tig00000088 mfannot mRNA 81081 83363 . + . ID=mRNA_44;Name=orf760;gene=orf760;transl_table=4 +tig00000088 mfannot exon 81081 83363 . + . ID=exon_46;Parent=orf760;Name=orf760;gene=orf760;transl_table=4 +tig00000088 mfannot mRNA 81155 83359 . + . ID=mRNA_45;Name=orf734;gene=orf734;transl_table=4 +tig00000088 mfannot exon 81155 83359 . + . ID=exon_47;Parent=orf734;Name=orf734;gene=orf734;transl_table=4 +tig00000088 mfannot mRNA 81661 82935 . - . ID=mRNA_46;Name=orf424;gene=orf424;transl_table=4 +tig00000088 mfannot exon 81661 82935 . - . ID=exon_48;Parent=orf424;Name=orf424;gene=orf424;transl_table=4 +tig00000088 mfannot mRNA 82320 83267 . - . ID=mRNA_47;Name=orf315;gene=orf315;transl_table=4 +tig00000088 mfannot exon 82320 83267 . - . ID=exon_49;Parent=orf315;Name=orf315;gene=orf315;transl_table=4 +tig00000088 mfannot mRNA 85976 90457 . - . ID=mRNA_48;Name=orf1493;gene=orf1493;transl_table=4 +tig00000088 mfannot exon 85976 90457 . - . ID=exon_50;Parent=orf1493;Name=orf1493;gene=orf1493;transl_table=4 +tig00000088 mfannot mRNA 85986 90419 . - . ID=mRNA_49;Name=orf1477;gene=orf1477;transl_table=4 +tig00000088 mfannot exon 85986 90419 . - . ID=exon_51;Parent=orf1477;Name=orf1477;gene=orf1477;transl_table=4 +tig00000088 mfannot mRNA 85990 90522 . - . ID=mRNA_50;Name=orf1510;gene=orf1510;transl_table=4 +tig00000088 mfannot exon 85990 90522 . - . ID=exon_52;Parent=orf1510;Name=orf1510;gene=orf1510;transl_table=4 +tig00000088 mfannot mRNA 86082 89342 . + . ID=mRNA_51;Name=orf1086;gene=orf1086;transl_table=4 +tig00000088 mfannot exon 86082 89342 . + . ID=exon_53;Parent=orf1086;Name=orf1086;gene=orf1086;transl_table=4 +tig00000088 mfannot mRNA 86161 89838 . + . ID=mRNA_52;Name=orf1225;gene=orf1225;transl_table=4 +tig00000088 mfannot exon 86161 89838 . + . ID=exon_54;Parent=orf1225;Name=orf1225;gene=orf1225;transl_table=4 +tig00000088 mfannot mRNA 89216 90571 . + . ID=mRNA_53;Name=orf451;gene=orf451;transl_table=4 +tig00000088 mfannot exon 89216 90571 . + . ID=exon_55;Parent=orf451;Name=orf451;gene=orf451;transl_table=4 +tig00000088 mfannot tRNA 90678 90748 . + . ID=tRNA_3;Name=trnW(uca)_2;gene=trnW(uca)_2;transl_table=4 +tig00000088 mfannot exon 90678 90748 . + . ID=exon_56;Parent=tRNA_3;Name=trnW(uca)_2;gene=trnW(uca)_2;transl_table=4 +tig00000088 mfannot mRNA 90763 91161 . + . ID=mRNA_54;Name=rps13_2;gene=rps13_2;transl_table=4 +tig00000088 mfannot exon 90763 91161 . + . ID=exon_57;Parent=rps13_2;Name=rps13_2;gene=rps13_2;transl_table=4 +tig00000088 mfannot mRNA 91566 91865 . + . ID=mRNA_55;Name=rps14_2;gene=rps14_2;transl_table=4 +tig00000088 mfannot exon 91566 91865 . + . ID=exon_58;Parent=rps14_2;Name=rps14_2;gene=rps14_2;transl_table=4 +tig00000088 mfannot mRNA 91894 92277 . + . ID=mRNA_56;Name=rps8_2;gene=rps8_2;transl_table=4 +tig00000088 mfannot exon 91894 92277 . + . ID=exon_59;Parent=rps8_2;Name=rps8_2;gene=rps8_2;transl_table=4 +tig00000088 mfannot mRNA 92295 92825 . + . ID=mRNA_57;Name=rpl6_2;gene=rpl6_2;transl_table=4 +tig00000088 mfannot exon 92295 92825 . + . ID=exon_60;Parent=rpl6_2;Name=rpl6_2;gene=rpl6_2;transl_table=4 +tig00000088 mfannot mRNA 92875 93243 . + . ID=mRNA_58;Name=rps12_2;gene=rps12_2;transl_table=4 +tig00000088 mfannot exon 92875 93243 . + . ID=exon_61;Parent=rps12_2;Name=rps12_2;gene=rps12_2;transl_table=4 +tig00000088 mfannot mRNA 93224 93682 . + . ID=mRNA_59;Name=rps7;gene=rps7;transl_table=4 +tig00000088 mfannot exon 93224 93682 . + . ID=exon_62;Parent=rps7;Name=rps7;gene=rps7;transl_table=4 +tig00000088 mfannot tRNA 93720 93791 . + . ID=tRNA_4;Name=trnP(ugg)_2;gene=trnP(ugg)_2;transl_table=4 +tig00000088 mfannot exon 93720 93791 . + . ID=exon_63;Parent=tRNA_4;Name=trnP(ugg)_2;gene=trnP(ugg)_2;transl_table=4 +tig00000088 mfannot mRNA 93823 94440 . + . ID=mRNA_60;Name=rps4;gene=rps4;transl_table=4 +tig00000088 mfannot exon 93823 94440 . + . ID=exon_64;Parent=rps4;Name=rps4;gene=rps4;transl_table=4 +tig00000088 mfannot mRNA 95255 96652 . + . ID=mRNA_61;Name=orf465;gene=orf465;transl_table=4 +tig00000088 mfannot exon 95255 96652 . + . ID=exon_65;Parent=orf465;Name=orf465;gene=orf465;transl_table=4 +tig00000088 mfannot group_II_intron 96715 97278 . + . ID=group_II_intron_9;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot group_II_intron 97835 97857 . + . ID=group_II_intron_10;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot mRNA 97858 100740 . + . ID=mRNA_62;Name=nad5;gene=nad5;transl_table=4 +tig00000088 mfannot exon 97858 100740 . + . ID=exon_66;Parent=nad5;Name=nad5;gene=nad5;transl_table=4 +tig00000088 mfannot mRNA 100756 100971 . + . ID=mRNA_63;Name=nad6;gene=nad6;transl_table=4 +tig00000088 mfannot exon 100756 100971 . + . ID=exon_67;Parent=nad6;Name=nad6;gene=nad6;transl_table=4 +tig00000088 mfannot mRNA 101416 103482 . + . ID=mRNA_64;Name=orf688;gene=orf688;transl_table=4 +tig00000088 mfannot exon 101416 103482 . + . ID=exon_68;Parent=orf688;Name=orf688;gene=orf688;transl_table=4 +tig00000088 mfannot group_II_intron 103569 103575 . + . ID=group_II_intron_11;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot mRNA 103576 103974 . + . ID=mRNA_65;Name=orf132;gene=orf132;transl_table=4 +tig00000088 mfannot exon 103576 103974 . + . ID=exon_69;Parent=orf132;Name=orf132;gene=orf132;transl_table=4 +tig00000088 mfannot tRNA 104056 104128 . + . ID=tRNA_5;Name=trnR(ucu);gene=trnR(ucu);transl_table=4 +tig00000088 mfannot exon 104056 104128 . + . ID=exon_70;Parent=tRNA_5;Name=trnR(ucu);gene=trnR(ucu);transl_table=4 +tig00000088 mfannot mRNA 104153 104224 . - . ID=mRNA_66;Name=nad3;gene=nad3;transl_table=4 +tig00000088 mfannot exon 104153 104224 . - . ID=exon_71;Parent=nad3;Name=nad3;gene=nad3;transl_table=4 +tig00000088 mfannot group_II_intron 104436 105029 . + . ID=group_II_intron_12;Name=group%3DII(derived);gene=group%3DII(derived);transl_table=4 +tig00000088 mfannot mRNA 105030 107969 . - . ID=mRNA_67;Name=atp6;gene=atp6;transl_table=4 +tig00000088 mfannot exon 105030 107969 . - . ID=exon_72;Parent=atp6;Name=atp6;gene=atp6;transl_table=4 +tig00000088 mfannot mRNA 108059 108412 . - . ID=mRNA_68;Name=rps10;gene=rps10;transl_table=4 +tig00000088 mfannot exon 108059 108412 . - . ID=exon_73;Parent=rps10;Name=rps10;gene=rps10;transl_table=4 +tig00000088 mfannot mRNA 108421 109893 . - . ID=mRNA_69;Name=nad2;gene=nad2;transl_table=4 +tig00000088 mfannot exon 108421 109893 . - . ID=exon_74;Parent=nad2;Name=nad2;gene=nad2;transl_table=4 +tig00000088 mfannot mRNA 110001 118556 . + . ID=mRNA_70;Name=nad7;gene=nad7;transl_table=4 +tig00000088 mfannot exon 110001 118556 . + . ID=exon_75;Parent=nad7;Name=nad7;gene=nad7;transl_table=4 +tig00000088 mfannot group_II_intron 119144 119308 . + . ID=group_II_intron_13;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot mRNA 119309 121269 . + . ID=mRNA_71;Name=nad4;gene=nad4;transl_table=4 +tig00000088 mfannot exon 119309 121269 . + . ID=exon_76;Parent=nad4;Name=nad4;gene=nad4;transl_table=4 +tig00000088 mfannot mRNA 121551 121778 . + . ID=mRNA_72;Name=atp9;gene=atp9;transl_table=4 +tig00000088 mfannot exon 121551 121778 . + . ID=exon_77;Parent=atp9;Name=atp9;gene=atp9;transl_table=4 +tig00000088 mfannot tRNA 121887 121959 . + . ID=tRNA_6;Name=trnD(guc);gene=trnD(guc);transl_table=4 +tig00000088 mfannot exon 121887 121959 . + . ID=exon_78;Parent=tRNA_6;Name=trnD(guc);gene=trnD(guc);transl_table=4 +tig00000088 mfannot tRNA 121962 122033 . + . ID=tRNA_7;Name=trnC(gca);gene=trnC(gca);transl_table=4 +tig00000088 mfannot exon 121962 122033 . + . ID=exon_79;Parent=tRNA_7;Name=trnC(gca);gene=trnC(gca);transl_table=4 +tig00000088 mfannot tRNA 122051 122123 . + . ID=tRNA_8;Name=trnH(gug);gene=trnH(gug);transl_table=4 +tig00000088 mfannot exon 122051 122123 . + . ID=exon_80;Parent=tRNA_8;Name=trnH(gug);gene=trnH(gug);transl_table=4 +tig00000088 mfannot tRNA 122142 122214 . + . ID=tRNA_9;Name=trnV(uac);gene=trnV(uac);transl_table=4 +tig00000088 mfannot exon 122142 122214 . + . ID=exon_81;Parent=tRNA_9;Name=trnV(uac);gene=trnV(uac);transl_table=4 +tig00000088 mfannot mRNA 122234 122446 . + . ID=mRNA_73;Name=rnpB;gene=rnpB;transl_table=4 +tig00000088 mfannot exon 122234 122446 . + . ID=exon_82;Parent=rnpB;Name=rnpB;gene=rnpB;transl_table=4 +tig00000088 mfannot rRNA 122544 123762 . + . ID=rRNA_1;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 122544 123762 . + . ID=exon_83;Parent=rRNA_1;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot group_II_intron 123576 123762 . + . ID=group_II_intron_14;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot rRNA 123763 124009 . + . ID=rRNA_2;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 123763 124009 . + . ID=exon_84;Parent=rRNA_2;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot rRNA 124010 124127 . + . ID=rRNA_3;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 124010 124127 . + . ID=exon_85;Parent=rRNA_3;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot rRNA 124128 124832 . + . ID=rRNA_4;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 124128 124832 . + . ID=exon_86;Parent=rRNA_4;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot mRNA 124833 125279 . + . ID=mRNA_74;Name=orf148;gene=orf148;transl_table=4 +tig00000088 mfannot exon 124833 125279 . + . ID=exon_87;Parent=orf148;Name=orf148;gene=orf148;transl_table=4 +tig00000088 mfannot group_II_intron 124847 124962 . + . ID=group_II_intron_15;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot rRNA 124963 125117 . + . ID=rRNA_5;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 124963 125117 . + . ID=exon_88;Parent=rRNA_5;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot rRNA 125118 125231 . + . ID=rRNA_6;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 125118 125231 . + . ID=exon_89;Parent=rRNA_6;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot rRNA 125232 125279 . + . ID=rRNA_7;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 125232 125279 . + . ID=exon_90;Parent=rRNA_7;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot rRNA 125493 125529 . + . ID=rRNA_8;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot exon 125493 125529 . + . ID=exon_91;Parent=rRNA_8;Name=rns;gene=rns;transl_table=4 +tig00000088 mfannot mRNA 125530 125635 . + . ID=mRNA_75;Name=rrn5;gene=rrn5;transl_table=4 +tig00000088 mfannot exon 125530 125635 . + . ID=exon_92;Parent=rrn5;Name=rrn5;gene=rrn5;transl_table=4 +tig00000088 mfannot tRNA 125644 125715 . + . ID=tRNA_10;Name=trnF(gaa);gene=trnF(gaa);transl_table=4 +tig00000088 mfannot exon 125644 125715 . + . ID=exon_93;Parent=tRNA_10;Name=trnF(gaa);gene=trnF(gaa);transl_table=4 +tig00000088 mfannot tRNA 125734 125806 . + . ID=tRNA_11;Name=trnK(uuu);gene=trnK(uuu);transl_table=4 +tig00000088 mfannot exon 125734 125806 . + . ID=exon_94;Parent=tRNA_11;Name=trnK(uuu);gene=trnK(uuu);transl_table=4 +tig00000088 mfannot tRNA 126093 126165 . + . ID=tRNA_12;Name=trnT(ugu);gene=trnT(ugu);transl_table=4 +tig00000088 mfannot exon 126093 126165 . + . ID=exon_95;Parent=tRNA_12;Name=trnT(ugu);gene=trnT(ugu);transl_table=4 +tig00000088 mfannot tRNA 126180 126251 . + . ID=tRNA_13;Name=trnM(cau)_1;gene=trnM(cau)_1;transl_table=4 +tig00000088 mfannot exon 126180 126251 . + . ID=exon_96;Parent=tRNA_13;Name=trnM(cau)_1;gene=trnM(cau)_1;transl_table=4 +tig00000088 mfannot tRNA 126284 126356 . + . ID=tRNA_14;Name=trnM(cau)_2;gene=trnM(cau)_2;transl_table=4 +tig00000088 mfannot exon 126284 126356 . + . ID=exon_97;Parent=tRNA_14;Name=trnM(cau)_2;gene=trnM(cau)_2;transl_table=4 +tig00000088 mfannot tRNA 126364 126435 . + . ID=tRNA_15;Name=trnA(ugc);gene=trnA(ugc);transl_table=4 +tig00000088 mfannot exon 126364 126435 . + . ID=exon_98;Parent=tRNA_15;Name=trnA(ugc);gene=trnA(ugc);transl_table=4 +tig00000088 mfannot tRNA 126453 126525 . + . ID=tRNA_16;Name=trnR(ucg);gene=trnR(ucg);transl_table=4 +tig00000088 mfannot exon 126453 126525 . + . ID=exon_99;Parent=tRNA_16;Name=trnR(ucg);gene=trnR(ucg);transl_table=4 +tig00000088 mfannot tRNA 126528 126600 . + . ID=tRNA_17;Name=trnI(gau);gene=trnI(gau);transl_table=4 +tig00000088 mfannot exon 126528 126600 . + . ID=exon_100;Parent=tRNA_17;Name=trnI(gau);gene=trnI(gau);transl_table=4 +tig00000088 mfannot tRNA 126629 126710 . + . ID=tRNA_18;Name=trnL(uag);gene=trnL(uag);transl_table=4 +tig00000088 mfannot exon 126629 126710 . + . ID=exon_101;Parent=tRNA_18;Name=trnL(uag);gene=trnL(uag);transl_table=4 +tig00000088 mfannot tRNA 126724 126796 . + . ID=tRNA_19;Name=trnN(guu);gene=trnN(guu);transl_table=4 +tig00000088 mfannot exon 126724 126796 . + . ID=exon_102;Parent=tRNA_19;Name=trnN(guu);gene=trnN(guu);transl_table=4 +tig00000088 mfannot tRNA 126797 126881 . + . ID=tRNA_20;Name=trnY(gua);gene=trnY(gua);transl_table=4 +tig00000088 mfannot exon 126797 126881 . + . ID=exon_103;Parent=tRNA_20;Name=trnY(gua);gene=trnY(gua);transl_table=4 +tig00000088 mfannot tRNA 126907 126978 . + . ID=tRNA_21;Name=trnE(uuc);gene=trnE(uuc);transl_table=4 +tig00000088 mfannot exon 126907 126978 . + . ID=exon_104;Parent=tRNA_21;Name=trnE(uuc);gene=trnE(uuc);transl_table=4 +tig00000088 mfannot tRNA 127002 127072 . + . ID=tRNA_22;Name=trnQ(uug);gene=trnQ(uug);transl_table=4 +tig00000088 mfannot exon 127002 127072 . + . ID=exon_105;Parent=tRNA_22;Name=trnQ(uug);gene=trnQ(uug);transl_table=4 +tig00000088 mfannot tRNA 127097 127167 . + . ID=tRNA_23;Name=trnG(ucc);gene=trnG(ucc);transl_table=4 +tig00000088 mfannot exon 127097 127167 . + . ID=exon_106;Parent=tRNA_23;Name=trnG(ucc);gene=trnG(ucc);transl_table=4 +tig00000088 mfannot rRNA 127170 132900 . + . ID=rRNA_9;Name=rnl;gene=rnl;transl_table=4 +tig00000088 mfannot exon 127170 132900 . + . ID=exon_107;Parent=rRNA_9;Name=rnl;gene=rnl;transl_table=4 +tig00000088 mfannot group_II_intron 128101 130559 . + . ID=group_II_intron_16;Name=group%3DII;gene=group%3DII;transl_table=4 +tig00000088 mfannot group_II_intron 132446 132900 . + . ID=group_II_intron_17;Name=group%3DII(derived);gene=group%3DII(derived);transl_table=4 +tig00000088 mfannot rRNA 132901 132923 . + . ID=rRNA_10;Name=rnl;gene=rnl;transl_table=4 +tig00000088 mfannot exon 132901 132923 . + . ID=exon_108;Parent=rRNA_10;Name=rnl;gene=rnl;transl_table=4 +tig00000088 mfannot tRNA 132924 133010 . + . ID=tRNA_24;Name=trnS(gcu);gene=trnS(gcu);transl_table=4 +tig00000088 mfannot exon 132924 133010 . + . ID=exon_109;Parent=tRNA_24;Name=trnS(gcu);gene=trnS(gcu);transl_table=4 +tig00000088 mfannot tRNA 133023 133103 . + . ID=tRNA_25;Name=trnL(uaa);gene=trnL(uaa);transl_table=4 +tig00000088 mfannot exon 133023 133103 . + . ID=exon_110;Parent=tRNA_25;Name=trnL(uaa);gene=trnL(uaa);transl_table=4 +tig00000088 mfannot tRNA 133131 133218 . + . ID=tRNA_26;Name=trnS(uga);gene=trnS(uga);transl_table=4 +tig00000088 mfannot exon 133131 133218 . + . ID=exon_111;Parent=tRNA_26;Name=trnS(uga);gene=trnS(uga);transl_table=4 diff --git a/src/agat/agat_convert_mfannot2gff/test_data/script.sh b/src/agat/agat_convert_mfannot2gff/test_data/script.sh new file mode 100755 index 00000000..f60aa8dd --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/test_data/script.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# clone repo +if [ ! -d /tmp/agat_source ]; then + git clone --depth 1 --single-branch --branch master https://github.com/NBISweden/AGAT /tmp/agat_source +fi + +# copy test data +cp -r /tmp/agat_source/t/scripts_output/in/test.mfannot src/agat/agat_convert_mfannot2gff/test_data/ +cp -r /tmp/agat_source/t/scripts_output/out/agat_convert_mfannot2gff_1.gff src/agat/agat_convert_mfannot2gff/test_data/ \ No newline at end of file diff --git a/src/agat/agat_convert_mfannot2gff/test_data/test.mfannot b/src/agat/agat_convert_mfannot2gff/test_data/test.mfannot new file mode 100644 index 00000000..7a33b19a --- /dev/null +++ b/src/agat/agat_convert_mfannot2gff/test_data/test.mfannot @@ -0,0 +1,2914 @@ +;; Masterfile modified automatically by mfannot version 1.33 +;; - Gene Totals: 106 +;; - List of genes added: +;; atp1 (3 introns) atp6 (1 introns) atp8 +;; atp9 cob (6 introns) cox1 (11 introns) +;; cox3 (3 introns) nad1 nad2 +;; nad3 nad4 (1 introns) nad4L +;; nad5 (2 introns) nad7 (6 introns) orf101 +;; orf106 orf1086 orf119 +;; orf1225 orf123 orf132 +;; orf1472 orf1477 orf148 +;; orf1486 orf149 orf1493 +;; orf1510 orf1511 orf158 +;; orf204 orf223 orf240 +;; orf241 orf259 orf269 +;; orf315 orf327 orf353 +;; orf370 orf385 orf424 +;; orf451 orf465 orf499 +;; orf504 orf505 orf511 +;; orf526 orf550 orf580 +;; orf589 orf621 orf671 +;; orf673 orf676 orf688 +;; orf699 orf734 orf735 +;; orf736 orf750 orf760 +;; orf761 orf766 orf767 +;; orf784 rnpB rpl14 +;; rpl16 rpl5 rpl6 +;; rps10 rps11 rps12 +;; rps13 rps14 rps19 +;; rps3 rps4 rps7 +;; rps8 rrn5 trnA(ugc) +;; trnC(gca) trnD(guc) trnE(uuc) +;; trnF(gaa) trnG(ucc) trnH(gug) +;; trnI(gau) trnK(uuu) trnL(uaa) +;; trnL(uag) trnM(cau) trnN(guu) +;; trnP(ugg) trnQ(uug) trnR(ucg) +;; trnR(ucu) trnS(gcu) trnS(uga) +;; trnT(ugu) trnV(uac) trnW(uca) +;; trnY(gua) +;; +;; end mfannot +;; + + +>tig00000088 gc=4 + 1 GAATTTTAAGTTTATCTAAAATATAGAAAATAAAAATATATTTTTATTTTATGCAGTTTT + 61 TGTATATCATAAATCTTAAGTGTTATTTAACATTTATTTTAGTAAATTTAAGAATAGATT + 121 TTTAAAATAACAAATATAATAATGAACCAGTTATTATTTATAAATTATTTGTAGTAATAA + 181 GATAAATTAACTTTATATTTTAGTTATATAGTTATAATTAGTATAGTATGTATAAATTGG + 241 CATTTATAATATTAGTTACATTAACTATAAAATTAATTTTATATGTTTTTTGATTTTTTC + 301 TAAAAAAATTTGTATCATTTGGAGAAATCTAAGATGAGTTGGTATTAACTAATGATGGTT + 361 ATTGGTTAAAAATA +; G-atp1 <== end +; G-atp1-E4 <== end + 375 TTAAAGATTAATTTCAGAGGTAAGCAGAGATTGTAATTTTTTTTTAAGCTCGGGAGAAAT + 435 TTTTTTTTGTTCTTTAATTTCATTTAAAATTTTTGTATGTTTTGTTTTTAAAAGGTTTAA + 495 AAGTTTTTGTTCAAAATTTGATACTTTGTTTGTAGCAATTTTATCTAAAAACCCATTCAT + 555 CCCAGCGAAAATTATAACAACTTGGTATTCAATTGGCATTGGTATGAATTGATTTTGTTT + 615 TAACAATTCGATTAGACGAGAACCTCGATTTAATACGTGTTGTGTAGATGCATCTAAATC + 675 AGACCCGAATTGAGCAAAAGCTTCAACTTCACGGTATTGGGCTAGTTCTAGTTTTAAACC + 735 CCCGGCAACTTGTCTCATTGCTGGAATTTGAGCAGCAGAACCAACACGACTTACTGATAA + 795 ACCCACATTAATTGCGGGCCGAATTCCTTTATAAAAAAGTTCAGCTTCTAGAAAGATTTG + 855 ACCATCTGTAA +; G-atp1-E4 <== start +; G-atp1-I3 <== end + 866 aatgggtagataaatattgttaattattatatcccccaatgtaaactgtacatgatagtt + 926 agttatcatacagcttcttttaagagaaaagaattatgtttataaattaaaatatatttt + 986 gataagttataaactacacataattatccagttaggtataattatgtgtagtttattata + 1046 caatttattttattaaaaaataatatttactataaaaacttcccctcacactgttcagtt + 1106 tgattgtttataaaaacaatttttttaagaaaaatgatacagttttcatgccttttttaa + 1166 aaaaaagcttttatttttacaaaaatttgtacttaattttttggaaaaaatatccaatga + 1226 tagctgatatcaaaatttaatattgtttattttggttaaaaagttttaaataaaaattaa + 1286 ttttctattaaaaatagatttttctaaaaaaatttttttttcagtttaatgtttttctat + 1346 aaatgaatttttaatattattatattatgataattaaatatgtataattagataatgtaa + 1406 tttgatgtaaaaattacaagttttcatatataaaattttttaaaaaaaatttcttatcat + 1466 aatttatataattttatacaaattgatgtaattacaaataactgccc +; G-atp1-I3 <== start /group=II ;; mfannot: splice boundaries uncertain +; G-atp1-E3 <== end + 1513 TAGAAATAACATTTGTTGGAATATAAGCTGAAACATCTCCAGCTTGTGTTTCTATTATAG + 1573 GAAGCGCGGTTAATGATCCAGCCCCATAGTCTTTATTTAATTTAGCTGCACGTTCTAATA + 1633 AACGAGAATGTAGATAAA +; G-atp1-E3 <== start +; G-atp1-I2 <== end + 1651 attgagtcaaaaacttattagtaatgttaattactgttgtatgctcttagagctttacaa + 1711 aataattacttattataaagctctcttttcgttgaaaaattggattttgtgaattattaa + 1771 ttaagtttaatattttttgatgtaaaaaaatatttataaattttatcgaaataaattcat + 1831 attatgaattttataaaattttattgttttataaaattacataaaaagaattgtctgttc + 1891 tatattattttatacaatataaactctagtattaggaactttatgaaaaagttttaaaca + 1951 aaaaaataattatgaatttgtcatatttttgcttgaaatgtttatgaaatacgtcaaaat + 2011 ttctctataactattttttcttagcggtaaagatatgtatatatattaaaaagtttattt + 2071 tatttttgaataaaactttttgacaaacacataaatagttatttatttaaatatacattt + 2131 atgaatatactgtatatttaaaattttttggaaaaaatttacctaattaactaaataccc +; G-atp1-I2 <== start /group=II(derived) +; G-atp1-E2 <== end + 2191 AAACGTCTCCGGGATATGCTTCACGACCTGGTGGTCGTCTTAATAGTAAAGACATTTGTC + 2251 TATAAGCTACTGCCTGTTTACTTAAATCATCATAAATGATTAACGCATGCTTTTTATTAT + 2311 CGCGAAAATATTCTCCTATTGTACACCCAGTATATG +; G-atp1-E2 <== start +; G-atp1-I1 <== end + 2347 tttggatagaaaaaatttcttccacaaaacttaacgtataaatttctttatattaagctt + 2407 aatgaaaaaatttctagttaaattattaataacctaataaatacatttaatgtagatgtg + 2467 atatacgtctaaaatttggtatttataaattagatttttaaagaaattttttcaaaaact + 2527 gtttttactttaaagtaatttcagattcaaaattataaaattaattataaacttaactag + 2587 tttcttttatactatttataattaaagcgaatttttttagtagataatatttaatttttt + 2647 tgcattgttttatgataatagcaccttttaatcaaaaagtttttatataaatatttataa + 2707 ttgatttgttatataacaaacgtatacatatacttattaatataagtattaaactacctt + 2767 aaatttggggtttagtaatatataaaaagaaacgattgttaaatac +; G-atp1-I1 <== start /group=II(derived) ;; mfannot: splice boundaries uncertain +; G-atp1-E1 <== end + 2813 GTGCTAAAAACTGTAATGGAGCGGCTTCAGATGCCGTTGCAGCTACAATGATTGTATATG + 2873 AAAATGCGTTTTCTTTTTCTAATATAGATACTAGTTGAGCAACTGTTGAACGTTTTTGTC + 2933 CGATTGCGACATAA +; G-orf223 ==> start + 2947 ATGCAGTATAACTTATCGGAATCGTTTAGCTCATTATTTTGATATTTTTGATTTAAAATG + 3007 GTGTCAATTGCAATTGCAGTTTTTCCAGTTTGCCTGTCACCAATGATTAGTTCCCGTTGA + 3067 CCACGTCCAATAGGAACTAAACTGTCAACAGCTTTTAATCCAGTTTGCATTGGCTCAGAA + 3127 ACTGATTTTCTTGGAATAATTCCGGGTGCTTTAACTTCTACCCGCCGAGTTTCATTACTT + 3187 TTAATTGCTCCTTTTCCGTCGATAGGGGCACCTAAAGCGTTAATTGCTCGGCCTAAAAGG + 3247 TCTGTACCTACAGGCACACTAACAATATTTTTAGTACGTTTTACGGATTCTCCTTCTGAA + 3307 ACAAATTTGTCGTTTCCAAAAATAACAATTCCTGCATTATCATTTTCTAAATTTAGAGCC + 3367 ATTCCTTTTAAACCGGAACTAAATTCGACCATTTCACCAGCTTTTAAATTTTGTAATCCA + 3427 AAAACTCGAGCAATTCCGTCTCCTACAGTTAATACTTTTCCTTTTTCAGTGAAGGAATTT + 3487 TTATTAATTCCTGTTGTTGCTATTTGAATTTCTAATAATTGAGATAATTCGTTTATATGT + 3547 AGTTTTTGCAT +; G-atp1-E1 <== start +; G-atp1 <== start + 3558 TTCTGCTATAAGTTTTGTATTAAAATTTAAAGTATTTTTTTGTATAATTTTTTTTAACTA + 3618 A +; G-orf223 ==> end + 3619 AACCGCTAATTTGATAAAAAATTGTTAAGAAATTTATTCATAAAATCTAGAAAACTAAAA + 3679 GAATTTTCCAGTAAAGGAAAAAGTTATTTAATATAAAATTTTTTACATATTAAAAATAAT + 3739 AATATAATTTATATTTTATTTAATTTTTAAGATTTTAAAATTAATGATCCTTTTTTAAAA + 3799 AATGTAGAATTTTATTAAAAATTGAATATCCCATAAACTTATGGTTTATGGGATAATTTT + 3859 CTTACCCATGAAAAATAAGTTTTTAACTTAATCAAAATATTAATATATAATATTTATATA + 3919 TTTTTCATGTAAGTGAACACTAGTCAAGT +; G-cox3 <== end +; G-cox3-E4 <== end + 3948 TTAAGCTTTATTTCCCCATATATATATGGAAATGAATAAAAAAAGTCAAACAACATATA +; G-cox3-E4 <== start +; G-cox3-I3 <== end + 4007 aacttaaaaatatgcttttttagattttgatttttgcgcatattaatagtttttgaacca + 4067 aacgtaataatttcttattattaggctcttatacaaattaaatatttgtctttatactgt + 4127 atatgtttaatcgtgtagtataaaaaattgcaggaggtaggtaattaaattttaattttt + 4187 ttaaaaaaacatatttaatttgtttagaaggtgttctaatcatttttaaatttctaaaaa + 4247 agaaaagaatatcagcatcaataaacataattatataaatataattatgtttttgctaaa + 4307 atttttgttaagtgtacagtaatatgttttaaactttctaaaagaaagtattttacataa + 4367 gttttattttattctatttgttaaaaatgaattttttttttgaaaaacgtataattagaa + 4427 gtctttaaaagagattttggcttaaaaagtcaatttcaatataatgttgaatttttgatc + 4487 tttttaaagcaacttctatctaattaagaaaaaggacctaactataaatttataagcaca + 4547 caccaacaaaatatattaatcgatatgctttgaagcaataagcgttaattcacacatggc + 4607 gtgcaaattgctaaacaccatgcgttttttatgaaatactttaaatttaaaaaatttttt + 4667 ttcataaataagatacttttaaagcgaagtatcttgcaatactaatttagtgtattagta + 4727 aaataatgctttacattttttttaatttaaaaatctgtttttagattagagtaaattttt + 4787 tggttaaagaagaaatatattggctataatattttttctttaaaaactttggtgtaaaaa + 4847 atatattaaaaacagtatactatatttttatataaaagtattatatattcaaatgcaaag + 4907 aaatat +; G-cox3-I3 <== start /group=II(derived) ;; mfannot: splice boundaries uncertain +; G-cox3-E3 <== end + 4913 TCGCCCGCCAATATCATGCTGCTGCTTCGAAAGCAAAATGATGATTATCCGTAAAATGAT + 4973 GTTTTATTAAACGTATTAAACAAATACCCAAAAAAATACTTCCTATTAAAA +; G-cox3-E3 <== start +; G-cox3-I2 <== end + 5024 tttgagattaattataaattattaattttctcttagaactgtacatataattttattata + 5084 tacggctcaacataataaattgttattgtgcatacaaaattgatggaattagtattatgc + 5144 aatacatttttattataaatagtgtagtacttaagaattcctattatagggaagcgtagt + 5204 aaatattataaaatttttttgttataatactgttgtttactattttcatatttcattttt + 5264 ttatttaaaaaaaaatgaaaaagtttataatgcatatttgtttttttaaatgcaaattta + 5324 gatatttattattgttataatttttaatatcaaaaatgcaataaaatttgtttgtattag + 5384 aattttcatgtcaaaagaaatatttacaactttaaaaaatatactaaaatatttttatta + 5444 aacaaatacaataaaaaccgtac +; G-cox3-I2 <== start /group=II(derived) +; G-cox3-E2 <== end + 5467 CATGAAATCCGTGAAAACCTGTTGCTAAATAAAAAGTTGAACCATAAATACTATCTGAAA + 5527 TATCAAAATCAGCATTTCAATATTCGAAAATCTGTAAAGTAGTAAATATAAATGCTAATA + 5587 TTACTGTCAACAGTAAGCTAATTATAGCTTCTTCTCTAAACCTTTTTAAAATAGTATGAT + 5647 GGCACCACGTTACGCTGCATCCAGATAATAATAAAATTCCAGTGTTTAAAGCAGGCACAT + 5707 ATTTAGCGCTTAAAGAAAAAATACCAAGAGGGGGCCATTTAGTGCCAAGTTCAATAATTG + 5767 GGGCAAAGCTTGAAGTG +; G-cox3-E2 <== start +; G-cox3-I1 <== end + 5784 catcaaataatattaattagttatttgtgctcaaaaccgtatgaacttattgtactaagt + 5844 attacggctcccaggaaaaaacaacgtttttaaaa +; G-cox3-I1-orf673 <== end + 5879 ttaattaatatgcctgatgcggtattctatatctttaatgcgtaattgttttacattacc + 5939 gcattgtactattcctttttttgagaaaaagttctgatatatataataacgaagttgtgg + 5999 ttttgatccaaactttgtaattaaataattaagaaaatagcaagaagataaaaaatcaaa + 6059 ttgctttaattggaaaacaatagttttacttagaccaaaatatataataactttaattaa + 6119 ccattgattatatttttgaattaaaacgtttagtggtaattttaattgtattggggcaaa + 6179 tatatttctaagatcttctttaaggttagaaaaagttttagagcatatagtaatagttat + 6239 attattgtaataattaaataaaatttttctataaaagaaattttcttgatttagatatct + 6299 agtgcattgaatttttcgattaaacatattagtaaacttaaaacctaaatattcaaaaaa + 6359 catatttggatataatatttgtattgaagttacgtttttatctacttgaataaatttttt + 6419 ttttaaaaaaatcaataatcgataataaattattaaaaaatatgaaaaattagcagtaaa + 6479 atctactattaaaatgttacctaaaaatctataaatttgtgtatttaacttaaaatattg + 6539 taaaataagtgtactctgttgataatttttatttaaaaaacaattagaacggtcatttaa + 6599 tttttcggttaatttaaatgttaacggtaacaatacaaatgattccatattatttaacat + 6659 aacatttgcaattaatgcacccaaaattgtatttcataattttttaatatgtaatgtatt + 6719 atgtattcttctttcaagaagatatttatataaaaaaggataacatcagataattataag + 6779 ggagcggtatttgttacaaatgggcatatgttttgccatgacaagataagaattcatatt + 6839 taagttcttaaaaatatctatattaacaaattttttataaaaaatagttttataaaataa + 6899 ctttaattttattttcatattatgaatataatataaatatggtttgttttgctggtctaa + 6959 tttagaaattcaaaaattatacaatttttgtttaaaattaaaaaattttttatattttaa + 7019 aattaatagttttttataaaaaattaaataatatttaatttttcgagaaaactgtaaata + 7079 ccgaattaatgattttactaaaaatgtcttagatgaattagagaaagttgtaaattgttg + 7139 aatatttttctgccataaaattataggcaataatgctacataaacaattttttgtagtat + 7199 acgatcctgtattaaaatgttcggtaacacattatactttttataaaattgtaaatacct + 7259 ggcagcacttttatagtctaatcagaaattagaaatattatgtcttttaagaagacatca + 7319 gtttaattctttcctttttcttaaaatttgctggaatgtgcaattaattaattttctaat + 7379 tgaatataattcagttatagattttttagatttacaaaattgagatttattgcaatttga + 7439 atttttaccactgctttttacataacatcattttgattttaatatagaaaaagtaaacgt + 7499 tttgttatttaaatttgaaattgtacttgcttcttgacattgtatattatatataatata + 7559 tcatcgaattgctggtgattctaaaatccattgttggagtaatttaactttgaagggaag + 7619 agatgcagctgtaacagcatataaataattaattccttgactttgttgttgtaatagtaa + 7679 taataccatataattataaatactaattgcagtatttatacatttcatgagctcgacaaa + 7739 cgaatgttgttttaacaaccgaatattttcgttatttttatgagcgtatgctttaaggat + 7799 cagattattcaatcgaattaaatcttttttccaaaatttaagcgtatcaaaacttttcct + 7859 accaaaaaattttataagtttttttccatgaaaaatatacat +; G-cox3-I1-orf673 <== start + 7901 ttttttaattttctaaaatatttttttgtattttttttaaattgattagaaaaaatctta + 7961 tttttttattagattctgtctgaattaagaatacaaatgatgtatgtttacataacataa + 8021 aatttaataaaatatatattttattaaattttattttaataaatattgattatactgcaa + 8081 taaaagactattattgattaatttctgaaaaatccacacataattcaaaaaaagactact + 8141 tacgagagtaacttttaaaaccaatttttatacattatttatcaaatacatcacatatac + 8201 tacatgtattttgttaaaatgcgtacgtgaaatattttataaaataataattataaaata + 8261 tctcttcttacaattatttattaataaccaatttatctatatgctagatatgtatcttgc + 8321 cgacaaattcagagtatacccatgg +; G-cox3-I1 <== start ;; mfannot: no intron type identified +; G-cox3-E1 <== end + 8346 AAAAAGGCTCAAAAAAAAGCAAAAAAAAATAAAACTTCTGAAAGAATGAAAAGCGCCATT + 8406 CCAAAACTCAAACCAGTCTGTACTATTTGTGTATGCTGACCTTCGAAAGTTGATTCACGG + 8466 ATTACATCTCGCCATCAACATGTAATGCAAAAAATTATTGCGATTAACCCAAAAAGAACA + 8526 AACATATTACTATATTTATACGAATGCAAATAACTTACAAATCCACTTGTAAAAATTCAG + 8586 GCAGCGCAAGCCGTGAAAATTGGCCATGGGCTAGAATCCACTAAATGAAAACCATGAGTA + 8646 CATGTTAAAATTTTTTTTTTTAAAGATTTTAATAACAC +; G-cox3-E1 <== start +; G-cox3 <== start + 8684 TTAAATCCAAGTTTTATTACAAATTTTTACAACAATTGTTAGTTGACCTAAACTATTATG + 8744 A +;; mfannot: + 8745 tccctaattcgaaactatgcgtggtattttctaccacatagctt +;; mfannot: /group=II + 8789 CTTTATTGTAAGTAAAACTCTCCTACTTAATGTACCATTATTACTTACAATAATAAACAA + 8849 ACTTTGCATAGTATTGCTTAATCCATTCTTTTAATATTGATACAATTTCGCTTAATTTTT + 8909 CATGTTTTAAAATTTTAAACTTAGGATTTATATTTTATACCAAATAGATTTTTTCTTTAT + 8969 TTATACTTATGTTTTACGACATAAATACTATCTCTAATAAATAAATTTAAAAAATTTTTT + 9029 TTAAAGTAAATCAATAATAATAATTTAAAATTTATCCATTTTCAAAATATTAATATTGTA + 9089 GCAAATACATTAAATTTTGTTAAAACCTAATATATTTACTACAAATAATTAATTCTACTA + 9149 ATTACAGATTATCATTATTAATTAAAAATATAAAAACTAATATGTAACCTTTTATAGAAA + 9209 TAACAAAATACTAGAAAAATTTTATAAAATTAGCCTACTACATAAAATACTCAATTTATT + 9269 TGATAATAGTTTTGAATTAGAAT +;; G-nad9 <== end + 9292 TTATAA +;; G-nad9 <== end + 9298 AAAATCGAAATCCCGATACTCTTGAGCCATTTCTAAGGATTCAGTTAAAATACGTTTTTG + 9358 ATTTTCATCATACCGTACCTCAACATATCCACTTAAAGGAAAATCTTTCCGAAAAGGATG + 9418 TCCATCGGTAGGATA +;; G-nad9 <== start ;; 138,182 + 9433 GGAAATTCTATA +;; mfannot: + 9445 aaccctccactaaaaccacgcatacaatttatattataagtggctt +;; mfannot: /group=II(derived) + 9491 TCGTTAAATTTACTTTTTTCAATCAAAAAATTTCTATAAAATTTATAAACAGTATATACT + 9551 GTTTCCATTTTTTGGAAAAAAAGTAATTTAAACTTTTATCAAATTATACTCTAAATGATT + 9611 ACTCCAATTCGTACACAATAATTTATATTATCTAGTAAAAACGAATCCATATTTCAAATT + 9671 TAATATTTTTTGTTTTCAATATTTTTATATTAATTTAGTATAAAAAACAGGAAAACTAAT + 9731 AAATACCTTTTTTTGATTAAAAACTTATTATAAACTATAGAAACTAGTCTCTGTTTTCCT + 9791 TTTTAACATAAAAATGTTATTATTTAATCATTATACAGCAAATTCACAAACTATTATTGT + 9851 ATTTATATTTTATTAAAACCCATTTTAGCCAATTATCCTTTTATATTAAATAATATTATA + 9911 TATTTTTATTTAACTGTATTTATTAAGAATAAATAGGGAATAATAATTAAATTTTTAAAA +;; G-nad9 <== end + 9971 ATGGCTAACAAAACCGTAATCTGTTAGAATACGTCGTAAGTCAAAATTATTTATAAAAAA + 10031 AATACCAAACATATCCCACACTTCCCTTTCAAATCAAACTGCTGCTGGATAAATTAATGA + 10091 GATTGAATTAATTGTTGCTAATAAAGTTAAATTACTTTTTAAAAAAAATCTAGAATTTCG + 10151 GGATATACTTAAAAAATTATATATAATCTCAAAACGTTTTAATTTTGAAAGATAATCTAC + 10211 AGCAATAATATCAATTAAAATTTTATATTGTGTAAGTGTATGATTTTTTAAAAAAATAGA + 10271 AATGGGTTGGATAAATTCGTTTCAAACCCCCATGGCTATAATTTTTCTGTTTACGCATAC + 10331 AGAAATAATTCCACGCAAACAAGACTTTACTATATTTAAAGTATACTTTTCTAT +;; G-nad9 <== start ;; 6,143 + 10385 TAATTTATGTAATTGTCCAACTTTCAAAACTTTTTCCAT +;; G-nad9 <== start + 10424 CGTTT +;; G-cox2 <== end + 10429 TTAAATTAATTCTCCATTTGAATC +;; G-cox2 <== end + 10453 TTCAACATATTTGAAGAAAATTCAAGATACATATTCTTTAAAAGGTACAGCTTCAAGCGC + 10513 AATTGGCATAAATCCATGATTAATACCACTTAG +;; G-cox2 <== start ;; 238,268 + 10546 GTAGATATTATATAAAAATAATTA +;; mfannot: + 10570 cccctaattgaacttaacaagcgcttctcaacgcattaagctc +;; mfannot: /group=II + 10613 GATTTCAATCTAAAATCTTAGTGACGAAATTTCACAATATTTTTTATATATTTATCTTTT + 10673 GGGACATTGTATTTATTTTTACAAAAATAATTTAGTCATAATAAACATATAAACAGACTA + 10733 TATCTAAAAAAAAAATATTCTATGTAAAATTTAAAAAATATATTAAAGAAAGATGTACAG + 10793 TTTTTAAAAATATTTAGTTATCTAAGATTTTCCAAACTGTATCTTATTCACTTATAATCT + 10853 TAATATTAAAATAAAAGCAAAAAGAAATATCTTAATACATTTTTATAATATTAAAATTTT + 10913 AAATGAAATTTTTATAGCTACATTTATTACTAAAATTAGTATATAATTTATATATCACAG + 10973 TATTCCCAACATCTGTAATTTCAACTGAAAAAACTTACTCAATAAATACAATCTGATATA + 11033 TATTTATTTTTTAGAAAATATTTACGTAAATTTGATAAAATTTTAACTGTTGGCTCTAAA + 11093 GTTTTATAGATTTCCCAAAGCTAGTGCACTATAATATTTTTATATTACACATAGGAAATC + 11153 GACTTGTTTCTTTTCTAAACAAAAATTTAATAAATTAACTATACCGCCA +;; G-cox2 <== end + 11202 ACAGATCTCACTACACTGGCCATAATAAACACCAGGACGATCGATAAAAACTAGCACTTG + 11262 ATTTAATCTACCAGGACATGCATCGATTTTAATGCCTAACGAAGGTAATGCTCAACTATG + 11322 TAAAACATCAGTTGACGTTACAATCGCACGGATATTTGTATATATAGGTAAAATAATTCG + 11382 TTTATCTACTTCTAATAATCGAAAACTCCCTTCTTGTAAATCATCATCCCCTATAAGGTA + 11442 ACTATCAAATAAGAACGATACATCTGTTGGTAAATTAACCACTGTATAATCTGAATACTC + 11502 ATAACTTCACTGCCAATA +;; G-cox2 <== start ;; 137,239 + 11520 AGTAATTTCACAAGGAA +;; mfannot: + 11537 ttttctttggcaagaaccgtacaagcgttttgcaacgcatacggctc +;; mfannot: /group=II(derived) + 11584 TAGTAAATTTCTACGTAAACGTATAAACACATAAAATAGGAATTATAATTTGCAGACTGT + 11644 ATTATTTTTTTAAATTAATAACTACTAACTCTGAAAAAATTTTCAATATAATAATCATAT + 11704 TTTTTTTGAAAAATTTGAAATATACCTTAAGCTCTATACGTATTTGATAAATTCATACTG + 11764 ATTTATATGGCAAAAAAAATTCAAATTTTCTGAAAAAACACTGAATTTTAAAAACATATT + 11824 TTTATAAAAGAATTTTAATAAAAAATTAATATTATTTTCATTAAACAAAATAAATACAAT + 11884 TTTGAAGATTATAAACTATAAAGGCATTTATTTAAAATTTTTTCAAAAAACTAATATTAA + 11944 TTTTATATTAAATTTTTTTTTCCTTCAAAAAATCGAATTCATTTTACTTTGTAAAAAAAT + 12004 ATTTTTTTCTAAATATTTTTTCTGCTAAATCAATCCTCCTATTATTATTTTTATCTAAAA + 12064 ATAAAATACAATTATAAATAATTATTTCTACTTAAAAATAGAATATAACTTACTCTCTGA + 12124 ACTACCATAACCTACTTATGCAGATTTTTTTAGCTATTAACCTTTTTGTAAATTTTTTAA + 12184 TTATACTAAAAACACGTACGTTATTTTCAAACTAAATAAAATTTCTTTAGTGTCTAATTT + 12244 ACCAGAAATAACAAATTTCTTTTCATAAATTTGACCATTTCATCGTAATCTTAAACTTAA + 12304 TTTTTTATAAGACTATAAGTTTAAATTATAAAAAATTATAATATTAAGCTTAAGAAAAAC + 12364 TCAACTTCTATCCTAAAATACTTATATCGAATTCAATAAATACCTATGGTTTCAACAAAG + 12424 TAAAATTAAACTTTGTTTTTAATCTTTTGTACATTATTTTTGTACGAAATTATATTCATT + 12484 TCTTACATAAAGATATACTTATACACCGACCAATCAATACTTTTAATTTTATTATCACCT + 12544 TCGAACAAAAAACTTGTGTTTAAGGATTTTAATTTAATAATACAACCAATTTACTTACTA + 12604 CATTTAAACTTTTAATTCTATTATTAAATAACTCAAGCATAAGAATACGTATTAATACGA + 12664 CATTAACGTAAACCCTTATTCAAAAACTTTGAAACCTTATACATGTATTACGTATTTTCT + 12724 ATAATTTAGAAAATTTAATGAATTTCCCACTC +;; G-cox2 <== end + 12756 ATACCATTGGTGACCAATAACCTTTAAAGTTAGAACTGGATCTATAATTTCATCTATTGA + 12816 ATAAAGTATAGCTAAAGAAGAACTCATCACTCCTACTAAAAGTAACGCAGGTATTAAAAC + 12876 CCATAAAAACTCTAATATCATAATAACCCGATCTGACATATGTCATTCAGTTGTTCTAGG + 12936 GCTTGTAACATCATATTGCTTAGCTATACAAAATAAAATCCACATAACAATTCCTAAAAT + 12996 TAAAAATGCTATGAAAAATAAATCTTGGTACAGTGTAACAATACCATCCATAATAGGAGA + 13056 TGCAGAATCTTGAAATTCAACTTGCCAATTTTCAGCAGAATCAGCAAATAACTCATACCG + 13116 AAAAAGATCCAAAAAAAATATAAATATTAATATAAAATTAAAATT +;; G-cox2 <== start ;; 10,139 + 13161 ACGAAAAAACGAACTTTTTAATAAACACAT +;; G-cox2 <== start + 13191 AGAACACATAGATATCATATTTTTATGCTTTATACACAAACCCTAAAGTTTTTCTCTCTT + 13251 CAAATTTTTTACCAGACGTTAAAGTTTTATAAACAAGGACAAAAAATACTATTAACGAAA + 13311 TTACTGAAATATATGAACCTAGTGACGCAACTCAATTTCAATGAATAAACGCATCAGGAT + 13371 AATAGTACACTAGTCTAAATAAACCGTGCCCAAAACCGTATAAACTTATTATGCTAAGAA + 13431 TTACGGCTTCGAAGAAAGTAAAATTTAACATTTCTACCGTTATACGATAAATATATATGT + 13491 TTATTATATTAATTATATCAAAAATTATATACTATTATTTAATAACTATTTTTTATAATT + 13551 TTAACATCCGAAGTTATCCTGTATTATTAATTTAATAATATAAC +; G-orf621 <== end + 13595 TTATACTAAATTAATTTTAATAAATCTACTATAAGTAGATAAATATCGATATATATACGT + 13655 ACGTATTTTAGATACTGAATTATATTTTTTATACAAAAATTTTAAAATTCTTTTATAAAG + 13715 AATATAACTTAAAATTATTAACTGCCTATGTAGACTCTCAAAATAACGATAATATTGTAA + 13775 TATTTTACTCATAAACCTATTTACTTCATTTACAAGAATTTTTAAATTGAGTAATAGATT + 13835 CTTACAAGAAAATAACTGTAAAATCAATCTTCTAACCCGGTTAAAAAAATTTATATTCAA + 13895 TGAAACAGTCCACTTACTCAAAATTTTTTCATAAAAAGATAAATAATTTTTACATATTAT + 13955 AAAATTTTTAAAATTATATTCATTATTTTTAAAAAAAATGCTATTCAAACAATTAAACTT + 14015 CAATCCTGATAAATTCAACGTTGCATTTGGCCTACAATATTTAAATTTCACTATATTTGA + 14075 GCAATTTAACACACTTAATCCACATTTTATCAAAAATTTCACAAAAAATTCATAAAATCG + 14135 AATAAAATATTTACAACTTTTTTTTCCAAAAATTAAAAGTCTACCAGAATAATATACTAT + 14195 TTGTACCATTTGTCGATACTTCATTAATTCTAAATATAAATTACTCTTCTTTAACTCTAA + 14255 ACCACCGTTACTATTAGTAGTAATTTCTCTTGTGAATAAAAAAAATTCAAATAAAATAAA + 14315 TAAAAAAAAACTTAATAAACTTCTTAAAAATACATTTCACAGCATTTCATATTCAAAATG + 14375 CACTCCTGCGGCCTTCAATAAAACTTTATTAACATGGTTAAAAGCAAATGCACCAACTCA + 14435 AATTTTCGATAAAAAAAAATATTTTTTGCAAACTAGTATATTCTCCATAATAGGTAGACA + 14495 AGATATAAAACCCAAATATCTATTAATATTAATATCAATATATTTAGAAAAAGTCATAAT + 14555 ACCACTTATAATTAAACGTTTTCTCCGAACAGATAAATATCAAAATCAAAACTTATAACT + 14615 AATTTTACTTTGCCCAGTAGTTTTTTCGTGTAAAAAATTGTTAGAATTAACAAAAAAATA + 14675 TGAAATATTACAATTTCTTAAATAAAACAAATCCATATCATTAGACATGATACAGTTTGC + 14735 TAATTTTATATAACTTGGTATTAAATTATTTTTTTGTAAGTCTAAAACCTTACCTAAATT + 14795 TAAACAAATTCGAGAATACTCTAAATAGGGACGTAAAGAAAAACCAAAAATCTTTTGCAT + 14855 AATACAATCTTTTAATATAAATAAATAAATAATACAAAATTTCCTAAAATCGTATCTAAA + 14915 ATTAATAAGAGTTTCTTTAAAAGAAATTAACTTATAATAACATAAATAATACTTACAACT + 14975 ACAAATTAAACTTAACAACTGCAAACATCAATAATTAACTTTTTTAAATTTGATTAAAAG + 15035 ACAAATGAATTTTTTTTTTATACTATAGATTTTTTTTGGAAAATCTTGCCTTAACCTAAT + 15095 ATTTTTTTTAGATTTACCATATTTAGTTGTACTCAAAAATTTTTCTAAAAGACTTTTATT + 15155 ATAAACATTCTTAGAAGATAAAAATATAATATTTTTATTACCCATTACTTCACTAAGTGG + 15215 AAGTAACTGCGTATATCAAATTAAATACATTCGTACACTGAATGATTCCATAAATATAAT + 15275 TTGCATTATCACAAAAAATGTAGGTAATTTGAAACTTCCAAAATAATTAAGATTAGCCCC + 15335 ACCATATATTAACATCATTTTAAATACAACATGATTATAAAAAATAATTAAACTTTCTAA + 15395 TTTCAAAATTATCTCTATTTTAAATAAATTCGTATCTTTTCGTAGAAAAATATATCGTAA + 15455 CCGCAT +; G-orf621 <== start + 15461 ATCTACTATATGACAGCATCTAACTCAATACCTTAATAAATTAAAACTTTCTTTACAACT + 15521 AATAATATCTTTTTTTAAAACCTACCATTCTACGATAGTGCTTCAATTAACATTTTTAGC + 15581 TATTCTATCTGAAAAAAATTACAATAATTAACAAAAATCTTACCTAATCACAAATAATTT + 15641 TGCAAATTAAATATAACATTGGTATATACATAACAATAAAACTAACTTTTATCAATTTTT + 15701 TATACACGTCAACTTAACTGTAAACTATCCAATCGAAAACAGTACTTATCTTAATAAAAA + 15761 ATTTATAATATACTATTCTTATACATTACCATTATTTTAAGTATATTTGCTTGATTTAAG + 15821 GTATTATAATTATCTTCATA +; G-cox1 <== end +; G-cox1-E12 <== end + 15841 TTATCTACAATAAGAAAATAAATCAAGCTCGTTAACAATTTTTTTAATTTCAGACTTTAC + 15901 TCCTGGAATTCGTCTTGGCATTCCGGCTAAACCTAAAGCATGCATTGGAAAAAAAGTTAT + 15961 ATTTACACCAAAAAAAAATGTTCAAAAATGTATTTTACCTAATCTTTCAGGATATTTATA + 16021 TCCACTAATTTTACCAATTCATAAATAAAATCCGGCAAATA +; G-cox1-E12 <== start +; G-cox1-I11 <== end + 16062 ctccacaaagaatagaatttttaaaaacaaatccttctaaaaaactgcacatacaactta + 16122 attttgtatacagcttatttttataactaataaggcactatattatccattaaaaaatat + 16182 aaaataaatttaattaagtactttacttaacacttttattttattaagtttatcgattta + 16242 tactaaatttataattttaaaactaaccttttttctatttacctgtgcttatattaatta + 16302 ataaaaatatattaaaataataactacatatattcaataatctttcctttttaaaaaagt + 16362 ataacctaacgtattaatacaactatgttactaataaaaagctcctgtaatcctattgaa + 16422 ttaatttttttgtttactacaaataaaaatatgaataaaaatgaatttatatatttctag + 16482 attataatattataatatgtttacttataatttcaaagaatttactttatatagttatta + 16542 ttcaaaaaacaaagcaaatcttcaatacatactaaaatatactgaaatacattaaaattc + 16602 ttaaacgtaaaatttttacctttttcatatttaattgaattctatgattttacgctaaaa + 16662 tatatacatataaaccttataaaaaaattatcatatatgcacacgtccatctcttataaa + 16722 ttttttattaacttgttaaacatagatacatatattcaaaaattctactattcaaatact + 16782 tttttcaaaatcattattaacatccaattgattttaggt +; G-cox1-I11 <== start /group=II(derived) ;; mfannot: splice boundaries uncertain +; G-cox1-E11 <== end + 16821 ACAAAAACATAGCCCCCATAGATAAATAATACTTCGAATGCTGAA +; G-cox1-E11 <== start +; G-cox1-I10 <== end + 16866 aagcaagctgtattccacacataacaagcgatttttcaacggcattatgcgttctgatga + 16926 aacaaagcaatatttttatcacaatagtataatatcatctaaacaaataat +; G-cox1-I10-orf671 <== end + 16977 ttaacttttattaaaattaactttcaataatttttgtaatgaaaatccatcatatttacc + 17037 tgaacatattcatatataatgaattttacataaaaataattgtttaacaaaaaaaagtga + 17097 attctttcaaagtatctctgcagtcttatcaactttttcttcccgcgaagaaaaatatca + 17157 ttcagtagcttctaataaacaattcggaatacaacaacgaagtttctctactgaagtttc + 17217 taatgaaaaatcagacaaaattggaaaaaatactgaatctggagaaaaattagttaaaca + 17277 ccttttgtaaaaatttgttctctcagttggtatatataaaagaattactttacgggaatc + 17337 tttagaacatcgaactgttagatcaataccaaatttcttaaatgcccagtttgcagactg + 17397 ttttttataccgatgtgctaatgttaacgcagcacttcgttttaatgcatgtcaaaattt + 17457 gaaaaaaatctttcgagcaaaaataaaataataattttcaatattttgtataataagatt + 17517 ataccgatagacaacctctcaatctgaagcaaaggcaagtcatttatcttgacatttccc + 17577 aacaaatttaatacgtttgcctaaacgattaatcctaaaaaatccgaattcaacatactg + 17637 tttaaataatttcattattggaatgttaaattgtaattgaaacttagaaaattcttgaaa + 17697 tatatttatattagtactaatacaaaattgataatttttatgtagataataattcaaaaa + 17757 aaaaatctttttttcagaatattttataaaaatattaaatttcaaatcaatacctaaaga + 17817 acaacttatataattagataaacacaccaacactgcatgcataagttcttttttaccagc + 17877 aatacctaataaaatacaatttaaattccgcacataatataatttattatgataccataa + 17937 atattccttatttaataaatttaatgaatttttcattgttaaatatttgtgaattcgaaa + 17997 ttcgacaaacttatcaagctcccgaaaaaaaatatcataaaataacaagtttaacataaa + 18057 atcttgcaaatgtaatacactattataatagtaatcaccatcatataaattttcaaaaaa + 18117 aatataaccacaattccaaaatttattaattaacgaaactactcaataatcatttaaatg + 18177 atgactaataacgcttaaaaaaaaagtacaatttttaaaatcaaatatttgaataaattc + 18237 actcttgataaaccaagttacccccttccacttatctttaatatgttgcaaaaataaatg + 18297 attcttagtagtctcaaaaaacattttaaaagaaaatggcttaaacactacttctaaaag + 18357 tattttcaatgcctgctgaattaacttatctcgcataggtattaaactaaacaattttat + 18417 actaccataaacgttacttccaaaaaatcgcttaattggatgcggattataacattttga + 18477 ctctaattcttctgaaagctttacaatttgctctaaggtaagatttatcgaaaataactt + 18537 aactttcttgctattataataggatttcaaaaaataattacaataacaaattaacaaata + 18597 acgtggatcacataatattctatatataaaaaattgagtatcaacaatatttttactatt + 18657 aacgccagatccaatgtgaattaaaaaatgatctaaatctttaaaaaagattgtcaattc + 18717 tttaagagaaaaaatactttgaattttcttatcaataactacgcgcttaaacttattttt + 18777 gtaaaattttaacaaataccatgcttcactaatttgtttcatctgagatatttcacaaac + 18837 ttgatcgtaaattatatatcaaacatttatacttactaatacatccgctactgctatctc + 18897 gcttctaccaagtgtagaaaattcatatgtacacttgacatgtcttaactgcttagctca + 18957 agctaaaaaactatttaggtaacttattctaaacat +; G-cox1-I10-orf671 <== start + 18993 cctctttgaaaactattaacttttaaataaaattcgattaaaaacatttgtttattcgaa + 19053 taaaacattgtaatcagtgtacactccatatattatttattttagaataattaataacgc + 19113 aaccatataatcatattttaaaaagctcttataggtttaacctactaaaaaatatttact + 19173 aagaaaaatgttcatcttagattagcctttcaagcgttaatcgcccaacgtaatgaaaat + 19233 gtgctacaacataattgggatagtcaattttgctaagctatgtgtactcaactacattta + 19293 ctcccaatgaacatagcaaactaattacttagtactatgctctattatccgttttctata + 19353 tcctatttttcataaaaaaatgacttcataataaaacaaccaataatattaaaagcatag + 19413 tataatatttaaattaacaatgcacttagcctatttttatgaaaaatttaacttacataa + 19473 gatttactacgacagtaagtacttttataaaataaaataacgcattactaatttcaaaaa + 19533 ttcttaaaattaatctttaattcaattttctaaaaagaaattgtattaactaccctcaaa + 19593 ttactttgaactactaaatataaccagaaacgaaattacttcatataaaaatataacaat + 19653 ttcgacaaaacaatatacttcaatcaattatataatttatatttgctatatattaataaa + 19713 ataatgtttagaaatctctcacttaaattaatttaaaacataaaaattaaaccgttcata + 19773 ctttttctaatccatattattaaattaattatacatacttatctaataattagcgtatat + 19833 ttaatcttttctttctatcaatcagttttagaaaacacaaagttattggaattag +; G-cox1-I10 <== start /group=II ;; mfannot: splice boundaries uncertain +; G-cox1-E10 <== end + 19888 CGAAACCATAAGTATCATGAAGTGCAATATCAATTCCCGAATTTGCTAAAATAACCCCCG + 19948 TTAGTCCTCCAATAGTAAATAAAAATAAAAATCCAAAAGTAAATAAAACAGACGTATTAA + 20008 ATTGTATAACACCTCCTCACATAGTAACTAATCAACTAAA +; G-cox1-E10 <== start +; G-cox1-I9 <== end + 20048 ttagattggataaaaccataaattttcgccttttggttttaaactctattgaactttacg + 20108 caatacatcctatactataaagctcacatatataatttaaaacagcttactattaattta + 20168 ttaaaaaaacttttaataccctaagaacatatatgaatatttaagcattcaaaaatattt + 20228 agtaatttttttaaaatctaattaaataatatattgaacataaaaaaaatttagtaaaac + 20288 actaagataaattttttagtcatcttatatcataagatatgaattaaaaataataaaaag + 20348 cgaaatataaacaacgtactcaacatagccttagttatacatacttaaaatatttataaa + 20408 attaaatacttatattcaatattattcatttcccaaataaaagcccatcagtatatcaca + 20468 taattgcatcttacaataagatacttcctatttttagaaaataaattttttaacttattt + 20528 cttataaagaaatttcaaacaaaaacacataacataaattttcactattatgtaaactaa + 20588 taatagacagtaaacactactaccactctctatttttccttttgttactttaccaatctt + 20648 ttttcaaaaatatcttaccctaaatttttttctaaaaatacaatccattaacaccacatt + 20708 ctatcactacccactaatccaatctacaataaatttaaactaaatttctttgcatattaa + 20768 acgaaaataaatgatctaaattaaataaattattaataatgacatactgaacgtactact + 20828 ccca +; G-cox1-I9 <== start ;; mfannot: no intron type identified +; G-cox1-E9 <== end + 20832 AACTTTGATACCTGTAGGAACCGCAATAAT +; G-cox1-E9 <== start +; G-cox1-I8 <== end + 20862 aaggatgatcgatataaattttatctaccccttccgaaccttccaagctaattactcagc + 20922 ataaggctctgtaatgaaaacaactcgacttacgacttgttgataaaaagctaaaaaaaa + 20982 taatttctttactatatacaatatattgagaatataaaataaaattatccaaaataaata + 21042 caataggaacatcttacctacatgttaaccaataacgtaaaataaacatattaaaacaaa + 21102 tcttaagcctataaggacattaaacatatttaatatattttaactaa +; G-cox1-I8-orf385 <== end + 21149 ctaaactaaaataggtttatttaatgtaaaaaacaataacaatcccgtttggtaatatga + 21209 gatttctaaaaaaaatattggtacattactagtatgttgtatcgacgcaaaccgtcttaa + 21269 ttttaaaaacatattaagccaaatacaataacaatcagtagctattttagaatctgactt + 21329 aacacgtaaatgccaaggtaatccataaggagaacagtttgcttgatttttcaaaaaatt + 21389 acgtataacccaagtagagcgccgtaaaccctctaatcgaaacttctgaattaaatactt + 21449 tttaaatactttatatattagtttgtcaaaaagttttaatttatttgaaatacctactct + 21509 cacaaaataactaaaaatcttttgaataataacattaacttttaatattactatttttgt + 21569 agctaaaaccaaaagacttttaatagtttgaatcaaacactgttttaataaactaaaaac + 21629 ttgtcaagtagggtatatagacactattctcgaagaataaaaacaatctgaaattaaaaa + 21689 attcttacttaccgctccaaatttaataaaaaatataaagcctaaatagaaacaataaat + 21749 tttacttaacctctgaaaaaaataaggctgcactctaatatatatcaaaccaacttgata + 21809 aaacaataactgaagttttgaccaaaaggccataatatttatgttatctgtaacaagtaa + 21869 taaaatactcccattacaataaaataattctataggaacataactataatctatttttcc + 21929 taaaaaataacatcttttataaacccccctaattttcttatcattaaatttaatacagca + 21989 cttaaccaaaaaatcattaaatatccatcaaattacaacattttgcactaacaaccaaac + 22049 acgcaatcaaatttctaaatttatatcgcaagaaaactgtagtttgcattggctagtgta + 22109 caaactaatccactgctttaatagatatctcaaatacaaaggaatgtgaaaaaaacatct + 22169 attaattaaatctgaatttaatttctctgcgtatttaaataatttgattttaaaaaaagt + 22229 taaacgtttattacccatcatttccttcaatgttctaaaagcacacgtagcatttcgacc + 22289 ttttcgatttgaatacat +; G-cox1-I8-orf385 <== start + 22307 attccgtgtaaactttgcttcataatagggttcaattaaataacaaaaaataacctgtac + 22367 tacattatctggaaagtttctttctacataacctattcatttttttttatttcaattaat + 22427 tcaaaatcattttcgaaataaacgaaatgtgcttaataaaatacaataatttgattcttt + 22487 aataccattaatttttccagtaaattttctaattctagaaaaaatatttcctatgtctgt + 22547 taccgccaaataataaatacaaatattaataataaatttatttattaatacaaacgaact + 22607 agcatcttggttattagatgaaagacgacaaatttctcgttgtaatttatacaatatccc + 22667 caaaataaatttatgaaattttatacccaattgccaaaccccgcactcaaggcacttaac + 22727 taattgatttgtatagaatttaaactgtgataaaaaaaaccgttctattttttggcctaa + 22787 atgcacctccctaaaaatcaaattttcataaaaaatctacaattatttctcttaacccta + 22847 catttataaatacccttaaatctagttaaaagcattcaatctgaataagtatataaacct + 22907 acttataaaatttacctaaaatctaaaaatcaaatactcatagtatacatatttaattta + 22967 agatatttttgctgttttacttaatttgaatttactgtttaatcaacacattgaatcctt + 23027 aataaactatattaatttttagacaaaaattatataatattttatcacacaaaaagcaat + 23087 attctaacagtacaccaatatcacaaaatattttaagtgcatcaaatcaatcaaaaattt + 23147 gaaatttatataatttaatccaaaattaaaacaatttttccaagaattataaatagaaaa + 23207 attatgtatttaatttatttctaataattaacttagaaataaccaccaacatcgcaaaaa + 23267 aagtatctttaataatctatcat +; G-cox1-I8 <== start /group=II ;; mfannot: splice boundaries uncertain +; G-cox1-E8 <== end + 23290 CATAGTTGCTGCTGTAAAATAAGCACGAGTATCTACATCTAAACCTACTGTATACATATG +; G-cox1-E8 <== start +; G-cox1-I7 <== end + 23350 gttaagatcgaggtacataacctctccctcttgaactgtgcatgccagttagccagcaca + 23410 cagctcacaataaaaaaaaatctttttaaacgattactaattaaacaaggtttaattacc + 23470 tttaattattttgtaattttttcactaaaataatacataatatagcacaaatattaatta + 23530 gttaagttataaagtaaatctaataatatttttaaaatcttccaattacaaaaattttct + 23590 cttaacgctctgatattatttttcctaaaaaaaaaataaattcaaaatcctaaattccat + 23650 tttacaatatccatataccacatttctaaagtttaaatagaacattaactgacttctaat + 23710 tagaatcgctatatgtaatttgtactatataaaaagcaaaatccaacggatcctcttaca + 23770 aactcacttgcataaaccaaagattcgcattagccacataaaactaatcatttggtacta + 23830 gtatatgcaaaatcgttttacaaacatttcagagaataccactactttcctctgcttctt + 23890 cttactctatcgctggataactactcaattagctgctaatttatacactcacaatagttt + 23950 attttttttacaaaactatcttcataaattaacaaaaattttaataaaaaatttaattaa + 24010 ttctaataaaattccagtcgaac +; G-cox1-I7 <== start /group=II +; G-cox1-E7 <== end + 24033 ATGCGCTCATACAATAAATCCTAAAAAACCAATACAAAGCATA +; G-cox1-E7 <== start +; G-cox1-I6 <== end + 24076 attgttataggtaataaatcaaattctatgattcataaaccccaactcagatccgtacac + 24136 gcaaatctctaagcatacggctctttaaatctaaaatagcaaattttctatctttcattt + 24196 tcttttaacaataccaaattaataaagcattagatatttacaacatatactaaattaaca + 24256 tttcttctttaatcaacttatagaaacaatctttttatcttttatacgcatattaattaa + 24316 caactgacactttaaaaattctcttatataagatatcaaaagcacattaaaaataaaaaa + 24376 atctcataaatt +; G-cox1-I6-orf676 <== end + 24388 ttatcgtcgcatcaaaaattttttatacagttttcaagaataccaatccaaacttctacg + 24448 aacttcacgttttccaattaacggtaaaaaataataaaaccaattactaagcaacaatca + 24508 aagttttgttttcaatatacttattgaaaatctaccacttgataacacattagaatataa + 24568 gtaacgtattttacatcgtagtgtaacaataccactgtttataggatataagctaaaatt + 24628 accgcaacataaaaacatacttaatataccccaatttactatagtcggaatacgtaccca + 24688 tttaaataagtgtcaataaaaaattcagatataaaaattaaaacaattcctatatgaata + 24748 ctctcatttaaaaatatctaattgagactctaacaacgtaaaattacgttttcaaaaata + 24808 taaacttatcctaaactttaaatttctaatctctgctaacgtacgcaagttagttataat + 24868 aagcctattcccatactgtatatgaaaaattttcttaaaataatcctggcacaaacagta + 24928 attaaatcaattataggaaaaatgcgacaattctattcgtcaattttttattctcctgta + 24988 attacatatatatataaaatgaaaattcaataaagaataatatcaaccaacctccctaat + 25048 acttattagtaaataatttatgaacacaaaacctaaaatctttattgaaaaagcgcatac + 25108 ccaattagtttttaatttttcatcaacacccagaatataattcacacctaacattcatcg + 25168 aaaatttttaaaatttgatacctttctaaaataatattgtaattttttcgagatatttat + 25228 gcaatttgtaaaccaactaaaatcagcacaactaaaataatttttaaaattaatatcaaa + 25288 tatataaaatttctgaaaaaacccaatacaactttgattatcaatattattatattctga + 25348 taaagatttaattttttgcaaaaaaataatttcgccactttcacttaaaccataattaaa + 25408 tcataaactatactgctgaatatcatagctaattttaaaaattgtaggaaatcattgaca + 25468 attttgtcgaagtgagaatccggaaaaaaacacattatttaatacttctaataagggctc + 25528 aatgttaaattgaactaatttttgcaataacttctcaaatttagaaaattggtaaaaaat + 25588 ttgaaactttttatatttatctataaaaaaataaactaattttaaattctttaagtattg + 25648 acaaaatatagaattagtataaatactattaaataatccacatttatgtgccgtattcaa + 25708 acgcatcaaaaaaattctgtgatgcatcaaaaattttattggtcctttaaaaaaaattca + 25768 ttttttttcaaatgaatctaacattcattttaactttaaattatcataatttaattcatt + 25828 aaaaaaccccaataacatcagcgtgtaccgagccttagttgaaaatattttaaacctaac + 25888 gcgtcaatttacacaaaacttcaaatatctttcatgaatgctattaatattttttataaa + 25948 agaatcttttgaaatttgctcaattatgtaaattttccaaataaatgaattgatattaga + 26008 ttgtattcgtaccaatcaccctttccaaaaaaaattaggtaaatctaataaaacaagaca + 26068 aaatcgccataattgacagcgcttgagaaaaaaaactgaatctataataaatttagaaaa + 26128 aatatctgaaaataatataataattctttgaaataaaaatctaaaattcatatcaatttg + 26188 ctgaacaatccgctgtgcacaccacgcgtaaatcataggtcatatttcttttttaaccaa + 26248 tcaaaatacttctaaaattaattttgattcttctaaaaaacattgatttttaaaagtatt + 26308 tacaaaaatatttttaaaaattgaatgatgatatcttacttgaaaacagctattatatag + 26368 atttcaaaatttattaactttatctaaccgacttttaatcgactgtgccat +; G-cox1-I6-orf676 <== start + 26419 cttattctaaaatacgttttccttttatctttacatgtctaatctcgttacttttaaata + 26479 aacaatacgctatttatattttcttttattttatacattcataaaatttaatctattttc + 26539 taatatattttagcgttcacggaaatatgtgcgaaataactactcatgcaaataaaactt + 26599 ttggttaaatagtatttaaattatttctaaaaattaaccattataaccctaaattttgtt + 26659 tttatattcaaataaaattaaattgaactgctactatttttagagttgtataaacaccac + 26719 ac +; G-cox1-I6 <== start /group=II +; G-cox1-E6 <== end + 26721 GCATAAACCATACCTAAAAAACCAAAAATACGTTTTTTTGAAAATAATTCTATAGTTTGA + 26781 CTTATTGTACCAAATGCTGGTAAAATTAAAATATATACTTCTGG +; G-cox1-E6 <== start +; G-cox1-I5 <== end + 26825 agtatgatagattacaatatttactaatgtagccccataccgaactgcacaagcaattta + 26885 cactgcaaacagctcttaacaaacaaattataactttt +; G-cox1-I5-orf550 <== end + 26923 ttataaaaaaaatcttttattcaaactataaataataaaatgccaagcaaatcaaataga + 26983 atggctaaataaactaaaagtatacgaaccaaatcaattattcgcttttaaaaaaaaact + 27043 cctaaatatcttacacattttgcataaaaattgaattagtactttacgaaattctataca + 27103 aactttcttattaactaaaatacaactcgatacagaaaaatctatatatatcacaaattt + 27163 taaccttaaacttctcaaaaaactccttactatttgaacatagcgttgaaaaacaaatcc + 27223 taaaaaatatatactaatgtttttataccataccaaccactcaatagttcgaatcactac + 27283 agttaacccacgcgccttagaaaacactttaaaacgttcttgtataaaacttaaacaact + 27343 tttcttcctaataacaacaataaaaacatctttataacgaaccaacaaccataacctctc + 27403 ttctaactgcttgcgtaaatataatgttgaatttaaacaatttcttccttttttttgacc + 27463 gttgagtctctcaatttcaacattaaaaatatcccttaacccatctaatataaaatttac + 27523 taaagaaactccaattctgcttttggaaaaaaatcgatttcaaatataacctcctgtttt + 27583 caaccagaatgacagatttcttaatcaatatattataatatttttaaaaaaatagggcat + 27643 tggaaaattaattcgaatccaattacagccctttgtatcaaaaaaatttacaaaataccc + 27703 gcataaaatatgtttaacttctaataagttagtagaaaacctaaataacctcttttgggt + 27763 acaaatcgtattttctgacaaaatcgtatacaagtgtagaagagcacgcggcgcattccg + 27823 tcctacacaataaccataattatcaaaatcagcatgtacatcaactactggttctaaaag + 27883 ctgcataaacaattcttgcacaattttatcgtaaataaaaaattttactgagaatttact + 27943 aatccgattataatttaactgcttagagtagaaagcaactaaatttttctttgtaatttt + 28003 cgtaaaccaagtgaatttatgcgttgaggcttttagatacagttttggaaccaaatattg + 28063 aaacgacttacttacaatttcaatcgcagctaaacatacatctggctttaaaactcaatc + 28123 cattatcagggattgaactaagattgatcgcataccatgtttataagaaagtaatgatat + 28183 gtatttttgacgtaattttactaattctaaaatttccatgctatagctacgcatgggtca + 28243 taattttaaacttaacatagtaactaattttggtattaattttttacttttattcataat + 28303 tctgaacctgtattgtagtacaatacctcttatactatgaattaaatagaaacgtttaat + 28363 tctttgctcattataatgacaaatgccaatatgccatttaatatttcatctatcaacata + 28423 tttgctaacagcaacgcttcgatattttccactagaaaaccacagcttaccgtagactac + 28483 aatatgcagtagaaacgtactctttctgaataagctgcttataataaactttgagtaaaa + 28543 cataataccatcgtgtgatccaccctttaacat +; G-cox1-I5-orf550 <== start + 28576 atttacctaattcggaaaaagcttcctttacatatactttggcactaaagtatttgacta + 28636 attacctttttaaaagaaacaaatctaaatgataaatattatataatattaccaaccatt + 28696 catttaaattcgatgtataaaaatgtgtcttccagcagatttttgctctttctaattaca + 28756 aaatgataaagggaatatccactaaaatatattcaaaatgttacgtcgccc +; G-cox1-I5 <== start /group=II +; G-cox1-E5 <== end + 28807 ATGACCAAAAAACCAAAAAAGATGCTGAAATAATACAGGATCACCACCACC +; G-cox1-E5 <== start +; G-cox1-I4 <== end + 28858 atttaaaatagaatctttttactaaaattctttaaaaaaaactgtacttgttacttatta + 28918 acatacagcttaactaaataaatataatttactcatattgaaatacttgctcttaaaatt + 28978 atacaccaccagctaaaagaggattcttttacaagcatcacaattatcttcttttcatag + 29038 aattcttttaaaaaaataattaacaatcattattaaaaaaatttcatgaaattactgtat + 29098 aaatttttaaacacactctcagatactactacaagaaaatctaaattaaattaattaata + 29158 tgaaacgcaaaatttatccaacaataataaatttttcccatattgaaaaatcaaatacaa + 29218 tttttatttattaaaatctctaatcttcattaagtacattactaattataaacaaattac + 29278 aattcaactaactgatatcgtcatctttttcttttttcacacaacataacgactaaatac + 29338 tacaattttaattaaaaaactaatctaaaaattctaaaaccaactaagattataatttta + 29398 atgataaaataacacatcacac +; G-cox1-I4 <== start /group=II(derived) +; G-cox1-E4 <== end + 29420 TGCCGGATCA +; G-cox1-E4 <== start +; G-cox1-I3 <== end + 29430 ttcttgatagaatttattttatttatataaataccccaattaaaacttattaagctaatc + 29490 tcttagcaataagctctttaaattttttcttaaaaaatttccgtaaatacataaattttc + 29550 taacgtatatacaacttttataatctctaaaaaaaaattatttttacccgtttttataag + 29610 taaaacattttattgctcaagtaaacaaaatcttaatttatttcgctttaatcgctaaca + 29670 cactttgtttactactaacaataaaaccgccattattcccatacttaatcttcacacttg + 29730 taaataagcgaaactaaatctaaaaattttgttattctgcgttgtttaacgttttattta + 29790 cttaaaagataatattatatagctctgaattttttctcaatatcaactaatatatacact + 29850 atatctatttaaattaaacataatcaaaaatttacttctactcaaaaaatacataatttc + 29910 aactaaaaacaacactataatccacatttaaacactaactgcttcgatgtcataaaaaaa + 29970 atttttactttaaaaaagaaaattgaatcggcgcac +; G-cox1-I3 <== start ;; mfannot: no intron type identified +; G-cox1-E3 <== end + 30006 AGAAACGTTGTATTAAAATTTCTATCAGTTAAAAGA +; G-cox1-E3 <== start +; G-cox1-I2 <== end + 30042 taatagttcgatcagttattctttaaattaaccagcgctatttcacacagaaacaagcta + 30102 atttcttagcatatctgcgttccgataattctattgagaaatgttttctaaacaaatgaa + 30162 aacctaaaaaatctataatataaaatttatacacaactgctaattgtttaaaagtattat + 30222 taaattttaatgaatctaaacacacacgcataccaaactcacaaactaaagtaacctaaa + 30282 tcttaatatctaaattttttataattatt +; G-cox1-I2-orf580 <== end + 30311 ttatctatctttaaattctgagacaaaatccataattaaatttgtaccaaaacgaacata + 30371 aacctttttagcagattttagcttataccaatgcgctatcgtcaacgctaaacatctctt + 30431 caaaagataaaaaatttcatataaaataaccgtattactcgtaattttgtaataaagttt + 30491 aatagctatccataatctaccaaaccatcttgtaatagcgtcaatagaacctaaagctaa + 30551 taatttatcacaacgccgagcaacatattttatatgatttgttttgcgcgcaatttgaaa + 30611 aaaacctaattttgtataatacttatataactgagataaaggtactttaaaaaaaatacc + 30671 accagcacaaacttttttaaccaaaccaggcgcagtatttaaaagaattccattttttac + 30731 taagttatatcccaaaaaatgagtacctatcccactacaacaataaattccagttttagc + 30791 agtacatatttgtaaaaaaagtttcgtttcaataaaaaaaacaatttgttgcaatatcaa + 30851 taaagcttcctgttcagagcctataaaatataaaagaatttcgtttgaataacgataata + 30911 atgtaaactactacgcgaataaattcccttagtatgaattctcgtcaacttataaaaata + 30971 tttaacaaacttccttttaatcaatctagaccaaaaacaatttattttaaagaacatgcc + 31031 tcttcaaaaaaatgcagacacaatatctgaaatttcaaatctaccagtcaaacttctatt + 31091 aaattgaggaattaagctgctataaatcattatatctaattcatgtaaacaaatattcaa + 31151 aataaaaaaagaaaaaatatgttttaaaaaaaactttttacaatattttacagtataatt + 31211 attcgaaaacactacaaaattatccttgaaaacttgtattattaattgaattaaagaata + 31271 ttcacaaagtttactatagagaatacaaaataaagattgaacagtaaaaatactatctga + 31331 cattccaacaatattcaagttaattgatcaaattggagatttagttgttgagcgaatacg + 31391 tgataaacaagaaaacacattacgtctataccgaaaaccaaaagaaacattcaaaaatct + 31451 atactcataaatgggccctaataataaaattatagcctgttgaataattacctctgaaag + 31511 atgattaaattcaaacttatcactgtaaaaatttcgtgaattaacaaataacctcttagc + 31571 acaacaatatgtacctaaccgaatactttctgctaagtaaacaatcccacctaaagtagc + 31631 tttcatcggaaaatttgaaatacctcgaattctaatccccctataaacataaatcaaaaa + 31691 attaggatctatgagtaatttaaataaaccactacttttaacagacaaacagcgtttgca + 31751 attaagaacaaaagcattgtattcatataaaatgccaattaacctctcctctgaaaaatg + 31811 ctttcggattttagcagaaactctatttaatttaggtaaaatttcactatataaacgaaa + 31871 accttcccaatataattgatttatctgaggaacttccctcttcgaacaataaaccgttgc + 31931 aataaccatatgctttaaaactcctatgtttttaaacggatgccgataatttagtactcc + 31991 aacctcgcttttacattttaaagaaaattttctttgaactagcattaacttaccaaaatg + 32051 cat +; G-cox1-I2-orf580 <== start + 32054 atcatttcttcttcaagtatattttattttatcataaaataaatgattttagactttatg + 32114 cgattcataaatactacatacatgtatcattccaactacaacaatccagagacacaatgc + 32174 gacacactgatgttgaatttaatataatattaatcaaaaatttataataaaaatatattg + 32234 tgaaattaaaactgaaccgtcccaaatacctcaacgtacccttaaccatttaaaaataac + 32294 tctaaatgcttttttaaacgaaaatcaaaccaatgccacttcgtataaaatttagagcat + 32354 tctaataactcacaagtattaataagtatactttaatagaaattcgcccc +; G-cox1-I2 <== start ;; mfannot: no intron type identified +; G-cox1-E2 <== end + 32404 ATTGTAATTCCTCCTGCAAAAACTGGAAGAGATAATAATAATAAAAATGCAGTGATGAAT + 32464 ACTGATCAAACAAATAAAGGAAGGCGTTGTCAATTCATACCTAACAACCTCATATTAACT + 32524 ATCGTAGTTATAAAATTAATTGCACCTAAAATTGATGAAATTCCTGATAAATGTAAACTA + 32584 AAAATAGCCATATCTACAGACGGTCCTGAGTGCGATTGTTCTGCAGATAATGGAGGATAA + 32644 ACCGTTCACCCGGTACCAGCACCTACTTCCACTAAAGATGAACCCAATAATAACAAAAGA + 32704 GACGGAGGTAGTAATCAAAAGCTTACGTTAT +; G-cox1-E2 <== start +; G-cox1-I1 <== end + 32735 aaaaagtaaaacgttggatagaaaagcccctttttctattttatttaattctaagcccaa + 32795 cagagttctcataaaactttacgtatcaatcccttattataaagcttttttatatatcaa + 32855 atttttaaaattgtacctaactttatattatgttaaataatataagaaccaatacacaat + 32915 attcaaacagatatacattttttagtttctaccaactggtatcatactatgtataaacat + 32975 tctaacaataatactttaattaagtaaaattcttattcgttgcggtattccaataacttt + 33035 taccatttaccttttatctaaaaaaattattaaactgttgtcttaaaatttccaaaatat + 33095 ttcctcacctgaaaatattataaattaaattattgattaaacaaataaaagtattacgta + 33155 aaatcaaaactgcaaaacacagttttaattacctaaatataccccgtaaagtaactaaat + 33215 ttttagattcaacgctactattcaacttttcaacaaaattagataacaaaatatattaaa + 33275 taaactgaacatataaaatacacatatattacagaatgcattcgcaaccacct +; G-cox1-I1 <== start ;; mfannot: no intron type identified +; G-cox1-E1 <== end + 33328 TTAATCGAGGAAATGCCAT +; G-cox1-E1 <== start +; G-cox1 <== start + 33347 ATCAGGAGCACCAATATAGATAGGAACAAATCAATTTCCATTTGAGATAGAGCATAT +;; mfannot: G-cox1 <== start Def by similarity + 33404 TTAACCAGTTAAAAC +;; mfannot: + 33419 cccctcaaagaaccatatttgcaaagcaatccacacatggctc +;; mfannot: /group=II + 33462 AATATTATACATATCGCTAATGCACAATACTATCTCGAATTTTACAATAAAAAATTAATC + 33522 CGATTATCTACTTCCTTGCGATACAAAATTAAGTAAACAATATTGACTTCCTACTTTTAT + 33582 GCGCTATTAAAAAAATAAATATATTTAACTAAAAACCTTACTATTCTTAACAACAACATA + 33642 AATTATAACCAGTACTTACAATTACATACTTTCACCGCAAATTTACCTTAAAAATATGTA + 33702 AATTTTTTAATTTACTTCTAAATTATAGATATTATTAGCCCCTTTCAGTCTAATTTAAAC + 33762 ATATTTTAACTAAATTCTTAGCAAATCAAAATAGCTTTAAATTTAATCTGCTAAATACTT + 33822 ATTTCTTATTTGTCTCACTATGCATAAAGATTAATTTTTAAAAATATATTTGTATTAAAC + 33882 TAAAATATCTATTTACTTTATCCTTAGCTGCTTAACGTAATTAACCTGAATAATAGATTA + 33942 ATACTAAAAAATACACTAAACAAACACTAAAATACATATCTTTTTGTAACATAAAAAGCC + 34002 ACCAATTAAAACTGGCATAAGCATAAAAAATATTTGAGTCAAATATTTATAGCTTGAATT + 34062 TGCTCATAGAATCAAACATGATAATTGCATACCATTTAACTCCACATTTTTACTTTAAGA + 34122 AGAATTTTAATTTAATAAAAAATACTAAATATTCCTTAAAATTGAAAATTTTTATTTTAA + 34182 TCTACAACAATCATGTATAAATTATGAATGCGCGATAAATCAATCCATTTTTACCCTATT + 34242 TTAAGCGATTTTATCACCGCGTTTTGCCAGAGAATAAAACTCTATCTTATATACTATTAT + 34302 TTACACAAACTCTTCTAACACCATTAAATCAATACATACTAATAATAAATAGAAAAGTTA + 34362 GTTCCAACGCCCCCTGCCAATTTATCCCATATAACTATAAATAAACTAACCAAAACCGAA + 34422 CTATATATTACAATAATATACAAAATTAAATTAGTTTTATTTTTGAAAACAATGTATCAG + 34482 GTTTGTAATTCTAAACGTAAAAACTTTTTAAAAATCTTTAGCACTTGTTATCTCTTTTCT + 34542 AGCTTTTTCTATGATATAATAAATCCTACAAGTTTTAACTTAATACAAGTCATATCTATT + 34602 ATTAATTAAATTAAAATAGTATATAAATAAAAATAAACTTACTCATAATAAAAGCATGTG + 34662 CCGTAACAACAACGTTATAAAATTGATGATTTCCTAATAAAATCTGGTTTCCTGGGTAAG + 34722 CCAATTCAGCTCGTATTAAAATTGATAACGTTGTACCAATAACACCAGAAAATGCCCCAA + 34782 ACAATAAATATAAAGGTCAGGTAGGTACATATATTTTTT +;; mfannot: + 34821 ccctcctattaatctgtacatgcgttacaacgcatacagctt +;; mfannot: /group=II + 34863 AGTTTAATTTAGAATTTATCAACAGTATAATATAAATAATGATAAAATAATAAATATTAA + 34923 AATCATTACCTTTTACAAAAAATTCAGATCAGATTTCCCTTTATTCAAAAAACACTATCT + 34983 TGAAACACCCAATTATATTTTTCATGAAAATTTTTATATTAAATTCTTGATACCATACAA + 35043 AAAGTTATTAATAAAAATTCAATTTTTCAATTTGGAACCCTTGATTTATTATAAAACCTA + 35103 TATAAAAAAATTAACTAAATTAAAATTTCATATCAAAATTTTTTCATACGGTTTAACATT + 35163 AGTATCCTTATAAATATAATTACAGATACTCCTAAAAAATACTACAAACTATTAAAATTT + 35223 TCTTTAAAAATTAAAAAAATACACAACTGAAAAACACAGTAATCGACACACTTCCAAATT + 35283 GGATAGAATTGGCAACTAAGCAA +;; mfannot: + 35306 atcccccaagtaaactgtacatatgaattaacttcacatacagctt +;; mfannot: /group=II(derived) + 35352 AATTCAGGTTAAAAAAAATTATTATTACCACTGTCCATTTAAAAAAATGCTATATAATAA + 35412 AGAAGTTACAGTACAATTA +; G-orf526 <== end + 35431 TTACATTAACCACTGCAAATATGCTCTAATATTTGAATGAAATGCATGGATTCTACGAAA + 35491 TTTAACAGGAAGAAAAAAACTATAAATTGATAAACAATTTGTATCTACAATAGGCGACCA + 35551 CAAATACACAATCTCAGTATTGTAATTTAAATTACTTTGTAATTTATTTTTAATTAAACC + 35611 TTTAAAAACTCATTTGCGCTTAGAAAATTTAAATGTAGTTTGTAAAAAATATTGATACGC + 35671 TATCATATTTTTTCCCCACTTCGGATGTTTTCTGCGAGCCCAATTTCAACATAATTTAAA + 35731 TAAATAATTATCTAACTTCAAACGATATCAAAATGAATATCCAAAAGAATAATATTGGCA + 35791 TCACCGCATAATTAAAGGATTAACCTGCGTTATTAATTCAAAGGCTGTTTTATGTGTTTG + 35851 ATAATAAAAAATATCATGCAATTGCCTACAAATAACTACAAATTTACTAAACGTTGGAAA + 35911 TAAAATAAAAAAAAACATATTTACATTTTTACAAGTATAACCAAAATCATACCCCAAAAA + 35971 CGATAAATTCTCATTTTTTAATGAAAATAATCTTAAAATATACTGTGTTGCATGTACTCC + 36031 CCTAAATTGTAAAAAATTAACTATAAATGATCTTAAATTTAAAACTTGTAACCACCATAA + 36091 ATTCCCAATTATAATAAATTCCCCAGCATATCTAATAAACTGAAAAGTATCAATAACCTG + 36151 GCTTAAATTACAATGCTTATTTAAATTACTACTAATAGATAAAGATTTTAAATAAAAAAA + 36211 CCGTCCTCACCGCTTTAATTTTTTCTCCAAATTATTTAAAATAAAATTAATAACAGTATT + 36271 GGTTAAAATTCCATTTACAAAAACCCCACCTTCTGCTGAAGAGGTAGTTAAGGCTTTTCG + 36331 GCGCAATAGGCCGGAACATAATCAATTATGCAATAACGGAACACATCTAATAGGTACCGG + 36391 TAAATATTTTAATATTCACGTAGAAACAGAAAAAGTAAAAAAATTCAAAACATTACATTT + 36451 TAAGATTCCTACTTCTTTTTTAAATTTTGATTGGATAGCAACATAAACATCTGAAATAGC + 36511 TTGCTGCTGTGAACGATGTCTTCGGAATCCGTAATTATTATAATCAGAAATCGATTCCAC + 36571 AATAGGCTCAAGTATTAAATTAAATAAACTTTGAGCTGCACGTTCTTCTAAAGTAACTAC + 36631 ATATGAAACACAAGTTTTTTTTTTGCTAAACTTAGAAAAAATTTTATATTTTACTAATTC + 36691 AAATTTCAAATCTGAAAAAGAATTTAATTTAGCTACTAACTTAAGCTTATCTATATTTCG + 36751 ACAGACAAAAGATTTCCTATTTTGAACTAATTTAATATCTTTACTCTCTACAACACGACG + 36811 AACTGCTACTAACTTAAACACCAAAGACGAAAGTAAATAATTTTGATATTGTTGTACTAC + 36871 TACATGACGTGATCCATATAAAACTGTTAACTTGGCTAAATTCATCTGCCTTAAATAAAC + 36931 AAGTCGCTCAATTCGACCTCAATATTTAGGCCAACTAAAAATTGAATTGTTGTAAATCAA + 36991 AAATCAATTTCATCCTAACAT +; G-orf526 <== start + 37012 ACTTAAATTTAATTTTGCTAAATACGACAAATTACTTAATTATTAATATTTTAAAAGCAT + 37072 AATTTATACTTTATTAGATTACAAAGTATATTATATTTTGTAAAAAAAAATAACTAAAAC + 37132 TTATATTAACTAGTAAATCATAACTGTTACAAAACCCGAAAATCTGAAAAAATCATTTTT + 37192 ACATCAAATTATAACATTTTTTCAAAAATCTTTCTATGCATAAAACAACCTACATTACAC + 37252 CTGTATTTTATCCTCTCTCTTCAAAAATAAAGTATTAAACTATAAAAGTCTAAAATAAAA + 37312 TCCAAGTTAATTACAAAACGCCCATGCATACTTTCTATGATTAGAAAAAAATTAACAATT + 37372 ATTTAAAATAATCGTTACATAAAATACGAATTTTTCTATAATTTACAAACATAATTAAAA + 37432 AAAACGATATCCAATATTTTTTATTTAAAAAAACAAATTACCGCCATATATTACTGCTAT + 37492 TAAAAAAATTCAAATATTAATCGCATTCACATCTAAAAATAAAAATAACTTAATAACAGT + 37552 ACTAGCATAATTACATTTTAATTATAATAGTACAAAATAATCTTCTCGCATATACATTAA + 37612 AATATGCTACAATAAATACACTTCTAACCTCTATAATACAATATCCTTATGATTAGTTGA + 37672 GAAAAATCACCGCATTAATGAAAAATTGCTTGGAATCAAAAACATTAAAAAAAAAATTCA + 37732 AATAAATAAATAACTATAAACTTATTAACCCAATTCAAAAATAACATAACGA +; G-nad4L <== end + 37784 CTACCCACGTAATCCATAAATAAAATCAAAATCAATATTTTGATGTTTTTTATAAAATAT + 37844 AACAAGAATAGCTAATCCAATAGCAGATTCTGAAGCAGCAACCGTTAAAATCAACAAAGA + 37904 AAAAACCTGCCCTTTTAAATCATCCATAAAAATAGAAAAAAAAATAAAATTTAAACTTGC + 37964 CCCCAATAATAAAATTTCAACTGCCATAATTAATATTATCACATTTTTTCTATTAAGAAC + 38024 TATACCCCATAAACCAATTGCAAACATAAATATTGAAAAAACTAAACACTGAAATGAAAT + 38084 TAACAT +; G-nad4L <== start + 38090 GCTTACGTATTTTTATAAACTAAACATAATATTAGGTAGACCATTATACAAGATCAAAAA + 38150 ACTAGAAACAATTATAATCAAACTAATAGATACTGGGAGAAACGACTTTCAACCTAACTG + 38210 CATTAATTGAGGACAAGTAAGAAAATTT +;; mfannot: + 38238 tcttctttaagaaactgtacatgataattacttatcatacagctt +;; mfannot: /group=II(derived) + 38283 CACTCACATACTTCCTAAAATAAAAAAATAAATTAAAAAAAAATAATAACACTAAAACTA + 38343 ATCTTTTTTTAAAAATATATTCCAATTTAAATCAAAAAAACAACACAAAAGAACAATTCT + 38403 TTTAATGGATTGATTTAATATAACATCTGCTCATTTATTAAATTTAAAATATTTCGCTAA + 38463 AATAGACAACTAACCAATACAATTAAAATAAACATAATTGTATACAAAAATAAAGTTCCT + 38523 AATGATTTGAAAAAAAAATTTTGTTAACAAATTAAACTTTCATAATTTTTAAAGAATTAT + 38583 CACTATATAACATAAAAAATAATAAAAAAACTATTATCAAAATAAAGTAT +; G-orf504 <== end + 38633 TTAAATAAATATTCCATTAACACATTTATAATAAGTTTCTAAATTTCAATTTTTTCTATA + 38693 AAATATAAGTATATCCATTATAAAAAAACTTTTATAAACTATAATAAATTTTTTTATAAA + 38753 ATTAAAAAAATACTTAAGTAACAAAATATCAAAAATCTTATTTTTATACAAAAAAATATT + 38813 ATATGCTAGTAAACAAATATCTAAATTTTGTAAATATCCATATCTCACAAATTTTTTAAT + 38873 TGCTTTATTAAAAACTATCTCTTTCAATAAAGCAATTAAAAAAAACTTACCCACTTTATA + 38933 TATAATAATTCCAAACAATTTAACAAAACACCTAAATACTGCACTTCTCATAAAATCTAT + 38993 ACATGTTTTTTTGCAAAAAATATAATTGAAACAAAATTTACTAAAAACTTTAAATAAACC + 39053 CCCTTTCCGTAACACAGAAATATTCTGGTATTTGATTAATTTTATTTTCTGATTAAAATT + 39113 CAATACCTGCTGTTTTAAAAAAAAAATACGATCAATAAAAGCGTTAATTAAAGTATCCCT + 39173 TATATTTTTAGAATTTAATTGAAAAACACCCAATAAAAAAGAAAAAATTATTTTCTTAAT + 39233 TTTCAAAGCAAACTCCTTATCACCATAAATTCCAATTAAACAATTTTGAGTATTTCGAAT + 39293 ATACTTAACACTAATAAATTCATGGCTATTTATCAAATTGTATTTAACCTTACCAAAACA + 39353 CTTCGCATAAAAGCATTTTCGCTTTAGTTTATCTATAAAATCATCTAAAATTAATAAAAA + 39413 AAAAGATCTAAATAAATCAGTTGATCTTACATTTAAATGGCAGTTATTTTCAAACTCTAA + 39473 GACTAATTTTTCAGGAAAAATTTCCCTGTTACGCAATTGAACAGTAAATACTCTTCTCCA + 39533 GCTATACATAATATAAGGAAATAAAACTAACAATTCATCTTGTAAATATTTATTTACCCA + 39593 ATCCATTAAAACATTATAATTAAAAAATTTTAAAATTTTTTGAAAATTAAATTTTATATA + 39653 TCAGCGTGAAGCAACTCAGTGAAATTTCAAAGCTTTATAGAAAAATTGATTTCCTACCGT + 39713 CTGGACAATAAAACGGGTTTTTAAAAATAATTGCTTTGTTCAAATTTCCATTAAAATTAT + 39773 ATAAAGACTTTGTTCTATAAACGTATAAATTAAATACAATTCAATTACCTTACAACCTCC + 39833 CATCTTTCATTTAATAGATCTAAATCACCATAAAAATCTGCAATATAATTGATTTCCTAA + 39893 TTTCAAAAAAGTTTCTATTTTTAAACCAAAATAATATTTGTAATACTTATTTTTTACATT + 39953 TCTATATTTCTGGTTGTATACAAACCACAAAAATGTTGGTTGCATTAATAAACCGGATAA + 40013 TAACAACTTAAATTTACCATTTTTCTTTTCTAGGTTAGATAACGTAAAAAAAGGCTCATA + 40073 CTTTCCTAAACAAAAAAAATCCATTTCCCCATATAACACATATAATCAATTTTTAATAAA + 40133 TCGAAAAAAATACAT +; G-orf504 <== start + 40148 ATCTTTACTACTTACACATGTATTTACTTCAACAAAAATACACAAGCACTTTTATTACAA + 40208 TTTCTGTGAGTCTTAGATCTTCTAAAATATATTAATTTTACTTAAACAAAAAATGTATAT + 40268 CAAAACTATCTTCTGAATTCCCTTTTCTTGTTTTTGTTATTATTAAAATCCAAAAATCCT + 40328 CCTTTATTCTATTTACACCTAAATACATTCAAAGTATGTAAAAGAATTTCAAGAAATTAT + 40388 ACTTAACGTAATATATTCACTTATAGTATCCTAAAAATTTTTATTAATAAAACTTTTAAC + 40448 TTCTACTTATATCTATAGCTAACACCTTTATAAAATATTATTTTTTACAATTATATTATC + 40508 ACCTTTCCAAGTCATGATCAAACCATACTTCAAATTCTTTAATTAATAAAAAAAAACTAT + 40568 TTAAAATCAATAAAATTTACATTAAATAGTCTAAACTAAATAACTTCTTATACTAAATTA + 40628 TGAAAATTCTTAAATTTTAGCTTAATATCAATACTCAATATTGATACCTAAAAAATTTTT + 40688 TAAGTCTATAAATAAAAAATAAACTATACGCAATGTCTTCTATCTCGCACTCATAACGTA + 40748 ACCTAGGGTAGGTTGCACGTACTCAAACAAAACAAAATGAAAAAACGGAAATTTTTATAC + 40808 CAAACCACACCAATAATTCAACTGTCATATTAAAAACGGAAAACCATCCTCCACAAAAAA + 40868 ATAAAGAAAGCAATACACACATAACAAGATATTAGTTCGAAACGCTAAAATGTAATTTTA + 40928 ACGTGCGCTAATTAACACATCACATGCGAGTTTCCAAGCATTATGCGTTTCGCTGTTTTA + 40988 CTAAAACTAGAAAAAAATTTGCATTAAAAATTGCGTTAATACGTATTAATAATGCAATTT + 41048 TTTTATTTCTTAAAAATACTTCTAATTAATAATGCAATAATACATTCTACAAAAAATACA + 41108 TCTATAGTATATACACATAATATACTATTCAATTGATGGAATGGATGCAAAATATTTTGA + 41168 TACAGCAAAAATTTTTCGATTTACTAACTACTTAATTTTAGTTTTAGATATCTACGTATA + 41228 CTGCACTAAACCGTAACATCCATAATTATACTATAATTTTACTTTGTAGATATTTTAATA + 41288 AATTAATATAAAAATACATACGCCATAGGTTTATTTACAACAACACACTCAAATAAATTC + 41348 GTATAATCAACTCTTCTTTAATTATCTGCAACAAATTACTAAATTGAATAATCGCTAAAT + 41408 TAAAATATACATATGCACCTTTCAATATATATGCAACTATAATTAAATACAATTAATATA + 41468 TGTTATCATACACCAACCGTTAAGAATTAACTAAATTAAGCATTTATACCTATGATTAGT + 41528 GAAAAGCTCTAAATATTTAAATAATTTTTAAATACTAAACATTAACCAAAATATTAGCTG + 41588 CCACTGCTAATACAATTATTGATAAAATACCTATTCGCCCCATATTTGAATACTCACCTA + 41648 AAAAAAATAAAGCAAACGCCATCGCTGAATATTCAACAAAATAACCCGCTACTAATTGGT + 41708 AGGCTAAAATCAATTTTAATTCCTGATTTTCCCGTAAAACATGACGAACAATTTTCACTG + 41768 TATCCTGCTTCAATACTATCTACTTTATCTTCGCTGCAATAACTAAATAGATTTTATTTG + 41828 AAATTTTTTTAAAATAAAAATTATATTTGACAAAAAATACCTTTTATATATATTTATTTT + 41888 TAATTTAATTCTTTAAAAAAAAAGAAAATAACAATAAAAAAAATTTAATCTAGTTGCGAA + 41948 TTTAAATAAATACTTATCGGTATATATATTTAGTAGTAACCATTAAAAAACATCATTAAA + 42008 ATCTAAATCAGCCTATAATATAGACTTATCTTATATACCATCCCTGCGATATTACATACT + 42068 CTATATACCAAAACATTTCAAAAACAATTGAATATTCTCTTTATAAATAAAAAAAATAAC + 42128 TAATCGCCAAACCTATCGTAAAATATATATATTGTATGTTATCCACTTAGCCTATTATTA + 42188 ATATTTATAATCTCATTTTAGTATTATAATACAGTATATAAGTTATTTTTGAAAATCTCA + 42248 ATTTCTAATTTTTTTATATATATATTAGAATAAGCAGCCTACAAAAAATACTTAAATTAT + 42308 AATATTACAAAATTAGCCAAATATGCTAATCACCTTAAATACGCATTATATATACTTAAA + 42368 TTTTAATTTTTAAAATTAAAAACATCATCTCTGAAAATTTGTTTTCTATCAGTACTTCAT + 42428 AAAAAATGAAAATGAATTAAACAATTATAAATATTTATTAGCGCAATACCCCTGCTTCAG + 42488 CCTCTGCTAAATCATTCGAGATGGAATTTAAAATCCCCCCAAAGAACCACAAATATTAAC + 42548 CACTTAATATGCAGCTCAGCTTGAAAACTCTCCGTTGAATTAAATAGAAAAACTTAAATA + 42608 ATTGTAACACTGCCTCCTATCATCATTTTCCTTTTTCTACTAAAAATTATTTTTATAACT + 42668 TAATATCTATTTTTTTTCTCCACAGACCAATTTTCCAAGCATAAACAAAAAAAAATAATA + 42728 AATATATAAATATTTTTTTTACTTAAATCAGAATCTTATATACCTAATTTATTATTAACA + 42788 TAAAATTATATACACTATTACCTAAACTCAATACAAAACTAAATCTTTTTAGAAGCTATA + 42848 TTCTATTTACTTCATTATATATATAAAAACTTCCTTCTTAAGTTTTTTAACTATTTTCTA + 42908 TAAAAAATTTATATAAACCCAAAGTTGAAAACATATATTTTTTTATAAATACCTATACAA + 42968 GTACAGACTAGCCTTCACCCCCCTGTGCACACAAAAAACAACACTTTCATTTTAAGCTAA + 43028 CTCTAATTTAACCGTAATTCATTAAAATATCTTTCCATAATATAAATATTTCCTATAAAA + 43088 ATGTAAAACATTACATTTACATTTTCAACTATCTACAAAAAACTAATATAAATTTTAATC + 43148 TAAAATATACATAAATAATAATACTATAGCATTAAAAAATTCATAAATAATTAATATTAG + 43208 CCTAGTATAACAAAAATTGATAATTAACAACAAATATCAATTTGCTAAAAACTGCACGTT + 43268 TCACTTTCCAATAAACTTCAGA +; G-nad1 <== end + 43290 TTATGAAATGACTATAATCGTAGATAAATCAATATACCGTAAAAAAGGAGCTCGATTTGT + 43350 TTCCGCTAACGCAGAAAAAAAAAATAAAAAAAATTGTGGTCATAAATACCAACAATGTCA + 43410 AAAAAAAAAATTATTCTGATGTAATATCAACTGATACAAATTAGCCGAGCCTACACAAAT + 43470 TAAAACCGAAATTATAATAAAACCAATTGATACTTCATAAGAAATCATCTGTGCAGCCGC + 43530 TCGTAACGAACCTAAAAACGCATATTTAGAATTACTTGACCAACCAGCAAAAATTATACC + 43590 GTAAACACCAAATGATGATATTGCAAGAATAAATAAAACACCAGTTTCTACATCCACCAA + 43650 AGAACCATAATTTGTATATGGTATTAATGATCAACTTGCTAAACTAACAACAAATGTCAA + 43710 CATTGGTGCTAGATTAAATAAAAATCCAGTTGCATTGGTTGGTACAACAAGCTCTTTTAC + 43770 CAATAATTTTAAACCATCGGCTAAAGGCTGAAGCAATCCCCAAATACCAACAACATTAGG + 43830 CCCACGTCTACGCTGCATGCTAGCCATCACTTTACGATCTAACAATGTAAAATACGCAAC + 43890 AGCTATTAAAACACAAACTACTATTAATAAACTATAAATAACAATATAAATAAAATAACT + 43950 AAACAT +; G-nad1 <== start + 43956 CTGTATGTTATACCTCTAATACACAAAATTTATAATCTAAACTGAAACGTTTCAGAACAA + 44016 AATTCAGCATCCTCTATTAATGGGAATATAACTAAGAAAATAAAAAAATACAAACTAGTC + 44076 GCTATTTGACCAATAATCATATAAGGAGTACACTAGAAATCTAATATTT +;; mfannot: + 44125 ccgtgcctaaaactgtagaaacttatcactaagaatacagctc +;; mfannot: /group=II + 44168 CAAAGAAATTTCAATAAAAAATTATTCTGAATTAAAATAATAAATTGTATAAGTTAAAAA + 44228 AACAAATTATAACAGTCAAAAAAACATTAATTTACGTAAAATAAATTTTTAAAATAACAT + 44288 TAAAAAAATATCAATTATTATATAATAATAAACAGATTTGAAATTTCTAATAAAACTATT + 44348 ATTTTTTATTTTTAAAAAACAATTTAAATTTAAAAAAATCTATTACATTTTTAATCTTAT + 44408 TGGTTTCCAAGAATATACATATTCGGATATAATTTAATCCAAAAAATTCATAACCTACTT + 44468 AAACAATTTACTTTTAAAGTATGCATATAAATTAAAAATTAAGTAACCACCACACCTATA + 44528 TGTAAGGTTATTTTTGTAATTATCCAGTTATTCTCTAAAAAGGCAAATATTTATACTTTT + 44588 TAATCTATATAA +; G-cob <== end +; G-cob-E7 <== end + 44600 CTAAACAAAATCGTTATTGCCACTATATATTCAATTACTAAATTCCAATTTATACTCATA + 44660 CTCAACAGGTTTCCCTCCAATTCAACCTAAAATAAAAAAAACTCCAATTAAAATTCAATA + 44720 CATATTTTTATAAGAAGACTTAAACAGTGCACTACGTACTGAAGAAGTACTATAAAACGG + 44780 TAAAAATAATCAAACTAAAATAGATCCTAGCATAGCTATAACTCCTAACAATTTGT +; G-cob-E7 <== start +; G-cob-I6 <== end + 44836 agtgcacactagactaattctaataatccgtgcctcgaaccggataaatatcttacaaaa + 44896 aatccggctcccaagaacaataaataaaaataataattcttatgcaaatttacttcggtt + 44956 tgcgtataatcatcaaaaaattaactccaccttaacttttaaaaagataattttttaaac + 45016 aatcttaattaaaacttataatttcataaaaaacctgtatattctgctatatcattatac + 45076 caaaatcttttaacaatcaatagactttataattaatacctatgttcccattaaattcct + 45136 tttaattttttttgttagctaataaatttaaaaaacaagctaaatatttcccataacctt + 45196 tacttaactacataaaattaaattttcttcattctaactgaattacggcaaaaaatctac + 45256 aatttcaaaaacatttttaatagttagtagatattatgtatttatacatttctaccaaaa + 45316 atagtccatttcatgcatacctctctaagcttcccactcacttgaaaaattaaactaatt + 45376 ctaataattaaactaataaaaattatcatcaattatctactaattaaaccatatacacaa + 45436 aatttatgtttacccctacattatcttcctattttaatatcaacattgtgtattttattt + 45496 cttccgtatcaaaatcagacaacactc +; G-cob-I6 <== start ;; mfannot: no intron type identified +; G-cob-E6 <== end + 45523 CAGGAATTGAACGCAAAATCGCATAAAAAGGCAAAAA +; G-cob-E6 <== start +; G-cob-I5 <== end + 45560 ctaccagtaagtattattaattttcaactaaaaattcctctggttagaactgtacaagct + 45620 tttcgcaaagcatacagctcttcgtagatttctcctcttaaataaaaaactataatacaa + 45680 aataaacatatcgttttacatgtttttaaaaacaataaatatattcatcaacaacactaa + 45740 agtatccaacgaactctatatttaatgttatactctactgtattaaaagattataaacat + 45800 gcaacctaaattcctttcacaattttttctttacctgataaccactttacaatactaaat + 45860 agcaaatatacaattataataacgtctaattttcaattgattaacaattaattttctaat + 45920 atttaaataaaattaaaacaaaatactgacatatattcattacttaatttatttatataa + 45980 agcaaata +; G-cob-I5-orf353 <== end + 45988 ttaattatatttcctcctaactttaatccttagtttacctaaacaattaacataataaat + 46048 caatacgcaaccgcttcacgtctcaattaaaaaattataattaaattgcacaaaataaaa + 46108 atttacttctttactaaaatttgttaaactaacatattttgttctaaaacataaacctaa + 46168 caatttatagaaataaactaaacccattaaaccgtaatcaattaaacaaaaatcatcaaa + 46228 atttgaatatacattttgcacaaaaaaatttctatttatagatataacttttatgttatt + 46288 aaatcaattttttatacttctatttaaaactaaaaagaaattacaatataaaattaagaa + 46348 agcaccgtctgtactaaaaactatatataaattattaacaccaaatatccaataaaagca + 46408 taaacttttaattcaacaataaaaacagataaactcaaacaaccaactaaaaaaaataat + 46468 cctaacattttttcgcgttaaaaattctgaagtaaatttaaaaaatctagctaaatgtga + 46528 actttttattttcaaaatatttcaaaaaaatttacaaattagcaaattaatatagacact + 46588 aatccctcttaacccataattatcaatcaataaaacactgactaaattttcctctgaaaa + 46648 aaaaaaaatcttaagtttccttaacaaatacgtgcaagaagacacaaaaaatttattact + 46708 tacaaatttatcaaaaaaattgtagtaataaataatttgatctataacatagaggcgatt + 46768 tctaatatcaccgaaaaaatctctactcttatctggtcataaacaattttgcaaattaaa + 46828 acaaataataaattttcatctaagctcaacaaaacgaataactgctaaacgtaacagtat + 46888 actccacattgatcatcgaccacaatacaaatcgcgcaaaataaagtaaattaatttaat + 46948 atacaatctatcaaaaaacacctttaaaaattttctactaaagaaaacaacattattttt + 47008 tacacaagtaaatcgttttctatctcgcaaattattttccat +; G-cob-I5-orf353 <== start + 47050 acctttttatttttaaaataaaaattataaaataattagacccacttttaaatacttgtt + 47110 ctaaaatacatattatcactatatctattaaaaattttaatacttacgtatatttatact + 47170 tacatattcatttcgatattttatttatttatatctattaaaaatatacgattaattttt + 47230 gtttcataaaaaatattaaaactaaaaaattttgatatccaattttaaaacattatcatt + 47290 aatttagtgataataaaaattttttattaggaatttaatttatttaaaatttaaaatcga + 47350 taaacaaccctaaaacaaataaaaattttaaattctgaaccttcagctatactgctatca + 47410 tatttataaaagtacgcttatgtaactgtaactaaaaattactaaatcaagtccacaaac + 47470 acaaatttaagcactccattc +; G-cob-I5 <== start /group=II ;; mfannot: splice boundaries uncertain +; G-cob-E5 <== end + 47491 ATACCACTCAGGAACTATATGCGTCGGCGTAACCATCGCATTAGCTT +; G-cob-E5 <== start +; G-cob-I4 <== end + 47538 cattttactagacttgttttaaaatagtctgcaaataaaactgtaaaaacttattaacta + 47598 agaatacagctctaaaaaaatacaaataaaggttaaaaaataaaacttttaattgacatt + 47658 taacccatgatatgataatcaactctcaaattcatatttcaagaaaattttttttagaaa + 47718 ataaaaaataatccagaatgtatatacgaaataaaataacctccctgtctgtatcttccg + 47778 ctttttcataaattttgaaaaagctctcttctatccttaattctaaaaattgatttaact + 47838 ttacaattaaatcccatttgaaaacccgttgttatattaaaatcttttaaactatagcta + 47898 catacacaattataactctaaaacaatattattttctgattaacactaataaatttctaa + 47958 aaatttcatacaaacatactgcatatgaaattaatcaaagctaattaaagctattttttt + 48018 ttcataattttaaaagattatttctatactttaattctctaaatttaataaaaaatatcg + 48078 ttctaccaatttacccccccctattaataattttttttaagtatatccaggttactaagt + 48138 caatagaatatttc +; G-cob-I4 <== start ;; mfannot: no intron type identified +; G-cob-E4 <== end + 48152 CTATGTAATTATCAGAATGCCCTAACACATTCGGAATAAAAAATACAAGTAACGACGCAC + 48212 CGATAAACAATAAAATCAAACTATAAATATCCTTAATATAAGAATACGGATAAAACGGTA + 48272 AATTTTCAACCCTTCAATCTACTCCCAAAGGACTACTAGAGCCTACTAAATGTAAAAGAT + 48332 ATAGATGCACTAATGCTATCGCAGCAATAATAAATGGAATAAGATAGTGTATAGCAAAAA + 48392 ATCTATTTAGAGTCGCA +; G-cob-E4 <== start +; G-cob-I3 <== end + 48409 aacgagtaaagatttatattaaatcctcctcaataaacagtacatggtaattattcacca + 48469 tactgctttaaaataaaaatacattagatattattattcgtacctttaataaactataac + 48529 caattaatctatgacaataaacttgacaaattttaataacaccatctataaaaaataata + 48589 ttctaaattatgtagagttattgataaattcttctatctatatttttactcgtttatttt + 48649 tatactttacgggagtaataccaataacgcaacgcttaatttaaataaaatctttgaatt + 48709 tatactttatagattcacttattcatccatatcataataaatcatgaaaattttttacaa + 48769 aatttaactcataaaagcaacttacttttaaaactagtatttaaggatttgtatatcact + 48829 aatagtatatcattaaaaaatatagaacttatattaaaattttaccaaatttatcgattc + 48889 ttccaatttatatgacagataatgtagtctaattttggatactaaattttaataactatt + 48949 tttttcaattataaaacttaaatttaattcattttttcttttatactaacacaaaacaaa + 49009 ttctattttatcaatccacaattttaaatttaattatttatcctaaaaattatactattc + 49069 aactttaaccttttcctattgattaaatcaatgctttaagttaactcaaaactgcatata + 49129 tcaaacagtatttcacaccaattcaataaaaaataaatattcccacac +; G-cob-I3 <== start /group=II +; G-cob-E3 <== end + 49177 TTATCAACACTAAAACCACCTCAAAGCCGATAAACTATTGAATTACCTATACCGGGTATC + 49237 GCAGACGCTAAATTCGTTATAACGGTTGCTCCTCAAAATGACATCTGACCCCAAGGAAGA + 49297 ACATATCCTAAAAAAGCTGCAGCCATTGTTAATAAAAAAATGATAACCCCTGAACATCAA + 49357 AGCCATTGCTTTGGATAGGAATAAGAACCATAATATAACCCTTTACCAATATGAATATAT + 49417 AACATAATAAAAAAAATTGACGCACCATTCGCATGAATGTACCGCAACAACCATCCATAA + 49477 TTAA +; G-cob-E3 <== start +; G-cob-I2 <== end + 49481 gacaagtcaataatctactattgctctcgaagctgtacatacacatttacgcgtatacag + 49541 ctttcataagcgttaaataaaattcctaaaataacaaaaat +; G-cob-I2-orf750 <== end + 49582 ttacaaacaatttatactatataaaatatacctaaaacttaatttccaaacaaagaatcc + 49642 aaatttaaaaaatttcctatcaagattttgtatataacaagttgacgggaattgaataac + 49702 tacattaccatcttcattatacacacaaggatcaagcccataatatttacgaacccaatt + 49762 acaattctgacgatgcttaaccgcaagagtcaatacgcaacttttacgtaaaaaaccaac + 49822 tatacgttttacttctagaaaattatcaacacaccgatatttactcattaaacaataagt + 49882 caaaattaaaaatcgcttcaaaatctctgaatctggcattaaaatgtaatagcgattgaa + 49942 tactcctttacaagtaattggatgaacaaattccattttcttaagtttatctaaaatatc + 50002 atctactggagctaataaaactatgcgtttcgcagaaaattgcgaagtcagcgcagtatt + 50062 atttattttatttctgaatcttcaaatactcaaatgtttttgttttttaatagttggcgt + 50122 caacttttgtatcatatggttttttacttcaagctctaacgaaattattttagcaataaa + 50182 atcaaactttgattgctgtgcctgactaattatgtgcctaatgcctgtgtttaaatttcg + 50242 cttaaaaaaaagtgaaataaatttagaattttctacaccacgccgcaatttagttagcat + 50302 taataaaacattttttgcctcttcacgaataaaatattgtttccagtttactaaatttag + 50362 attcataggcgaaagtttttccccctcacctctaaaaacagataaataatttcctaccaa + 50422 gcgtataaaaaatttctttacaatagtatttaccgtaatcaaccgatgtctcacatttga + 50482 agagctaagccctaattgtaaaatattgcgccataaaatttttatcaataaacgttgaat + 50542 actgcttattacattatgagttaaatcaaaatctttaaaaatcccattagagtctatttg + 50602 agccctaacaggtggcaaagcggaagaaggcccaatcgcacatacttttttagcgtcttc + 50662 tgctttaaccatacaaattttataccctaaaaattcaataaaccctttactacaacatgc + 50722 tagtttatttactcttacaattatgcataaatcactttttaaaaagtgatttatgcagtt + 50782 ctgaataaacataatgaactctttagatccaacactgccaatcaaaatattatctaaaca + 50842 ccgaacatactgaaaataattatgcgtcctccgccgtgttgcacaaaaataaaacataaa + 50902 ataggattttaaaaaccttctagaaattttatgaatttttttgaaaaacctatgtttgtt + 50962 attattagctattagttttatttgatacacattcaataatttaaatttttttaatttaat + 51022 tcttccataaaactgtgtaatcgccttaacaaatgaatctaaatgagacaaataaaaatt + 51082 aagcaaaaaaatcaatattaaactattagaacacatcaaaaaactttcattttgcttcaa + 51142 acaacaagaaacctcactctttactattttttctatttctcttcatatacgataatccaa + 51202 tatatacatttttagcagatttgctaaatgacctaaattaacactattaattataaggtg + 51262 tgcattgatatttaaaaatcaacttgtatgcaaacttcatccttttacgcatcgtaaaat + 51322 aatttgaggcgataaactaattcaattagataataaattaaatcctaacatcgaatttaa + 51382 taacttagaaacgcgatatgaatctcaatctaatgcatctcgattatttttttttaatct + 51442 aaaaaaattaaaaggaaaaattaacttttccatacctaatttattaaaaatagttacaat + 51502 ccctaataaaatagctacctcaattattttaacttttcaatcaaaaccttgatattgttt + 51562 atacgaatttactaccttccattgcttttttaagtagctatagtttccaattaatagagc + 51622 cttgctcgtttttgcaaaccatacaacgggtattcgatctaaagaaagtttttgataacc + 51682 aaaattacctcctgcattcaacaacactaaccgcaactgacatcaggctgtaactaagtt + 51742 ctcactagaaattatatattcatataaactattattattaatttttttttcgcttatggc + 51802 cgactcatttcctttaaaaacactacaaaccat +; G-cob-I2-orf750 <== start + 51835 aaagttttcacaagcctcccccgtaataccaaaaaaaaatacaattatctcaaatctttt + 51895 tagtccttacttgtgtacatatttctgaattcaacgccaataactgatttattactaaag + 51955 tgatatgataataaattctcttaaaatattcaaaaaatttaatcctaatacaattaatca + 52015 tctttacgcataggtcctatttaaaactatactaattgaaattatttctctttgacacct + 52075 cagtactccaacttcaaacttaaccactaaatcatacaactatcacagtaataaaacatt + 52135 atttctcttcgagaaatttttaacaaataatttttttaaataaattcattattcctcgga + 52195 tataatgctgaaaaccaaacgatacccacac +; G-cob-I2 <== start /group=II(derived) +; G-cob-E2 <== end + 52226 CATCACGCATAATATGCTCAACACTACTAAACGCCAATGCTATGTTTGGCGTATAATGCA + 52286 TTGTTAAAAAAAGCCCCGACAATAATTGTATTACTAAACACATCCCAGCTAATGAC +; G-cob-E2 <== start +; G-cob-I1 <== end + 52342 cgtataagatagaatttataagttccctttaaagaactacacatttaatttaaactattt + 52402 gtagctcaatttattaatttaaataaaatttattaattttttattgtaattcttttgcta + 52462 tatttcttcaaacctacactaaaaaattattatactaaatactataaaattaataaataa + 52522 caccgaatttaatttataattaacttaatttaaaatctatattatatagattttaccatg + 52582 atataataatgtagcacacgttaatttataattttttcgggaatcctttcacaattcaat + 52642 ttaatgtacattaattaaattataaagtaatttttaaatactctcaatcaaaaatatatt + 52702 tgaaaacaaatttatatatgcttagaaaatataaattctaaaaaattaacgttttatgat + 52762 taattatccaaaaaataatattattttaaaattattcattctaagtaatatttgtataaa + 52822 ttaaacctgatccaaacttttaaaccaaaaaataggattatacattcaaacatatattgc + 52882 aattacaggttaattcacatacatatttaaatctcaataaaaatttctaattgaacttta + 52942 ttaca +; G-cob-I1 <== start ;; mfannot: no intron type identified +; G-cob-E1 <== end + 52947 CCAAAACTTCATAAATATGAAATATTTCCTACAACAGGATAATCAACAATATGATTGTTA + 53007 ATTCAACTTCATGCTTTCAT +; G-cob-E1 <== start +; G-cob <== start ;; mfannot: alternative ATG start pos 53041 + 53027 ATGTAAATACCGCATAAAACCGAATTAATATACATTTAACAATATACCTAAAAAAGTACT + 53087 CAATATGCAATACAGCGTTAATCATAATTCATTAAATAAATATAGTTGAACAAGAAATTT + 53147 TATAATTGAGAACCAACTATCGGTAAAAAATATACAAACAATTAATTATAGTTTTATATT + 53207 TAATCTAATAATAAAAATTTAATTTTTAAGTCATAAAAAACCCATCCCTATACATTAATT + 53267 TTAAAACGAAAATCTACCTACATTTAAAAAAATTAATAGTAAACATAATTTCATTAAAAA + 53327 TTTTTGTATAAAAAACAAAAAATTTAACAACCAATAAATAATTATCTGCAAATTACCAAA + 53387 AAACCTAACTAAATTATAGCAAAAAATTTGATTAACCCTAACTAAATATTTTTACCCAAT + 53447 TCAAAAAAACCTTTTAATAATACTTTTAATATAATGGTTTACTTATATAAAATTCATATT + 53507 AATATTGACCCACCCTGATCCTCCTCTACAATATAGACAATGTCTATATATTTATTATAA + 53567 TTTTATAAAAACCAAGATATATTTTATTTTTAATTTTATCAATTAATGTTTATTTAAAAA + 53627 ATCTACTCTAATAATATTTTTATTAGCATTAAATAATATAAAATAAATTAACTTACTAAT + 53687 AATTCACATAAACATCAAAAAACTTGTTTCTTTTAGACGCACAATCTACAAAATTTAATT + 53747 AAAAAATATGCATAAACACAAAAATTTTAATATATAAAATTAAATTCTATTTTTACTTAT + 53807 GATAATTTTTTCTAGACTACAGCCAGCTTACGTAGATAAACTCATACATAATCTAAACTA + 53867 ATAATAATTTTCCTTTCATACATATCCTTAAACAACAATTATACACCAGTAATAATAAAA + 53927 AATAACAAAAAAAAGCTAACTACTACAATAAACATAAACATATATACTTAGTTAATCTCG + 53987 TAAACGAATAAAAAAATTCAAAAAATCTATTAAATAAAGTAATTAATTATTGACTTTTCT + 54047 CTTAATCTAGTTAACATCACATAAAAACACAGCCAAGGTAAGTATACAATAAATATAAAA + 54107 ATTTACAATAATTTTTAATATTGCTACACAAAATAAACTCTTTTTGACTATTCTTAATAT + 54167 CTCTAGTTACCTGACTAAACTAACTTCTCCTTAATACCTAACTTCAAACTAAATTTATCA + 54227 AACCCCCACACCTATAATCTTCATCATTGCTATAAAACAAAAAAAAATAAACACTAACCA + 54287 AAATTTAAAACTATTTTACAACCAAAAACCTAAAAAGCTAACATATAAAAATTTATATTG + 54347 AAAATGCTTCTAATATATTATTACATTCTTAATAAAAATATTGTTTTTATTAAATTATCT + 54407 ATTATATTTTTACTTGTTTTTTCAATTTATAGTAATTTTTTTAACTTAAAAATAAAAACA + 54467 CCATCTGCCTTTATTAAACATAAAATTCCCTTTAACATCTTAAGTAAAACACATTTACGT + 54527 ACCTAGTACATAAATTTAAACACTTATGTACAAATTCTATATCAATAAACTCTAATATAA + 54587 ATAAATAATTCTTTTAGATATTTCCTAAAACAATAATAACACTATTTTTTTACAACCCAC + 54647 CTAAACCTATTTTAAAATTATGAAAATACGCACTTTAAAATTAATAAACGATTATTTATA + 54707 TATTATAGTAACCATAAAAATACTTACACATATTACAGTATTCAAAATATTTTTATGTTT + 54767 ACATAAAAATATTTTGAATACTGTAAGCATATATATATCACTAACATATTAACATTCTAC + 54827 ACAATTTTTAAACATATATACGTATTTACTCCAAAATCTAAACGGCAATAAATATTACTT + 54887 CTATATATCTACAAATATAGTACAAGTAAACATATATAAAAAAAGCATAAAAACATGCAT + 54947 TCAAAAAAG +; G-rpl5 <== end + 54956 TTACGAAACTGAAACTCGACAAGGAATTTTATAACTGATTAACAAAGAATGAAAAGCCTG + 55016 GTACACAGTTCCAACCGTTCCGTATACGTTTATATTGTAAACGAATGAATCTTCAAATTT + 55076 TAATACTTGCGAAAGAAAATCATCATCTTGTATTCTTTGAACAATTTTAAGCAAAAAATT + 55136 TGGTTTTAAACTATTCAATTTAATAGGATAAAACTGTTGACTCAAAGGAAGTTGCCTTGC + 55196 AAAAAAAAACTCCGATATTCAAATACTATGACGCAACGTTAGCCAAAGCCCACTCAACTT + 55256 CTTTTTCTTCAAGCCACGAATACTATGAGTACGTATTAAAATTTGTGGTTTTTGTCCGGT + 55316 TGTTAAGTATAGCAAAACTAATAACCGGTAAAAATTATTAGTTACCTTAAGATCTGATAA + 55376 AAATTTTGAATAAATTACAATAGAATCCAATTTTGGGCAATTATAAATATTACTTAATAA + 55436 AAATTTATCAAATAAAAAAATTTGAGTAAATATAGATTTATATAATAAAATTTTAGACTC + 55496 AATAGGTCGCAT +; G-rpl5 <== start + 55508 ATAACTAAAATATTTATA +; G-rpl14 <== end + 55526 CTATACTAACTTACTAACAACTGAGGCTAATCTCATAAACAATCCACAGCGAATTTCTTT + 55586 TAACGCAGGTCCAAATACACGCGTACCTAAAAGTTTTTTTGTTTCCGATAAAACAATACC + 55646 TCGTGTCTCATCAAAACGTATACGAATACCATTTTTTCTACTGATATTTCTCTTAACAGT + 55706 TACGATTAAAGCCAAACATCTCTGTTTTTTTTGAACTTTACGACCTACTCGATATCTAAA + 55766 TATTGATCCTAATACCAATTCTCCAACCTTACTATAATTTTGTATCAAAGAATACCCAAA + 55826 TAAATGAAATATTCTAATCAATTTAGCTCCCGAATTATCAACGATTTTTAACTTAGTTTG + 55886 TTTTCTAATCAT +; G-rpl14 <== start + 55898 TTATCAAATAAATACACTTATATTATAAAGCACCCTTCTAAACACCACCAATCTAACAGA + 55958 ACATGATTAAAGAATATTTAACCAGTCAATTCCAACAATAATCCTACTTAACAGCACAAA + 56018 CCTAATCTTTATAATTTTATTAATAAAAATTATATTTTAGTAGCTAAACCATTAAAATCA + 56078 TCCTCACAATTCAACTAATAGTTTTAAAAGCTAAAGAACATGCCGAATACCTAACGCAAG + 56138 GAGATACTTTTTATAAAATTTTATTTACTT +; G-atp8 <== end + 56168 TTATGTAAAAAAAATTTCAGACACACATGCCTGTCTTAATAGCACAACACTATAATTCTT + 56228 GCTATACTTCTGCTCAATAAAATCCCACTGCTTTTGCTTATAATGTTTTCAGTTCAATTC + 56288 TTTATTAAATAATAAAGAATTACCGGTTATATTTAAATTTTTAAAATGTACTAAAAAATT + 56348 ATAAATAAAATTATTTACAAAAACACTGCGTTCATTTAAAACACCACAACCAATAGAATT + 56408 ATAAATCTCACGAAGTTTAAATAACTTACTAAAATCTAACAAATAATACTTTCATAAAAT + 56468 TAAAAAAAAAAAATAATAAAACAAAATTGTTCAAAAAACTTGAGAAAATACGGTTACTTT + 56528 ATCTAATTGTGGCAT +; G-atp8 <== start + 56543 CAATTTACATTAACAAAAATACAACTAGTTTAAGGCAAAGTTTTCTAGTATACGTCACAA + 56603 CCATAATTTTTCAAATACAAAAACATAAATAGAATTTTTTAAAAAATAATGAACCATACA + 56663 TCATCTGATACCCCTAAACCTTTATCTTTTTTAATTTATAATAGTTTTATTTAGCAAAAC + 56723 TAATATATTGAAAATATTTTGCTAACAGCCACGAAATAGTGCATTTAATTTAATCATAAA + 56783 AATACCTTCCTAATATTTTAGAAACAACCTTAACTAGTAAAATTCTATGAATATTTTTAG + 56843 TATTAATTTTAATGGCTGTTCAAAATAACCAACAATATAATCAAAATCATATCTAACAAA + 56903 TAAAAATATTTAAATTTTAATTTGGAATTTGCACTTTAAACTGAAATCAATCTGTACTTC + 56963 ACTTTTATACAATATTTTCTCGTAGTACATAAAACTCCCACACTACTAACCGTTAGCTAT + 57023 AGCATTTAATTACAATCTATAATTTACTCCTATACCGTAGTAACTCTTTCTAATATTAAA + 57083 AAATCAAACTATACCCCAACTTTTTTATTAATGTTTAAATAATCTTTTTTAAAGTAAAAC + 57143 AGTAAAGGCTTTGATAAGTTTATACAATCTTAAAGCTAATTTAAATTATTCAATTTCTAT + 57203 ATAGTATTAAATTAAAAATACTTTTCATAAAATGAATACGAAAATCGTTGCCATAATATG + 57263 TACACGAAAATTATTTATCACAAATTAATAAACCG +; G-orf241 <== end + 57298 TTAGATGTTATTTCTACTAGTAGTAAAAGGCGGTATTAATCCTAAACCATGAAAATTAAT + 57358 CAATTTCAATCGAATTTGTAATAAATTAAAAATTTGTAAAAAATTAACCGTTTTCTGATA + 57418 CTCAGACATCGCTAAAAAAAATATTTTACCAAAATTAACGACCCGAAAATAATCATTTCG + 57478 TAAAGTAAATTTTTTCAAAAAACTTCACTTATAACGATAAAAAAGTTTTTTTACAAAAAA + 57538 TATTACAGGCCTATCTAGAAAACTAAACCAAGAAATTACTTTTGTTAGATATTCTAACAT + 57598 GTAAAATGCCAAAGTAGCATTAATAACCAATGCTAAAATGTTTTCCCTCAAATTAGTAAA + 57658 TACTACATTAAATAAATCAGCCTCAACATCTTCATCCTCTATTTCATTTTTATTTTCCTC + 57718 TAATGGGCGAATAAGTGTTTCTTTTCAAGTACTATTTAAATACATTGATAAAGGTAAAAC + 57778 CCCAACAACACGAACATAAGATGAATAAATTTTAGGAAAAACTACTATATTCAATATACA + 57838 ATAACGCGTAAATAAAAACTTCAAAAAAGAAAAAATATATTTAGTTTTATCAACAAAAAC + 57898 ATCAAAAGTACATATACTTAATTTGCAAGATTCGTATTCCTCTTGATATATCAATTTTCT + 57958 TGATTCAAATTGAAGTTTTCGTTTCTTAATTTTCTTATGCCCTCCAAATCAACTTCGCTT + 58018 TTTCAT +; G-orf241 <== start +; G-rpl16 <== end + 58024 TTATTTACAAATACAATAAACCTGAATTGGTAGTTTTCGTGCAATACTTTTCAACAGTAA + 58084 ACGAGCCTGATTTGATGGCAATCCAGATACTTCACATAGCACAAAACCAGCCTTAACTTT + 58144 ACATACCCAATCGTCTATGTACCCCTTACCTTTTCCCATACGTACCTCAAGCGGCTTAGC + 58204 TGTTATAGCTTGGTGAGGAAATACACGTATTCAATACTGACCAATTCGCTTAGTACTCTT + 58264 AGACAAATTTAACTTAACCATTTCTAACTGCTTAGATGTAATATAACCATTCTTTTTAGC + 58324 TTTTAAACCAAAATTGCCAAAATCCAAATTTAAAAAACGTGTTGCTAAATTTTTAATCTT + 58384 CTTTTTCTGAAATTTTATAAACTTAGTTTTTTTAGGAATAATTCCAACCAT +; G-rpl16 <== start + 58435 TTTCTCAACAAA +; G-orf327 <== end +; G-rps3 <== end + 58447 TTAATATATTCAAATTTTAACTCCTATAATTCCTGCCCGTGTAATAGCTTCAGCAAATCC + 58507 ATATCCCAGTATTAAAGGACTATTTTTAGAAGCAACAGAACCAATTTGTATATGTTTAGT + 58567 ACGAGCACGGCTAAAACCATTTAGTTTACCTGCTAATAAAATCTTTATCCCTTTAAACCT + 58627 AAAATATTTTCAAATCTCCTTCAATACTTTTGACAAAAATGATAAAAAAGATAAATGTTT + 58687 ATATATTTTAGACAAAATTGGAGCAATATAATTTGCAATTAATTTCGCATCCGGAATTTT + 58747 ATATTTTAGCGCATGCACTAAAAATACTAACGTATTCCGATATATTCCAACATCTTTATT + 58807 AAAACGTAAACGGAAGCGCTTGAAACTATCTGAAACAACTCGTAATAACGTTGACAAATT + 58867 TTTTTTTCATTCTTTATAACCTACAACACATATATTTACGAATTTGTAAAATATCTGCCT + 58927 CTTTAGCAAAAACTCTAAAACGTATAAAAACATTATACTACGTAATTGCACTCGGCATTT + 58987 ATGAATTGGCTTCATAACAGTTCCTAGTGTAGCTAAAATCTTTTTTCTATCCTTACGTTT + 59047 TTTAGTTTTCTTACTTTTATATTGAAAATTTTTCTTGCGCTTCTCTTCTTCCCTTATTGG + 59107 ATAAAAAAATAAGAAATTTACGTATAATTTCCCTAAAACTCAAAATAAACGCACCGTACC + 59167 CACTACTCTACGTTTTCGAGCTTTTGTTCAACGTGAAAGAAAAAAATTAACATACTTACG + 59227 AACAAAAATCTCTTCATAAATATGCCTACAATACTCTAAAGATTTCTTAACAAATCAATT + 59287 TGATTTGAATAAAAATTTTTGATAAATAACTTTATGT +; G-rps19 <== end + 59324 TTACCGTTTCGCTTTATATACAT +; G-rps3 <== start + 59347 GCAATTTTCGAGTAAACACAAAACATCCAAATTTATACCCAACCATTCCTGGAGAAATAC + 59407 ACAAATCAAAAAATCTACATCCAT +; G-orf327 <== start + 59431 TATAAATTTTAATCCTAACCTGAATAAAATCTGGCAAAATCATACTATCTTTACGTTTTA + 59491 AAAAAATAATTTTATTACTTTTGTTCTCACCATAAAAACTTGAATAAACTTTTTGCGTTA + 59551 TAAAAGGCCCTTTTCAAATTGCTCTCAT +; G-rps19 <== start + 59579 ATTTATATATTATTTATTACCTAAGCAAGCATTTTACAAAATGCGATACAGCATTTCCAA + 59639 AAATACATATTAAAATTTCAATCATAAACCAAAAAAAGGGAGGGGGGGGGTAAGGCGTTT + 59699 CAACAATTCCAGCCTTCGCAGAACAAAAACGCATCACATTTATCTGCGAAGCACTTTTAT + 59759 GGAACAGTGAATAAATCACAGCAAAACGCATGGATTTAGGTGTAAAATCGCTTAGGCAAT + 59819 TCTTTTAGAATACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATGCATAAAAA + 59879 TTGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATATTAGAATTT + 59939 TAAGCGTAAACCAAGGGGGGGGTAAGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAA + 59999 ACGCATCACATTTATCTGCGAAGCACTTTTATGGAACAGTGAATAAATCACAGCAAAACG + 60059 CATGGATTTAGGTGTAAAATCGCTTAGGCAATTCTTTTAGAATACAACCGCGTAAAATTT + 60119 CCTTAGCGATTCTGTGCGACGATGCATAAAAATTGGAGGGAATTTTGCACCTACGCCAGA + 60179 GCAAGCATTTCCAGAAATGCATATTAGAATTTTAAGCGTAAACCAAGGGGGGGGGGGGTA + 60239 AGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAAACGCATCACACTTATCTGCGAAGA + 60299 ACTTTTATGGAACAGTGAATAAATCACAGCAAAACGCATGGATTTAGGTGTAAAATCGCT + 60359 TAGGCAATTCTTTTAGAATACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATG + 60419 CATAAAAATTGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATAT + 60479 TAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGGGGTAAGGCGTTTCAACAATTCCAGC + 60539 CTTCGCAGAACAAAAACGCATCACATTTATCTGCGAAGCACTTTTATGGAACAGTGAATA + 60599 AATCACAGCAAAACGCATAGGTTTGGGTGTAAAATCGCTTAGGCAATTCTTTTAGAATAC + 60659 AACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATGCATAAAAATTGGAGGGAATTT + 60719 TGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATATTAGAATTTTAAGCGTAAATCA + 60779 AGGAGGGGGGGTAAGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAAACGCATCACAC + 60839 TTATCTGCGAAGAACTTTTATGGAACAGTGAATAAATCACAGCAAAACGCATAGATTTAG + 60899 GTGTAAAATCGCTTAGGCAATTACTTTAAAATACAACCGCGTAAAATTTCCTTAGCGATT + 60959 CTGTGCGACGATGCATAAAAATTGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTC + 61019 CAGAAATGCATATTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGTAAGGCGTTTCAA + 61079 CAATTCCAGCCTTCGCAGAACAAAAACGCATCACACTTATCTGCGAAGAACTTTTATGGA + 61139 ACAGTGAATAAATCACAGCAAAACGCATAGATTTAGGTGTAAAATCGCTTAGGCAATTCT + 61199 TTTAGAACACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATGCATAAAAATTG + 61259 GAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATATTAGAATTTTAA + 61319 GCGTAAATCAAGGAGGGGGGTACGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAAAC + 61379 GCATCACACTTATCTGCGAAGCATTTTTATGGAACAATAAATAAATCACAGCAAAACGCA + 61439 TGGATTTAGGTGTAAAATCGCTTAGGCAATTACTTTAAAATACAACCGCGTAAAATTTCC + 61499 TTAGCGATTCTGTGCGACAATGCATAAAAATTAGAGGGAACTTTGCACCTACGCCAGAGC + 61559 AAGCATTTCCAGAAATACATATTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGGGGT + 61619 AAACGTTTCGATAACTTCAGCCACCACAGAACAAAAACGCATCAAATTTATCTGCGAAGC + 61679 ACTTTTACGGAACAATAAATAAATCACAGCAAAACGCATGGATTTAGGTGTAAAATCGCT + 61739 TAGGCAATTACTTTAAAATACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACAATG + 61799 CATAAAAATTAGAGGGAACTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATACATAT + 61859 TAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGTAAACGTTTCGATAACTTCAGCCACCA + 61919 CAGAACAAAAACGCATCAAATTTATCTGCGAAGCACTTTTACGGAACAATAAATAAATCA + 61979 CAGCAAAACGCATAGATTTAGGTGTAAAATCGCTTAGGCAATTACTTTAAAATACAACCG + 62039 CGTAAAATTTCCTTAGCGATTCTGTGCGACAATGCATAAAAATTAGAGGGAACTTTGCAC + 62099 CTACGCCAGAGCAAGCATTTCCAGAAATACATATTAGAATTTTAAGCGTAAATCAAGGAG + 62159 GGGGGTGGGGTAAACGTTTCGATAACTTCAGCCACCACAGAACAAAAACGCATCAAATTT + 62219 ATCTGCGAAGCACTTTTACGGAACAATAAGTAAATCACAGCAAAACGCATAGATTTAGGT + 62279 GTAAAATCGCTTAGGCAATTACTTTAAAATACAACCGCATAAAATTTCCTTAGCAATGAC + 62339 GCATAAAAATTAGAGGGAACTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATACATA + 62399 TTAGAATT +; G-orf784 <== end + 62407 TTAAGCGTAAATCAAGGAGGGGGGGGGTGGGGTAAACGTTTCGATAACTTCAGCCACCAC + 62467 AGAACAAAAGCACACTT +; G-orf736 <== end + 62484 TTAGGGGCAGCAA +; G-orf767 ==> start + 62497 ATGCCAGA +; G-orf761 ==> start + 62505 ATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGT + 62565 TATGCAAATCAAAA +; G-orf735 ==> start + 62579 ATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGT + 62639 TGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCC + 62699 CCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTA + 62759 CAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAG + 62819 GGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCAT + 62879 ATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACG + 62939 TGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAG + 62999 AATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAG + 63059 TTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGA + 63119 GAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCT + 63179 CGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAA + 63239 ATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGT + 63299 TGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCC + 63359 CCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTA + 63419 CAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAG + 63479 GGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCAT + 63539 ATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACG + 63599 TGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAG + 63659 AATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAG + 63719 TTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGA + 63779 GAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCT + 63839 CGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAA + 63899 ATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAAT + 63959 TGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCC + 64019 CCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTA + 64079 CAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAG + 64139 GGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCAT + 64199 ATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACG + 64259 TGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAG + 64319 AATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAG + 64379 TTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGA + 64439 GAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCT + 64499 CGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAA + 64559 ATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGT + 64619 TGCCACCCTCCCCAGTGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCC + 64679 CCCCTCGGCACGGCAT +; G-orf736 <== start + 64695 ATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACG + 64755 TGCCCAT +; G-orf784 <== start + 64762 TTTGGCGAGAAAATTTGTACGTTAA +; G-orf735 ==> end + 64787 CTAG +; G-orf761 ==> end + 64791 TTTATGGTAA +; G-orf767 ==> end + 64801 TATATATAGTATAAACATTAATAATATTTATAATATATGTATACATTATACTTAATATAT + 64861 ATAGTATAAACATTAATAATATTTATAACATATGTATACATTATACTTAATATATATAGT + 64921 ATAGACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATTATACTT + 64981 AATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTATACATATGTT + 65041 AACATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATAT + 65101 ATGTATAATGTATACATATGTTAACATATGTATACATTATACTTAATATATATAGTATAG + 65161 ACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATATGTATACATT + 65221 ATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTATACA + 65281 TATGTTAACATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTA + 65341 TAATATATGTATAATGTATACATATGTTAACATATGTATACATTATACTTAATATATATA + 65401 GTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATA + 65461 AACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATATGTATACAT + 65521 TATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTATAC + 65581 ATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATG + 65641 TATAATGTATACATATGTTAACATATGTATACATTATACTTAATATATATAGTATAGACA + 65701 TTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAAT + 65761 AATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATAT + 65821 TTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATA + 65881 ATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATA + 65941 TGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTAT + 66001 ACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATT + 66061 ATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACT + 66121 TAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATA + 66181 TATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATAT + 66241 AGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTAT + 66301 AGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACA + 66361 TTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAAT + 66421 AATATTTATAATATATGTATAATGTATACATATGTATACATTATACTTAATATATATAGT + 66481 ATAGACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATATGTATA + 66541 CATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTA + 66601 TACATATGTTAACATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATA + 66661 TTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTAT + 66721 AATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATAT + 66781 ATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTA + 66841 TACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACAT + 66901 TATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATAC + 66961 TTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAAT + 67021 ATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATA + 67081 TAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTA + 67141 TAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGAC + 67201 ATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAA + 67261 TAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATA + 67321 TTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTAT + 67381 AATATATGTATAATGTATCATA +; G-orf1511 <== end + 67403 TTACCATAAA +; G-orf1486 <== end + 67413 CTAG +; G-orf1472 <== end + 67417 TTAACGTACAAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCAC + 67477 ATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGCGGCGCGCGC + 67537 GAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTT + 67597 CTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATA + 67657 ACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACAT + 67717 TCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCGCCAAAATGGGC + 67777 ACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATA + 67837 TATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCC + 67897 CTGGGGAGGGTGGCAATTCCATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTG + 67957 TAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGG + 68017 GGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAA + 68077 CTCCGTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATT + 68137 TTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGA + 68197 GCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCT + 68257 CGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAAC + 68317 TTTTTCGAGTATAT +; G-orf589 ==> start + 68331 ATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCC + 68391 TGGGGAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGT + 68451 AGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATAT +; G-orf699 ==> start + 68495 ATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCC + 68555 TGGGGAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGT + 68615 AGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGG + 68675 GGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAA + 68735 CTCCATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATT + 68795 TTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGA + 68855 GCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCT + 68915 TGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAAC + 68975 TTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTC + 69035 TGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCAC + 69095 GTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATA + 69155 TGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCC + 69215 TGGGGAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGT + 69275 AGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGG + 69335 GGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAA + 69395 CTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATT + 69455 TTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGA + 69515 GCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCT + 69575 CGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAAC + 69635 TTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTC + 69695 TGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTCGCCAAAATGGGCAC + 69755 GTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATA + 69815 TGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCC + 69875 TGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGT + 69935 AGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATAT +; G-orf370 ==> start + 69979 ATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCC + 70039 TGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGT + 70099 AG +; G-orf589 ==> end + 70101 CACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGG + 70161 GCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATT + 70221 CCATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTT + 70281 TGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGC + 70341 TTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCG + 70401 CCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTT + 70461 TTTCGAGTATATATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGG + 70521 CATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTC + 70581 TGAAAGATCTGTAG +; G-orf699 ==> end + 70595 CACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGG + 70655 GCGGCGCGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGC + 70715 AACTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACA + 70775 TTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGGGCGCGCGCG + 70835 AGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTC + 70895 TTGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAA + 70955 CTTTTTCGAGTATATATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTC + 71015 TGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCAC + 71075 GTCTGAAAGATCTGTAG +; G-orf370 ==> end + 71092 CACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGG + 71152 GGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAAC + 71212 TCCGTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTT + 71272 TTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGC + 71332 TTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTCG + 71392 CCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTT + 71452 TTTCGAGTATATATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGG + 71512 CATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCGCCAAAATGGGCACGTC + 71572 TGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGC + 71632 CGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGG + 71692 GAGGGTGGCAACTCCATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCA + 71752 CTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGC + 71812 GGCGCGCGCGAGCTTTTCATACAT +; G-orf1472 <== start + 71836 TCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCAT +; G-orf1486 <== start ;; mfannot: GTG upstream: 71924 + 71874 GAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTGATT + 71934 TGCAT +; G-orf1511 <== start + 71939 AACTTTTTCGAGTATACGTTATTATAAGTTATATTTAGAAATGATATAAATTTTCTAGCG + 71999 GTGGTTAATAACGACCAACATTATATACATTTTTATTTTTGTTAATAGCAGTTAAGTATT + 72059 GGTTAGAAAATAATATAATTTTTAATTTTCTTTAA +; G-trnW(uca)_1 ==> start + 72094 AGGGAGATAGTTTAACGGTAAAATATCGATCT!TCA!ACATCGAGGTTATAGGTTCAAAT + 72152 CCTTTTCTCCCTG +; G-trnW(uca)_1 ==> end + 72165 AGATTTTTTAAGGT +; G-rps13_1 ==> start + 72179 ATGAAAACATCAATTCAATTTTTTAATTTACAGTTTTTGATTGAAAAAAAATTATTAATT + 72239 TCGTTAACGCAAATTTTTGGCATTGGTTTTTACTCTGCTATAGTAATTTGCAAAAAATTT + 72299 GGTTTTAATAAAAATACATATATTAAGAGTGTGGATGTAAGGATTGTAAATGCAATGCGT + 72359 AACTTTATTTTGGATAAATTTGTTGTTCAAGAACAACTGAAAGAGCAGATTCAGGTATCT + 72419 ATAGTAGAGTTGGACACTATAAAGAGTATTAGAGGGTTTCGGCATAAATTGTGTTTACCT + 72479 GTTCATGGACAGCGAACTAAAACTAATCGGCGTACTCAACGTAAATTTAAAAGAATGCAG + 72539 AGTAAATTATGGGAAGAGGATTCAACACATATTCGTTAA +; G-rps13_1 ==> end + 72578 AACATAAATTTCAGTTTAGAAAATTACGTAGAACCCTTTTATCCTTTCGAAAGAGATCTT + 72638 GTATTCTAAATATTAAAATTACATTGAATAA +;; G-rps11 ==> start ;; First ATG found at 72867 HMMmatch = 60,139 + 72669 CATATATTTAACTTTATCTGATTGATTTGGTCAAATTATTATGGTGAAATCTGGTGGGTT + 72729 ATTAAAATTGCCGGTTCCGGTAGAAATACGAATTATGCCTTAGAGCTTTTAATATTAGAT + 72789 GCTATTAAGCAATTAACTTTGTTAAATACAAAACATATTGTTTTAAAGTTTGATCATCGT + 72849 GTTTTAAGGAAAAAGAAAATGATTTTAAAGTTATTAAAAAAATTTAATATTAAAATTTTT + 72909 CTTATACGATTAATTATGTGTAAAGTTCATAATGGAATTACATTAGCTAAAAAACGGCGG + 72969 GTTTAA +;; G-rps11 ==> end + 72975 GTTATC +; G-rps14_1 ==> start + 72981 ATGTTGCGTAAGGTTATTTTTGAGTCAAATACCAGATATACATTTAAGTATTTTGAGATT + 73041 AAACAAAGAATTATAAAATCGTTATCAAAAAATTTATACTTGCCTATATTAGTTCGACGT + 73101 AAATTGTTGTGGCAATTAGATAAATTATCTTTATTATCATCTTTAATTTATGTAAAAAAT + 73161 CGATGTGTTGTTTCTGGTCGTGCTAAATCGATTTATAAATTTTTTAATTTATCTAGAATT + 73221 GTTATAAAAAAATTTTTTAGATTAGGTTATATACCTGGTTTAAATAGATCAAGTTGGTAA +; G-rps14_1 ==> end + 73281 TTTAGTAATATAAAATAAAAGTTTATTG +; G-rps8_1 ==> start + 73309 ATGGTTAAATTAGGACAATTTATTTCAATTTTAAATTTTAATATTAAAGCAGGAAAGTCT + 73369 TTTTTTGTAATAGTTAAAACAAGGATAATTTTGGATATTGTAAAAATCTTGATTGAGCAA + 73429 AATTACATTCTTGGTTATACGGATTTAAAAGAAAATGGTGATAAAATTATTGTGTTTTTT + 73489 AAGTTAGATTTTGCGAAAAGTAATAGCCTTTTACTTAAGGGATGTAAATTTGCATTATAT + 73549 AAAAATAGATTTACAAGTATTGGTGCCAATAATATAGTGAATAACTCGTCGTTGGTACTT + 73609 GTGTCTACTGTGAAGGGCGTTATGACTCAGTTGGAGGCTAAAAAACTTCGACTTGGGTAT + 73669 TATCTTGTGTTATATAATATAAAATTGTATAAAAAAATA +; G-rpl6_1 ==> start + 73708 ATGAGAGCTAAATTTATTTATCAAATTTTTAATAGGTTGTTTATCTATATATTTCAACAC + 73768 AATAAATTACTGTATATTCGAGGCCCTCTGGGTTTACTACGCTATAATGTTCCCAGTGGC + 73828 ATTGATATTTGTAAATATCGGTCAATGGTGTATATTTCTGGACAAAAAGCTGCCCACCCT + 73888 TTAGTTGCAATGTCACATAGAATAGTTTGCCAGAAAATGAAAGGGCTTGAGGTTGGTTTT + 73948 TCTGAAATTATGATAATTGCTGGTATGGGTTGGCGCGTTGATAAAGAAGACGTTTTATTA + 74008 AAATTTACAATTGGTTATAGTCATATTGTACATTATCTGATTCCGAATGATATTGAAATT + 74068 GTTTTACTTAGTAAAAATCTTTTTAAGATTTTTGGTTCTGATTTGAGTCGAATTCAGTGC + 74128 ATTGCGTCCGAATTGTGCAAACTGCGTTCATCTGATGTGTATAAAGGTAAAGGAATTCGT + 74188 CGTCAAGCTTTTAAAGTAGTTTTAAAATCAAGTACTAAATCGAAAGTTTAA +; G-rps8_1 ==> end +; G-rpl6_1 ==> end + 74239 TTTATGAAGAAAGTAAGCAGTGTTTTTATATTTTATTGTTTTTTAAATT +; G-rps12_1 ==> start + 74288 ATGGTTACAATTAATCAATTAATTCGATTAAGTCATCCTACTAAAAATAGGAAAAATACG + 74348 GTGCCCGCTTTAGACAGTAGTCCATACAAGAAGGGTGTTTGTTTAAGAGTATTTACGATG + 74408 ACTCCTAAAAAACCAAATTCCGCATTACGAAAAGTTGCCCGCATTAGATTATCAAATGGA + 74468 TATAAAATAACGGCGCATATCCCTGGTGAAGGTCACAATTTACAAGAATATTCGATTGTA + 74528 TTAGTACGTGGTGGGCGTGCTCGCGATTTGCCTAGTGTTCGATATAAAGTTGTTAGAGGT + 74588 AAATACGAT +; G-orf106 <== end + 74597 TTAGAACCTGTACGTAATAGGAGAACTCGGCGATCTAAATATGGTATTAAAAAAATATAA +; G-rps12_1 ==> end + 74657 AAATTGATTGATTGCGTCTGAGAGTATACATAAGTATTTGTTGTGGGTTAATGTTGAATG + 74717 GAAAAGTGTCTCAATTAGAAAAAATTGTTTTTTTTGTTTTCGAGACTTAAAATATAAGTT + 74777 TAATATGGATTCGTTGTTCTCTGTTTTTATATGTTGTAGACGAGATAATGCCTTATATAG + 74837 AGCTTCGTACGTTAAGGTTAGGGAGTGTTTTTTATCGAATACCAAAGCCTCTTCGAAAAG + 74897 TAAGCAGTTAAATTGTGGCAT +; G-orf106 <== start + 74918 TAAGCTGTTAGCCAAAACTGTCTAATTTAAACTTGTGTGTACGCAATGTAGCGGCGCTAT + 74978 AAAAAATACAACAGGAAATTTTAGCTGTTCTTCAAAAGAAAAGTTTACTTTTTAAGCAAA + 75038 ATAGAAATCTGTATCAAGTTGCGTCAACAACAGATCGTTTGCACATTACCGGTGGGATTA + 75098 GTTTTTACGAAATAGCGTGTCATATATGTGTAGTACAAT +; G-trnP(ugg)_1 ==> start + 75137 CGGAATATAGGCATAATGTAATGTATCTGATT!TGG!GATCAGATGAGTATAGGTTCGAG + 75195 TCCTATTATTCCGA +; G-trnP(ugg)_1 ==> end + 75209 AGTAAGGTATTTATTATAATTAGAAGTGTATATGAAGCGAATTAAATATTTTAAATTTAA + 75269 GTTTAGGGATATTTCAAAGGAAATTATTTAAGAAAGTCATATTTTAGATTGTTAAAAACA + 75329 AAAGCATATTTTAAGATTTTATTGGTGGATTAAAACAACGACAATTAGCACGGATTTACA + 75389 AAATTATTTATTCTAAACGGTTGTTTTTAACTTTTCTTACGAAATTAGAATATCGTATGA + 75449 ATTTATCTTGAAAGCCGGGTTTGTTTTAACCGGAAAACAGGCTAGGCAATTAATTCGCAT + 75509 AAGCATGTTATTGTGAATGGACAGCGGACTCAATTTTGCAATTTGCATATAAAAACATTT + 75569 GATATTATATCTCTAGAATCAGTAGTATTTTCAAAGTATAAACGCAAACTAGTATCAAGT + 75629 TTTTTTAAAACTCCAGGTTTTTTTGGTTATTTACGGCGACGTGGTATAAAAAAGAAACTT + 75689 ACAGTTCAACGTATGTTTATTTATGCTAAATTTCAATTTTTTTGCGAAACTAATTATAAA + 75749 ATCTACGATGTTTTTTGTGCGAAAGCTTAATTTGCATAAGATTTCTTCGTCTCAAGTTCT + 75809 TTTAATGTATGGGTGGTGACGAATACGTTTTTTATTTTAAAAAACGTTTTGTGATTAGTT + 75869 AAATTTTTATTATAATTATTTTTAGGTTTATAATGAGTTTAATTTTAGGTGATGTGTGTT + 75929 TAACAATAGTGTGCTTAGTTTAATTATTTTTTTACCGTTGTTTAGTAGTTTTTGTTCTGG + 75989 ATTGTTTTTGTTGGATTGGAGCTAAAGGTGTTGCTTTTATAACTTTTTTATCTCTACTAG + 76049 GGTCATTAATTTTAACTTGTAATTATTTAAGTTTTATAAGTTTTTATTTGGTTTCAAATT + 76109 ATGTATCCGTATTATCTTGGATGAAATTAGGTTCATTTTATGTGACATGGTCATTTTGTT + 76169 TTGATAGTTTATCTCGTTAATGCGGTTTTTTAGTTACTGTGTTAGTTAGTTTAGTTTATC + 76229 TATATGTGCGTCCTAGGTTATTTTTATTTTATAAATTTATTAAAGTAAAGTTGGAAATTT + 76289 AAGTGAGTTGTAATGGGCGAATAAGTGTTTCTTTCAAGTACTATTAAAATACATTGATAA + 76349 AGGTAAAACCCCAACAACACGAACATAAGATGAATAAATTTTTAGGAAAAACTACTATAT + 76409 TCAATATACAATAACGCGTAAATAAAAACTTCAAAAAAGAAAAAATATATTTAGTTTTAT + 76469 CAACAAAAACATCAAAAGTACATATACTTAATTTGCAAGATTCGTATTCCTCTTGATATA + 76529 TCAATTTTCTTGATTCAAATTGAAGTTTTCGTTTCTTAATTTTCTTATGCCCTCCAAATC + 76589 AACTTCGCTTTTTCAT +;; G-rpl16 <== end + 76605 TTATTTACA +;; G-rpl16 <== end + 76614 AATACAATAAACCTGAATTGGTAGTTTTCGTGCAATACTTTTCAACAGTAAACGAGCCTG + 76674 ATTTGATGGCAATCCAGATACTTCACATAGCACAAAACCAGCCTTAACTTTACATACCCA + 76734 TCGTC +;; G-rpl16 <== end + 76739 TATACCCCTTACCTTTCCC +;; G-rpl16 <== start ;; 86,134 + 76758 ATACGTACCTCAAGCGGCTTAGCTGTTATAGCTTGGTGAGGAAATACACGTATTCAATAC + 76818 TGACCAATTCGCTTAGTACTCTTAGACAAATTTAACTTAACCATTTCTAACTGCTTAGAT + 76878 GTAATATAACCATTCTTTTTAGCTTTAAAACCAAAATTGCCAAAATCCAAATTTAAAAAA + 76938 CGTGTTGCTAAATTTTTAATCTTCTTTTTCTGAAATTTTATAAACTTAGTTTTTTTAGGA + 76998 AT +;; G-rpl16 <== start ;; 4,91 + 77000 AATTCCAACCAT +;; G-rpl16 <== start + 77012 TTTCTCAACAAATTAATATATTCAAATTTTAACTCCTATAATTCCTGCCCGTTAATAGCT + 77072 TCAGCAAATCCATATCCCAGTATTAAAGGACTATTTTTAGAAGCAACAACCAATTTGTAT + 77132 ATGTTTAGTACGAGCACGGCTAAAAACCATTTAGTTTACCTGCTAATAAAATCTTTATCC + 77192 CTTTAACCTAAAATATTTTCAAATCTCCTTCAATACTTTTGACAAAAATGATAAAAAAGA + 77252 TAAATGTTTATATATTTTAGACAAAATTGGAGCAATATAATTTGCAATTAATTTCGCATC + 77312 CGGAATTATATTTTAGCGCATGCACTAAAAATACTAACGTATTCCGATATATCCAACATC + 77372 TTTATTAAAACGTAAACGGAAGCGCTTGAAACTATCTGAAACAACTCGTAATAACGTTGA + 77432 CAAATTTTTTTTTCATTCTTTATAACCTACAACACATATATTTACGAATTTGTAAAATAT + 77492 CTGCCTCTTTAGCAAAAACTCTAAAACGTATAAAAACATTATACTACGTAATTGCACTCG + 77552 GCATTTATGAATTGGCTTCATAACAGTTCCTAGTGTAGCTAAAATCTTTTTTCTATCCTT + 77612 ACGTTTTTTAGTTTTCTTACTTTTATATTGAAAATTTTTCTTGCGCTTCTCTTCTTCCCT + 77672 TATTGGATAAAAAAATAAGAAATTTACGTATAATTTCCCTAAAACTCAAAATAAACGCAC + 77732 CGTACCCACTACTCTACGTTTTCGAGCTTTTGTTCAACGTGAAAAAAAAAATTAACATAC + 77792 TTACGAACAAAAAATCTCTTCATAAATATGCCTACAATACTCTAAAGATTTCTTAACAAA + 77852 TCAATTTGATTTGAATAAAAATTTTTGATAAATAACTTTATGTTTACCGTTTCGCTTTAT + 77912 ATACATGCAATTTTCGAGTAAACACAAAACATCCAAATTTATACCCAACCATTCCTGGAG + 77972 AAATACACAAATCAAAAAAATCTACATCCATTATAAATTTTAATCCTAACCTGAATAAAA + 78032 TCTGGCAAAATCATACTATCTTTACGTTTTAAAAAAAATAATTTTATTACTTTTGTTCTC + 78092 ACCATAAAAACTTGAATAAACTTTTTGCGTTATAAAAGGCCCTTTTCAAATTGCTCTCAT + 78152 ATTTATATATTATTTATTACCTAAGCAAGCATTTTACAAAATGCGATACAGCATTTCCAA + 78212 AAATACATATTAAAATTTCAATCATAAACCAAAAAAAGGGAGGGGGGGGGTAAGGCGTTT + 78272 CAACAATTCCAGCCTTCGCAGAACAAAAAACGCATCACATTTATCTGCGAAGCACTTTTA + 78332 TGGAACAGTGAATAAATCACAGCAAAACGCATGGATTTAGGTGTAAAATCGCTTAGGCAA + 78392 TTCTTTTAGAATACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATGCATAAAA + 78452 ATTGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATATTAGAATT + 78512 TTAAGCGTAAACCAAGGGGGGGGTAAGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAA + 78572 AACGCATCACATTTATCTGCGAAGCACTTTTATGGAACAGTGAATAAATCACAGCAAAAC + 78632 GCATGGATTTAGGTGTAAAATCGCTTAGGCAATTCTTTTAGAATACAACCGCGTAAAATT + 78692 TCCTTAGCGATTCTGTGCGACGATGCATAAAAATTGGAGGGAATTTTGCACCTACGCCAG + 78752 AGCAAGCATTTCCAGAAATGCATATTAGAATTTTAAGCGTAAACCAAGGGGGGGGGGGTA + 78812 AGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAAAACGCATCACACTTATCTGCGAAG + 78872 AACTTTTATGGAACAGTGAATAAATCACAGCAAAACGCATGGATTTAGGTGTAAAATCGC + 78932 TTAGGCAATTCTTTTAGAATACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGAT + 78992 GCATAAAAATTGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATA + 79052 TTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGGGGTAAGGCGTTTCAACAATTCCAG + 79112 CCTTCGCAGAACAAAAACGCATCACATTTATCTGCGAAGCACTTTTATGGAACAGTGAAT + 79172 AAATCACAGCAAAACGCATAGGTTTGGGTGTAAAATCGCTTAGGCAATTCTTTTAGAATA + 79232 CAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATGCATAAAAATTGGAGGGAATT + 79292 TTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATATTAGAATTTTAAGCGTAAATC + 79352 AAGGAGGGGGGGGTAAGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAAACGCATCAC + 79412 ACTTATCTGCGAAGAACTTTTATGGAACAGTGAATAAATCACAGCAAAACGCATAGATTT + 79472 AGGTGTAAAATCGCTTAGGCAATTACTTTAAAATACAACCGCGTAAAATTTCCTTAGCGA + 79532 TTCTGTGCGACGATGCATAAAAATTGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATT + 79592 TCCAGAAATGCATATTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGTAAGGCGTTTC + 79652 AACAATTCCAGCCTTCGCAGAACAAAAACGCATCACACTTATCTGCGAAGAACTTTTATG + 79712 GAACAGTGAATAAATCACAGCAAAACGCATAGATTTAGGTGTAAAATCGCTTAGGCAATT + 79772 CTTTTAGAACACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACGATGCATAAAAAT + 79832 TGGAGGGAATTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATGCATATTAGAATTTT + 79892 AAGCGTAAATCAAGGAGGGGGGTACGGCGTTTCAACAATTCCAGCCTTCGCAGAACAAAA + 79952 ACGCATCACACTTATCTGCGAAGCATTTTTATGGAACAATAAATAAATCACAGCAAAACG + 80012 CATGGATTTAGGTGTAAAATCGCTTAGGCAATTACTTTAAAATACAACCGCGTAAAATTT + 80072 CCTTAGCGATTCTGTGCGACAATGCATAAAAATTAGAGGGAACTTTGCACCTACGCCAGA + 80132 GCAAGCATTTCCAGAAATACATATTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGGG + 80192 GTAAACGTTTCGATAACTTCAGCCACCACAGAACAAAAACGCATCAAATTTATCTGCGAA + 80252 GCACTTTTACGGAACAATAAATAAATCACAGCAAAACGCATGGATTTAGGTGTAAAATCG + 80312 CTTAGGCAATTACTTTAAAATACAACCGCGTAAAATTTCCTTAGCGATTCTGTGCGACAA + 80372 TGCATAAAAATTAGAGGGAACTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATACAT + 80432 ATTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGTAAACGTTTCGATAACTTCAGCCAC + 80492 CACAGAACAAAAACGCATCAAATTTATCTGCGAAGCACTTTTACGGAACAATAAATAAAT + 80552 CACAGCAAAACGCATAGATTTAGGTGTAAAATCGCTTAGGCAATTACTTTAAAATACAAC + 80612 CGCGTAAAATTTCCTTAGCGATTCTGTGCGACAATGCATAAAAATTAGAGGGAACTTTGC + 80672 ACCTACGCCAGAGCAAGCATTTCCAGAAATACATATTAGAATTTTAAGCGTAAATCAAGG + 80732 AGGGGGGGTGGGGTAAACGTTTCGATAACTTCAGCCACCACAGAACAAAAACGCATCAAA + 80792 TTTATCTGCGAAGCACTTTTACGGAACAATAAGTAAATCACAGCAAAACGCATAGATTTA + 80852 GGTGTAAAATCGCTTAGGCAATTACTTTAAAATACAACCGCATAAAATTTCCTTAGCAAT + 80912 GACGCATAAAAATTAGAGGGAACTTTGCACCTACGCCAGAGCAAGCATTTCCAGAAATAC + 80972 ATATTAGAATTTTAAGCGTAAATCAAGGAGGGGGGGGGTGGGGTAAACGTTTCGATAACT + 81032 TCAGCCACCACAGAACAAAAGCACACTTTTAGGGGCAGCAA +; G-orf766 ==> start + 81073 ATGCCAGA +; G-orf760 ==> start + 81081 ATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGT + 81141 TATGCAAATCAAAA +; G-orf734 ==> start + 81155 ATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGT + 81215 TGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCC + 81275 CCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTAC + 81335 AGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGG + 81395 GCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATA + 81455 TATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGT + 81515 GCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAGA + 81575 ATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGT + 81635 TATGCAAATCAAAAATGTGACAAGTG +; G-orf424 <== end + 81661 CTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCC + 81721 CAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCTCGGCACGGC + 81781 ATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGA + 81841 CGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCC + 81901 AGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAA + 81961 AGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGC + 82021 GAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAG + 82081 CTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAA + 82141 AAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGA + 82201 GTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCC + 82261 CCCCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTG +; G-orf315 <== end + 82320 CTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCC + 82380 CAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCTCGGCACGGC + 82440 ATATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGA + 82500 CGTGCCCATTTTGGCGAGAAAATTCATGGAATTGCCACCCTCCCCAGGGCAGCAAATGCC + 82560 AGAATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAA + 82620 AGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGC + 82680 GAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAG + 82740 CTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAGTTATGCAAATCAA + 82800 AAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGAGAAAATTCATGGA + 82860 GTTGCCACCCTCCCCAGGGCAGCAAATGCCAGAATGTATGAAAAGCTCGCGCGCGCCGCC + 82920 CCCCTCGGCACGGCAT +; G-orf424 <== start + 82936 ATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACG + 82996 TGCCCATTTTGGCGAGAAAATTCATGGAGTTGCCACCCTCCCCAGGGCAGCAAATGCCAG + 83056 AATGTATGAAAAGCTCGCGCGCGCCGCCCCCCCTCGGCACGGCATATATACTCGAAAAAG + 83116 TTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACGTGCCCATTTTGGCGA + 83176 GAAAATTCATGGAGTTGCCACCCTCCCCAGTGCAGCAAATGCCAGAATGTATGAAAAGCT + 83236 CGCGCGCGCCGCCCCCCCCCTCGGCACGGCAT +; G-orf315 <== start + 83268 ATATACTCGAAAAAGTTATGCAAATCAAAAATGTGACAAGTGCTACAGATCTTTCAGACG + 83328 TGCCCATTTTGGCGAGAAAATTTGTACGTTAA +; G-orf734 ==> end + 83360 CTAG +; G-orf760 ==> end + 83364 TTTATGGTAA +; G-orf766 ==> end + 83374 TATATATAGTATAAACATTAATAATATTTATAATATATGTATACATTATACTTAATATAT + 83434 ATAGTATAAACATTAATAATATTTATAACATATGTATACATTATACTTAATATATATAGT + 83494 ATAGACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATTATACTT + 83554 AATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTATACATATGTT + 83614 AACATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATAT + 83674 ATGTATAATGTATACATATGTTAACATATGTATACATTATACTTAATATATATAGTATAG + 83734 ACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATATGTATACATT + 83794 ATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTATACA + 83854 TATGTTAACATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTA + 83914 TAATATATGTATAATGTATACATATGTTAACATATGTATACATTATACTTAATATATATA + 83974 GTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATA + 84034 AACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATATGTATACAT + 84094 TATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTATAC + 84154 ATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATG + 84214 TATAATGTATACATATGTTAACATATGTATACATTATACTTAATATATATAGTATAGACA + 84274 TTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAAT + 84334 AATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATAT + 84394 TTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATA + 84454 ATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATA + 84514 TGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTAT + 84574 ACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATT + 84634 ATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACT + 84694 TAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATA + 84754 TATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATAT + 84814 AGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTAT + 84874 AGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACA + 84934 TTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAAT + 84994 AATATTTATAATATATGTATAATGTATACATATGTATACATTATACTTAATATATATAGT + 85054 ATAGACATTAATAATATTTATAATATATGTATAATGTATACATATGTTAACATATGTATA + 85114 CATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATAATGTA + 85174 TACATATGTTAACATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATA + 85234 TTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTAT + 85294 AATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATAT + 85354 ATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTA + 85414 TACATTATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACAT + 85474 TATACTTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATAC + 85534 TTAATATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAAT + 85594 ATATATAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATA + 85654 TAGTATAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTA + 85714 TAGACATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGAC + 85774 ATTAATAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAA + 85834 TAATATTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATA + 85894 TTTATAATATATGTATACATTATACTTAATATATATAGTATAGACATTAATAATATTTAT + 85954 AATATATGTATAATGTATCATA +; G-orf1493 <== end + 85976 TTACCATAAA +; G-orf1477 <== end + 85986 CTAG +; G-orf1510 <== end + 85990 TTAACGTACAAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCAC + 86050 ATTTTTGATTTGCATAACTTTTTCGAGTATAT +; G-orf1086 ==> start + 86082 ATGCCGTGCCGAGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCC + 86142 TGGGGAGGGTGGCAATTCC +; G-orf1225 ==> start + 86161 ATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTG + 86221 ATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTT + 86281 TTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCGCC + 86341 AAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTT + 86401 TCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGC + 86461 ATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCGCCAAAATGGGCACGTCT + 86521 GAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCC + 86581 GTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGG + 86641 GAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCA + 86701 CTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGC + 86761 GGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCC + 86821 ATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTG + 86881 ATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTT + 86941 TTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTTGCC + 87001 AAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTT + 87061 TCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGC + 87121 ATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCT + 87181 GAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCC + 87241 GTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGG + 87301 GAGGGTGGCAACTCCATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCA + 87361 CTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGC + 87421 GGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCC + 87481 ATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTG + 87541 ATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTT + 87601 TTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCC + 87661 AAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTT + 87721 TCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGC + 87781 ATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCT + 87841 GAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCC + 87901 GTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGG + 87961 GAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGTAGCA + 88021 CTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGC + 88081 GGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCC + 88141 GTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTG + 88201 ATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTT + 88261 TTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTCGCC + 88321 AAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTT + 88381 TCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGC + 88441 ATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTCT + 88501 GAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCC + 88561 GTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGG + 88621 GAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCA + 88681 CTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGC + 88741 GGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCC + 88801 ATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTG + 88861 ATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTT + 88921 TTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCGCC + 88981 AAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTT + 89041 TCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTGGC + 89101 ATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACGTCT + 89161 GAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATAT +; G-orf451 ==> start + 89216 ATGCCGTGCCGAGGGGGGGCGGCGCGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGC + 89276 TGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGA + 89336 TCTGTAG +; G-orf1086 ==> end + 89343 CACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGG + 89403 GCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACT + 89463 CCATGAATTTTCTTGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTT + 89523 TGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGC + 89583 TTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCG + 89643 CCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTT + 89703 TTTCGAGTATATATGCCGTGCCGAGGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCT + 89763 GGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCGTGAATTTTCTCGCCAAAATGGGCACG + 89823 TCTGAAAGATCTGTAG +; G-orf1225 ==> end + 89839 CACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGG + 89899 GCGGCGCGCGCGAGCTTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACT + 89959 CCATGAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTT + 90019 TGATTTGCATAACTTTTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGC + 90079 TTTTCATACATTCTGGCATTTGCTGCCCTGGGGAGGGTGGCAATTCCATGAATTTTCTCG + 90139 CCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTT + 90199 TTTCGAGTATATATGCCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACATTCTG + 90259 GCATTTGCTGCCCTGGGGAGGGTGGCAACTCCATGAATTTTCTCGCCAAAATGGGCACGT + 90319 CTGAAAGATCTGTAGCACTTGTCACATTTTTGATTTGCATAACTTTTTCGAGTATATATG + 90379 CCGTGCCGAGGGGGGGCGGCGCGCGCGAGCTTTTCATACAT +; G-orf1477 <== start + 90420 TCTGGCATTTGCTGCCCTGGGGAGGGTGGCAACTCCAT +; G-orf1493 <== start ;; mfannot: GTG upstream: 90508 + 90458 GAATTTTCTCGCCAAAATGGGCACGTCTGAAAGATCTGTAGCACTTGTCACATTTTGATT + 90518 TGCAT +; G-orf1510 <== start + 90523 AACTTTTTCGAGTATACGTTATTATAAGTTATATTTAGAAATGATATAA +; G-orf451 ==> end + 90572 ATTTTCTAGCGGTGGTTAATAACGACCAACATTATATACATTTTTATTTTTGTTAATAGC + 90632 AGTTAAGTATTGGTTAGAAAATAATATAATTTTTAATTTTCTTTAA +; G-trnW(uca)_2 ==> start + 90678 AGGGAGATAGTTTAACGGTAAAATATCGATCT!TCA!ACATCGAGGTTATAGGTTCAAAT + 90736 CCTTTTCTCCCTG +; G-trnW(uca)_2 ==> end + 90749 AGATTTTTTAAGGT +; G-rps13_2 ==> start + 90763 ATGAAAACATCAATTCAATTTTTTAATTTACAGTTTTTGATTGAAAAAAAATTATTAATT + 90823 TCGTTAACGCAAATTTTTGGCATTGGTTTTTACTCTGCTATAGTAATTTGCAAAAAATTT + 90883 GGTTTTAATAAAAATACATATATTAAGAGTGTGGATGTAAGGATTGTAAATGCAATGCGT + 90943 AACTTTATTTTGGATAAATTTGTTGTTCAAGAACAACTGAAAGAGCAGATTCAGGTATCT + 91003 ATAGTAGAGTTGGACACTATAAAGAGTATTAGAGGGTTTCGGCATAAATTGTGTTTACCT + 91063 GTTCATGGACAGCGAACTAAAACTAATCGGCGTACTCAACGTAAATTTAAAAGAATGCAG + 91123 AGTAAATT +; G-rps11 ==> start + 91131 ATGGGAAGAGGATTCAACACATATTCGTTAA +; G-rps13_2 ==> end + 91162 AACATAAATTTCAGTTTAGAAAATTACGTAGAACCCTTTTATCCTTTCGAAAGAGATCTT + 91222 GTATTCTAAATATTAAAATTACATTGAATAACATATATTTAACTTTATCTGATTGATTTG + 91282 GTCAAATTATTATGGTGAAATCTGGTGGGTTATTAAAATTGCCGGGTTCCGGTAGAAATA + 91342 CGAATTATGCCTTAGAGCTTTTAATATTAGATGCTATTAAGCAATTAACTTTGTTAAATA + 91402 CAAAACATATTGTTTTAAAGTTTGATCATCGTGTTTTAAGGAAAAAGAAAATGATTTTAA + 91462 AGTTATTAAAAAAATTTAATATTAAAATTTTTCTTATACGATTAATTATGTGTAAAGTTC + 91522 ATAATGGAATTACATTAGCTAAAAAACGGCGGGTTTAA +; G-rps11 ==> end + 91560 GTTATC +; G-rps14_2 ==> start + 91566 ATGTTGCGTAAGGTTATTTTTGAGTCAAATACCAGATATACATTTAAGTATTTTGAGATT + 91626 AAACAAAGAATTATAAAATCGTTATCAAAAAATTTATACTTGCCTATATTAGTTCGACGT + 91686 AAATTGTTGTGGCAATTAGATAAATTATCTTTATTATCATCTTTAATTTATGTAAAAAAT + 91746 CGATGTGTTGTTTCTGGTCGTGCTAAATCGATTTATAAATTTTTTAATTTATCTAGAATT + 91806 GTTATAAAAAAATTTTTTAGATTAGGTTATATACCTGGTTTAAATAGATCAAGTTGGTAA +; G-rps14_2 ==> end + 91866 TTTAGTAATATAAAATAAAAGTTTATTG +; G-rps8_2 ==> start + 91894 ATGGTTAAATTAGGACAATTTATTTCAATTTTAAATTTTAATATTAAAGCAGGAAAGTCT + 91954 TTTTTTGTAATAGTTAAAACAAGGATAATTTTGGATATTGTAAAAATCTTGATTGAGCAA + 92014 AATTACATTCTTGGTTATACGGATTTAAAAGAAAATGGTGATAAAATTATTGTGTTTTTT + 92074 AAGTTAGATTTTGCGAAAAGTAATAGCCTTTTACTTAAGGGATGTAAATTTGCATTATAT + 92134 AAAAATAGATTTACAAGTATTGGTGCCAATAATATAGTGAATAACTCGTCGTTGGTACTT + 92194 GTGTCTACTGTGAAGGGCGTTATGACTCAGTTGGAGGCTAAAAAACTTCGACTTGGGGGT + 92254 ATTATCTTGTGTTATATAATATAA +; G-rps8_2 ==> end + 92278 AATTGTATAAAAAAATA +; G-rpl6_2 ==> start + 92295 ATGAGAGCTAAATTTATTTATCAAATTTTTAATAGGTTGTTTATCTATATATTTCAACAC + 92355 AATAAATTACTGTATATTCGAGGCCCTCTGGGTTTACTACGCTATAATGTTCCCAGTGGC + 92415 ATTGATATTTGTAAATATCGGTCAATGGTGTATATTTCTGGACAAAAAGCTGCCCACCCT + 92475 TTAGTTGCAATGTCACATAGAATAGTTTGCCAGAAAATGAAAGGGCTTGAGGTTGGTTTT + 92535 TCTGAAATTATGATAATTGCTGGTATGGGTTGGCGCGTTGATAAAGAAGACGTTTTATTA + 92595 AAATTTACAATTGGTTATAGTCATATTGTACATTATCTGATTCCGAATGATATTGAAATT + 92655 GTTTTACTTAGTAAAAATCTTTTTAAGATTTTTGGTTCTGATTTGAGTCGAATTCAGTGC + 92715 ATTGCGTCCGAATTGTGCAAACTGCGTTCATCTGATGTGTATAAAGGTAAAGGAATTCGT + 92775 CGTCAAGCTTTTAAAGTAGTTTTAAAATCAAGTACTAAATCGAAAGTTTAA +; G-rpl6_2 ==> end + 92826 TTTATGAAGAAAGTAAGCAGTGTTTTTATATTTTATTGTTTTTTAAATT +; G-rps12_2 ==> start + 92875 ATGGTTACAATTAATCAATTAATTCGATTAAGTCATCCTACTAAAAATAGGAAAAATACG + 92935 GTGCCCGCTTTAGACAGTAGTCCATACAAGAAGGGTGTTTGTTTAAGAGTATTTACGATG + 92995 ACTCCTAAAAAACCAAATTCCGCATTACGAAAAGTTGCCCGCATTAGATTATCAAATGGA + 93055 TATAAAATAACGGCGCATATCCCTGGTGAAGGTCACAATTTACAAGAATATTCGATTGTA + 93115 TTAGTACGTGGTGGGCGTGCTCGCGATTTGCCTAGTGTTCGATATAAAGTTGTTAGAGGT + 93175 AAATACGATTTAGAACCTGTACGTAATAGGAGAACTCGGCGATCTAAAT +; G-rps7 ==> start + 93224 ATGGTATTAAAAAAATATAA +; G-rps12_2 ==> end + 93244 AAATTGATTGATTGCGTCTGAGAGTATACATAAGTTTATTTGTGGGTTAATGTTGAATGG + 93304 AAAAGTGTCTCAATTAGAAAAAATTGTTTTTTTTTGTTTTCGAGACTTAAAATATAAGTT + 93364 TAATATGGATTCGTTGTCTCTGTTTTTATATGTTGTAGACGAGATAATGCCTTATATAGA + 93424 GCTTCGTACGTTAAGGTTAGGGAGTGTTTTTTATCGAATACCAAAGCCTCTTTCGGAAAG + 93484 TAAGCAGTTAAATTGTGGCATTAAGCTGTTAGCCAAAACTGTTAAAATTACTTGTGTACG + 93544 CAATGTAGCGGCTGCTATAAAAATACAACAGGAAATTTTAGCTGTTCTTCAAAAGAAAAG + 93604 TTTACTTTTTAAGCAAAATAGAAATCTGTATCAAGTTGCGTCCAACAACAGATCGTTTGC + 93664 ACATTACCGGTGGGATTAG +; G-rps7 ==> end + 93683 TTTTTGACGAATAGCGTGTCATATTGTGTAGTACAAT +; G-trnP(ugg)_2 ==> start + 93720 CGGAATATAGCATAATGGTAATGTATCTGATT!TGG!GATCAGATGAGTATAGGTTCGAG + 93778 TCCTATTATTCCGA +; G-trnP(ugg)_2 ==> end + 93792 AGTAAGGTATTTATTATAATTAGAAGTGTAT +; G-rps4 ==> start + 93823 ATGAAGCGAATTAAATATTTTAAATTTAAGTTTAGGGATATTTCAAAGGAAATTTATTTA + 93883 AGAAAGTCATATTTTAGATTGTTAAAAACAAAGCATATTTTAAGATTTTTTATTGGTGGA + 93943 TTAAAACAACGACAATTAGCACGGATTTACAAAATTATTTATTCTAAACGGTTGTTTTTA + 94003 ACTTTTCTTACGAAATTAGAATATCGTATTGAATTTATCTTGATAAAAGCCGGGTTTGTT + 94063 TTAACCGGAAAACAGGCTAGGCAATTAATTTCGCATAAGCATGTTATTGTGAATGGACAG + 94123 CGGACTCAATTTTGCAATTTGCATATAAAAACATTTGATATTATATCTCTAGAATCAGTA + 94183 GTATTTTCAAAGTATAAACGCAAACTAGTATCAAGTTTTTTTAAAACTCCAGGTTTTTTT + 94243 GGTTATTTACGGCGACGTGGTATAAAAAAGAAACTTACAGTTCAACGTATGTTTATTTAT + 94303 GCTAAATTTCAATTTTTTTGCGAAACTAATTATAAAATCTTTACGATGGTTTTTGTGCGA + 94363 AAGCTTAATTTGCATAAGATTTCTTCGTCTCAAGTTCTTTTAATGTATGGGTGGTGACGA + 94423 ATACGTTTTTTATTTTAA +; G-rps4 ==> end + 94441 AAAACGTTTTGTGATTAGTTAAATTTTTATTATAATTATTTTTAGGTTTATAATGAGTTT + 94501 AATTTTAGGTGATGTGTGTTTAACAATAGTGTGCTTAGTTTAATTATTTTTTTACCGTTG + 94561 TTTAGTAGTTTTTGTTCTGGATTGTTTGGTTGTTGGATTGGAGCTAAAGGTGTTGCTTTT + 94621 ATAACTTTTTTATCTCTACTAGGGTCATTAATTTTAACTTGTAATTATTTAAGTTTTATA + 94681 AGTTTTTATTTGGTTTCAAATTATGTATCCGTATTATCTTGGATGAAATTAGGTTCATTT + 94741 TATGTGACATGGTCATTTTGTTTTGATAGTTTATCGTCGTTAATGGCGGTTTTAGTTACT + 94801 GTTGTTAGTTGTTTAGTTTATCTATATGTGCGTCCTAGGTTATTTTTATTTTATAAAATT + 94861 TATAAAGTAAAGTTGGAAATTTAAGTGAGTTGAAAAAGAGGATTCATAAAAAGTACATTA + 94921 AAGGATTTTTCATTATTCTTTATGAAGCAGGTAATGCTCAACTAGTTAAGTTTGAAAAGT + 94981 AGAATTAGCAATTACAAATATGTATTTAACGCGTATGCTATGGGATTTATTTAATTTTTC + 95041 TACTATTTGTGTATTTGTATAAGTACACAAATAATTTAGCTTTAGTGTAAAATATATCTA + 95101 CTTAATTAAATGTGTGAGGTGAGTGTTAGTAATGGGTAAGCTACGTTAATACTGGTTTTT + 95161 TCGTAGATATAGGATAATATTAATCAATTACATAAATTTAATTGTAAAATTTTTTTTAAT + 95221 AAAATTTATGAACTGAGCAAATGTAGTATAGAAG +; G-orf465 ==> start + 95255 ATGAAAAAATTTAATTTTATGCCATCAGTTTCTGTTTTTTTTCAATTTAGTTCGAATTTT + 95315 TTATTTATCTTTAATTTTTGTTTTTCTTGGGAAGTTGTGAATTGGAATTCGATTAATAGG + 95375 CATCTGTATAAATATCAAAGAGTAATATTTATTAACGTTAAGACTAGGTGGGGTTTGTCT + 95435 ATATGTGATCATTGGGAATTAAAATTAGATGTGTTTTGGTTTCAAATTAAATGTTTTGGT + 95495 TCATTTAGTTTTAATTTGGTTTGTATTAGAATTTATTTCTTAGATTTGATCTTCAAATTT + 95555 TTTTCTTATAGTAAAATTGGTTGATTTTTAGATCGAGGTATACGTTTAAGCTGTTTCGGA + 95615 GTAGAAGGTTATATTCGTAATTATATTTTATTAGTAAATTTTGATTTGAATAATATTCAA + 95675 GAAAAGCATGATTTTTTATGATTATCTAAACGATTAATTAGTTTAGTATGAGAGCCTGAG + 95735 TGTGTGGCAAGATATTTGTTTAACTTTTGTGGTTTTGTAGGAACTCGTAATGTGTATTTT + 95795 ATTTTGCGAATAGTTTACCAAACTGCTTTATGCGGAATTAAATTTGTTTTTACAATTAAT + 95855 TTGTTAAAATTATTTAAATTTATAACAGTCAAACATTTATTTTTTTGATTGGGTTTTCCT + 95915 GTTTATATTTGTAAATGATATGAATACGATAAAAAAATAATATTAAGCAATCTTTCTGAT + 95975 TTTCTTAGACAGGATACAGAAAAACACTTGTTATTTATATTAATTAATAAATTTTTTTGT + 96035 GAATTAGAAAACCACTTAAGGAGATTTTATGTTTTTTTATTAGGTAATATTTTGCCATTT + 96095 TTTTCTGAAAATTTTATAGCGAACTTGGTAGTTTTATGTTATTTAGGAGATCTAATAATT + 96155 ATACATAGGGATAATTTAATCGTTGATTTATTAAGGTTAGAGTTTTTTTACAAATTAACT + 96215 ACGCTTGGAGTCGATGTAGTAGACGAACAAACGTTTGGTTTATCAAATTGTATTGATACA + 96275 ACTAAAGGGTTTAATTTTATAGGTTTTTATATTCGATTTAATAATGCGTTTTTATTTGGT + 96335 GTATACCAAACTAAAAATTGTATAGTTTTGCAACCTTCTGTTGGTTCTATTAAAGGGCTT + 96395 TTAACCGGTATTCAACGTTTTTTGAAAAATAATAATTGTGAACAAGTAGTATTAACTAAT + 96455 ATATTTTATATTATGCGAAGATGGTTTTGTTATTATTTTCCATTCATTAGGTTATGCCGT + 96515 AGATTAATTGTTTCGTTAATTTTTTGTTTACGTCTTAAATTATTTTATTGGTTGTTTAGA + 96575 AAATATGGTCGAATGGGTAAAAAGTACATCTATAAGCAATATATAAAATTTTTATTTAGC + 96635 CAATTTAAATTTTGGTAA +; G-orf465 ==> end + 96653 AAAAATAAAAATTATTTTTTTTTTTGCTATTGCAGTTTAGTATAAATTTTATTTTTAAAA + 96713 AT +;; mfannot: /group=II + 96715 gagctgtaagatgaaaaattatcgtgtacagttcagaagtaggg +;; mfannot: + 96759 ATTTGTTTATTAAATTAAATCTACTATAACTCATTGGCATACATGTTAGAAGATCCTCAT + 96819 ATAGTTAGGTTTTCATGTTATATTTCGTTATGTGTGGCTTGTTAGGTGATAGGTATAGAT + 96879 AATTTTGGAACTATACATTAATTTATTAAATTTAAAAATTATAGTCATAGCTGATTTTAT + 96939 AAGCTTAGATTGAGCATAATTGTAGAATTTGTTAAAATCTATTCTATAATACATATATAG + 96999 ATATAATGCATAATTACATATTTTCTTCGTTACCGTACGGTATGGGTGGTAAATTTTTTA + 97059 TAAATAGCGATAAAAAAAATCGGTCAATAGGACTTATGTTAAATTTGTAGTTATATGGGT + 97119 AGGTTGTTTGGTTAAGTGTAAATAAATGTATGGAACAAGTTTTTATGGCTAAGTTTTAGT + 97179 GTATAAGAAGGATAGGATGAAAAATTAAGTTTGATATTTTTCCATAAATTCAAAAGTATA + 97239 AATTTTATGTTATTATGCTAATTATGAATTTACTGGTAAG +;; mfannot: /group=II + 97279 aagccgtatgattttgaaaatcatgtacggttttgaattagagg +;; mfannot: + 97323 TTTAATTGATCGACTAAAACTTACATTTTTCAGTGCGGCACGTAAAAATTTTGTTATTAA + 97383 AATTTAAAAGAAATTAATACGAATTGTAATTGTGTTTTGATTTTTGTGTAAGTTCTACAG + 97443 TTATCGGATTTTATTATTTATTAATTTTTTAATTTTAAGCTGATTATTTGTATCTTAATG + 97503 GTTGTAATTTAAATATATAGGGATACTGGTTTTAAATGGTATACTTAAAGTATTTAATCT + 97563 ATTAAGTAGTTTCTAGTTTATTATAAATAAACTTTAGATAGTTTTGCTAAATTTTATTTT + 97623 GAAAAGTAAAGTTTAGTTTTAACTATTTATATAAAATGCTAATCCTATTTTATATTTTTG + 97683 CGTAATGCGCGAAACGTGTTATGGTGTAAGTAATAAAAAATTTTTTCATCTAGGTTAAAT + 97743 AAGATATGGTATATATCTTTTATATAGGATAAACTTAGTTTTATTTATTTTTAAATTTAA + 97803 TAAGCTTTAATACAGTTAAGAATTTAGAAAAT +;; mfannot: /group=II + 97835 gagccgtatgctaacaaattagc +; G-nad5 ==> start +; G-nad5-E1 ==> start + 97858 atgtacggttttgagtcag +;; mfannot: + 97877 AAATTTCAGCCAATTTTATTGAAGTTTTATGA +;; mfannot: G-nad5 ==> start Def by similarity + 97909 ATACTGTTAGTGTTAGTATCATCCGAAAATTTTGTTCAATTGTTTTTTGGATGGGAAGGT + 97969 GTAGGATTATGTTCTTACTTATTAATAAATTTTTGATATATTCGATTACAAGCTAATAAA + 98029 GCGGCTATTCAAGCTTTAATGGTTAATAAAATAGGTGATATTGGGGTATTATTAGGTATT + 98089 TGTTCTATTTTTTCATTGTATCGTTCAGTTGAATTTAGTATTATTTTTGCGTTAACTTCT + 98149 TATATGCAAGGTGAATCATTTATTTTATCAATTTTTAATGTTAATGGTTTATTAATGATT + 98209 GGTTTATTTTTGTTTGTTGGAGTTGTTGGAAAATCCGCGCAATTAGGGTTACATACATGA + 98269 TTACCATCTGCAATGGAGGGACCTACTCCAGTGTCTGCATTAATACATGCTGCAACAATG + 98329 GT +; G-nad5-E1 ==> end +; G-nad5-I1 ==> start /group=II(derived) + 98331 gtatgaaatgctaacaattccagtttaggttattttaaattgtatacatttgttaatggc + 98391 aatttttatttttttgcgatgattttggataagtatttgtcgaatttaagattaattttc + 98451 ttgaataacatttttttagttggataaggttatacgaattttttaatgataacggtgttt + 98511 ataatttgttattgtatttgtgagatacataaggtgttggcgattcatgattttttttga + 98571 taaattaaagcctaataaaatataatatgctgaaatttaattatgcggtcatgatcttta + 98631 tattgttaatgtgatacagaatatccagtgaaatatattaatagtctgtgcctagataga + 98691 tctaaacgttatttttgtgtaatgtaggttaggaaatatgttagtggaataattgtgaaa + 98751 ttaattcagaaataatatttaatttaaataattaagtattattgaatatttttgtaaatt + 98811 cataggaaatatttaaaaattgcttgttaattgagtatgtttaaaattttgatagtttta + 98871 gctgatattatttaatagagtattattaattggtattttaatggattttctgaaatttta + 98931 aagctgaatgcaaagtaatttgctcgttcagtttaatgagggtttaaccgtaaagtctta + 98991 aactacctttat +; G-nad5-I1 ==> end +; G-nad5-E2 ==> start + 99003 AACTGCTGGTATATTTCTTATTATTAGGTGTTCAGAATTTTTTGAATATGTGGATTTTAT + 99063 TTTAGTTTGTCTAGTGTTATTAGGGGCGTTAACTGCTTTTTTTGCAGCAACTGTTGGTTT + 99123 ATTTCAAAATGATCTTAAACGTGTTATTGCGTACTCTACGTGTTCACAACTGGGTTATAT + 99183 GGCGTTTTCTTGTGGATTATCTGCTTATTCTGTAGCGTTTTTTCATTTAGTCAATCATGG + 99243 GT +; G-nad5-E2 ==> end +; G-nad5-I2 ==> start ;; mfannot: no intron type identified + 99245 ttgggcgaagttctagtttaattaaaatataattttttataaatttgatgcaaaaaaata + 99305 ttaggataatttaaaacttagaagttgagtgaaattacgaatatatagttagtagataat + 99365 aaaatttctatatggttatgaacccatattctatagagtatatttaataatttttttatt + 99425 tgatgcataatgataataatacaagagctaatttttcttttaaatattaaactgaagatt + 99485 tatttattaatttataattttattaaaagtagtttataataaaattggaataaaaagatt + 99545 tctatttgagagtaatgcatagaatggtttaaatgatacttttttagaattaaagttgaa + 99605 aaaaatttgatttattttatcgtaatggagttataagcatacgggtacgtgttttaaatt + 99665 atgatttaacaaataaatgaaaaatacttgtggaagcttagtgtattgagatatactagt + 99725 tgagtttcaaagggggatttaataagtaaggattccatccaa +; G-nad5-I2 ==> end +; G-nad5-E3 ==> start + 99767 ATTTTAAGGCTTTGCTATTTTTAAGCGCAGGGTCAGTGATTCATGGTTTTTCTGATGAGC + 99827 AGGATTTACGCCGTATGGGTGGATTAGGTAAGGTTTATCCTTTAACGTATTGTAGTATAT + 99887 TAATTGGATCGTTTGCTTTAATGGGTTTTCCATTTTTATCTGGTTTTTATTCTAAAGATT + 99947 TAATTTTAGAAATTACTTTTATTCAACATACTGTTGCTAGTTTTTTTGTTTATTGTTTAG +100007 GAGTGTTTTCCGCATTTTTTACTGCATTTTATTCTTTTCGTGTTATTTATTTAACTTTTA +100067 TTGTTCCAACAAATAGTACCCGGCAATTTATATTACGTATTCATGAATCTCCGCTATTAA +100127 TTATAATACCTTTATGTATTTTGAGTATGGGAAGTGTATTTAGTGGTTTTTTACTTAAAG +100187 ATATGTTTATAGGTTTAGGTTCAGTATTTCTAGGAAATTCTATTTTTAGAATGGCCGGTA +100247 GATTTGATTTAATAGAAGCAGAAATTTTACCTGTAGAAGTTAAATTGGTACCTTTAATTG +100307 TTAGTTTAGGTGGAGTTTTAGCTGTTATATGTATAAATTATGTCTATAGGCAAACTGCAT +100367 TTTACTTAAAGATTAGTAATAAGTACCTTATGAAGTATTATTCATTTTTTAATCAAAAAT +100427 GGTACATTGATGGTATATATAATGTTTATTGTATAAAGCATTTTTTTAACTTTGGGTATT +100487 TGGTGCCTTTTCAGATGCTAGATAAAGGCTTTATTGAGTTAGTTGGACCATTTGGTGTAT +100547 CTTCTAAATTTAATATAATTTCAAGAAAAATAAGTGAATTTCAAACTGGATTAATATATC +100607 ATTATACATTTGTTATTTCAGTTGGTGTACTTGTTTATATCAATATATTATCAATTTTTA +100667 ATGCAGTTTCAGTATTTATTGAATTAGAAGGTATACTGGTATATATTTTTATTTCATATA +100727 TTATACTGTTATAA +; G-nad5-E3 ==> end +; G-nad5 ==> end +100741 ATTTAGTAGTGAATG +;; G-nad6 ==> start +100756 ATGTTAGTTTTTTTT +;; G-nad6 ==> start ;; 4,70 +100771 CAATTTTTCTTTTATTTGTTTTCGAGCGTTGCTAGTATTTCAGCGGTGATGGTAATCCTA +100831 AGTACTAACGCAATCTATTCAGGTTTATTTTTGATTTGAGTTTTTTTTAACTCAGCTTTG +100891 TTGTTATTACTTTTAGATTTGGAGTATTTAGCTATAATTTTTATTATAGTTTATGTTGGT +100951 GCAGTTATGGTTCTTTTTTTA +;; G-nad6 ==> end +100972 TTGTGCGGATACGAGACATTATGGAAAAATTGTTATAAAGTGTATTATGAAAAATTGACT +101032 AAAATTTAATATTTTAAGGAAAAGCGTTAGATGTCAAATATTCTAATTAAAATCAAGATC +101092 TAAATTTATATGCAATGTACTTTTAAATTTGAATTGTAAAAGTTTTTATATTTTGTTTTG +101152 TTTGATATGTTTTAATGTTTGACTAAAGTAATGTTGGGTAAGCATGAAAAGTTTTGTGTT +101212 ATGTTAAAATTATAGGTTTAGTCTTGCATTTAATATGAAAAAATGTAGTATAGCTAAGAA +101272 CTACTTATATTGAACAGATTAGAAAAATTTAAAAGGGATTTTATTTAGGAATAAGTTTTT +101332 ATAAATGTTTAATGTTATCGTGTTGATTTGGGAAAAATTTTTTTCAAAGAAGAAGGTAAA +101392 ATCATAATTTTTGTAAAAAAGAAT +; G-orf688 ==> start +101416 ATGTTAGTTAATTACAGATACTTTAAAAAGTGAATTAAGATTTTTAGAAATGAAATTTCT +101476 TTAAATTTTTTATGAAAATTTTTAGGGTTTGTACCTCTGAATATATTAAAAACTCAGATA +101536 CAGTTTACAAATTATATCAGTTATGACTCTATTGATGCTAAAGCTGATTTAGTTATAGCA +101596 TTGAGTTGTCTTAAGAAAATTAATGGGAAGTTTAGAAAATTATTTATTCGTTTTATTATT +101656 GACCCTGAGCTACTGTGGTTAGCCTATATTAATTTAGTGATAGTTGGAGTGAAATGAATT +101716 TTTAGAAAAACGCGCAAGTTTTTACTATATAGTTTAAGTTGTAAATTTTATTATTTTGAT +101776 AACTTAAGATTTCTTTTAAGAAAATTAAATATTTATAATGAGAAATTATATTCTGATGAT +101836 AGGCTTCAAATTACATTGATACAAGAAAGCATTCGGCTATTATTTACAGTTATAATTGGA +101896 GATTACGTATATTATTTTGGAGGTAATACTTTATTTAAAGTTAAAGATGTAGAAGGTATT +101956 GGATTTGTATTTGAATATATTCGACGAAATTGTGGTTCTATGCGTTGATTTATTGAGTTT +102016 GTTTTAAAGAAAAAAAAAATTACCCTGGATATTTTAGTTTTTTTGCAACGTTTACTTAGT +102076 CTCTATGTAGATGATAGTCAATTTGTAGGTTTTTTATTTAAATTGCTTAAAAACAATATA +102136 CAAACTGTTAAACTAATTGATAGCTATCAAGTGTTAAAGATCGATTTGTTAGATTGGTTA +102196 TTATCGAAATTTTATTTTTTAACTTTAGATAATTTTGTTGAGAAATTATTTGTAAAATGC +102256 ACTAATACTAATTTTTGTATTTTGAATAGTGCACCGCAATACAATTTAATATTTAAATTT +102316 CCTTTTTTGAATGTAAAAGTTTTTCCAAAATGTAGTAATGGTTGTGTATTATCTTTAAAA +102376 TATATTCGGTATGGATCTAATTTTTTAATAGGTGTTAGTGATACTTCTAAAAATATTGTG +102436 GATTGAATTAGTAATATAATACTTAATTATATAAATTCTTTTTTGTATCTTGACCAAATT +102496 TTAGTTGTAAAAAAAGTTATAATCAATAATTCTCTAATGATTAGACTTTTTGGGATGCGT +102556 TTTGAAAAATGTCGATATAAAGATTTTGTTAAGAAAGTTAAAATGTATTCTTTGAAAAAT +102616 AAAATGAATTTAATTTTTTCTAAAATACATTATTTGCGTTATAATCTTGATATAGGGGAT +102676 AATAAATTTAGATGTGAGCAACATAATATATTTTGTTGAGAGTATAAACAAATAGCATCA +102736 TATATGTTTCCTGTAAGCATAAGAAAAAAGATTTCTTTTTTTTGTATATATGTGTATTTA +102796 CGTGATAAAATAAATGATTTTAGTGTAATATTTTGAAATATTAGTGCGTTAAATTACTTT +102856 GTAATTAATTATGTACCAAGGAAATTGCAAATTCCGTATCGTGTTTTGCTTAGACTGATT +102916 AAAAATATAACCTGCTCTAGGTATACTGGATTAATAATTAATTACTGTGTTATGTTAAGT +102976 TATTTATTATGGTTGCAAGAATATAGTAGCGGCGTCTTATCAAGAAATTTAATGCTATAT +103036 TATTATCCTAATTTTGAAAATCAGTTTATTGTATCTAAAAAGTTTACTGTTCGGTTACTT +103096 GTAGATACTGCTTTAGTATCGCGTTGGTTATATAGTGTTGGTATTATTAATAAATTTGGT +103156 TGCCCGCTAGTTAAACGTAAATTGATTTTGTTAGAAGATTTTATCATTGTATTGTATTAT +103216 CGGAAGTTAGCTTTTAAACTAATAAGATATTATTTATATGCTAATGATTGAGTTAAATTA +103276 TATAGTATTTTATTTAAGTTAAAAATTTCGTTGATGAAGACTTTAGGGGTTAAATATAAA +103336 TTGAATATGAATGTAATTAAGCAAATTTATGGAGATTCGATCTATTGTTCATCTTTAGAT +103396 GGGAAGTTTATATCTTATTTTTTTAAAACAGATTTATATTTATATAAGCGCAAATTTTTG +103456 ATAAATTTTTTCAGATGAAAACAGTAG +; G-orf688 ==> end +103483 AATATAATGTATAAAATGGTAGTTTAAGAGAGTTAGAGAGAGAGTTAAATTTTTTGTTAG +103543 TAATTTTCTGAGGAAGTAATATATTG +;; mfannot: /group=II +103569 gagctgt +; G-orf132 ==> start +103576 atgataaaaaattatcatgtacagttttggatgggag +;; mfannot: +103613 TTAATTGCTTACCTAAAATC +;; G-nad6 ==> start ;; 72,199 +103633 ATTGTAATGATGTTAGACGTTAAATATCAATCTATTAATCTTGAAATGGGTTATTATCAT +103693 ATTATTGGAGGAATTGTGTTATTATGTTTAATGGTAAAATTTGTAAATATTTTAGTAAAT +103753 GAATTAATTTTCGAACATGGTTATTTGATGGGGATAAGTGTAGATTATCTAAATTGGTTT +103813 GATTTAATTGTAGAAGTTGTAAATATTCGTAATATTGGGTTGCATTTGTATAATTATTTT +103873 TTTATTCCTTTTATAAGTGCTGGGTTAATTCTTTTAGTAGCTATGATTGGGGCTATAAGT +103933 TTAGTTTTGCCTTCTGAGACCTCGAAC +;; G-nad6 ==> end +103960 TTGAAAAGTTATTAG +;; G-nad6 ==> end +; G-orf132 ==> end +103975 TTTTAATTATTAAATAACATAGAAATTGGGAGATTATTATCTTTATTTGTAGAGAGTACT +104035 GGTACTTATAGTATTTTAAAC +; G-trnR(ucu) ==> start +104056 GCATCTTTAGCTTAATTGGAAAAGCATTGATTT!TCT!AAATCAATAAATATAGGTTCGA +104114 GTCCTATAAGATGTA +; G-trnR(ucu) ==> end +104129 GTGCAATTTAATTTCAGAATGTAT +; G-nad3 <== end +104153 TTATCATTCTAATGCACCGCGCCCTCATTCGTAGTAAAAACCAATAGTTAATAAGAATAA +104213 AAATAAGATCAT +; G-nad3 <== start +104225 ATGATAGAATACAGAATAAGAGTTTAAAGTAAGTGCCCATGGAAATAGAAATATGATTTC +104285 TAGATCAAATATTATGAATAAGATAGCTATGAGATAAAATTGTACAGAAAATGTATGCCT +104345 TGCATCTCCAAAAGAGTG +;; mfannot: G-nad3 <== start Def by similarity +104363 GATAGGTTTTATAAATTTATAATTCTATTT +;; mfannot: +104393 accttcctagaaacttaacaagttatttttaaacattaagctt +;; mfannot: /group=II(derived) +104436 TGCATAGAGAAATTTCAAATTGAGGTGTAGAGATTTTAAAATATTAAGGTAGATTTTAAT +104496 TTTTAGTAAATTTTTGAAATTTAGTATGTTTTTATTTATTTTAATATAAACAATATTTTG +104556 TGTACGTTAAAAGTATAAAAAATCCATGAATTCATATAACCACTCATATGAATTTGCGAT +104616 TCTATCTTCTTAGAAAAAGATGATTTAAATTTTTATTTTTACTTTTAAAAAAATTAATTT +104676 ATAGTTTTGTTAATTATTGGTGTTATTTATTTGACTAAAATAAATAAATAAAAATATTGT +104736 TTTATTACATATTATATTTTGGTGTATTAGATACATGTTGTATATTTTAGAGGTTATTGT +104796 AGAAATTGATGATTAGTTTTTTTTAAATTATGCTATAAAAAGATAGAAAACTGCGACACG +104856 GTCAAAACCACATTCGTATGCTGAGTATTTGTCGAAATTACTTTTACGTTCACCAGCTTG +104916 AATAGTTAAAAATATAAGAAGTATAGTTATTAATGAATTTATAATTATAAATAATAAAAG +104976 TGAGTAATATTCAATAAAATTTGTAGGAATTAAAAAATAAGACATGATTTTAAC +; G-atp6 <== end +; G-atp6-E2 <== end +105030 TTAATGCGATAAATTGATTGCGTCGTTTAAATATAAGCATATTAGTATTGTAAACACGTA +105090 AGCTTGTAAAAGTGCTATTCCTAATTCTAGGACAGTTACAGCAATTATTATTAATAGTGG +105150 GAACATAGCTAAAATATATCATAATCCTCCAAAATTTATCATAGATCATGTAAAGCCAGC +105210 TATAATTTTTAACAAGGTATGGCCTGACATTATATTGGCAAAAAGTCGAATTGAAAGACT +105270 AAATACTCTGGTGATGTAGGATATTAATTCAATTGGAACAAGAAGGGGTATAAGTAATGC +105330 ACTGATACCATTTGGTAGAAAGAATCCAAAAAACTGGAATTTATGTCGTGAAAAAGCTAT +105390 TAAATTTATTCCAATAAAAAATGTAAGTGCTAAACTAAACGTTACAGAGATGTGGCTTGT +105450 AATAGTGAAAG +; G-atp6-E2 <== start +; G-atp6-I1 <== end +105461 agtaagaatttttttatcttctcgcagaactgtacgtgagtattattactcatacagctc +105521 tttttagattttatataattatcttataacagtaacgtgagaatactaagttcaatgttt +105581 ttgaaaaattaactttttaatttttgttaagcttttgcttaatagagagtacttctttat +105641 tattatttgtgtttatttttatcttgaaatatttga +; G-atp6-I1-orf499 <== end +105677 ttatcttttgcatttaaaagctaatgtacaatataatgatttttttagatgataatcaat +105737 aagtttttgaatttcttgtatgttatctgtatatttatagtaaaccgataagtttgatgc +105797 ttgtaacgcatatcatcatattattttactaattggtccatatgatatgactatacaatt +105857 ttgtggttgtccatttgttgaaagtatacctttatttttccaattttgttttattttttt +105917 aataggcgcatataattttaaatagctttgttgtttttgtatggctttggttattgaatt +105977 ttcatagatttttgatagtcaatttttttttattaaaatgcttttatatgttttaatttg +106037 ttcttctaaaatatgtgttgtagctaagatttttttgggaagtattttgttgatcgctat +106097 tagcgagtttaatattgttttggagaaaattggttttaatgaattgagattaagggtttt +106157 aattagtgcagttaggtactcttgtgtatgcagaaaattgagattttttgaatttttaga +106217 tatagatttatataaactaaatttcaaatttttcttggttttttttaaattttgatgctc +106277 cgtattattttttattcactttcaatattttgttaatcttgctatatattctgttggatt +106337 attgtttatatgatttttttttttatgtatgttaactccaagaaaattgacataatgttt +106397 gtttgcttgggagcatattgggttgattatcgaaattaagggtaatttattttttgaaaa +106457 tatttttattttattatatataaattttactaagtttaatgatccataaaatccgagtag +106517 taattcgttgttatatctatgaaattgtattttaaaagcgctatgtatattatagcgatt +106577 tatatttgataaaaattggtctaaagtaagtaagtatgtattactaagaattgaaaaaag +106637 attgcttactttgaaaactgaattgctgattgtatctgcgtattctttgattaagatatt +106697 tataaattgtttatccatgattattttttttagcggtttaaaaagttttataaaatttat +106757 gctagtaatatttactgttatatttaactttaaaaatcattttatattgtttcatgagtt +106817 ttttatattgaaaagtatatcatgtggtccaaaatttgtttgtattccaaatgagttttt +106877 gtggaattttggttctaaaatagctaataaaattatttgtaaagctttatgtttcttaaa +106937 aagaaatggtggagtatttttttgtcacatttctatgaggattatcaatctaatgaaaat +106997 tttatttaattttttgtattttccttttttatagagcttagttattcatttatttacaat +107057 tatgttaatagtttttgttttagtattgaaattgtaatgaattattttttttggacaaaa +107117 tttaattaattttattatctggttcaaattggggtatatatattttataagatgtttcat +; G-atp6-I1-orf499 <== start +107177 ttttgtttctaaagttttctacttatatattttataattgtgtagaatctcaatgcaacc +107237 tttcgatttttttgaaaaatctatagaaaggcgctatagtagtttctcatagtttatcat +107297 aaaatagtttgtattttttaaaaaaggttatgattttatcataaaataaattagaatttt +107357 atagtattattagatttttttaaaaaaattgctgtgtcaaaaatgcttctgtttttctag +107417 caattgtaattatcgatttatagttgtgttagaattaactttgtaaggtgaataaaatgt +107477 tatttaattatgcagagtttatggtaggtttgtttaatcaaccttttagatattctaaac +107537 ctgtttctttaatatctcttgtatttaagatagtttggttagtaataacgttaacatgtt +107597 aacaggcagtagccattataatttgtgagaatcatactccgaataagc +; G-atp6-I1 <== start /group=II ;; mfannot: splice boundaries uncertain +; G-atp6-E1 <== end +107645 TATAGGGTATCATCCCTAATAGGTTAGTTAATGCTATAGAAGAGAATAGAGAAAAGATTA +107705 AAGGAAAATATTGTAGGCCTGCTTGTCCTATGTTTTTTTCAATAAGATTTCGGTTAAAAA +107765 TTAATAATTCTTCGAGAATGGATTGTCAATAAGATGGAATAATTTTATTATTGTAGGTAA +107825 TAATGTGAAAGGTTAGGAGTATACTTGCAAAAGTGATTATTGCAAATATAGTAGAATTTG +107885 TAATAGTTAATTGTTGGTTAAAAATCTTAAGATTTGGAAGTAATGCAGTTATTTCGAATT +107945 GTTCTAAGGGTGAATGGTGTAGCAT +; G-atp6-E1 <== start +; G-atp6 <== start +107970 AATATTTATATTTTTTAAGAGGTTGTTGGTGATACTTAAAGTAATTTTATGATGTATACG +108030 TTATATAGTGAATTAAATATATTTTTTTC +; G-rps10 <== end +108059 CTAAATTTTTGTTAAGATTTTTTGTTTAAATTGTATAGTAAGTGAATGCGGTAGATTTTT +108119 TGAAGAAAAATTTAATATTTGCATTAGTTTTTGCATGTTATATGATGATATATTAGATAT +108179 GTATAGTGTGTATTTATAGGTTCGTATTTCTAATTGGGTACGTGCTGTTTTATGGACATG +108239 TGGTGATTTAAGTATAGTAAATTTTTTGATATATAAAGGTAAATAGGTTTTTGTTATTTG +108299 TAAATTTAAAATATTATTTTTTTTTAAAAGAAAAGCAAGTAAAGAAAAAAAATGTTTTAT +108359 TGTGTTTGTATTTAAGCTGTTAGCAATAAATTGAATTGTGGTTTTAAATTTCAT +; G-rps10 <== start +108413 TAGTATTA +; G-nad2 <== end +108421 TTACAGTAAAATACTTAATTCGTGAGTTGGAAGTAATAAAATGTTTGTTGTTGTCAGAAA +108481 TAAACTGATTAATAGTGATCCAGAAAATATTATTAATATTGCAATAGTACTATCTAAAGT +108541 ATATTTTTTATAATTTAAATTTATAAATTTTTCGAAATTAATTATTTTGATTAATCGTAT +108601 ATAATAATAAGTACTAGTTGTACTTGTTAATATACCTAATGCAACTAGAATATAAGAATG +108661 TAAATCAATTAAGGAAAGAAAAATTTGAAACTTGATAAAGAATCCTCAAAGGGGTGGGAT +108721 TCCAGCAATTGAAAATAGTAGTAGAATAAATGTGAATTTATACAATGGATGAATTGTGTT +108781 TGGATTCAATAAGTCTGTTAAGTAGATTAAATTTTTATTTGTGTTTTTTTTAATAAGTAT +108841 AAGAAGCCCAAAAAAACAGAATATTGTAGTTACATAGATTAAAAGATAAAGAAAAAAAGA +108901 ATGCAAACCGAGCATAGTTCCAGTTGAAAGTCCCATTAACATATAACCTATATGGCTTAT +108961 AGAACTATAGGCTAAGAAGCGTTTTAATTTTTTTTGATATAATGTTGCGAAACTTGCAAA +109021 AATTATGGTTAAAATGGAAGATAATACAAATATTGGGTGTCATAGATTATGGAATTGTAA +109081 AAATACTGAGAATATGAGTCTGATAAAAATGCTAAAGATAGCTATTTTTGGAATTGTCGA +109141 GAAAAAAATTGTTATAGATAATGGTGCGCCTTCGTAAACGTCTGGACTTCAAATATGGAA +109201 AGGTACCGCAGTTAATTTAAGCAAAAAACTACAAAGCAGAAGAATGAATCCTAATTTTAA +109261 AAGAATTGGGGTGTTTTGAATAATAATTGTTAACTGATATAAATTGCTAAAATTAGTTGA +109321 ACCTGTAAGACCATATATTAAAGAAATCCCAAAAAGCAGAAAACTAGATGAAAGGGCGCC +109381 TACTATAAAATATTTTAGACCTCCTTCTAAGGAAAATCTAGAAGTTTTTTTAGAAGCTGT +109441 TAATATATAAAAACAGAGGCTTTGTAATTCTAAACTTAGGTAAAGAATCACGAAATCATT +109501 AGCAGAAGTTAATATAAGCATTGCGCTAAGGGAAAGCATCTTTAAGATGATTGATTCAAA +109561 GTCAGTTGGGAAATTTTGTTTTTCGGAATATTTGATTAAGCTTAAGAAAAAAATTGTGAA +109621 TAAAATTATTAACAATTTTATGTTAGTTGTATAATTATTTATAACTAAATTTTCATAACA +109681 AATTGTTTTTGTTATATTTAGGTTATTAAGCATTAGAATAAATCCTAGTATTGTTGTAGT +109741 TATTACTAAAGTAATAAGATTTTTTAGTATAGATTCAGCATTTATTTTATGCATAGTAAT +109801 TTGAAATGTGCTTCAGATTAGAAGAAAAATAGTTATGCTTCCGATAAAAATTTCTGGTAA +109861 AAGAAAATATAGATCTGTATTGAGTTGAGTCAT +; G-nad2 <== start +109894 ATAAGAAAGTTTAATTTATTTAGATTTTGGGTAGATAGTTATTTAATGGGGTATTTATAA +109954 TAAATGGAGGTGGTAAAGTATTGTAATGGTAAATACATATAAATTTA +; G-nad7 ==> start +; G-nad7-E1 ==> start +110001 ATGGAAAAACGATTAATTAAAAGTTTTACAATGAACTTTGGGCCACAGCATCCAGCTGCG +110061 CAT +; G-nad7-E1 ==> end +; G-nad7-I1 ==> start /group=II(derived) ;; mfannot: splice boundaries uncertain +110064 ttacggtagtaaggttggttaattttattgtttatttttgttagcattgtgtaatgaatt +110124 tttttaagataatgttttttaaaaaattttatatgagaatcaatttataatatatataca +110184 tgcattctataactttaatttttgattaatttttaatctgatgggtatgtttaagaaaaa +110244 ttttatatgtttttagaaattagagattaatgcgtgttttaattattattagtaaatata +110304 atacctagggaaatctgtgatattttattcgataaagaagaaattttaagtaatctatac +110364 ggaaatttttcagtttttaatattgttgaagaaaattatttagatattaagtttttacga +110424 cgtagttagcttgttattatataaattttttgatctcttgcagaaaatttgaaaaagtag +110484 atgattgaaaatgttttaattttttgaagtaaaatttagattaacaagataattcaattt +110544 agcttagagaatggcaattattaaatcggtattaatttaaagatatttttttattttttc +110604 gattttaaaatttttctctttaggttgagccgtatattcatggaaattatatttacggtt +110664 ctttgaaaagggatttctctctatttcagt +; G-nad7-I1 ==> end +; G-nad7-E2 ==> start +110694 GGAGTGTTGCGATTAGTTTTAGAATTAGATGGTGAGATTGTAAAGCGAGCTGACCCGCAT +110754 ATTGGATTATTACACCGGGGTACTGAAAAATTAATAGAGCATAAGCTGTATATACAAGCA +110814 TTGCCATACTTTGATAGATTGGAT +; G-nad7-E2 ==> end +; G-nad7-I2 ==> start /group=II(derived) +110838 gtataagggctttaactaaataatataattgtattgagtcaggatttatagttaaattta +110898 ttttcgttttttttatatagtataaaaattttatcttaaatgcaacgcactaaatattta +110958 atttttgcttgtataaagaaccttggtatgattaaataattttataaacaattaagttgg +111018 ctaatatgttatattttttacattgcagattaaattagtataataatttttatgtaataa +111078 gtattttataggatctatatgcattaatcaagttaacttactaataatttttgaaaatga +111138 tatgagtccagtattaaatgaaattatggttaaattataaaataggtatagtattcttgt +111198 ttataagtggaaagttaatatattaacaagttaaagtttatttataaccttaattggttt +111258 tatgtaaaggatttttgcagtttatagtgtggtatgtaaaaagatgtgatttactttatt +111318 aagtaaataagtttacttgttgtaatataaataatatatggtgaaaactagtaaatttaa +111378 taattatcaaagagccaagtattttgtaaaaaatttgtttggttcggaatgggctaaaaa +111438 attatgctatacatctaattttgatatataggaaattcaaacagctaccattac +; G-nad7-I2 ==> end +; G-nad7-E3 ==> start +111492 TATGTTTCTATGATGGCACAAGAACATGCATTTTCATTAGCTATTGAAAAATTGTTAGGT +111552 TGTATGATACCACGCCGTGCCCAGTATATTCGTGTTATTTTTTTAGAAATTACAAGAATT +111612 TTAAAT +; G-nad7-E3 ==> end +; G-nad7-I3 ==> start /group=II +111618 gagtaggaagctgttagattagtattttattggctagttattgtttaagtaattaggctt +111678 tttaatgtatttaaacttaagcctaaactatcgtaactttgtatttcttttgaaagagaa +111738 atttaagtatagtactcctaattagatagtattttgttccaaaacaaataaaaggaaaga +111798 ataacttttaagttaatatgtttttattttttgacatattttttattgtgggttgggcgg +111858 acagtaaaatttaattaattcatgttatatttgtaagtaaacttaaaataggtataggtt +111918 taatattgaaaagaaaagtttaagttttgattttattataaatgaaagaggtatttggta +111978 caatttaataaaatacagtaaatatacaatagtgtttttattaccatttttgttagaatt +112038 tagattaaaaatatataaaatcgttttacttaatagtggtataaattcagaaattttcac +112098 aaatctttattatatggggatagcgaaattagtgaacaattttttct +; G-nad7-I3-orf505 ==> start +112145 atgtccaaaaatagtttcttgagattgcgtttaaggcatagagagttagttactgattgt +112205 aattttttttgtcaattatttttggaagcacggcaattgcttagtagtgatttttttcct +112265 acagaaaagtatagttttagattaaaattaattagagaagtttttaagttgcaaaaaaga +112325 attgctcagttgggaaatataggaaatacgaatggagcattatttttaataaataaatat +112385 gtatctcatttatgtgtacgacttttcgtcataggcgcgctaaaaggtagcataagtgtt +112445 aattttttatttcattttaaaattttagaagtatttgattgcttttacatattaaaatat +112505 ggttggtttttaattggacttaaatcattatataatgtgaaaaaaatttattttaaaaaa +112565 gggaatgatagcgtatatagcgttttacttagctctgtttttgacaaaattgcacagcga +112625 caaattttgattttattagacccattagttaatgcaatttcaaaatttaatcgatatggt +112685 ttaagtcgtgagcggttttatagacagttggtaaatcactcggattttttttttttaaat +112745 aaaaattttataaaattgagattattaaaatttgaagttagtaattgatttagtaaaata +112805 tcacatgtatatttgtataattatttaccttggccgcgtggatataaatatttactagag +112865 cggtgattgaacccaagcttggcggtaaagataagaaaaaataattgtagtaagatttta +112925 acacaaggtataatgcaggatttgatacttggtcctattatatttaattttattttaaat +112985 agtttttttaaatttttattgtttaaattgaattatagaacaatttttgtgaaacattta +113045 cgtgtgtttattataggaagtattattggggttattactgtttctaattcagttttgagc +113105 cgtttttattcaaatattattaattatttaaattttagaaaaattgtaaattatgatttt +113165 ttgaagatgtgttatgttgatttttttcatgtaagaaaatttaattttttaggttgacag +113225 gcgttttttactcgtagagtttgaataagcgtagcattgagcaaaaattatttgggtttt +113285 agatatcctttgaagagaagtgttactggtttacttgaatggcgaccttgtttttatcat +113345 cgtttgggatttaagaaggcaattaagtgggaaatttttaaatctccttataatatacga +113405 attattatatttgttaaagtatatttaattatgcggaattttgtttggtattatttatat +113465 atagataattttattatatactttatattgttgtgttgttttgtatctaggtgcttgagg +113525 agaaatttaaaatataagatgtattgtggtaagagacgattattttctaatttgatttga +113585 aaagtgtttttcggattagatatggtctttttttataaaatttgaggatactgggtgaga +113645 atatttttaaaatattaa +; G-nad7-I3-orf505 ==> end +113663 tttggttaataaataagatttttagttaagattagtattagaattttaacatttagtttt +113723 tgatttttattttaaattgtatgtattttaaaaaatttaaaaatacaaattaaaagaaga +113783 tattaataaaattaaggggaaataatatatttaagctttagttattaagttaactttggt +113843 ttagatttaaggcgctatataaaggttttattgtttaaaattgttatatttatatatttt +113903 tagagatacatattttgaaaaattcggttcatgatgagcctaatacggggcaactcgttt +113963 gtttggttctgagaagaggaaatttagtacttacttctat +; G-nad7-I3 ==> end +; G-nad7-E4 ==> start +114003 CATTTAATGGCATTAACTACTCACGCAATGGATGTGGGGGCGGTAACTCCTTTTTTATGA +114063 GGATTTG +; G-nad7-E4 ==> end +; G-nad7-I4 ==> start /group=II(derived) +114070 gtgtaatttgttttttctatttatataatagttttaatttagcaaaaaatatttaaaaaa +114130 ttgattttaggattttgtgaatgcagagattagtacgaattttctaatatttatggctta +114190 tgatacaaatatgtatcgaaattcaaattatttttttgtggttgttatactataaaatat +114250 agtatttaattttacacaggctgttaaaattaataatgaatgtgttcacttagattaaat +114310 tagtttatgattagggcataaaaaattacttaaaaattttaaattagcggtctaagctaa +114370 cgtgattaagtatagaaatttgtgaattaaaaattactattaataaggtatttaggtacg +114430 aatagcgtgtttttttaattagattaggtattataatgtaatattga +; G-nad7-I4-orf511 ==> start +114477 atggagttaatatttcaattatatgaagtaaaatttgaaattaataaaattaataaaata +114537 ataggtaattattttagatatttacgatgacctattggattaggtgtaggttgtttgatt +114597 agaaagatagccatttttattcaatatttgattcgtgtgggttttattgtaaatgatgta +114657 ttttgtgttaaattgcagagagaatttttttgctcgataatcaatcgacttcttgttgta +114717 gattacatatcgcattttgtttacagagcattgaagaaaatttttcaatttttaatttga +114777 gagtgaagatttgaaataattaataaatttaagcaaaataatttatataactatttaaat +114837 aggaacatttcttcaattttgttttatgaagaggcagcacaagttcttattttaaatact +114897 acagtatcttgcctagaggtatttactgtatttggattattcattttccaacatattcga +114957 agagtttgtgtaacaatgaattatttaggtcgttttttggttcctaagctgaacactgtt +115017 aactactcaattattaaattaaaaattaagtgtattctgaagacatttttttgtaaacag +115077 ctaaaagggcctgctttaatacttattaaatatttcaaatttattccaaatttatggaag +115137 agccaaatattttttaaacagtgagagtgttacaattgagtgtctgcattcagtttatca +115197 agtatgtggaatcagtttttatttgatttggtgttagcagatttcgaatttgtaattaaa +115257 gaaagaatttttaatttttattatagaaaattttttgggagctatcagaattttaaaagc +115317 aaatttcaatgcggagtaggtttattttttgttaaatgtgtagatgaaatattgatatgt +115377 tgtgaaaattatgaagagaaagattggataattggggtattatttgaaattttagtagat +115437 aaacagttaattatagattttttaagttctaaaattttactaggtcagcgcaatactaat +115497 tttctttatttaggttttgagattagaaatcatgacgtaagaagtagaaataagtacatt +115557 agactatgttgtgtaaaattttgaggtgatttagtgattcttccatgccaacgttcggta +115617 ttgggattgaaatcagagttaagaggggtgttatctaacgttaacgcctcggtttcttct +115677 ataatttaccgcttgaaccgtattgtttatcaatgaggtatgtattattcatttagtatt +115737 tcaagtgttttatgtctcttattggacagttttattcattttagggtttggagattttta +115797 aaacagaaattttctaaaataggtaaaacatatttagcagagcgatttttttttaccggg +115857 aatctgaaatatcaaacaaattttaagaaatggcattttcatgatgttttatctgaatca +115917 acgcagaatttattgtttaataataaaatttggtttatctgattagtgtctttaaggcaa +115977 ttttgttctataaaaagattttactatattcaataa +; G-nad7-I4-orf511 ==> end +116013 atattagagttatttgttggaataaaatttttctattgattttacatattgtaatatgta +116073 aaaaaagatataatacttaatttgtagcagcaacgcgcataagctgaatactataagaat +116133 agtttgttcagttttatagggaaaagtttttgcaacaacgatttatcctaat +; G-nad7-I4 ==> end +; G-nad7-E5 ==> start +116185 AAGAGCGGGAAAAGTTATTAGAATTTTATGAGCGTGTTTCGGGAGCACGGATGCATGCTA +116245 ATTATATACGGCCTGGTGGTGTAAATAGGGATTTACCATTAGGATTTTTAGAAGATTTAT +116305 ATACATTTATTGTACAGTTTGGTTCACGAATTGATGAAATTGAAGAATTGTTAACGTATA +116365 ATCGTATTTGAAAGCAGCGATTAGTTGATATTGGTATTGTATCTAAAGAATTGGCTTTAG +116425 ATTGAGGATTTACTGGGGTTTTATTACGAGGATCTGGTGTAGTTTGGGATTTAAGAAAAA +116485 CGCAACCTTATGAAATTTATAATGAATTATTTTTTGATATTCCAGTTGGTAAAAATGGTG +116545 ATTGTTATGATGT +; G-nad7-E5 ==> end +; G-nad7-I5 ==> start ;; mfannot: no intron type identified +116558 gtggtgtaagaaacgtattatattagagtaaataggttaattaatgtttaaagtgtctgt +116618 aaaatgtttagcaactataatattaaaatattagtgttataaacaatcaattcgtaagat +116678 tgaaattgatattttttgatttaaaatatatataataaaaaattattaaattgatcatat +116738 ttaataaatgtattgtattactgcattagtttattaataagaaatttattaaagtgttaa +116798 ataaatttaattagataagtagtttagtgtaatcgttatggcatacatagtttacaaaat +116858 ttttattattacgttatttttgtaaaagaaaagagaattaattgattattcaaagtattt +116918 agggagatttatattaaagaccttttgattgtaaataggattttgtcttaagattaattt +116978 agttaaaaaaattatcctagtcgattgtagaatattttaatattaatattaaataagatt +117038 aattttggtagtataaattgggtttttatttattttttttacgtaatttgtatttctagt +117098 aaatactaagaataaaatggttagttgtatttatttttaattattaaggataatttgcca +117158 ttagttagaatattttgctaatagtttgttacgtagtttacaaattgtaaatgccttgta +117218 aatttattgatagtttagcttaatttgaacgcttttaaaaattttgctgagcacagttat +117278 tatattatattattttcgtaaagcttaatatattgggaaatatacgttaagtttgaattt +117338 gaaatcaatttaaagattttaaaataccg +; G-nad7-I5 ==> end +; G-nad7-E6 ==> start +117367 TTATCTAGTTCGTATTGGTGAAATGCGTCAAAGTTTAAACATATTAAATCAATGTATTAA +117427 TGAAATTCCGACTGGTTCAGTTAAATCAGATGATAAAAAATTGATGTCTCCAACAAGAAG +117487 TGAAATAAAACAATCAATGGAAGCTTTGATACATCATTTTAAATTATATAGTAGAGGGTT +117547 TGATGTTCCGCAGGGTGAAACATATGTTGGGGTTGAAGCGCCTAAGGGTGAATTT +; G-nad7-E6 ==> end +; G-nad7-I6 ==> start /group=II(derived) ;; mfannot: splice boundaries uncertain +117602 ttaagttaatatataattttacatatatttttgcattactatgatttagttaataatata +117662 ttattataggtttttatttttagtagcttattttccaattaagaataagtaaaaatcaag +117722 ttattgaacaatattaaatttgaggttatagtttatagtgtatttttatttaggcaatat +117782 atattgttgttaataagaaaaaagtttttacaaaattttgtaaataatgtataggtcaaa +117842 gtgatctaatttttgttcgagaaaaaattatatatctatttttttaattaaattcgtgga +117902 gtttacgtagtttaaaaagttgttgtatatttattgggcaaaaagtacatattaaatagt +117962 tagctatataaataaaatgtaaattttatttaaaagcaaaacgtatatatgtaaaaaatt +118022 atgtgatcttattagtataataatagaatattggaaattaaaggattttgttaaaaattt +118082 tccagttataagaaataacttaaaatgtaagttagattttaaatttaattaaaattttta +118142 ttaattattttagatgagaagaatggttaaaaaagttagataaacattattgtttcattt +118202 ctaattgtagttaaacaattataattatatttttttaattttaatttagttgttaaatta +118262 tgtataataagaaatggaattaagctgtatgtattgtgaattacatgtacagttttataa +118322 agggttttctactttttagtatagaaattctattttacgt +; G-nad7-I6 ==> end +; G-nad7-E7 ==> start +118362 GGAGTTTATTTAGTAGCTGATGGTTCAAATAAACCTTATAGATGCAAGATAAAAGCGCCA +118422 GGATTTGCGCATCTTCAAGGGTTAAATTTTATGGCTAAAGGACATATGATTGCGGACGTT +118482 GTTACTATTATTGGTACACAAGATATAGTTTTTTTATGATTTAAGTTTAGCGTTAATTTA +118542 TTTTATTTTTATTAA +; G-nad7-E7 ==> end +; G-nad7 ==> end +118557 AAAAATATTTAAAATTTTAATGAAAATATAATTGTTTAATATAGTGCATTGGAAGTATAT +118617 TTAAGTAAAATTTCTGAAAAAATTTATATTTAATCGTAGATGTTTTCAAAATTTATTATA +118677 GGATTTTAAGAAACAAATTTTATATTAATTTATTTTGTATGTAATAAAGTAAGAAGGTAC +118737 TAGTGTAAAATGCTGAATCGTAATGTGGGTAGGTATGGTATAGACTGTTTAACGTAAAAA +118797 TGTAAATTTTTTAAAAAAATTTTCTACCCATAAATTCTTATGATATAGAAATATTTTTAG +118857 AGTTTTTGTGTAATATGTAGAAAATATATAATTAAAATAGCAATAAAAAATGAAATGGAG +118917 TTTATTTCTATATTGTAATAGGCTACATTTTTTAAGTTTATGAATCGTACAGTAGATTAG +118977 CACTAAAAAAATTAGTTTTTTAAATTTACTATTAAATTAGGTAATGGTTATGATGAATTG +119037 GCTAAGATATTATATTAAAATAAATATTGATCAAAAGCTAGTTAAAGTAACCATTTAATA +119097 TTTTTTTGTTTATTTTTAGAATTTACTGCATCTATATGTATGTATTT +;; mfannot: /group=II +119144 aagctgtatactaatctgattggtatgtgcagttttttaggagga +;; mfannot: +119189 TTTAGAAGATTCTATCTTTTGTGGTGAAGTAGATAGGTAGGTTTTGAAAAAATTTATGTT +119249 GTAGTATTAATATATTAGTTTATACAAATTTCAGTTATTTTTTGGATTGTTATTAGTTAT +; G-nad4 ==> start +; G-nad4-E1 ==> start +119309 ATGATTATTTTACCGATTTTAGTTTTGATTTGTGGAATTGTATGTATTAGTTTAATTTCT +119369 TCAGTGAGGTATATATATATTAAAAAGTTAGCTTTGTTTATTACAATTGCTGTGTTTTAT +119429 TTATCGCTATTGTTTTGAATATTTTATGTTAAGCAAAGTTTATTTTTTCAATTCATGTTT +119489 TATAGAGAATGGTTAGTGTTCATGAATATTGATATTATATTTGGTTTAGATGGTATATCA +119549 ATATTTTTTATTATTTTAACAACTTTTTTATTTCCTATATGTGTATTGTCAAGTTGAAAA +119609 ATAATTTTAGTAAATGTAAAGGAATTTTTTCTTTTACTTTTATTTTTAGAAAGTTTTTTA +119669 TTATTTATTTTTTCTACATTAGATTTAATATTATTTTATATTTTCTTCGAGAGTGTGCTG +119729 ATTCCTATG +; G-nad4-E1 ==> end +; G-nad4-I1 ==> start /group=II(derived) ;; mfannot: splice boundaries uncertain +119738 gtggtattataactttcttttctgaatatatttagaaaaaaataaatttcttattgatat +119798 tgttttttagctaatttgattagataaaatttaagtgattttgaagaatgcatttaagat +119858 ttttattaattactaaagcaataatttgtaataattgtaagtaatatttttataaaatac +119918 ttaagcaaaatttctgattagaagttgatataggattttaatgagagtaaatttaaagaa +119978 ttttcaatatagaaatattagaagggtgacttataaattactattaatttcaataatttt +120038 tagttgttggaaaagtcattgtttaataatgaatttataaaaatttaaattgattgggaa +120098 ttgtgtgggaattaatattaaaggaaaaaaattaaagtttttattagagctatataatag +120158 gaaactattttgtatggtttagaaacagaatttcttgtaataaactttattatttttaag +120218 tagtttagtgtaaaattttaattctagtttgt +; G-nad4-I1 ==> end +; G-nad4-E2 ==> start +120250 TTTTTAATTATAGGAATTTGAGGTTCGCGTGAGTGTAAAATTAAAGCTTCTTATTACTTT +120310 TTTATGTATACATTACTTGGATCATTGGTTGCTCTTATTGGTATATTAATAATTTTTTTT +120370 GAAACAGGCACTACGAATTTTTTTATTTTGTTAACTCATAAATTCAGCTTTGAACGGCAA +120430 TTGTTACTATGAATTATGTTGTTTATTTCATTTGCAGTTAAATTTCCAATAGTTCCTTTT +120490 CATATTTGGTTGCCAGAAGCTCATGTGGAAGCGCCTACGGTGGGATCTATTATTTTAGCG +120550 GGGGTTTTATTAAAATTAGGTATTTATGGTATGCTACGTTTTTCAATTTCTTTATTCCCT +120610 CAAGCCAGTAGTTATTTTACACCTTTTGTATATACAATTTGTATTATTTCCATCCTTTAT +120670 AGTTCGTTAACAACAATTCGTCAAGTGGATTTAAAACGTATAATAGCGTATTCTTCAGTT +120730 TCTCATATGAATTTTGGTTTGTTAGGTTTATTTTCTGGTACTTTACATGGTATTATTGGT +120790 GGTTTAGTTTTATCTATAAGTCACGGTTTTGTGACAAGTGGGTTATTTATTTGCATTGGT +120850 GTATTATATGATCGTTATCATACTCGTCTGCTAAAGTATTATAGCGGTATTGTGTTAGTA +120910 ATGCCTGTTTTTTCTGTTTTATTTTTATTTTTTTCGTTAAGTAATTTAGGTATGCCGGGT +120970 ACAAGTAGTTTTGTAGGTGAATTACTTATTTTGATAGGTACATTTAGCCAAAATAGTATT +121030 TCAGCTATTTTTGGATCGAGTGGTATTTTGCTTGGTACTTTATATTCAATTTGGTTATAT +121090 AATAGAGTGTGCTTTGGTAATTTGAAAATACAGGATAATGTATTAGTATATCTAGATATA +121150 TCAAAACGTGAATGTTTTTGTATTTTTCCATTAGTAGGTTTAGTGTTATTGTTAGGTTTA +121210 AATTCTAATTTATTTTTAGATTACTTACAGAGTGCAGGTTATATGTTACTTTTTGAATAG +; G-nad4-E2 ==> end +; G-nad4 ==> end +121270 TTTATTTTTTACTAGCAGTAAAAAAATTATATTTTTAATTATTATTACATTTATTAAAAT +121330 AAAAGTTATATGTTTAATATTAGAAAAATTTCGTTTTACGTAGTTTTTTATATCAGTTTA +121390 TGATAAAAATAATTTTGTCATAATAATACTTTATATTTTAGACTTGACGTTTTTTTTGTG +121450 TTTCTACATGTAATTTACATGTAAATTAAAGTGTGGTATTTTTTATAAAAAAGATGTATT +121510 TTTATATAAAATAGTCTTTAAAGTTGTTTATAAGTGTTATG +; G-atp9 ==> start ;; mfannot: alternative ATG start pos 121548 +121551 ATGATTTTAGAAAGTGCAAAAGTTATTGGTGCTGGGTTAGCAACGATTGGATTAGCTGGT +121611 GTAGGTTTGGGTATTGGGACAGTATTTGCGGCATTAATTACAGGAGTAGCTCGTAATCCA +121671 TCTTTAGTAAATCAGTTATTTACGTATGCGATGTTAGGGTTTGCTTTAACAGAAGCAATA +121731 GCTTTGTTTGTTTTAATGATTGCTTTTTTATTGCTTTTTGCTTTTTAG +; G-atp9 ==> end +121779 TGTTTACGGCAAAAATATATTAAAGATTAATTTTTTATAATTCTATACAGAAACTGAAGG +121839 ATCTGTTTTTTGTATAGAAGATAGAGGATTGGGTACTTGAAATATTTA +; G-trnD(guc) ==> start +121887 GGATTAGTAGCTTAATCGGGAAAGCTCCAAATT!GTC!ATTTTGGTAGATGTAGGTTCAA +121945 GTCCTATCTAATTCG +; G-trnD(guc) ==> end +121960 TT +; G-trnC(gca) ==> start +121962 GATTGGATAACATAACGGTAATGTGTTGAATT!GCA!AATTCATTTTATAGCGGTTCGAT +122020 TCCGCTTCCAATCT +; G-trnC(gca) ==> end +122034 TGTTAATGTGATTGGTT +; G-trnH(gug) ==> start +122051 GGCGGATATAGCTCAATGGTAGAGTATTAGTTT!GTG!GAGCTGATTGTTATGAGTTCAA +122109 ATCTCATTATCCGCC +; G-trnH(gug) ==> end +122124 TATTTATTAAGATTTTTT +; G-trnV(uac) ==> start +122142 TGGTAGTTAGCTCAAGTGGTAGAGCATCTCTTT!TAC!ACGGAGGGGGTTGTTGGTTCAA +122200 ATCCGATACTATCAA +; G-trnV(uac) ==> end +122215 AAAATTTAAGTTTTTTACG +; G-rnpB ==> start ;; mfannot: Approximate position +122234 AAGGAAAATCCTAATGTATTGTTATTTATACTGTAGTCAGTAAATGTAAATTTAAGAAGA +122294 CTTATTAGAAATAATTAAAATTTATTTTATGTTTTAAATTTATGTAATAAGAATATGCGT +122354 AAGCTTATCTATTTGTTGTTAAGTCTGCTGAAACAATAGAATATTTATTAATCATTAATT +122414 TAAGGTTTGGTTTTTTTACAGAATTAGGTTTAT +; G-rnpB ==> end +122447 AAAAATTTTAGTTTACTTAATATAGATAATAAAAGTTGTATTTGGGTGTTTGAAATAGTT +122507 AAATGAAAATTTATTATATTTGGATTTGGAGTTTCTT +;; rns ==> ;; mfannot: start of 5' +122544 TATAAGAAGGGTTTGATCCTGGCTCAGAATGAATGCTAGAAGTATACATAACACATGCAA +122604 GTTG +;; +122608 GACGAGTAATTATTTTACAAGTAGCGAACGGGTGCGTAATGTGTAAGAATTTGCCTTCTA +122668 ATTTGGGATAACCGGGTAATGCTGGCTAATACCAAATAATTTTTTTAAAAAGATTGAATC +122728 GTTAGGAGATAAGCTTACATAGGATTAGGTAGTTGGTAGAGTAATGGTTTACCAAGCCAA +122788 TGATCCTTAGCTAGTCTGGGAGGATGAATAGCCACATTGAAACTGAGACAAGGTTCAAAC +122848 TTTTACGGAGGGCAGCAGTGTGGAATATCGGACGTGCGGTTCATCTAATAATTTTATTTC +122908 GTAGTAAAATTACTTTGAAGTAAAAAAAAATTGTATATGTGTTACCTTTTTTAGGATGTA +122968 TTGATTTGTACAAACATCAGTACAATTAAATATGAGATTTATATAGAGAAATTTTAATAT +123028 AAATTGGTATTGTGTATAATAAAGGTTAAAAAATTATAATTAATAGTAATAAAATATATT +123088 TTATGTGGAATAGAGTTGTTGATAGCAAATCATTGAATGGGAAATACCATAATTTCATAT +123148 GCAAACTTAAATATGATTAGTAAAAGAGAATGTAATATAAAAATTAATGATAGATATATT +123208 TGTATGAAGTATGTAATGTAGGATTGTCGCAAGTTCTACATTTTTTTAAGCGTTAAGATA +123268 CTTCTGGTAGATAAATGAGTTCCAATTAATAAGTAAACACAAAAAGATGAATATTTTGTT +123328 TAATTCATATATATTAAAAGTTTAGTATGAATTTTAATAAAAAGGATATTCAATATATAG +123388 TTGATGAAATTAGTTTTCATTATAAAAATATATAAGTGAACATTGTAGTTTATTTAAGTA +123448 TTCAAAAATTAAAAAAAAGTACTTTAACTTATTTTTATTTAAAGTTTAGATAAAATATAA +123508 ATAATTTTGGTAAGAAGAACTTTAATATAAAATGCAATATTTTTGAATACGTAAATTTAA +123568 TTACTGAG +;; mfannot: /group=II +123576 tagctgtataaaaggttacttttatgtacagttccgtaggggaagg +;; mfannot: +123622 TTAAATTTACAAATATAACTTTACTCTCTGACAATGAGCGCAAGCTTGATCCAGTAATAC +123682 TTTATGTGTGATGTGAAGAGTAGGAGACTATTTGTAAAGCACTATCGGTAAAAACGAAAT +123742 TGACTATATTTACATAAGAAG +;; rns ==> ;; mfannot: corr to pos 485-571 of R.americana +123763 CTCCGGCAAATTTCGTGCCAGCCGCCGCGGTAATACGAAAGGAGCAGGTGTTATTCAGAT +123823 TAACTGGGCGTAAAGGGCATGTAGACGG +;; +123851 TTCATTATGTGTACTATGAGTTACAAAGTATAATTTTGGAAAGTAGTATACACAGCAGAA +123911 CTTGAGTTGGGTATAGGGTAGCAGAATCTTTAATGTAAAGGTGAAATTTGGTGAAATTAA +123971 AGAGAATACCAAGGCGAAAGCAGTTACCTATGACGAAAC +;; rns ==> ;; mfannot: corr to pos 735-810 of R.americana +124010 TGACGTTGAGGTGCGAAGGCATGGGTAGCAAATAGGATTAGAGACCCTAGTAGTCCATGC +124070 AGTAAACGATGAATATT +;; +124087 AAATTTTGAAATAATGATTTTCAAAGTTAAAGCTAACGCGT +;; rns ==> ;; mfannot: corr to pos 850-965 of R.americana +124128 CAAATATTCCGCCTGGGGAGTACAATCGCAAGATTGAAACTTAAAGGAATTGACGGGGAT +124188 CTAAACAAGCGGTGGAACATGTGGTTTAATCCGATGTGCGTTTCGGTAAGAGTGAG +;; +124244 TAGGAGGCTCATTGTCTTATTCAGTTTTTATAGTTAAGCTGATTTTTTGGTATATATATA +124304 TAGATGTAAATTCTGTATCTTTTATGTATAGATAGTTCACCAGAAGCTAAATTTCGGTTT +124364 AGTTATCCCACCACAAGAGAATAAGTAGGTAGTATTTGTGTGGTAAGCAGGGACTTTAAT +124424 ATTTAATGTATGCGGTATATTCAAAATACAGTAAAGTGTGAACATAGATTATTAGGAGAG +124484 AAAATACGTACTATTATTGTAATAGTGAAATTCGTCATAAAAACTTTATTTAGAGATTTT +124544 TTAAATCGAAAAGTTTAAAGATTTGTATTGATTATTGTGTAAAGTTGGATTACGCAACAT +124604 GTATAATAACTTTTGGCGTTTATAATAGCTCCAACAATAATTTTAATTGGAATGTATACC +124664 AAAACGAAATTTTTTCTTCATAGTCTATTCTTTAATTTCTATGGTATTCTACAAGGGGTA +124724 TGAAGAATTTAGGATAATATAGAATATTAATAAAACCTGTTGTTTTGGAAAAATTAGGTA +124784 AAATTAAATTATATTTACAAAAATTTTTTATTTTCTGATTTTAGAATTT +; G-orf148 ==> start +124833 ATGTTTTTGTTAAG +;; mfannot: /group=II +124847 tagctgtatgaattggaaaattcatgtatggtttcgaataggcgg +;; mfannot: +124892 TCTAAGTTTTTTAGAATATAGTATCGACCTTACCACTACGCGTAAAATCTTACCAGTTTT +124952 TGAATATTTTA +;; rns ==> ;; mfannot: corr to pos 1014-1044 of R.americana +124963 TACAGGTGTTGCATGGCTGTCGTCAGTTCGTGTTGTGAAG +;; +125003 TGTTTGGTTTAGTCCCTATAACGAACGCAATCCCTATCTCTTATTGCTAAAATACTTCTG +125063 CAAAAGTATTAAGAACTTAGGAGAATCGCTAATAACAAATAAGCTGAAAGTGGGG +;; rns ==> ;; mfannot: corr to pos 1190-1252 of R.americana +125118 GTGACGCCAAGTCGTCATGGCCCTTATAGACTGGGCTACACACGTGTTACAATAATTATT +125178 ACA +;; +125181 ATGAGAAGCAATAATGTAAGTTGGAGCAAAACTCTAAAGGTAATTTTAGTT +;; rns ==> ;; mfannot: corr to pos 1305-1411 of R.americana +125232 CAGATTATTCTCTGTAACTCGAGAATATGAAGTTGAAATCGCAAGTAA +; G-orf148 ==> end +125280 TCGCAGATTAGTATGCTGCGGTGAATATGTTCTTAGATCTTGTACACACCGCCCGTCAC +;; +125339 ACCCTGGGAATCGGTTTTATTGTAAACAGATTGTATAACTTAAAGGAGATTGTAAAATAA +125399 ATTTAGGAGTTCGTCTGTTAGATTAGAAT +;; +125428 CGGTGATTGGGGTGAAGTCGTAACAAGGTAGTTGTAGGGGAACCTGCAGCTGGAAGTAAG +125488 ATATA +;; rns ==> ;; mfannot: end of 3' +125493 AATAACACTCATTTATTATTTTGTATGTATTTTATCG +; G-rrn5 ==> start ;; mfannot: complete +125530 GATATTCTAATAATATATATTGATACTGGATCCCATTTCGAATTCCGGAGTAAAACATAT +125590 ATATTTCATATATAGCATAAATGTTGTGAAACGTGATTATGGTATT +; G-rrn5 ==> end +125636 TAATGTAG +; G-trnF(gaa) ==> start +125644 GTTTAGATAGCTCAGCGGTAGAGTAAAACACT!GAA!ACTGTTTGTGTCGCTGGTTCAAA +125702 TCCAGTTCTAAACA +; G-trnF(gaa) ==> end +125716 AAAATTGCTATAAAAAAG +; G-trnK(uuu) ==> start +125734 GAATGTGTAGCTCAAGTGGTAGAGCAGTAGGCT!TTT!AACTTAATGGTTCCGAGTTCAA +125792 GTCTCGGTACATTCA +; G-trnK(uuu) ==> end +125807 ATTGTATAGGGTTTTAACTCAAATATTTTTTGTGATATGAAACGGCAAAATAAATTTAAC +125867 AGTTTGAAGTTTATGTATGTATACACTAATGGTTCTATTTTAATTTCTAAAGATTTTTGT +125927 AAATATAATTTTTTATTAGGTGTGGATATTTTTAACTCAAAGCATTGGTTACGTGTAAGA +125987 TCAATATTTTTCGAAGGTAAATCAGTGATAAAATTTAAATCAAAATTTTCAAAAATTGGG +126047 AATATCTAAATTATATAGTAATAAATTCATATAAAATAGAAATATC +; G-trnT(ugu) ==> start +126093 GTATCGTTAGCTTAATTGGTAGAGCATTGATTT!TGT!AGTTCAGAGGTTGTGGGTCCGA +126151 GTCCCATGCGATACA +; G-trnT(ugu) ==> end +126166 ATTTTTTGGGTTAT +; G-trnM(cau)_1 ==> start +126180 TGTAGTATTGAGTAATTGGTAACTCACTAGATT!CAT!GCTCTAGGAATATTGGTTCAAG +126238 TCCAATTACTACAA +; G-trnM(cau)_1 ==> end +126252 ATTTAGACTAGAATTGAAGAAGAGAGTAATAA +; G-trnM(cau)_2 ==> start +126284 GGGTTTATAGCTTAATGGTTAAAGCAGACTACT!CAT!AATGGTTTTATTGTAGGTTCGA +126342 ATCCTACTAGACCCA +; G-trnM(cau)_2 ==> end +126357 TATATGG +; G-trnA(ugc) ==> start +126364 GGGGATGTAGCTTAATGGAAAAGTTCATACTT!TGC!AAGTATGCAGATATCGGTTCGAA +126422 TCCGGTTGTCTCCA +; G-trnA(ugc) ==> end +126436 AAGTATTTAGAGTGAGT +; G-trnR(ucg) ==> start +126453 GCGTCTATAGCTTAATTGGAAAAGTACCGAACT!TCG!GATTCGTGTTATGAGAGTTCAA +126511 ATCTTTCTAGACGTA +; G-trnR(ucg) ==> end +126526 TA +; G-trnI(gau) ==> start +126528 AGGCTTATAACTCAATTGGTAGAGTACGCAAGT!GAT!ATTTGTGGAGTTGGTGGTTCAA +126586 GTCCACTTAGGCCTA +; G-trnI(gau) ==> end +126601 ACATTTTTTAATAAAGATTTATCGTATG +; G-trnL(uag) ==> start +126629 GCCTTTGTGGCGGAATTGGTAGACGCGCTAAACT!TAG!AATTTAGTTTTTTCGGATGTA +126687 AGAGTTCGAGTCTCTTCAAAGGTA +; G-trnL(uag) ==> end +126711 TAGAAATTGAAAA +; G-trnN(guu) ==> start +126724 TTCCATCTAGCTTAATAGGTAAAGCAATTCACT!GTT!AATGAATGGAGTATAGGTTCGA +126782 GTCCTATGATGGAAG +; G-trnN(guu) ==> end +; G-trnY(gua) ==> start +126797 GAAGGAGTGGCTGAGTGGTTTAAGGCGGTAAACT!GTA!ACTTTACTAATGTTATCATTA +126855 TCATAGGTTCGAATCCTATCTCCCTCA +; G-trnY(gua) ==> end +126882 AAAGATATTAATGAAGTTAAAAGAA +; G-trnE(uuc) ==> start +126907 GTTCCTTTCGTCTAGTGATTAGGACATTGCCTT!TTC!AGGGTGAGAACGTGGGTTTAAT +126965 TCCCACAAGGAATA +; G-trnE(uuc) ==> end +126979 ATGTATTGTTATGAATATATTAT +; G-trnQ(uug) ==> start +127002 TGGGATATAGCCAAATGGTAAGGCATTGGTTT!TTG!ACATCATGAGTATAGGTTCGATT +127060 CCTATTATCCCAA +; G-trnQ(uug) ==> end +127073 AGTTATTCATTTGAAAATCGTATA +; G-trnG(ucc) ==> start +127097 GCGAATATAAATTAATGGTAAATTATTTGTCT!TCC!AAACAGATTTTGAGAGTTCGAGT +127155 CTCTCTATTCGCA +; G-trnG(ucc) ==> end +127168 AT +;; rnl ==> ;; mfannot: 5' +/- 50 nt +127170 AATATATAACTTAATATTTGCATGTAAAGTATATTTAATGAATACCTTGGTATAACAAAT +127230 GGTAAGGACGTTTTGAAATGCGAAAAGTCGTGGTGTTAAGTAGAAGATTGTTAAACGCGA +127290 ATTTCCTTGCGAAGAAATTTATTCTTATAAGAATTATGAAAAAGAATTTAGGGAATTGAA +127350 ACATCTTAGTACCTAGAGAAAAGAAATCAATCGAGATTCCGAAAGTAGTGGTGAGCGATT +127410 TCGGATATAGGTTAATTAAATTAGTTTTTATACACTAGGAAATATCTTGAAAGGTATACC +127470 GTAGAAAGTTGTAGTCTTGTTATTTGGTGTATAGAGATTTATATATTTAAAATATTTAAA +127530 ACGATTTTCGTGTAGAATTGTTTGAAAATGGGAGGCCCACCTTCCAAACCTAAATATTTG +127590 TTATAACCGATAGTGTAT +;; +127608 AAGTACCGTGAGGGAAAGGTGAAAGAAAACCCATTAGGGAGTGAAAAGAAGTTGAAATTA +127668 AATATAAAGAAATAATTTAATAATGATTTTATTTTATAATTATTATAAATGTACCTTTTG +127728 TATAAGTGTTACAAATAAAGTTATTGGGAGAAAGAAGTAGTCGCTGCATTAGATAGGAAA +127788 TAGAAAAAAAACGTTCATATTGCATTGTATTAATAAATAGTAAATAAAAGAATAAGTTAT +127848 TAATTAAGAATAGGCTTCCATAGATAAAAGGTTTTAACTACTGAAGTATTAAAATTCTTA +127908 TACGGTTAAATTAAATTGTTAAAAAATTGGGAGTAAACTTTGATTCTAATTTACTAAAAA +127968 CCTCTTAATAAATATTTGGGTTTATTCATAATTATATACCTAATTATGAATTAATGAAGA +128028 GTATTTAGATAATTTTTTAAATAAATACCAAATTAAAGTTTAATTATTTATATTAATTAA +128088 TTTGAAATTGGCG +;; mfannot: /group=II +128101 gagcttcatgttatgaaatagcatgtgtagttttaggtggg +;; mfannot: +128142 GAAAATTTTAATTTTCTATCATAATTGGGTCAGCAAGTTAATAAGGATAGTTTGCTTAAC +128202 TTTGGTGATAAAAGGGAGGCGTAGCGAAAGCGAGTTTTAAAAAAGCGAAAATTGGATCTT +128262 TCTTATTAAACCCGAAGCCAAGTGATCTAACCATGATCAAGTTGATATTACTGTGATAGG +128322 TAATTGAGGACTGAACCCGTATATGTGGCAAAATATTGGGATGAATTGTGGTTTGGAGTG +128382 AAAGGCTAATCAAACTTGGCAATAGCTGGTTTTCTGCGAAATCTATTTGTGTGCTTAGTG +128442 CGAATACGCTTATAATGTAAAAGAATTGTAATAATAATATTAATGTAAAAAATATAGATA +128502 AATTTAATTTATTAAATTTTATATAATATGAATTTCGTCATATTTTTGGTTTTAAACTAG +128562 AAAAAATATATGAGAGTAAATTCTAGTATAAAAATAATGAATTTTTTAATTGACTTTAAA +128622 GTTTTTAAACAGAATATTTATTTTACAAATTGTTAAAAATTATTTGTGAATAATATAAAA +128682 TAAACTATGTTTGTTAATTGTTACCGTAATTCGCGATTTTACAAAGTTAAGAAGTTTATA +128742 GTATAAAAAAAATATATTTGTTTGTATAAGATAGATATGGAAAATTTAAATTAGTTTTTT +128802 CGGTAAAAAACATAGATTCATTTAATAATAAACATAAGAGATATATAAACTAAGAGTGTT +128862 TTTAAAATAAATTTGAAAGAAATTTATAGAAAAATTACACAACGGATCAAATTCATATTT +128922 TTTCTTTAAAGATTTATAATTAATTTGCGTTTTAAATATAGCATTAAATAATGTATATAC +128982 TATGTATGGTTTTTGTTATGTAAAAATATTTTGAAATAAGGGAGGTTTTTACAAATTGCG +129042 TAATTAAAAATATAATCATACTATACGTTTGTTAATTTTATATTTAAAGTGAGAAGCTAG +129102 GTAATAATAAATTATTATGTGTAGTTTTGAAGTAAAGTTTTCTTAATAGAAATCGATTAT +129162 AACAGGTAGAGTGTTATATAGTTTATTTTACGGGTAGAGCTCTAGTTATTTGATGGGAGT +129222 GTAGCAGCTTTACTGAGAATAATTAAACTTCGAATAGTAAATTTTAAGTTATAATAAACA +129282 GACTTTTGGCGATAAGGTCGAAGGTCAAGAGGGAAACAGCCCAGATTACATGATAAGGTC +129342 TTAAAATAATTTTTTGAGTGAAAAAGGAAAATTTAGTACTTAAACAATTAAGAGGTAGGC +129402 TTGGAAGCAGCCATTCTTTAAAGAAATCGTATTAGATCATTAGTTATTCTAGTTTAAATT +129462 TTTCTAAAATGTATAGAGGCTAAAAAATTTACCGAAGCAGTAAATAAGAAATAATTTCTT +129522 ATGGTAGCAGAACGTTCCGTAGTTTTTTGAAGGAAAATTGTGAAATTTTTTGCAGAAATC +129582 GGAAGTGAGGATGCTGATATGAGTAACGAAAAATATAGTAATAATCTATATCGCTGTAAG +129642 TTTAAGGTTTTCAAAGTATGGGTTAACTACTTTGAGTAACACAGTATCTAAGATAAAAAA +129702 AGGGTGAAGACTTAAGTTGATGAAGAAAGAAGTTTATATTCTTCAGTAATTTTAGAAAAT +129762 TAATAGTTATTGTGCGAATTTGGTTTAATTATCTTATCAAGTTTCTCATAAGCTATTCGA +129822 GAAAAATTCTAAATATTAAAACTGTATTTAAACCGACACTGGTGAACTGGTACGATTATG +129882 TACTAAAGCGATTGAAAGAATAGTATTGAAGGAACTCGGCAAAATTGTTCTGTGACTTCG +129942 GTATAAAGAACACCAATCATATTTATATAGGTTTATATTTTGGTTGGTAGCAGAAATAGG +130002 GGGTAGCGACTGTTTAATAAAAAGTATGATTTGTTATTATGATTCTGTTTACTAATGGTT +130062 AATTAACATTTTTTTCTTAATACTGTAATAAAAAAATTATGTTAAATTTAGAATTTACAC +130122 CATTAACTTGCGATGCAGGCATTTTATATAAGAATAATTTAAATATATGTATATTTTAGG +130182 CGTCTAGAAGGCAGCGTATTTTATGAAAAAAATAGAAATATTAGGTTATATAAATTAAGA +130242 TGAGAAAATAGCGTAATTATTCTTTTTAGTAATTACGTAAGAATTGTATAATTATTTTTA +130302 CAATTTTTGTAAGGCGTAGAGAATAATTTTAACTACAAAATGAGATGCATTATTCATAAT +130362 AAATAAAGTAGTTTTTTAATATATTGTAAGTAGTTGAACAAAGTTGTTTTAGAATTTTGT +130422 TATATATATAGTTAAAAAATTAAAGAAAATATAAAAATACGATTAAATTTTTAATGTAAT +130482 TTATATAATTAGTGTTGATTAAATACTCCCCTAGTATTATAATCTTTTTAGATATACAAT +130542 AGGGAGTTATTAACATTT +;; mfannot: /group=II(derived) +130560 gagctgtatataatgaaaattatatgtacagtttttatagggggaa +;; mfannot: +130606 AATTTGAAAAAATTTACCTATCTAAATCACAGGACTCTGCTAAATTGTAAAATGATGTAT +130666 AGGGTCTGACACCTGCCCAGTGCTGTAAAGTTAAAAATTAGTTGTTTATGCTTCTAATTT +130726 AATCTCCAGTAAACGGCGGCTGTAACTCTGACGGTCCGTGTGTTTCCGTAATTAAAATAT +130786 AGTTTAATTAAAATTATATTGAATAAGAATTTATAGTGTGGATTTAGAAAAATTATTTTG +130846 GTATATAAAATGCAAGAAAATTATTAATTTTGATCAAAGATGGTTTTATACTTAAGTAAT +130906 TTATAAATTAGAAAAAAATAGATCATTGTTTGAAAATAAAGAACGACTCCAGTTAAGTTT +130966 CGAATAACAGAGAGTTATACTTTAAAAAATTTATAAATATAGAAAATATAGGGTTTGAAA +131026 GTTTTTTATTAAAAATTGTGATGTTTTTAAATTGGACTAATTTAAATATGTTTTATAAAG +131086 ACAATTCGGAATAAAAGTCGAATCTATTTTTTGTCTAAACACTGTAAAAACGGAAATAAC +131146 ATTTATATTTATTTATTTTTTAATATAAGTATATTATCAATTGAAAGGTAATAAAGATTA +131206 AAATAGTAAGTATAAACGGAAAGATACTATAAAAATGCTTTTAATTTTTTAAACATGTTC +131266 ATAGTATTAACTTAATAAAAATTTGAATGTTTTTAGAATGGTTAATAGAAGTTGTATGGT +131326 AATAATTACCAGGTACAATTTTAATTAGCAAATTATTATTAATGATTTGACTATAATTAA +131386 GGTAGCGAAATTCCTTGTCTAGTAATTTTAGACCTGCATGAATGGTGTAACGACTTCCCT +131446 ACTGTCTCCAATACTATTTCAGTGAAATTAGAATATCCGTGAAGATACGGATTATTATAT +131506 GATTAGACGGAAAGACCCTATGCACCTTTACTAGATTTTTATATTGTTACAAAGACTAAA +131566 TTGTGTAGAATAGGTGGGATGTTTTTGATCTTTTTTAAAAAGGAAAACGTAAGTGAAATA +131626 CCACTCGTTTTAGTTCTTTGAACTTACTTATTTTCAATAAGGATAGTGTATATTTGCTAG +131686 TTTGGCTGGGGCGGCCGCTTCCTAAAGAGTAACGGAGGTGTACAAAGGTAAATTTGATTT +131746 AATGTTTATTAAATTTTAAGTGTAATGGCAAAATTTGCTTGACTGCGAGACTAACAAGTC +131806 AAGCAGGGACGTAAGTCGGTCATAATGATCCGGTAATTCTGCGTGGTAAGGTTATCGCTC +131866 AACGGATAAAAGGTACGCTAGGGATAACAGGCTTATGACCCTCGAGAGTTCTTATCGGCG +131926 GGGTCGTTTGGCACCTCGATGTCGAGTGTAATTCGCTAATTATCATATATAGGAAATAAT +131986 AATATTATTTTTTATATTGATGTAATTTTTGTTATGTTTAATGTATTTATTTATTAAATT +132046 AATTTTTGGTAAACTTTTAGATTCTATCAAATAATTTTTTCCAAGCAATACATTATAATT +132106 TACTTAGAGTTGAGTTAGGTCTTATTTATGAAGAATATTTCGTTATGAGGTGTATATAAT +132166 CCGAAAGGGTAGTATGAATTTTTTTATATACATAAACTGCTATTATATTGGCGTTAATAG +132226 GTTTATAAATTATAATTGGATCGGAATAGAGTAAACAAAACTAAGTATTATAATAGCAAA +132286 AGAGGTGAATAGACGTTGAATTATATGTTAAAATGTAATTCGCGAAAATGGATTCGATAA +132346 TATATGTTTCTATTTATGGAAATAGAAGTTACTAGTAATATCGAAAGAAAATTGAAAATT +132406 TTTTTGTTTTACGAAGCATAAAGTTTTGGATATTGATTTA +;; mfannot: /group=II(derived) +132446 aagctatatagtaagaaattactacgtatagtttggcagtagcagta +;; mfannot: +132493 TGATGTTTATATGATATTGACT +;; +132515 ATAACCTTTTCACATCCTGGAGCTGAAGAAGGTTCCAAGGGTTCGGTTGTTCGCCGATTA +132575 AAGTGGAACATGAGTTGGGTTTAGAACGTCGTGAGACAGTTTGGTCCCTATCTGTCATAT +132635 ACGTTTTAAAACTGAAAAAATTTGTATCTAGTACGAGAGGATCGATATGAATTGGCCGCT +132695 GGTAAATCAATTATTTTGATATAAAGTATCGTTGAGACGCTACGCCAATTATATATAACT +132755 GCTGAAGGCATATCAAGCAGGAAGATGATTTTAAGAAGAGTTTTAATTAGTTGTTGAAAC +132815 AGTTAGTTGGTTATAGATAATGACTTTGATAGGCTACTAGATGTACATAGTGTAAATTAT +132875 TCAGTCTGGAGTACTAAATAACTAAT +;; rnl ==> ;; mfannot: 3' -20/+180 +132901 ATATAATTTATATATACAATTAT +; G-trnS(gcu) ==> start +132924 GGAAAGGTGACTGAGGGGTTGAAGGTGATGGTTT!GCT!AAATCATTATATAAAGTTTTA +132982 TATCGTGGGTTCGAATCCCATTCTTTCCA +; G-trnS(gcu) ==> end +133011 ATTTAAAATATA +; G-trnL(uaa) ==> start +133023 GCTTACTTGGTGGAATTGGTAGACACGATTGACT!TAA!AATCAATTCTTTAAGAGGTAT +133081 CGGTTCAATTCCGATAGTAAGTA +; G-trnL(uaa) ==> end +133104 AATTAATTTTAAAATATAAACAAAGGA +; G-trnS(uga) ==> start +133131 GGGCGTATGGCTGAGTGGTTTAAAGCGTTAGTCT!TGA!ACACTAATATGTAAAATTTTT +133189 ATATCGTGGGTTCGAATCCTGCTACGTCTA +; G-trnS(uga) ==> end +133219 AGGGT diff --git a/src/agat/agat_sq_stat_basic/config.vsh.yaml b/src/agat/agat_sq_stat_basic/config.vsh.yaml new file mode 100644 index 00000000..64958991 --- /dev/null +++ b/src/agat/agat_sq_stat_basic/config.vsh.yaml @@ -0,0 +1,92 @@ +name: agat_sq_stat_basic +namespace: agat +description: | + The script aims to provide basic statistics of a gtf/gff file. +keywords: [gene annotations, gff, statistics] +links: + homepage: https://github.com/NBISweden/AGAT + documentation: https://agat.readthedocs.io/en/latest/tools/agat_sq_stat_basic.html + issue_tracker: https://github.com/NBISweden/AGAT/issues + repository: https://github.com/NBISweden/AGAT +references: + doi: 10.5281/zenodo.3552717 +license: GPL-3.0 +requirements: + - commands: [agat] +authors: + - __merge__: /src/_authors/leila_paquay.yaml + roles: [ author, maintainer ] +argument_groups: + - name: Inputs + arguments: + - name: --gff + alternatives: [-i, --file, --input] + description: | + Input GTF/GFF file. + type: file + required: true + multiple: true + direction: input + example: input.gff + - name: --genome_size + alternatives: [-g] + description: | + That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type. You can provide an INTEGER. Or you can also pass a fasta file using the argument --genome_size_fasta. If both are provided, only the value of --genome_size will be considered. + type: integer + required: false + direction: input + example: 10000 + - name: --genome_size_fasta + description: | + That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type. You can provide the genome in fasta format. Or you can also pass the size directly as an integer using the argument --genome_size. If you provide the fasta, the genome size will be calculated on the fly. If both are provided, only the value of --genome_size will be considered. + type: file + required: false + direction: input + example: genome.fasta + - name: Outputs + arguments: + - name: --output + alternatives: [-o] + description: | + Output file. The result is in tabulate format. + type: file + direction: output + required: true + example: output.txt + - name: Arguments + arguments: + - name: --inflate + description: | + Inflate the statistics taking into account feature with + multi-parents. Indeed to avoid redundant information, some gff + factorize identical features. e.g: one exon used in two + different isoform will be defined only once, and will have + multiple parent. By default the script count such feature only + once. Using the inflate option allows to count the feature and + its size as many time there are parents. + type: boolean_true + - name: --config + alternatives: [-c] + description: | + AGAT config file. By default AGAT takes the original agat_config.yaml shipped with AGAT. The `--config` option gives you the possibility to use your own AGAT config file (located elsewhere or named differently). + type: file + required: false + example: custom_agat_config.yaml +resources: + - type: bash_script + path: script.sh +test_resources: + - type: bash_script + path: test.sh + - type: file + path: test_data +engines: + - type: docker + image: quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0 + setup: + - type: docker + run: | + agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.txt +runners: + - type: executable + - type: nextflow \ No newline at end of file diff --git a/src/agat/agat_sq_stat_basic/help.txt b/src/agat/agat_sq_stat_basic/help.txt new file mode 100644 index 00000000..65096991 --- /dev/null +++ b/src/agat/agat_sq_stat_basic/help.txt @@ -0,0 +1,79 @@ +```sh +agat_sq_stat_basic.pl --help +``` + + ------------------------------------------------------------------------------ +| Another GFF Analysis Toolkit (AGAT) - Version: v1.4.0 | +| https://github.com/NBISweden/AGAT | +| National Bioinformatics Infrastructure Sweden (NBIS) - www.nbis.se | + ------------------------------------------------------------------------------ + + +Name: + agat_sq_stat_basic.pl + +Description: + The script aims to provide basic statistics of a gtf/gff file. + +Usage: + agat_sq_stat_basic.pl -i [-g -o ] + agat_sq_stat_basic.pl --help + +Options: + -i, --gff, --file or --input + STRING: Input GTF/GFF file. Several files can be processed at + once: -i file1 -i file2 + + -g, --genome + That input is design to know the genome size in order to + calculate the percentage of the genome represented by each kind + of feature type. You can provide an INTEGER or the genome in + fasta format. If you provide the fasta, the genome size will be + calculated on the fly. + + --inflate + Inflate the statistics taking into account feature with + multi-parents. Indeed to avoid redundant information, some gff + factorize identical features. e.g: one exon used in two + different isoform will be defined only once, and will have + multiple parent. By default the script count such feature only + once. Using the inflate option allows to count the feature and + its size as many time there are parents. + + -o or --output + STRING: Output file. If no output file is specified, the output + will be written to STDOUT. The result is in tabulate format. + + -c or --config + String - Input agat config file. By default AGAT takes as input + agat_config.yaml file from the working directory if any, + otherwise it takes the orignal agat_config.yaml shipped with + AGAT. To get the agat_config.yaml locally type: "agat config + --expose". The --config option gives you the possibility to use + your own AGAT config file (located elsewhere or named + differently). + + --help or -h + Display this helpful text. + +Feedback: + Did you find a bug?: + Do not hesitate to report bugs to help us keep track of the bugs and + their resolution. Please use the GitHub issue tracking system available + at this address: + + https://github.com/NBISweden/AGAT/issues + + Ensure that the bug was not already reported by searching under Issues. + If you're unable to find an (open) issue addressing the problem, open a new one. + Try as much as possible to include in the issue when relevant: + - a clear description, + - as much relevant information as possible, + - the command used, + - a data sample, + - an explanation of the expected behaviour that is not occurring. + + Do you want to contribute?: + You are very welcome, visit this address for the Contributing + guidelines: + https://github.com/NBISweden/AGAT/blob/master/CONTRIBUTING.md \ No newline at end of file diff --git a/src/agat/agat_sq_stat_basic/script.sh b/src/agat/agat_sq_stat_basic/script.sh new file mode 100644 index 00000000..0f4ab2a6 --- /dev/null +++ b/src/agat/agat_sq_stat_basic/script.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -eo pipefail + +## VIASH START +## VIASH END + +# unset flags +[[ "$par_inflate" == "false" ]] && unset par_inflate + +# Convert a list of file names to multiple -gff arguments +input_files="" +IFS=";" read -ra file_names <<< "$par_gff" +for file in "${file_names[@]}"; do + input_files+="--gff $file " +done + +# take care of --genome (can originally be either a fasta file or an integer) +if [[ -n "$par_genome_size" ]]; then + genome_arg=$par_genome_size +elif [[ -n "$par_genome_size_fasta" ]]; then + genome_arg=$par_genome_size_fasta +fi + +# run agat_convert_sp_bed2gff.pl +agat_sq_stat_basic.pl \ + $input_files \ + ${genome_arg:+--genome "${genome_arg}"} \ + --output "${par_output}" \ + ${par_inflate:+--inflate} \ + ${par_config:+--config "${par_config}"} diff --git a/src/agat/agat_sq_stat_basic/test.sh b/src/agat/agat_sq_stat_basic/test.sh new file mode 100644 index 00000000..12bd28cd --- /dev/null +++ b/src/agat/agat_sq_stat_basic/test.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -eo pipefail + +## VIASH START +## VIASH END + +test_dir="${meta_resources_dir}/test_data" + +# create temporary directory and clean up on exit +TMPDIR=$(mktemp -d "$meta_temp_dir/$meta_functionality_name-XXXXXX") +function clean_up { + [[ -d "$TMPDIR" ]] && rm -rf "$TMPDIR" +} +trap clean_up EXIT + + +echo "> Run $meta_name with test data" +"$meta_executable" \ + --gff "$test_dir/1.gff" \ + --output "$TMPDIR/output.txt" + +echo ">> Checking output" +[ ! -f "$TMPDIR/output.txt" ] && echo "Output file output.txt does not exist" && exit 1 + +echo ">> Check if output is empty" +[ ! -s "$TMPDIR/output.txt" ] && echo "Output file output.txt is empty" && exit 1 + +echo ">> Check if output matches expected output" +diff "$TMPDIR/output.txt" "$test_dir/agat_sq_stat_basic_1.gff" +if [ $? -ne 0 ]; then + echo "Output file output.txt does not match expected output" + exit 1 +fi + +echo "> Test successful" \ No newline at end of file diff --git a/src/agat/agat_sq_stat_basic/test_data/1.gff b/src/agat/agat_sq_stat_basic/test_data/1.gff new file mode 100644 index 00000000..40a06c78 --- /dev/null +++ b/src/agat/agat_sq_stat_basic/test_data/1.gff @@ -0,0 +1,942 @@ +##gff-version 3 +##sequence-region 1 1 43270923 +#!genome-build RAP-DB IRGSP-1.0 +#!genome-version IRGSP-1.0 +#!genome-date 2015-10 +#!genome-build-accession GCA_001433935.1 +1 RAP-DB chromosome 1 43270923 . . . ID=chromosome:1;Alias=Chr1,AP014957.1,NC_029256.1 +### +1 irgsp repeat_region 2000 2100 . + . ID=fakeRepeat1 +### +1 irgsp gene 2983 10815 . + . ID=gene:Os01g0100100;biotype=protein_coding;description=RabGAP/TBC domain containing protein. (Os01t0100100-01);gene_id=Os01g0100100;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 2983 10815 . + . ID=transcript:Os01t0100100-01;Parent=gene:Os01g0100100;biotype=protein_coding;transcript_id=Os01t0100100-01 +1 irgsp exon 2983 3268 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0100100-01.exon1;rank=1 +1 irgsp five_prime_UTR 2983 3268 . + . Parent=transcript:Os01t0100100-01 +1 irgsp five_prime_UTR 3354 3448 . + . Parent=transcript:Os01t0100100-01 +1 irgsp exon 3354 3616 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0100100-01.exon2;rank=2 +1 irgsp CDS 3449 3616 . + 0 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 4357 4455 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100100-01.exon3;rank=3 +1 irgsp CDS 4357 4455 . + 0 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 5457 5560 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon4;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0100100-01.exon4;rank=4 +1 irgsp CDS 5457 5560 . + 0 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 7136 7944 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon5;constitutive=1;ensembl_end_phase=1;ensembl_phase=2;exon_id=Os01t0100100-01.exon5;rank=5 +1 irgsp CDS 7136 7944 . + 1 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 8028 8150 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon6;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0100100-01.exon6;rank=6 +1 irgsp CDS 8028 8150 . + 2 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 8232 8320 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0100100-01.exon7;rank=7 +1 irgsp CDS 8232 8320 . + 2 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 8408 8608 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon8;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100100-01.exon8;rank=8 +1 irgsp CDS 8408 8608 . + 0 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 9210 9615 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon9;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0100100-01.exon9;rank=9 +1 irgsp CDS 9210 9615 . + 0 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 10102 10187 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon10;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0100100-01.exon10;rank=10 +1 irgsp CDS 10102 10187 . + 2 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp CDS 10274 10297 . + 0 ID=CDS:Os01t0100100-01;Parent=transcript:Os01t0100100-01;protein_id=Os01t0100100-01 +1 irgsp exon 10274 10430 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon11;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0100100-01.exon11;rank=11 +1 irgsp three_prime_UTR 10298 10430 . + . Parent=transcript:Os01t0100100-01 +1 irgsp exon 10504 10815 . + . Parent=transcript:Os01t0100100-01;Name=Os01t0100100-01.exon12;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0100100-01.exon12;rank=12 +1 irgsp three_prime_UTR 10504 10815 . + . Parent=transcript:Os01t0100100-01 +### +1 irgsp gene 11218 12435 . + . ID=gene:Os01g0100200;biotype=protein_coding;description=Conserved hypothetical protein. (Os01t0100200-01);gene_id=Os01g0100200;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 11218 12435 . + . ID=transcript:Os01t0100200-01;Parent=gene:Os01g0100200;biotype=protein_coding;transcript_id=Os01t0100200-01 +1 irgsp five_prime_UTR 11218 11797 . + . Parent=transcript:Os01t0100200-01 +1 irgsp exon 11218 12060 . + . Parent=transcript:Os01t0100200-01;Name=Os01t0100200-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0100200-01.exon1;rank=1 +1 irgsp CDS 11798 12060 . + 0 ID=CDS:Os01t0100200-01;Parent=transcript:Os01t0100200-01;protein_id=Os01t0100200-01 +1 irgsp CDS 12152 12317 . + 1 ID=CDS:Os01t0100200-01;Parent=transcript:Os01t0100200-01;protein_id=Os01t0100200-01 +1 irgsp exon 12152 12435 . + . Parent=transcript:Os01t0100200-01;Name=Os01t0100200-01.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0100200-01.exon2;rank=2 +1 irgsp three_prime_UTR 12318 12435 . + . Parent=transcript:Os01t0100200-01 +### +1 irgsp gene 11372 12284 . - . ID=gene:Os01g0100300;biotype=protein_coding;description=Cytochrome P450 domain containing protein. (Os01t0100300-00);gene_id=Os01g0100300;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 11372 12284 . - . ID=transcript:Os01t0100300-00;Parent=gene:Os01g0100300;biotype=protein_coding;transcript_id=Os01t0100300-00 +1 irgsp exon 11372 12042 . - . Parent=transcript:Os01t0100300-00;Name=Os01t0100300-00.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0100300-00.exon2;rank=2 +1 irgsp CDS 11372 12042 . - 2 ID=CDS:Os01t0100300-00;Parent=transcript:Os01t0100300-00;protein_id=Os01t0100300-00 +1 irgsp exon 12146 12284 . - . Parent=transcript:Os01t0100300-00;Name=Os01t0100300-00.exon1;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0100300-00.exon1;rank=1 +1 irgsp CDS 12146 12284 . - 0 ID=CDS:Os01t0100300-00;Parent=transcript:Os01t0100300-00;protein_id=Os01t0100300-00 +### +1 irgsp gene 12721 15685 . + . ID=gene:Os01g0100400;biotype=protein_coding;description=Similar to Pectinesterase-like protein. (Os01t0100400-01);gene_id=Os01g0100400;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 12721 15685 . + . ID=transcript:Os01t0100400-01;Parent=gene:Os01g0100400;biotype=protein_coding;transcript_id=Os01t0100400-01 +1 irgsp five_prime_UTR 12721 12773 . + . Parent=transcript:Os01t0100400-01 +1 irgsp exon 12721 13813 . + . Parent=transcript:Os01t0100400-01;Name=Os01t0100400-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0100400-01.exon1;rank=1 +1 irgsp CDS 12774 13813 . + 0 ID=CDS:Os01t0100400-01;Parent=transcript:Os01t0100400-01;protein_id=Os01t0100400-01 +1 irgsp exon 13906 14271 . + . Parent=transcript:Os01t0100400-01;Name=Os01t0100400-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100400-01.exon2;rank=2 +1 irgsp CDS 13906 14271 . + 1 ID=CDS:Os01t0100400-01;Parent=transcript:Os01t0100400-01;protein_id=Os01t0100400-01 +1 irgsp exon 14359 14437 . + . Parent=transcript:Os01t0100400-01;Name=Os01t0100400-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0100400-01.exon3;rank=3 +1 irgsp CDS 14359 14437 . + 1 ID=CDS:Os01t0100400-01;Parent=transcript:Os01t0100400-01;protein_id=Os01t0100400-01 +1 irgsp exon 14969 15171 . + . Parent=transcript:Os01t0100400-01;Name=Os01t0100400-01.exon4;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0100400-01.exon4;rank=4 +1 irgsp CDS 14969 15171 . + 0 ID=CDS:Os01t0100400-01;Parent=transcript:Os01t0100400-01;protein_id=Os01t0100400-01 +1 irgsp CDS 15266 15359 . + 1 ID=CDS:Os01t0100400-01;Parent=transcript:Os01t0100400-01;protein_id=Os01t0100400-01 +1 irgsp exon 15266 15685 . + . Parent=transcript:Os01t0100400-01;Name=Os01t0100400-01.exon5;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0100400-01.exon5;rank=5 +1 irgsp three_prime_UTR 15360 15685 . + . Parent=transcript:Os01t0100400-01 +### +1 irgsp gene 12808 13978 . - . ID=gene:Os01g0100466;biotype=protein_coding;description=Hypothetical protein. (Os01t0100466-00);gene_id=Os01g0100466;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 12808 13978 . - . ID=transcript:Os01t0100466-00;Parent=gene:Os01g0100466;biotype=protein_coding;transcript_id=Os01t0100466-00 +1 irgsp three_prime_UTR 12808 12868 . - . Parent=transcript:Os01t0100466-00 +1 irgsp exon 12808 13782 . - . Parent=transcript:Os01t0100466-00;Name=Os01t0100466-00.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0100466-00.exon2;rank=2 +1 irgsp CDS 12869 13102 . - 0 ID=CDS:Os01t0100466-00;Parent=transcript:Os01t0100466-00;protein_id=Os01t0100466-00 +1 irgsp five_prime_UTR 13103 13782 . - . Parent=transcript:Os01t0100466-00 +1 irgsp exon 13880 13978 . - . Parent=transcript:Os01t0100466-00;Name=Os01t0100466-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0100466-00.exon1;rank=1 +1 irgsp five_prime_UTR 13880 13978 . - . Parent=transcript:Os01t0100466-00 +### +1 irgsp gene 16399 20144 . + . ID=gene:Os01g0100500;biotype=protein_coding;description=Immunoglobulin-like domain containing protein. (Os01t0100500-01);gene_id=Os01g0100500;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 16399 20144 . + . ID=transcript:Os01t0100500-01;Parent=gene:Os01g0100500;biotype=protein_coding;transcript_id=Os01t0100500-01 +1 irgsp five_prime_UTR 16399 16598 . + . Parent=transcript:Os01t0100500-01 +1 irgsp exon 16399 16976 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0100500-01.exon1;rank=1 +1 irgsp CDS 16599 16976 . + 0 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp exon 17383 17474 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0100500-01.exon2;rank=2 +1 irgsp CDS 17383 17474 . + 0 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp exon 17558 18258 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=2;exon_id=Os01t0100500-01.exon3;rank=3 +1 irgsp CDS 17558 18258 . + 1 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp exon 18501 18571 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0100500-01.exon4;rank=4 +1 irgsp CDS 18501 18571 . + 2 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp exon 18968 19057 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100500-01.exon5;rank=5 +1 irgsp CDS 18968 19057 . + 0 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp exon 19142 19321 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100500-01.exon6;rank=6 +1 irgsp CDS 19142 19321 . + 0 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp CDS 19531 19593 . + 0 ID=CDS:Os01t0100500-01;Parent=transcript:Os01t0100500-01;protein_id=Os01t0100500-01 +1 irgsp exon 19531 19629 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon7;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0100500-01.exon7;rank=7 +1 irgsp three_prime_UTR 19594 19629 . + . Parent=transcript:Os01t0100500-01 +1 irgsp exon 19734 20144 . + . Parent=transcript:Os01t0100500-01;Name=Os01t0100500-01.exon8;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0100500-01.exon8;rank=8 +1 irgsp three_prime_UTR 19734 20144 . + . Parent=transcript:Os01t0100500-01 +### +1 irgsp gene 22841 26892 . + . ID=gene:Os01g0100600;biotype=protein_coding;description=Single-stranded nucleic acid binding R3H domain containing protein. (Os01t0100600-01);gene_id=Os01g0100600;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 22841 26892 . + . ID=transcript:Os01t0100600-01;Parent=gene:Os01g0100600;biotype=protein_coding;transcript_id=Os01t0100600-01 +1 irgsp five_prime_UTR 22841 23231 . + . Parent=transcript:Os01t0100600-01 +1 irgsp exon 22841 23281 . + . Parent=transcript:Os01t0100600-01;Name=Os01t0100600-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0100600-01.exon1;rank=1 +1 irgsp CDS 23232 23281 . + 0 ID=CDS:Os01t0100600-01;Parent=transcript:Os01t0100600-01;protein_id=Os01t0100600-01 +1 irgsp exon 23572 23847 . + . Parent=transcript:Os01t0100600-01;Name=Os01t0100600-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100600-01.exon2;rank=2 +1 irgsp CDS 23572 23847 . + 1 ID=CDS:Os01t0100600-01;Parent=transcript:Os01t0100600-01;protein_id=Os01t0100600-01 +1 irgsp exon 23962 24033 . + . Parent=transcript:Os01t0100600-01;Name=Os01t0100600-01.exon3;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100600-01.exon3;rank=3 +1 irgsp CDS 23962 24033 . + 1 ID=CDS:Os01t0100600-01;Parent=transcript:Os01t0100600-01;protein_id=Os01t0100600-01 +1 irgsp exon 24492 24577 . + . Parent=transcript:Os01t0100600-01;Name=Os01t0100600-01.exon4;constitutive=1;ensembl_end_phase=1;ensembl_phase=2;exon_id=Os01t0100600-01.exon4;rank=4 +1 irgsp CDS 24492 24577 . + 1 ID=CDS:Os01t0100600-01;Parent=transcript:Os01t0100600-01;protein_id=Os01t0100600-01 +1 irgsp exon 25445 25519 . + . Parent=transcript:Os01t0100600-01;Name=Os01t0100600-01.exon5;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0100600-01.exon5;rank=5 +1 irgsp CDS 25445 25519 . + 2 ID=CDS:Os01t0100600-01;Parent=transcript:Os01t0100600-01;protein_id=Os01t0100600-01 +1 irgsp CDS 25883 26391 . + 2 ID=CDS:Os01t0100600-01;Parent=transcript:Os01t0100600-01;protein_id=Os01t0100600-01 +1 irgsp exon 25883 26892 . + . Parent=transcript:Os01t0100600-01;Name=Os01t0100600-01.exon6;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0100600-01.exon6;rank=6 +1 irgsp three_prime_UTR 26392 26892 . + . Parent=transcript:Os01t0100600-01 +### +1 irgsp gene 25861 26424 . - . ID=gene:Os01g0100650;biotype=protein_coding;description=Hypothetical gene. (Os01t0100650-00);gene_id=Os01g0100650;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 25861 26424 . - . ID=transcript:Os01t0100650-00;Parent=gene:Os01g0100650;biotype=protein_coding;transcript_id=Os01t0100650-00 +1 irgsp three_prime_UTR 25861 26039 . - . Parent=transcript:Os01t0100650-00 +1 irgsp exon 25861 26424 . - . Parent=transcript:Os01t0100650-00;Name=Os01t0100650-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0100650-00.exon1;rank=1 +1 irgsp CDS 26040 26423 . - 0 ID=CDS:Os01t0100650-00;Parent=transcript:Os01t0100650-00;protein_id=Os01t0100650-00 +1 irgsp five_prime_UTR 26424 26424 . - . Parent=transcript:Os01t0100650-00 +### +1 irgsp gene 27143 28644 . + . ID=gene:Os01g0100700;biotype=protein_coding;description=Similar to 40S ribosomal protein S5-1. (Os01t0100700-01);gene_id=Os01g0100700;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 27143 28644 . + . ID=transcript:Os01t0100700-01;Parent=gene:Os01g0100700;biotype=protein_coding;transcript_id=Os01t0100700-01 +1 irgsp five_prime_UTR 27143 27220 . + . Parent=transcript:Os01t0100700-01 +1 irgsp exon 27143 27292 . + . Parent=transcript:Os01t0100700-01;Name=Os01t0100700-01.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0100700-01.exon1;rank=1 +1 irgsp CDS 27221 27292 . + 0 ID=CDS:Os01t0100700-01;Parent=transcript:Os01t0100700-01;protein_id=Os01t0100700-01 +1 irgsp exon 27370 27641 . + . Parent=transcript:Os01t0100700-01;Name=Os01t0100700-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0100700-01.exon2;rank=2 +1 irgsp CDS 27370 27641 . + 0 ID=CDS:Os01t0100700-01;Parent=transcript:Os01t0100700-01;protein_id=Os01t0100700-01 +1 irgsp exon 28090 28293 . + . Parent=transcript:Os01t0100700-01;Name=Os01t0100700-01.exon3;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100700-01.exon3;rank=3 +1 irgsp CDS 28090 28293 . + 1 ID=CDS:Os01t0100700-01;Parent=transcript:Os01t0100700-01;protein_id=Os01t0100700-01 +1 irgsp CDS 28365 28419 . + 1 ID=CDS:Os01t0100700-01;Parent=transcript:Os01t0100700-01;protein_id=Os01t0100700-01 +1 irgsp exon 28365 28644 . + . Parent=transcript:Os01t0100700-01;Name=Os01t0100700-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0100700-01.exon4;rank=4 +1 irgsp three_prime_UTR 28420 28644 . + . Parent=transcript:Os01t0100700-01 +### +1 irgsp gene 29818 34453 . + . ID=gene:Os01g0100800;biotype=protein_coding;description=Protein of unknown function DUF1664 family protein. (Os01t0100800-01);gene_id=Os01g0100800;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 29818 34453 . + . ID=transcript:Os01t0100800-01;Parent=gene:Os01g0100800;biotype=protein_coding;transcript_id=Os01t0100800-01 +1 irgsp five_prime_UTR 29818 29939 . + . Parent=transcript:Os01t0100800-01 +1 irgsp exon 29818 29976 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon1;constitutive=1;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0100800-01.exon1;rank=1 +1 irgsp CDS 29940 29976 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 30146 30228 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0100800-01.exon2;rank=2 +1 irgsp CDS 30146 30228 . + 2 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 30735 30806 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon3;rank=3 +1 irgsp CDS 30735 30806 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 30885 30963 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon4;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0100800-01.exon4;rank=4 +1 irgsp CDS 30885 30963 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 31258 31325 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0100800-01.exon5;rank=5 +1 irgsp CDS 31258 31325 . + 2 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 31505 31606 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon6;rank=6 +1 irgsp CDS 31505 31606 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 32377 32466 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon7;rank=7 +1 irgsp CDS 32377 32466 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 32542 32616 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon8;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon8;rank=8 +1 irgsp CDS 32542 32616 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 32712 32744 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon9;rank=9 +1 irgsp CDS 32712 32744 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 32828 32905 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon10;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon10;rank=10 +1 irgsp CDS 32828 32905 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 33274 33330 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon11;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon11;rank=11 +1 irgsp CDS 33274 33330 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 33400 33471 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon12;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon12;rank=12 +1 irgsp CDS 33400 33471 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 33543 33617 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon13;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100800-01.exon13;rank=13 +1 irgsp CDS 33543 33617 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp CDS 33975 34124 . + 0 ID=CDS:Os01t0100800-01;Parent=transcript:Os01t0100800-01;protein_id=Os01t0100800-01 +1 irgsp exon 33975 34453 . + . Parent=transcript:Os01t0100800-01;Name=Os01t0100800-01.exon14;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0100800-01.exon14;rank=14 +1 irgsp three_prime_UTR 34125 34453 . + . Parent=transcript:Os01t0100800-01 +### +1 irgsp gene 35623 41136 . + . ID=gene:Os01g0100900;Name=SPHINGOSINE-1-PHOSPHATE LYASE 1%2C Sphingosine-1-Phoshpate Lyase 1;biotype=protein_coding;description=Sphingosine-1-phosphate lyase%2C Disease resistance response (Os01t0100900-01);gene_id=Os01g0100900;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 35623 41136 . + . ID=transcript:Os01t0100900-01;Parent=gene:Os01g0100900;biotype=protein_coding;transcript_id=Os01t0100900-01 +1 irgsp five_prime_UTR 35623 35742 . + . Parent=transcript:Os01t0100900-01 +1 irgsp exon 35623 35939 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0100900-01.exon1;rank=1 +1 irgsp CDS 35743 35939 . + 0 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 36027 36072 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0100900-01.exon2;rank=2 +1 irgsp CDS 36027 36072 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 36517 36668 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon3;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0100900-01.exon3;rank=3 +1 irgsp CDS 36517 36668 . + 0 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 36818 36877 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon4;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100900-01.exon4;rank=4 +1 irgsp CDS 36818 36877 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 37594 37818 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon5;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100900-01.exon5;rank=5 +1 irgsp CDS 37594 37818 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 37892 38033 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0100900-01.exon6;rank=6 +1 irgsp CDS 37892 38033 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 38276 38326 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0100900-01.exon7;rank=7 +1 irgsp CDS 38276 38326 . + 0 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 38434 38525 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon8;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0100900-01.exon8;rank=8 +1 irgsp CDS 38434 38525 . + 0 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 39319 39445 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0100900-01.exon9;rank=9 +1 irgsp CDS 39319 39445 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 39553 39568 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon10;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0100900-01.exon10;rank=10 +1 irgsp CDS 39553 39568 . + 0 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 39939 40046 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon11;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0100900-01.exon11;rank=11 +1 irgsp CDS 39939 40046 . + 2 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 40135 40189 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon12;constitutive=1;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0100900-01.exon12;rank=12 +1 irgsp CDS 40135 40189 . + 2 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 40456 40602 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon13;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0100900-01.exon13;rank=13 +1 irgsp CDS 40456 40602 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 40703 40781 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon14;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0100900-01.exon14;rank=14 +1 irgsp CDS 40703 40781 . + 1 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp CDS 40885 41007 . + 0 ID=CDS:Os01t0100900-01;Parent=transcript:Os01t0100900-01;protein_id=Os01t0100900-01 +1 irgsp exon 40885 41136 . + . Parent=transcript:Os01t0100900-01;Name=Os01t0100900-01.exon15;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0100900-01.exon15;rank=15 +1 irgsp three_prime_UTR 41008 41136 . + . Parent=transcript:Os01t0100900-01 +### +1 irgsp gene 58658 61090 . + . ID=gene:Os01g0101150;biotype=protein_coding;description=Hypothetical conserved gene. (Os01t0101150-00);gene_id=Os01g0101150;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 58658 61090 . + . ID=transcript:Os01t0101150-00;Parent=gene:Os01g0101150;biotype=protein_coding;transcript_id=Os01t0101150-00 +1 irgsp exon 58658 61090 . + . Parent=transcript:Os01t0101150-00;Name=Os01t0101150-00.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0101150-00.exon1;rank=1 +1 irgsp CDS 58658 61090 . + 0 ID=CDS:Os01t0101150-00;Parent=transcript:Os01t0101150-00;protein_id=Os01t0101150-00 +### +1 irgsp gene 62060 65537 . + . ID=gene:Os01g0101200;biotype=protein_coding;description=2%2C3-diketo-5-methylthio-1-phosphopentane phosphatase domain containing protein. (Os01t0101200-01)%3B2%2C3-diketo-5-methylthio-1-phosphopentane phosphatase domain containing protein. (Os01t0101200-02);gene_id=Os01g0101200;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 62060 63576 . + . ID=transcript:Os01t0101200-01;Parent=gene:Os01g0101200;biotype=protein_coding;transcript_id=Os01t0101200-01 +1 irgsp five_prime_UTR 62060 62103 . + . Parent=transcript:Os01t0101200-01 +1 irgsp exon 62060 62295 . + . Parent=transcript:Os01t0101200-01;Name=Os01t0101200-01.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0101200-01.exon1;rank=1 +1 irgsp CDS 62104 62295 . + 0 ID=CDS:Os01t0101200-01;Parent=transcript:Os01t0101200-01;protein_id=Os01t0101200-01 +1 irgsp exon 62385 62905 . + . Parent=transcript:Os01t0101200-01;Name=Os01t0101200-02.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0101200-02.exon2;rank=2 +1 irgsp CDS 62385 62905 . + 0 ID=CDS:Os01t0101200-01;Parent=transcript:Os01t0101200-01;protein_id=Os01t0101200-01 +1 irgsp exon 62996 63114 . + . Parent=transcript:Os01t0101200-01;Name=Os01t0101200-02.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=2;exon_id=Os01t0101200-02.exon3;rank=3 +1 irgsp CDS 62996 63114 . + 1 ID=CDS:Os01t0101200-01;Parent=transcript:Os01t0101200-01;protein_id=Os01t0101200-01 +1 irgsp CDS 63248 63345 . + 2 ID=CDS:Os01t0101200-01;Parent=transcript:Os01t0101200-01;protein_id=Os01t0101200-01 +1 irgsp exon 63248 63576 . + . Parent=transcript:Os01t0101200-01;Name=Os01t0101200-01.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0101200-01.exon4;rank=4 +1 irgsp three_prime_UTR 63346 63576 . + . Parent=transcript:Os01t0101200-01 +1 irgsp mRNA 62112 65537 . + . ID=transcript:Os01t0101200-02;Parent=gene:Os01g0101200;biotype=protein_coding;transcript_id=Os01t0101200-02 +1 irgsp five_prime_UTR 62112 62112 . + . Parent=transcript:Os01t0101200-02 +1 irgsp exon 62112 62295 . + . Parent=transcript:Os01t0101200-02;Name=Os01t0101200-02.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0101200-02.exon1;rank=1 +1 irgsp CDS 62113 62295 . + 0 ID=CDS:Os01t0101200-02;Parent=transcript:Os01t0101200-02;protein_id=Os01t0101200-02 +1 irgsp exon 62385 62905 . + . Parent=transcript:Os01t0101200-02;Name=Os01t0101200-02.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0101200-02.exon2;rank=2 +1 irgsp CDS 62385 62905 . + 0 ID=CDS:Os01t0101200-02;Parent=transcript:Os01t0101200-02;protein_id=Os01t0101200-02 +1 irgsp exon 62996 63114 . + . Parent=transcript:Os01t0101200-02;Name=Os01t0101200-02.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=2;exon_id=Os01t0101200-02.exon3;rank=3 +1 irgsp CDS 62996 63114 . + 1 ID=CDS:Os01t0101200-02;Parent=transcript:Os01t0101200-02;protein_id=Os01t0101200-02 +1 irgsp CDS 63248 63345 . + 2 ID=CDS:Os01t0101200-02;Parent=transcript:Os01t0101200-02;protein_id=Os01t0101200-02 +1 irgsp exon 63248 65537 . + . Parent=transcript:Os01t0101200-02;Name=Os01t0101200-02.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0101200-02.exon4;rank=4 +1 irgsp three_prime_UTR 63346 65537 . + . Parent=transcript:Os01t0101200-02 +### +1 irgsp gene 63350 66302 . - . ID=gene:Os01g0101300;biotype=protein_coding;description=Similar to MRNA%2C partial cds%2C clone: RAFL22-26-L17. (Fragment). (Os01t0101300-01);gene_id=Os01g0101300;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 63350 66302 . - . ID=transcript:Os01t0101300-01;Parent=gene:Os01g0101300;biotype=protein_coding;transcript_id=Os01t0101300-01 +1 irgsp three_prime_UTR 63350 63669 . - . Parent=transcript:Os01t0101300-01 +1 irgsp exon 63350 63783 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon7;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0101300-01.exon7;rank=7 +1 irgsp CDS 63670 63783 . - 0 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp exon 63877 64020 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0101300-01.exon6;rank=6 +1 irgsp CDS 63877 64020 . - 0 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp exon 64339 64431 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0101300-01.exon5;rank=5 +1 irgsp CDS 64339 64431 . - 0 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp exon 64665 64779 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0101300-01.exon4;rank=4 +1 irgsp CDS 64665 64779 . - 1 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp exon 64902 65152 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon3;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0101300-01.exon3;rank=3 +1 irgsp CDS 64902 65152 . - 0 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp exon 65248 65431 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0101300-01.exon2;rank=2 +1 irgsp CDS 65248 65431 . - 1 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp CDS 65628 65950 . - 0 ID=CDS:Os01t0101300-01;Parent=transcript:Os01t0101300-01;protein_id=Os01t0101300-01 +1 irgsp exon 65628 66302 . - . Parent=transcript:Os01t0101300-01;Name=Os01t0101300-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0101300-01.exon1;rank=1 +1 irgsp five_prime_UTR 65951 66302 . - . Parent=transcript:Os01t0101300-01 +### +1 irgsp gene 72816 78349 . + . ID=gene:Os01g0101600;biotype=protein_coding;description=Immunoglobulin-like fold domain containing protein. (Os01t0101600-01)%3BImmunoglobulin-like fold domain containing protein. (Os01t0101600-02)%3BHypothetical conserved gene. (Os01t0101600-03);gene_id=Os01g0101600;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 72816 78349 . + . ID=transcript:Os01t0101600-01;Parent=gene:Os01g0101600;biotype=protein_coding;transcript_id=Os01t0101600-01 +1 irgsp five_prime_UTR 72816 72902 . + . Parent=transcript:Os01t0101600-01 +1 irgsp exon 72816 73935 . + . Parent=transcript:Os01t0101600-01;Name=Os01t0101600-01.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0101600-01.exon1;rank=1 +1 irgsp CDS 72903 73935 . + 0 ID=CDS:Os01t0101600-01;Parent=transcript:Os01t0101600-01;protein_id=Os01t0101600-01 +1 irgsp exon 74468 74981 . + . Parent=transcript:Os01t0101600-01;Name=Os01t0101600-02.exon2;constitutive=0;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0101600-02.exon2;rank=2 +1 irgsp CDS 74468 74981 . + 2 ID=CDS:Os01t0101600-01;Parent=transcript:Os01t0101600-01;protein_id=Os01t0101600-01 +1 irgsp CDS 75619 77008 . + 1 ID=CDS:Os01t0101600-01;Parent=transcript:Os01t0101600-01;protein_id=Os01t0101600-01 +1 irgsp exon 75619 77205 . + . Parent=transcript:Os01t0101600-01;Name=Os01t0101600-01.exon3;constitutive=0;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0101600-01.exon3;rank=3 +1 irgsp three_prime_UTR 77009 77205 . + . Parent=transcript:Os01t0101600-01 +1 irgsp exon 77333 78349 . + . Parent=transcript:Os01t0101600-01;Name=Os01t0101600-01.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101600-01.exon4;rank=4 +1 irgsp three_prime_UTR 77333 78349 . + . Parent=transcript:Os01t0101600-01 +1 irgsp mRNA 72823 77699 . + . ID=transcript:Os01t0101600-02;Parent=gene:Os01g0101600;biotype=protein_coding;transcript_id=Os01t0101600-02 +1 irgsp five_prime_UTR 72823 72902 . + . Parent=transcript:Os01t0101600-02 +1 irgsp exon 72823 73935 . + . Parent=transcript:Os01t0101600-02;Name=Os01t0101600-02.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0101600-02.exon1;rank=1 +1 irgsp CDS 72903 73935 . + 0 ID=CDS:Os01t0101600-02;Parent=transcript:Os01t0101600-02;protein_id=Os01t0101600-02 +1 irgsp exon 74468 74981 . + . Parent=transcript:Os01t0101600-02;Name=Os01t0101600-02.exon2;constitutive=0;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0101600-02.exon2;rank=2 +1 irgsp CDS 74468 74981 . + 2 ID=CDS:Os01t0101600-02;Parent=transcript:Os01t0101600-02;protein_id=Os01t0101600-02 +1 irgsp CDS 75619 77008 . + 1 ID=CDS:Os01t0101600-02;Parent=transcript:Os01t0101600-02;protein_id=Os01t0101600-02 +1 irgsp exon 75619 77699 . + . Parent=transcript:Os01t0101600-02;Name=Os01t0101600-02.exon3;constitutive=0;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0101600-02.exon3;rank=3 +1 irgsp three_prime_UTR 77009 77699 . + . Parent=transcript:Os01t0101600-02 +1 irgsp mRNA 75942 77699 . + . ID=transcript:Os01t0101600-03;Parent=gene:Os01g0101600;biotype=protein_coding;transcript_id=Os01t0101600-03 +1 irgsp five_prime_UTR 75942 75943 . + . Parent=transcript:Os01t0101600-03 +1 irgsp exon 75942 77699 . + . Parent=transcript:Os01t0101600-03;Name=Os01t0101600-03.exon1;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101600-03.exon1;rank=1 +1 irgsp CDS 75944 77008 . + 0 ID=CDS:Os01t0101600-03;Parent=transcript:Os01t0101600-03;protein_id=Os01t0101600-03 +1 irgsp three_prime_UTR 77009 77699 . + . Parent=transcript:Os01t0101600-03 +### +1 irgsp gene 82426 84095 . + . ID=gene:Os01g0101700;Name=DnaJ domain protein C1%2C rice DJC26 homolog;biotype=protein_coding;description=Similar to chaperone protein dnaJ 20. (Os01t0101700-00);gene_id=Os01g0101700;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 82426 84095 . + . ID=transcript:Os01t0101700-00;Parent=gene:Os01g0101700;biotype=protein_coding;transcript_id=Os01t0101700-00 +1 irgsp five_prime_UTR 82426 82506 . + . Parent=transcript:Os01t0101700-00 +1 irgsp exon 82426 82932 . + . Parent=transcript:Os01t0101700-00;Name=Os01t0101700-00.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0101700-00.exon1;rank=1 +1 irgsp CDS 82507 82932 . + 0 ID=CDS:Os01t0101700-00;Parent=transcript:Os01t0101700-00;protein_id=Os01t0101700-00 +1 irgsp CDS 83724 83864 . + 0 ID=CDS:Os01t0101700-00;Parent=transcript:Os01t0101700-00;protein_id=Os01t0101700-00 +1 irgsp exon 83724 84095 . + . Parent=transcript:Os01t0101700-00;Name=Os01t0101700-00.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0101700-00.exon2;rank=2 +1 irgsp three_prime_UTR 83865 84095 . + . Parent=transcript:Os01t0101700-00 +### +1 irgsp gene 85337 88844 . + . ID=gene:Os01g0101800;biotype=protein_coding;description=Conserved hypothetical protein. (Os01t0101800-01);gene_id=Os01g0101800;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 85337 88844 . + . ID=transcript:Os01t0101800-01;Parent=gene:Os01g0101800;biotype=protein_coding;transcript_id=Os01t0101800-01 +1 irgsp five_prime_UTR 85337 85378 . + . Parent=transcript:Os01t0101800-01 +1 irgsp exon 85337 85600 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0101800-01.exon1;rank=1 +1 irgsp CDS 85379 85600 . + 0 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp exon 85737 85830 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0101800-01.exon2;rank=2 +1 irgsp CDS 85737 85830 . + 0 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp exon 85935 86086 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0101800-01.exon3;rank=3 +1 irgsp CDS 85935 86086 . + 2 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp exon 86212 86299 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon4;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0101800-01.exon4;rank=4 +1 irgsp CDS 86212 86299 . + 0 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp exon 86399 87681 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0101800-01.exon5;rank=5 +1 irgsp CDS 86399 87681 . + 2 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp exon 88291 88398 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0101800-01.exon6;rank=6 +1 irgsp CDS 88291 88398 . + 0 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp CDS 88500 88583 . + 0 ID=CDS:Os01t0101800-01;Parent=transcript:Os01t0101800-01;protein_id=Os01t0101800-01 +1 irgsp exon 88500 88844 . + . Parent=transcript:Os01t0101800-01;Name=Os01t0101800-01.exon7;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0101800-01.exon7;rank=7 +1 irgsp three_prime_UTR 88584 88844 . + . Parent=transcript:Os01t0101800-01 +### +1 irgsp gene 86211 88583 . - . ID=gene:Os01g0101850;biotype=protein_coding;description=Hypothetical protein. (Os01t0101850-00);gene_id=Os01g0101850;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 86211 88583 . - . ID=transcript:Os01t0101850-00;Parent=gene:Os01g0101850;biotype=protein_coding;transcript_id=Os01t0101850-00 +1 irgsp exon 86211 86277 . - . Parent=transcript:Os01t0101850-00;Name=Os01t0101850-00.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101850-00.exon4;rank=4 +1 irgsp three_prime_UTR 86211 86277 . - . Parent=transcript:Os01t0101850-00 +1 irgsp three_prime_UTR 86384 87326 . - . Parent=transcript:Os01t0101850-00 +1 irgsp exon 86384 87694 . - . Parent=transcript:Os01t0101850-00;Name=Os01t0101850-00.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101850-00.exon3;rank=3 +1 irgsp CDS 87327 87662 . - 0 ID=CDS:Os01t0101850-00;Parent=transcript:Os01t0101850-00;protein_id=Os01t0101850-00 +1 irgsp five_prime_UTR 87663 87694 . - . Parent=transcript:Os01t0101850-00 +1 irgsp exon 88308 88396 . - . Parent=transcript:Os01t0101850-00;Name=Os01t0101850-00.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101850-00.exon2;rank=2 +1 irgsp five_prime_UTR 88308 88396 . - . Parent=transcript:Os01t0101850-00 +1 irgsp exon 88496 88583 . - . Parent=transcript:Os01t0101850-00;Name=Os01t0101850-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101850-00.exon1;rank=1 +1 irgsp five_prime_UTR 88496 88583 . - . Parent=transcript:Os01t0101850-00 +### +1 irgsp gene 88883 89228 . - . ID=gene:Os01g0101900;biotype=protein_coding;description=Similar to OSIGBa0075F02.3 protein. (Os01t0101900-00);gene_id=Os01g0101900;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 88883 89228 . - . ID=transcript:Os01t0101900-00;Parent=gene:Os01g0101900;biotype=protein_coding;transcript_id=Os01t0101900-00 +1 irgsp three_prime_UTR 88883 88985 . - . Parent=transcript:Os01t0101900-00 +1 irgsp exon 88883 89228 . - . Parent=transcript:Os01t0101900-00;Name=Os01t0101900-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0101900-00.exon1;rank=1 +1 irgsp CDS 88986 89204 . - 0 ID=CDS:Os01t0101900-00;Parent=transcript:Os01t0101900-00;protein_id=Os01t0101900-00 +1 irgsp five_prime_UTR 89205 89228 . - . Parent=transcript:Os01t0101900-00 +### +1 irgsp gene 89763 91465 . - . ID=gene:Os01g0102000;Name=NON-SPECIFIC PHOSPHOLIPASE C5;biotype=protein_coding;description=Phosphoesterase family protein. (Os01t0102000-01);gene_id=Os01g0102000;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 89763 91465 . - . ID=transcript:Os01t0102000-01;Parent=gene:Os01g0102000;biotype=protein_coding;transcript_id=Os01t0102000-01 +1 irgsp three_prime_UTR 89763 89824 . - . Parent=transcript:Os01t0102000-01 +1 irgsp exon 89763 91465 . - . Parent=transcript:Os01t0102000-01;Name=Os01t0102000-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0102000-01.exon1;rank=1 +1 irgsp CDS 89825 91411 . - 0 ID=CDS:Os01t0102000-01;Parent=transcript:Os01t0102000-01;protein_id=Os01t0102000-01 +1 irgsp five_prime_UTR 91412 91465 . - . Parent=transcript:Os01t0102000-01 +### +1 irgsp gene 134300 135439 . + . ID=gene:Os01g0102300;Name=OsTLP27;biotype=protein_coding;description=Thylakoid lumen protein%2C Photosynthesis and chloroplast development (Os01t0102300-01);gene_id=Os01g0102300;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 134300 135439 . + . ID=transcript:Os01t0102300-01;Parent=gene:Os01g0102300;biotype=protein_coding;transcript_id=Os01t0102300-01 +1 irgsp five_prime_UTR 134300 134310 . + . Parent=transcript:Os01t0102300-01 +1 irgsp exon 134300 134615 . + . Parent=transcript:Os01t0102300-01;Name=Os01t0102300-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0102300-01.exon1;rank=1 +1 irgsp CDS 134311 134615 . + 0 ID=CDS:Os01t0102300-01;Parent=transcript:Os01t0102300-01;protein_id=Os01t0102300-01 +1 irgsp exon 134698 134824 . + . Parent=transcript:Os01t0102300-01;Name=Os01t0102300-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0102300-01.exon2;rank=2 +1 irgsp CDS 134698 134824 . + 1 ID=CDS:Os01t0102300-01;Parent=transcript:Os01t0102300-01;protein_id=Os01t0102300-01 +1 irgsp CDS 134912 135253 . + 0 ID=CDS:Os01t0102300-01;Parent=transcript:Os01t0102300-01;protein_id=Os01t0102300-01 +1 irgsp exon 134912 135439 . + . Parent=transcript:Os01t0102300-01;Name=Os01t0102300-01.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0102300-01.exon3;rank=3 +1 irgsp three_prime_UTR 135254 135439 . + . Parent=transcript:Os01t0102300-01 +### +1 irgsp gene 139826 141555 . + . ID=gene:Os01g0102400;Name=HAP5H SUBUNIT OF CCAAT-BOX BINDING COMPLEX;biotype=protein_coding;description=Histone-fold domain containing protein. (Os01t0102400-01);gene_id=Os01g0102400;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 139826 141555 . + . ID=transcript:Os01t0102400-01;Parent=gene:Os01g0102400;biotype=protein_coding;transcript_id=Os01t0102400-01 +1 irgsp exon 139826 139906 . + . Parent=transcript:Os01t0102400-01;Name=Os01t0102400-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0102400-01.exon1;rank=1 +1 irgsp five_prime_UTR 139826 139906 . + . Parent=transcript:Os01t0102400-01 +1 irgsp five_prime_UTR 140120 140149 . + . Parent=transcript:Os01t0102400-01 +1 irgsp exon 140120 141555 . + . Parent=transcript:Os01t0102400-01;Name=Os01t0102400-01.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0102400-01.exon2;rank=2 +1 irgsp CDS 140150 141415 . + 0 ID=CDS:Os01t0102400-01;Parent=transcript:Os01t0102400-01;protein_id=Os01t0102400-01 +1 irgsp three_prime_UTR 141416 141555 . + . Parent=transcript:Os01t0102400-01 +### +1 irgsp gene 141959 144554 . + . ID=gene:Os01g0102500;biotype=protein_coding;description=Conserved hypothetical protein. (Os01t0102500-01);gene_id=Os01g0102500;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 141959 144554 . + . ID=transcript:Os01t0102500-01;Parent=gene:Os01g0102500;biotype=protein_coding;transcript_id=Os01t0102500-01 +1 irgsp five_prime_UTR 141959 142083 . + . Parent=transcript:Os01t0102500-01 +1 irgsp exon 141959 142631 . + . Parent=transcript:Os01t0102500-01;Name=Os01t0102500-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0102500-01.exon1;rank=1 +1 irgsp CDS 142084 142631 . + 0 ID=CDS:Os01t0102500-01;Parent=transcript:Os01t0102500-01;protein_id=Os01t0102500-01 +1 irgsp exon 143191 143431 . + . Parent=transcript:Os01t0102500-01;Name=Os01t0102500-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0102500-01.exon2;rank=2 +1 irgsp CDS 143191 143431 . + 1 ID=CDS:Os01t0102500-01;Parent=transcript:Os01t0102500-01;protein_id=Os01t0102500-01 +1 irgsp exon 143563 143680 . + . Parent=transcript:Os01t0102500-01;Name=Os01t0102500-01.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0102500-01.exon3;rank=3 +1 irgsp CDS 143563 143680 . + 0 ID=CDS:Os01t0102500-01;Parent=transcript:Os01t0102500-01;protein_id=Os01t0102500-01 +1 irgsp CDS 143817 143908 . + 2 ID=CDS:Os01t0102500-01;Parent=transcript:Os01t0102500-01;protein_id=Os01t0102500-01 +1 irgsp exon 143817 144554 . + . Parent=transcript:Os01t0102500-01;Name=Os01t0102500-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0102500-01.exon4;rank=4 +1 irgsp three_prime_UTR 143909 144554 . + . Parent=transcript:Os01t0102500-01 +### +1 irgsp gene 145603 147847 . + . ID=gene:Os01g0102600;Name=Shikimate kinase 4;biotype=protein_coding;description=Shikimate kinase domain containing protein. (Os01t0102600-01)%3BSimilar to shikimate kinase family protein. (Os01t0102600-02);gene_id=Os01g0102600;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 145603 147847 . + . ID=transcript:Os01t0102600-01;Parent=gene:Os01g0102600;biotype=protein_coding;transcript_id=Os01t0102600-01 +1 irgsp five_prime_UTR 145603 145644 . + . Parent=transcript:Os01t0102600-01 +1 irgsp exon 145603 145786 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0102600-01.exon1;rank=1 +1 irgsp CDS 145645 145786 . + 0 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 145905 145951 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon2;constitutive=0;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0102600-01.exon2;rank=2 +1 irgsp CDS 145905 145951 . + 2 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 146028 146082 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon3;constitutive=0;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0102600-01.exon3;rank=3 +1 irgsp CDS 146028 146082 . + 0 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 146179 146339 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon4;constitutive=0;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0102600-01.exon4;rank=4 +1 irgsp CDS 146179 146339 . + 2 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 146450 146532 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon5;constitutive=0;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0102600-01.exon5;rank=5 +1 irgsp CDS 146450 146532 . + 0 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 146611 146719 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon6;constitutive=0;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0102600-01.exon6;rank=6 +1 irgsp CDS 146611 146719 . + 1 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 147106 147184 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon7;constitutive=0;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0102600-01.exon7;rank=7 +1 irgsp CDS 147106 147184 . + 0 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 147311 147375 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-02.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0102600-02.exon2;rank=8 +1 irgsp CDS 147311 147375 . + 2 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp CDS 147507 147575 . + 0 ID=CDS:Os01t0102600-01;Parent=transcript:Os01t0102600-01;protein_id=Os01t0102600-01 +1 irgsp exon 147507 147847 . + . Parent=transcript:Os01t0102600-01;Name=Os01t0102600-01.exon9;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0102600-01.exon9;rank=9 +1 irgsp three_prime_UTR 147576 147847 . + . Parent=transcript:Os01t0102600-01 +1 irgsp mRNA 147104 147805 . + . ID=transcript:Os01t0102600-02;Parent=gene:Os01g0102600;biotype=protein_coding;transcript_id=Os01t0102600-02 +1 irgsp five_prime_UTR 147104 147105 . + . Parent=transcript:Os01t0102600-02 +1 irgsp exon 147104 147184 . + . Parent=transcript:Os01t0102600-02;Name=Os01t0102600-02.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0102600-02.exon1;rank=1 +1 irgsp CDS 147106 147184 . + 0 ID=CDS:Os01t0102600-02;Parent=transcript:Os01t0102600-02;protein_id=Os01t0102600-02 +1 irgsp exon 147311 147375 . + . Parent=transcript:Os01t0102600-02;Name=Os01t0102600-02.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0102600-02.exon2;rank=2 +1 irgsp CDS 147311 147375 . + 2 ID=CDS:Os01t0102600-02;Parent=transcript:Os01t0102600-02;protein_id=Os01t0102600-02 +1 irgsp CDS 147507 147575 . + 0 ID=CDS:Os01t0102600-02;Parent=transcript:Os01t0102600-02;protein_id=Os01t0102600-02 +1 irgsp exon 147507 147805 . + . Parent=transcript:Os01t0102600-02;Name=Os01t0102600-02.exon3;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0102600-02.exon3;rank=3 +1 irgsp three_prime_UTR 147576 147805 . + . Parent=transcript:Os01t0102600-02 +### +1 irgsp gene 148085 150568 . + . ID=gene:Os01g0102700;biotype=protein_coding;description=Translocon-associated beta family protein. (Os01t0102700-01);gene_id=Os01g0102700;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 148085 150568 . + . ID=transcript:Os01t0102700-01;Parent=gene:Os01g0102700;biotype=protein_coding;transcript_id=Os01t0102700-01 +1 irgsp five_prime_UTR 148085 148146 . + . Parent=transcript:Os01t0102700-01 +1 irgsp exon 148085 148313 . + . Parent=transcript:Os01t0102700-01;Name=Os01t0102700-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0102700-01.exon1;rank=1 +1 irgsp CDS 148147 148313 . + 0 ID=CDS:Os01t0102700-01;Parent=transcript:Os01t0102700-01;protein_id=Os01t0102700-01 +1 irgsp exon 149450 149548 . + . Parent=transcript:Os01t0102700-01;Name=Os01t0102700-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0102700-01.exon2;rank=2 +1 irgsp CDS 149450 149548 . + 1 ID=CDS:Os01t0102700-01;Parent=transcript:Os01t0102700-01;protein_id=Os01t0102700-01 +1 irgsp exon 149634 149742 . + . Parent=transcript:Os01t0102700-01;Name=Os01t0102700-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0102700-01.exon3;rank=3 +1 irgsp CDS 149634 149742 . + 1 ID=CDS:Os01t0102700-01;Parent=transcript:Os01t0102700-01;protein_id=Os01t0102700-01 +1 irgsp exon 149856 149931 . + . Parent=transcript:Os01t0102700-01;Name=Os01t0102700-01.exon4;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0102700-01.exon4;rank=4 +1 irgsp CDS 149856 149931 . + 0 ID=CDS:Os01t0102700-01;Parent=transcript:Os01t0102700-01;protein_id=Os01t0102700-01 +1 irgsp CDS 150152 150318 . + 2 ID=CDS:Os01t0102700-01;Parent=transcript:Os01t0102700-01;protein_id=Os01t0102700-01 +1 irgsp exon 150152 150568 . + . Parent=transcript:Os01t0102700-01;Name=Os01t0102700-01.exon5;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0102700-01.exon5;rank=5 +1 irgsp three_prime_UTR 150319 150568 . + . Parent=transcript:Os01t0102700-01 +### +1 irgsp gene 152853 156449 . + . ID=gene:Os01g0102800;Name=Cockayne syndrome WD-repeat protein;biotype=protein_coding;description=Similar to chromatin remodeling complex subunit. (Os01t0102800-01);gene_id=Os01g0102800;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 152853 156449 . + . ID=transcript:Os01t0102800-01;Parent=gene:Os01g0102800;biotype=protein_coding;transcript_id=Os01t0102800-01 +1 irgsp five_prime_UTR 152853 152853 . + . Parent=transcript:Os01t0102800-01 +1 irgsp exon 152853 153025 . + . Parent=transcript:Os01t0102800-01;Name=Os01t0102800-01.exon1;constitutive=1;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0102800-01.exon1;rank=1 +1 irgsp CDS 152854 153025 . + 0 ID=CDS:Os01t0102800-01;Parent=transcript:Os01t0102800-01;protein_id=Os01t0102800-01 +1 irgsp exon 153178 154646 . + . Parent=transcript:Os01t0102800-01;Name=Os01t0102800-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0102800-01.exon2;rank=2 +1 irgsp CDS 153178 154646 . + 2 ID=CDS:Os01t0102800-01;Parent=transcript:Os01t0102800-01;protein_id=Os01t0102800-01 +1 irgsp exon 155010 155450 . + . Parent=transcript:Os01t0102800-01;Name=Os01t0102800-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0102800-01.exon3;rank=3 +1 irgsp CDS 155010 155450 . + 0 ID=CDS:Os01t0102800-01;Parent=transcript:Os01t0102800-01;protein_id=Os01t0102800-01 +1 irgsp CDS 155543 156214 . + 0 ID=CDS:Os01t0102800-01;Parent=transcript:Os01t0102800-01;protein_id=Os01t0102800-01 +1 irgsp exon 155543 156449 . + . Parent=transcript:Os01t0102800-01;Name=Os01t0102800-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0102800-01.exon4;rank=4 +1 irgsp three_prime_UTR 156215 156449 . + . Parent=transcript:Os01t0102800-01 +### +1 irgsp gene 164577 168921 . + . ID=gene:Os01g0102850;biotype=protein_coding;description=Similar to nitrilase 2. (Os01t0102850-00);gene_id=Os01g0102850;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 164577 168921 . + . ID=transcript:Os01t0102850-00;Parent=gene:Os01g0102850;biotype=protein_coding;transcript_id=Os01t0102850-00 +1 irgsp exon 164577 164905 . + . Parent=transcript:Os01t0102850-00;Name=Os01t0102850-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0102850-00.exon1;rank=1 +1 irgsp five_prime_UTR 164577 164905 . + . Parent=transcript:Os01t0102850-00 +1 irgsp five_prime_UTR 168499 168804 . + . Parent=transcript:Os01t0102850-00 +1 irgsp exon 168499 168921 . + . Parent=transcript:Os01t0102850-00;Name=Os01t0102850-00.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0102850-00.exon2;rank=2 +1 irgsp CDS 168805 168921 . + 0 ID=CDS:Os01t0102850-00;Parent=transcript:Os01t0102850-00;protein_id=Os01t0102850-00 +### +1 irgsp gene 169390 170316 . - . ID=gene:Os01g0102900;Name=LIGHT-REGULATED GENE 1;biotype=protein_coding;description=Light-regulated protein%2C Regulation of light-dependent attachment of LEAF-TYPE FERREDOXIN-NADP+ OXIDOREDUCTASE (LFNR) to the thylakoid membrane (Os01t0102900-01);gene_id=Os01g0102900;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 169390 170316 . - . ID=transcript:Os01t0102900-01;Parent=gene:Os01g0102900;biotype=protein_coding;transcript_id=Os01t0102900-01 +1 irgsp three_prime_UTR 169390 169598 . - . Parent=transcript:Os01t0102900-01 +1 irgsp exon 169390 169656 . - . Parent=transcript:Os01t0102900-01;Name=Os01t0102900-01.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0102900-01.exon3;rank=3 +1 irgsp CDS 169599 169656 . - 1 ID=CDS:Os01t0102900-01;Parent=transcript:Os01t0102900-01;protein_id=Os01t0102900-01 +1 irgsp exon 169751 169909 . - . Parent=transcript:Os01t0102900-01;Name=Os01t0102900-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=2;exon_id=Os01t0102900-01.exon2;rank=2 +1 irgsp CDS 169751 169909 . - 1 ID=CDS:Os01t0102900-01;Parent=transcript:Os01t0102900-01;protein_id=Os01t0102900-01 +1 irgsp CDS 170091 170260 . - 0 ID=CDS:Os01t0102900-01;Parent=transcript:Os01t0102900-01;protein_id=Os01t0102900-01 +1 irgsp exon 170091 170316 . - . Parent=transcript:Os01t0102900-01;Name=Os01t0102900-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0102900-01.exon1;rank=1 +1 irgsp five_prime_UTR 170261 170316 . - . Parent=transcript:Os01t0102900-01 +### +1 irgsp gene 170798 173144 . - . ID=gene:Os01g0103000;biotype=protein_coding;description=Snf7 family protein. (Os01t0103000-01);gene_id=Os01g0103000;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 170798 173144 . - . ID=transcript:Os01t0103000-01;Parent=gene:Os01g0103000;biotype=protein_coding;transcript_id=Os01t0103000-01 +1 irgsp three_prime_UTR 170798 171044 . - . Parent=transcript:Os01t0103000-01 +1 irgsp exon 170798 171095 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon7;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0103000-01.exon7;rank=7 +1 irgsp CDS 171045 171095 . - 0 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp exon 171406 171554 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0103000-01.exon6;rank=6 +1 irgsp CDS 171406 171554 . - 2 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp exon 171764 171875 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon5;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0103000-01.exon5;rank=5 +1 irgsp CDS 171764 171875 . - 0 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp exon 172398 172469 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0103000-01.exon4;rank=4 +1 irgsp CDS 172398 172469 . - 0 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp exon 172578 172671 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0103000-01.exon3;rank=3 +1 irgsp CDS 172578 172671 . - 1 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp exon 172770 172921 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0103000-01.exon2;rank=2 +1 irgsp CDS 172770 172921 . - 0 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp CDS 173004 173072 . - 0 ID=CDS:Os01t0103000-01;Parent=transcript:Os01t0103000-01;protein_id=Os01t0103000-01 +1 irgsp exon 173004 173144 . - . Parent=transcript:Os01t0103000-01;Name=Os01t0103000-01.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0103000-01.exon1;rank=1 +1 irgsp five_prime_UTR 173073 173144 . - . Parent=transcript:Os01t0103000-01 +### +1 irgsp gene 178607 180575 . + . ID=gene:Os01g0103100;biotype=protein_coding;description=TGF-beta receptor%2C type I/II extracellular region family protein. (Os01t0103100-01)%3BSimilar to predicted protein. (Os01t0103100-02);gene_id=Os01g0103100;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 178607 180548 . + . ID=transcript:Os01t0103100-01;Parent=gene:Os01g0103100;biotype=protein_coding;transcript_id=Os01t0103100-01 +1 irgsp five_prime_UTR 178607 178641 . + . Parent=transcript:Os01t0103100-01 +1 irgsp exon 178607 180548 . + . Parent=transcript:Os01t0103100-01;Name=Os01t0103100-01.exon1;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103100-01.exon1;rank=1 +1 irgsp CDS 178642 180462 . + 0 ID=CDS:Os01t0103100-01;Parent=transcript:Os01t0103100-01;protein_id=Os01t0103100-01 +1 irgsp three_prime_UTR 180463 180548 . + . Parent=transcript:Os01t0103100-01 +1 irgsp mRNA 178652 180575 . + . ID=transcript:Os01t0103100-02;Parent=gene:Os01g0103100;biotype=protein_coding;transcript_id=Os01t0103100-02 +1 irgsp five_prime_UTR 178652 178677 . + . Parent=transcript:Os01t0103100-02 +1 irgsp exon 178652 180575 . + . Parent=transcript:Os01t0103100-02;Name=Os01t0103100-02.exon1;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103100-02.exon1;rank=1 +1 irgsp CDS 178678 180462 . + 0 ID=CDS:Os01t0103100-02;Parent=transcript:Os01t0103100-02;protein_id=Os01t0103100-02 +1 irgsp three_prime_UTR 180463 180575 . + . Parent=transcript:Os01t0103100-02 +### +1 irgsp gene 178815 180433 . - . ID=gene:Os01g0103075;biotype=protein_coding;description=Hypothetical protein. (Os01t0103075-00);gene_id=Os01g0103075;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 178815 180433 . - . ID=transcript:Os01t0103075-00;Parent=gene:Os01g0103075;biotype=protein_coding;transcript_id=Os01t0103075-00 +1 irgsp three_prime_UTR 178815 179511 . - . Parent=transcript:Os01t0103075-00 +1 irgsp exon 178815 180433 . - . Parent=transcript:Os01t0103075-00;Name=Os01t0103075-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103075-00.exon1;rank=1 +1 irgsp CDS 179512 180054 . - 0 ID=CDS:Os01t0103075-00;Parent=transcript:Os01t0103075-00;protein_id=Os01t0103075-00 +1 irgsp five_prime_UTR 180055 180433 . - . Parent=transcript:Os01t0103075-00 +### +1 Ensembl_Plants ncRNA_gene 182074 182154 . + . ID=gene:ENSRNA049442722;Name=tRNA-Leu;biotype=tRNA;description=tRNA-Leu for anticodon AAG;gene_id=ENSRNA049442722;logic_name=trnascan_gene +1 Ensembl_Plants tRNA 182074 182154 . + . ID=transcript:ENSRNA049442722-T1;Parent=gene:ENSRNA049442722;biotype=tRNA;transcript_id=ENSRNA049442722-T1 +1 Ensembl_Plants exon 182074 182154 . + . Parent=transcript:ENSRNA049442722-T1;Name=ENSRNA049442722-E1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=ENSRNA049442722-E1;rank=1 +### +1 irgsp gene 185189 185828 . - . ID=gene:Os01g0103400;biotype=protein_coding;description=Hypothetical gene. (Os01t0103400-01);gene_id=Os01g0103400;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 185189 185828 . - . ID=transcript:Os01t0103400-01;Parent=gene:Os01g0103400;biotype=protein_coding;transcript_id=Os01t0103400-01 +1 irgsp three_prime_UTR 185189 185434 . - . Parent=transcript:Os01t0103400-01 +1 irgsp exon 185189 185828 . - . Parent=transcript:Os01t0103400-01;Name=Os01t0103400-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103400-01.exon1;rank=1 +1 irgsp CDS 185435 185827 . - 0 ID=CDS:Os01t0103400-01;Parent=transcript:Os01t0103400-01;protein_id=Os01t0103400-01 +1 irgsp five_prime_UTR 185828 185828 . - . Parent=transcript:Os01t0103400-01 +### +1 irgsp repeat_region 186000 186100 . + . ID=fakeRepeat2 +### +1 irgsp gene 186250 190904 . - . ID=gene:Os01g0103600;biotype=protein_coding;description=Similar to sterol-8%2C7-isomerase. (Os01t0103600-01)%3BEmopamil-binding family protein. (Os01t0103600-02);gene_id=Os01g0103600;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 186250 190262 . - . ID=transcript:Os01t0103600-02;Parent=gene:Os01g0103600;biotype=protein_coding;transcript_id=Os01t0103600-02 +1 irgsp three_prime_UTR 186250 186515 . - . Parent=transcript:Os01t0103600-02 +1 irgsp exon 186250 186771 . - . Parent=transcript:Os01t0103600-02;Name=Os01t0103600-02.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0103600-02.exon4;rank=4 +1 irgsp CDS 186516 186771 . - 1 ID=CDS:Os01t0103600-02;Parent=transcript:Os01t0103600-02;protein_id=Os01t0103600-02 +1 irgsp exon 189607 189715 . - . Parent=transcript:Os01t0103600-02;Name=Os01t0103600-02.exon3;constitutive=0;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0103600-02.exon3;rank=3 +1 irgsp CDS 189607 189715 . - 2 ID=CDS:Os01t0103600-02;Parent=transcript:Os01t0103600-02;protein_id=Os01t0103600-02 +1 irgsp exon 189841 189990 . - . Parent=transcript:Os01t0103600-02;Name=Os01t0103600-02.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0103600-02.exon2;rank=2 +1 irgsp CDS 189841 189990 . - 2 ID=CDS:Os01t0103600-02;Parent=transcript:Os01t0103600-02;protein_id=Os01t0103600-02 +1 irgsp CDS 190087 190231 . - 0 ID=CDS:Os01t0103600-02;Parent=transcript:Os01t0103600-02;protein_id=Os01t0103600-02 +1 irgsp exon 190087 190262 . - . Parent=transcript:Os01t0103600-02;Name=Os01t0103600-02.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0103600-02.exon1;rank=1 +1 irgsp five_prime_UTR 190232 190262 . - . Parent=transcript:Os01t0103600-02 +1 irgsp mRNA 187345 190904 . - . ID=transcript:Os01t0103600-01;Parent=gene:Os01g0103600;biotype=protein_coding;transcript_id=Os01t0103600-01 +1 irgsp three_prime_UTR 187345 189395 . - . Parent=transcript:Os01t0103600-01 +1 irgsp exon 187345 189715 . - . Parent=transcript:Os01t0103600-01;Name=Os01t0103600-01.exon3;constitutive=0;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0103600-01.exon3;rank=3 +1 irgsp CDS 189396 189715 . - 2 ID=CDS:Os01t0103600-01;Parent=transcript:Os01t0103600-01;protein_id=Os01t0103600-01 +1 irgsp exon 189841 189990 . - . Parent=transcript:Os01t0103600-01;Name=Os01t0103600-02.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0103600-02.exon2;rank=2 +1 irgsp CDS 189841 189990 . - 2 ID=CDS:Os01t0103600-01;Parent=transcript:Os01t0103600-01;protein_id=Os01t0103600-01 +1 irgsp CDS 190087 190231 . - 0 ID=CDS:Os01t0103600-01;Parent=transcript:Os01t0103600-01;protein_id=Os01t0103600-01 +1 irgsp exon 190087 190904 . - . Parent=transcript:Os01t0103600-01;Name=Os01t0103600-01.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0103600-01.exon1;rank=1 +1 irgsp five_prime_UTR 190232 190904 . - . Parent=transcript:Os01t0103600-01 +### +1 irgsp gene 187545 188586 . + . ID=gene:Os01g0103650;biotype=protein_coding;description=Hypothetical gene. (Os01t0103650-00);gene_id=Os01g0103650;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 187545 188586 . + . ID=transcript:Os01t0103650-00;Parent=gene:Os01g0103650;biotype=protein_coding;transcript_id=Os01t0103650-00 +1 irgsp five_prime_UTR 187545 187546 . + . Parent=transcript:Os01t0103650-00 +1 irgsp exon 187545 188020 . + . Parent=transcript:Os01t0103650-00;Name=Os01t0103650-00.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103650-00.exon1;rank=1 +1 irgsp CDS 187547 187768 . + 0 ID=CDS:Os01t0103650-00;Parent=transcript:Os01t0103650-00;protein_id=Os01t0103650-00 +1 irgsp three_prime_UTR 187769 188020 . + . Parent=transcript:Os01t0103650-00 +1 irgsp exon 188060 188385 . + . Parent=transcript:Os01t0103650-00;Name=Os01t0103650-00.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103650-00.exon2;rank=2 +1 irgsp three_prime_UTR 188060 188385 . + . Parent=transcript:Os01t0103650-00 +1 irgsp exon 188455 188586 . + . Parent=transcript:Os01t0103650-00;Name=Os01t0103650-00.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103650-00.exon3;rank=3 +1 irgsp three_prime_UTR 188455 188586 . + . Parent=transcript:Os01t0103650-00 +### +1 irgsp gene 191037 196287 . + . ID=gene:Os01g0103700;biotype=protein_coding;description=Conserved hypothetical protein. (Os01t0103700-01);gene_id=Os01g0103700;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 191037 196287 . + . ID=transcript:Os01t0103700-01;Parent=gene:Os01g0103700;biotype=protein_coding;transcript_id=Os01t0103700-01 +1 irgsp exon 191037 191161 . + . Parent=transcript:Os01t0103700-01;Name=Os01t0103700-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103700-01.exon1;rank=1 +1 irgsp five_prime_UTR 191037 191161 . + . Parent=transcript:Os01t0103700-01 +1 irgsp five_prime_UTR 191625 191693 . + . Parent=transcript:Os01t0103700-01 +1 irgsp exon 191625 191705 . + . Parent=transcript:Os01t0103700-01;Name=Os01t0103700-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0103700-01.exon2;rank=2 +1 irgsp CDS 191694 191705 . + 0 ID=CDS:Os01t0103700-01;Parent=transcript:Os01t0103700-01;protein_id=Os01t0103700-01 +1 irgsp exon 192399 192506 . + . Parent=transcript:Os01t0103700-01;Name=Os01t0103700-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0103700-01.exon3;rank=3 +1 irgsp CDS 192399 192506 . + 0 ID=CDS:Os01t0103700-01;Parent=transcript:Os01t0103700-01;protein_id=Os01t0103700-01 +1 irgsp exon 192958 193161 . + . Parent=transcript:Os01t0103700-01;Name=Os01t0103700-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0103700-01.exon4;rank=4 +1 irgsp CDS 192958 193161 . + 0 ID=CDS:Os01t0103700-01;Parent=transcript:Os01t0103700-01;protein_id=Os01t0103700-01 +1 irgsp exon 193248 193356 . + . Parent=transcript:Os01t0103700-01;Name=Os01t0103700-01.exon5;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0103700-01.exon5;rank=5 +1 irgsp CDS 193248 193356 . + 0 ID=CDS:Os01t0103700-01;Parent=transcript:Os01t0103700-01;protein_id=Os01t0103700-01 +1 irgsp CDS 193434 193507 . + 2 ID=CDS:Os01t0103700-01;Parent=transcript:Os01t0103700-01;protein_id=Os01t0103700-01 +1 irgsp exon 193434 196287 . + . Parent=transcript:Os01t0103700-01;Name=Os01t0103700-01.exon6;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0103700-01.exon6;rank=6 +1 irgsp three_prime_UTR 193508 196287 . + . Parent=transcript:Os01t0103700-01 +### +1 irgsp gene 197647 200803 . + . ID=gene:Os01g0103800;Name=OsDW1-01g;biotype=protein_coding;description=Conserved hypothetical protein. (Os01t0103800-01);gene_id=Os01g0103800;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 197647 200803 . + . ID=transcript:Os01t0103800-01;Parent=gene:Os01g0103800;biotype=protein_coding;transcript_id=Os01t0103800-01 +1 irgsp exon 197647 197838 . + . Parent=transcript:Os01t0103800-01;Name=Os01t0103800-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0103800-01.exon1;rank=1 +1 irgsp five_prime_UTR 197647 197838 . + . Parent=transcript:Os01t0103800-01 +1 irgsp five_prime_UTR 198034 198129 . + . Parent=transcript:Os01t0103800-01 +1 irgsp exon 198034 198225 . + . Parent=transcript:Os01t0103800-01;Name=Os01t0103800-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0103800-01.exon2;rank=2 +1 irgsp CDS 198130 198225 . + 0 ID=CDS:Os01t0103800-01;Parent=transcript:Os01t0103800-01;protein_id=Os01t0103800-01 +1 irgsp exon 198830 200036 . + . Parent=transcript:Os01t0103800-01;Name=Os01t0103800-01.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0103800-01.exon3;rank=3 +1 irgsp CDS 198830 200036 . + 0 ID=CDS:Os01t0103800-01;Parent=transcript:Os01t0103800-01;protein_id=Os01t0103800-01 +1 irgsp CDS 200253 200479 . + 2 ID=CDS:Os01t0103800-01;Parent=transcript:Os01t0103800-01;protein_id=Os01t0103800-01 +1 irgsp exon 200253 200803 . + . Parent=transcript:Os01t0103800-01;Name=Os01t0103800-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0103800-01.exon4;rank=4 +1 irgsp three_prime_UTR 200480 200803 . + . Parent=transcript:Os01t0103800-01 +### +1 irgsp gene 201944 206202 . + . ID=gene:Os01g0103900;biotype=protein_coding;description=Polynucleotidyl transferase%2C Ribonuclease H fold domain containing protein. (Os01t0103900-01);gene_id=Os01g0103900;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 201944 206202 . + . ID=transcript:Os01t0103900-01;Parent=gene:Os01g0103900;biotype=protein_coding;transcript_id=Os01t0103900-01 +1 irgsp five_prime_UTR 201944 202041 . + . Parent=transcript:Os01t0103900-01 +1 irgsp exon 201944 202110 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0103900-01.exon1;rank=1 +1 irgsp CDS 202042 202110 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 202252 202359 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0103900-01.exon2;rank=2 +1 irgsp CDS 202252 202359 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 203007 203127 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0103900-01.exon3;rank=3 +1 irgsp CDS 203007 203127 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 203302 203429 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0103900-01.exon4;rank=4 +1 irgsp CDS 203302 203429 . + 2 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 203511 203658 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon5;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0103900-01.exon5;rank=5 +1 irgsp CDS 203511 203658 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 203760 203938 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0103900-01.exon6;rank=6 +1 irgsp CDS 203760 203938 . + 2 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 204203 204440 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon7;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0103900-01.exon7;rank=7 +1 irgsp CDS 204203 204440 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 204543 204635 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon8;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0103900-01.exon8;rank=8 +1 irgsp CDS 204543 204635 . + 2 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 204730 204875 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0103900-01.exon9;rank=9 +1 irgsp CDS 204730 204875 . + 2 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 205042 205149 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon10;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0103900-01.exon10;rank=10 +1 irgsp CDS 205042 205149 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 205290 205378 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon11;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0103900-01.exon11;rank=11 +1 irgsp CDS 205290 205378 . + 0 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp CDS 205534 205543 . + 1 ID=CDS:Os01t0103900-01;Parent=transcript:Os01t0103900-01;protein_id=Os01t0103900-01 +1 irgsp exon 205534 206202 . + . Parent=transcript:Os01t0103900-01;Name=Os01t0103900-01.exon12;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0103900-01.exon12;rank=12 +1 irgsp three_prime_UTR 205544 206202 . + . Parent=transcript:Os01t0103900-01 +### +1 irgsp gene 206131 209606 . - . ID=gene:Os01g0104000;biotype=protein_coding;description=C-type lectin domain containing protein. (Os01t0104000-01)%3BSimilar to predicted protein. (Os01t0104000-02);gene_id=Os01g0104000;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 206131 209581 . - . ID=transcript:Os01t0104000-02;Parent=gene:Os01g0104000;biotype=protein_coding;transcript_id=Os01t0104000-02 +1 irgsp three_prime_UTR 206131 206449 . - . Parent=transcript:Os01t0104000-02 +1 irgsp exon 206131 207029 . - . Parent=transcript:Os01t0104000-02;Name=Os01t0104000-02.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0104000-02.exon4;rank=4 +1 irgsp CDS 206450 207029 . - 1 ID=CDS:Os01t0104000-02;Parent=transcript:Os01t0104000-02;protein_id=Os01t0104000-02 +1 irgsp exon 207706 208273 . - . Parent=transcript:Os01t0104000-02;Name=Os01t0104000-02.exon3;constitutive=0;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0104000-02.exon3;rank=3 +1 irgsp CDS 207706 208273 . - 2 ID=CDS:Os01t0104000-02;Parent=transcript:Os01t0104000-02;protein_id=Os01t0104000-02 +1 irgsp exon 208408 208836 . - . Parent=transcript:Os01t0104000-02;Name=Os01t0104000-01.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0104000-01.exon2;rank=2 +1 irgsp CDS 208408 208836 . - 2 ID=CDS:Os01t0104000-02;Parent=transcript:Os01t0104000-02;protein_id=Os01t0104000-02 +1 irgsp CDS 209438 209525 . - 0 ID=CDS:Os01t0104000-02;Parent=transcript:Os01t0104000-02;protein_id=Os01t0104000-02 +1 irgsp exon 209438 209581 . - . Parent=transcript:Os01t0104000-02;Name=Os01t0104000-02.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0104000-02.exon1;rank=1 +1 irgsp five_prime_UTR 209526 209581 . - . Parent=transcript:Os01t0104000-02 +1 irgsp mRNA 206134 209606 . - . ID=transcript:Os01t0104000-01;Parent=gene:Os01g0104000;biotype=protein_coding;transcript_id=Os01t0104000-01 +1 irgsp three_prime_UTR 206134 206449 . - . Parent=transcript:Os01t0104000-01 +1 irgsp exon 206134 207029 . - . Parent=transcript:Os01t0104000-01;Name=Os01t0104000-01.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0104000-01.exon4;rank=4 +1 irgsp CDS 206450 207029 . - 1 ID=CDS:Os01t0104000-01;Parent=transcript:Os01t0104000-01;protein_id=Os01t0104000-01 +1 irgsp exon 207706 208276 . - . Parent=transcript:Os01t0104000-01;Name=Os01t0104000-01.exon3;constitutive=0;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0104000-01.exon3;rank=3 +1 irgsp CDS 207706 208276 . - 2 ID=CDS:Os01t0104000-01;Parent=transcript:Os01t0104000-01;protein_id=Os01t0104000-01 +1 irgsp exon 208408 208836 . - . Parent=transcript:Os01t0104000-01;Name=Os01t0104000-01.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0104000-01.exon2;rank=2 +1 irgsp CDS 208408 208836 . - 2 ID=CDS:Os01t0104000-01;Parent=transcript:Os01t0104000-01;protein_id=Os01t0104000-01 +1 irgsp CDS 209438 209525 . - 0 ID=CDS:Os01t0104000-01;Parent=transcript:Os01t0104000-01;protein_id=Os01t0104000-01 +1 irgsp exon 209438 209606 . - . Parent=transcript:Os01t0104000-01;Name=Os01t0104000-01.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0104000-01.exon1;rank=1 +1 irgsp five_prime_UTR 209526 209606 . - . Parent=transcript:Os01t0104000-01 +### +1 irgsp gene 209771 214173 . + . ID=gene:Os01g0104100;Name=cold-inducible%2C cold-inducible zinc finger protein;biotype=protein_coding;description=Similar to protein binding / zinc ion binding. (Os01t0104100-01)%3BSimilar to protein binding / zinc ion binding. (Os01t0104100-02);gene_id=Os01g0104100;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 209771 214173 . + . ID=transcript:Os01t0104100-01;Parent=gene:Os01g0104100;biotype=protein_coding;transcript_id=Os01t0104100-01 +1 irgsp exon 209771 209896 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104100-01.exon1;rank=1 +1 irgsp CDS 209771 209896 . + 0 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 210244 210563 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104100-01.exon2;rank=2 +1 irgsp CDS 210244 210563 . + 0 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 210659 210890 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104100-01.exon3;rank=3 +1 irgsp CDS 210659 210890 . + 1 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 211015 211160 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon4;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104100-01.exon4;rank=4 +1 irgsp CDS 211015 211160 . + 0 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 212265 212352 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104100-01.exon5;rank=5 +1 irgsp CDS 212265 212352 . + 1 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 212433 212579 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104100-01.exon6;rank=6 +1 irgsp CDS 212433 212579 . + 0 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 213490 213639 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104100-01.exon7;rank=7 +1 irgsp CDS 213490 213639 . + 0 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp CDS 213741 213788 . + 0 ID=CDS:Os01t0104100-01;Parent=transcript:Os01t0104100-01;protein_id=Os01t0104100-01 +1 irgsp exon 213741 214173 . + . Parent=transcript:Os01t0104100-01;Name=Os01t0104100-01.exon8;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0104100-01.exon8;rank=8 +1 irgsp three_prime_UTR 213789 214173 . + . Parent=transcript:Os01t0104100-01 +1 irgsp mRNA 209794 214147 . + . ID=transcript:Os01t0104100-02;Parent=gene:Os01g0104100;biotype=protein_coding;transcript_id=Os01t0104100-02 +1 irgsp five_prime_UTR 209794 209794 . + . Parent=transcript:Os01t0104100-02 +1 irgsp exon 209794 209896 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-02.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104100-02.exon1;rank=1 +1 irgsp CDS 209795 209896 . + 0 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 210244 210563 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104100-01.exon2;rank=2 +1 irgsp CDS 210244 210563 . + 0 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 210659 210890 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104100-01.exon3;rank=3 +1 irgsp CDS 210659 210890 . + 1 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 211015 211160 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-01.exon4;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104100-01.exon4;rank=4 +1 irgsp CDS 211015 211160 . + 0 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 212265 212352 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104100-01.exon5;rank=5 +1 irgsp CDS 212265 212352 . + 1 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 212433 212579 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104100-01.exon6;rank=6 +1 irgsp CDS 212433 212579 . + 0 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 213490 213639 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104100-01.exon7;rank=7 +1 irgsp CDS 213490 213639 . + 0 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp CDS 213741 213788 . + 0 ID=CDS:Os01t0104100-02;Parent=transcript:Os01t0104100-02;protein_id=Os01t0104100-02 +1 irgsp exon 213741 214147 . + . Parent=transcript:Os01t0104100-02;Name=Os01t0104100-02.exon8;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0104100-02.exon8;rank=8 +1 irgsp three_prime_UTR 213789 214147 . + . Parent=transcript:Os01t0104100-02 +### +1 irgsp gene 216212 217345 . + . ID=gene:Os01g0104200;Name=NAC DOMAIN-CONTAINING PROTEIN 16;biotype=protein_coding;description=No apical meristem (NAM) protein domain containing protein. (Os01t0104200-00);gene_id=Os01g0104200;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 216212 217345 . + . ID=transcript:Os01t0104200-00;Parent=gene:Os01g0104200;biotype=protein_coding;transcript_id=Os01t0104200-00 +1 irgsp exon 216212 216769 . + . Parent=transcript:Os01t0104200-00;Name=Os01t0104200-00.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104200-00.exon1;rank=1 +1 irgsp CDS 216212 216769 . + 0 ID=CDS:Os01t0104200-00;Parent=transcript:Os01t0104200-00;protein_id=Os01t0104200-00 +1 irgsp exon 216884 217345 . + . Parent=transcript:Os01t0104200-00;Name=Os01t0104200-00.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104200-00.exon2;rank=2 +1 irgsp CDS 216884 217345 . + 0 ID=CDS:Os01t0104200-00;Parent=transcript:Os01t0104200-00;protein_id=Os01t0104200-00 +### +1 irgsp gene 226897 229301 . + . ID=gene:Os01g0104400;biotype=protein_coding;description=Ricin B-related lectin domain containing protein. (Os01t0104400-01)%3BRicin B-related lectin domain containing protein. (Os01t0104400-02)%3BRicin B-related lectin domain containing protein. (Os01t0104400-03);gene_id=Os01g0104400;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 226897 229229 . + . ID=transcript:Os01t0104400-01;Parent=gene:Os01g0104400;biotype=protein_coding;transcript_id=Os01t0104400-01 +1 irgsp five_prime_UTR 226897 227181 . + . Parent=transcript:Os01t0104400-01 +1 irgsp exon 226897 227634 . + . Parent=transcript:Os01t0104400-01;Name=Os01t0104400-01.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104400-01.exon1;rank=1 +1 irgsp CDS 227182 227634 . + 0 ID=CDS:Os01t0104400-01;Parent=transcript:Os01t0104400-01;protein_id=Os01t0104400-01 +1 irgsp exon 227742 227864 . + . Parent=transcript:Os01t0104400-01;Name=Os01t0104400-03.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104400-03.exon2;rank=2 +1 irgsp CDS 227742 227864 . + 0 ID=CDS:Os01t0104400-01;Parent=transcript:Os01t0104400-01;protein_id=Os01t0104400-01 +1 irgsp exon 228557 228785 . + . Parent=transcript:Os01t0104400-01;Name=Os01t0104400-03.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0104400-03.exon3;rank=3 +1 irgsp CDS 228557 228785 . + 0 ID=CDS:Os01t0104400-01;Parent=transcript:Os01t0104400-01;protein_id=Os01t0104400-01 +1 irgsp CDS 228930 228931 . + 2 ID=CDS:Os01t0104400-01;Parent=transcript:Os01t0104400-01;protein_id=Os01t0104400-01 +1 irgsp exon 228930 229229 . + . Parent=transcript:Os01t0104400-01;Name=Os01t0104400-01.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0104400-01.exon4;rank=4 +1 irgsp three_prime_UTR 228932 229229 . + . Parent=transcript:Os01t0104400-01 +1 irgsp mRNA 227139 229301 . + . ID=transcript:Os01t0104400-02;Parent=gene:Os01g0104400;biotype=protein_coding;transcript_id=Os01t0104400-02 +1 irgsp five_prime_UTR 227139 227181 . + . Parent=transcript:Os01t0104400-02 +1 irgsp exon 227139 227634 . + . Parent=transcript:Os01t0104400-02;Name=Os01t0104400-02.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104400-02.exon1;rank=1 +1 irgsp CDS 227182 227634 . + 0 ID=CDS:Os01t0104400-02;Parent=transcript:Os01t0104400-02;protein_id=Os01t0104400-02 +1 irgsp exon 227742 227864 . + . Parent=transcript:Os01t0104400-02;Name=Os01t0104400-03.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104400-03.exon2;rank=2 +1 irgsp CDS 227742 227864 . + 0 ID=CDS:Os01t0104400-02;Parent=transcript:Os01t0104400-02;protein_id=Os01t0104400-02 +1 irgsp exon 228557 228785 . + . Parent=transcript:Os01t0104400-02;Name=Os01t0104400-03.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0104400-03.exon3;rank=3 +1 irgsp CDS 228557 228785 . + 0 ID=CDS:Os01t0104400-02;Parent=transcript:Os01t0104400-02;protein_id=Os01t0104400-02 +1 irgsp CDS 228930 228931 . + 2 ID=CDS:Os01t0104400-02;Parent=transcript:Os01t0104400-02;protein_id=Os01t0104400-02 +1 irgsp exon 228930 229301 . + . Parent=transcript:Os01t0104400-02;Name=Os01t0104400-02.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0104400-02.exon4;rank=4 +1 irgsp three_prime_UTR 228932 229301 . + . Parent=transcript:Os01t0104400-02 +1 irgsp mRNA 227179 229214 . + . ID=transcript:Os01t0104400-03;Parent=gene:Os01g0104400;biotype=protein_coding;transcript_id=Os01t0104400-03 +1 irgsp five_prime_UTR 227179 227181 . + . Parent=transcript:Os01t0104400-03 +1 irgsp exon 227179 227634 . + . Parent=transcript:Os01t0104400-03;Name=Os01t0104400-03.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104400-03.exon1;rank=1 +1 irgsp CDS 227182 227634 . + 0 ID=CDS:Os01t0104400-03;Parent=transcript:Os01t0104400-03;protein_id=Os01t0104400-03 +1 irgsp exon 227742 227864 . + . Parent=transcript:Os01t0104400-03;Name=Os01t0104400-03.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104400-03.exon2;rank=2 +1 irgsp CDS 227742 227864 . + 0 ID=CDS:Os01t0104400-03;Parent=transcript:Os01t0104400-03;protein_id=Os01t0104400-03 +1 irgsp exon 228557 228785 . + . Parent=transcript:Os01t0104400-03;Name=Os01t0104400-03.exon3;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0104400-03.exon3;rank=3 +1 irgsp CDS 228557 228785 . + 0 ID=CDS:Os01t0104400-03;Parent=transcript:Os01t0104400-03;protein_id=Os01t0104400-03 +1 irgsp CDS 228930 228931 . + 2 ID=CDS:Os01t0104400-03;Parent=transcript:Os01t0104400-03;protein_id=Os01t0104400-03 +1 irgsp exon 228930 229214 . + . Parent=transcript:Os01t0104400-03;Name=Os01t0104400-03.exon4;constitutive=0;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0104400-03.exon4;rank=4 +1 irgsp three_prime_UTR 228932 229214 . + . Parent=transcript:Os01t0104400-03 +### +1 irgsp gene 241680 243440 . + . ID=gene:Os01g0104500;Name=NAC DOMAIN-CONTAINING PROTEIN 20;biotype=protein_coding;description=No apical meristem (NAM) protein domain containing protein. (Os01t0104500-01);gene_id=Os01g0104500;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 241680 243440 . + . ID=transcript:Os01t0104500-01;Parent=gene:Os01g0104500;biotype=protein_coding;transcript_id=Os01t0104500-01 +1 irgsp exon 241680 241702 . + . Parent=transcript:Os01t0104500-01;Name=Os01t0104500-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0104500-01.exon1;rank=1 +1 irgsp five_prime_UTR 241680 241702 . + . Parent=transcript:Os01t0104500-01 +1 irgsp five_prime_UTR 241866 241907 . + . Parent=transcript:Os01t0104500-01 +1 irgsp exon 241866 242091 . + . Parent=transcript:Os01t0104500-01;Name=Os01t0104500-01.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0104500-01.exon2;rank=2 +1 irgsp CDS 241908 242091 . + 0 ID=CDS:Os01t0104500-01;Parent=transcript:Os01t0104500-01;protein_id=Os01t0104500-01 +1 irgsp CDS 242199 242977 . + 2 ID=CDS:Os01t0104500-01;Parent=transcript:Os01t0104500-01;protein_id=Os01t0104500-01 +1 irgsp exon 242199 243440 . + . Parent=transcript:Os01t0104500-01;Name=Os01t0104500-01.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0104500-01.exon3;rank=3 +1 irgsp three_prime_UTR 242978 243440 . + . Parent=transcript:Os01t0104500-01 +### +1 irgsp gene 248828 256872 . - . ID=gene:Os01g0104600;Name=DE-ETIOLATED1;biotype=protein_coding;description=Homolog of Arabidopsis DE-ETIOLATED1 (DET1)%2C Modulation of the ABA signaling pathway and ABA biosynthesis%2C Regulation of chlorophyll content (Os01t0104600-01)%3BSimilar to Light-mediated development protein DET1 (Deetiolated1 homolog) (tDET1) (High pigmentation protein 2) (Protein dark green). (Os01t0104600-02);gene_id=Os01g0104600;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 248828 256571 . - . ID=transcript:Os01t0104600-02;Parent=gene:Os01g0104600;biotype=protein_coding;transcript_id=Os01t0104600-02 +1 irgsp three_prime_UTR 248828 248970 . - . Parent=transcript:Os01t0104600-02 +1 irgsp exon 248828 249107 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon11;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0104600-01.exon11;rank=11 +1 irgsp CDS 248971 249107 . - 2 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 249369 249468 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon10;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0104600-01.exon10;rank=10 +1 irgsp CDS 249369 249468 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 249861 249956 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon9;rank=9 +1 irgsp CDS 249861 249956 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 250617 250781 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon8;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon8;rank=8 +1 irgsp CDS 250617 250781 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 250860 250940 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon7;rank=7 +1 irgsp CDS 250860 250940 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 251026 251082 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon6;rank=6 +1 irgsp CDS 251026 251082 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 251316 251384 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon5;rank=5 +1 irgsp CDS 251316 251384 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 251695 251790 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon4;rank=4 +1 irgsp CDS 251695 251790 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 255325 255553 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104600-01.exon3;rank=3 +1 irgsp CDS 255325 255553 . - 1 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 255674 256098 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104600-01.exon2;rank=2 +1 irgsp CDS 255674 256098 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp CDS 256361 256441 . - 0 ID=CDS:Os01t0104600-02;Parent=transcript:Os01t0104600-02;protein_id=Os01t0104600-02 +1 irgsp exon 256361 256571 . - . Parent=transcript:Os01t0104600-02;Name=Os01t0104600-02.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104600-02.exon1;rank=1 +1 irgsp five_prime_UTR 256442 256571 . - . Parent=transcript:Os01t0104600-02 +1 irgsp mRNA 248828 256872 . - . ID=transcript:Os01t0104600-01;Parent=gene:Os01g0104600;biotype=protein_coding;transcript_id=Os01t0104600-01 +1 irgsp three_prime_UTR 248828 248970 . - . Parent=transcript:Os01t0104600-01 +1 irgsp exon 248828 249107 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon11;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0104600-01.exon11;rank=11 +1 irgsp CDS 248971 249107 . - 2 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 249369 249468 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon10;constitutive=1;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0104600-01.exon10;rank=10 +1 irgsp CDS 249369 249468 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 249861 249956 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon9;rank=9 +1 irgsp CDS 249861 249956 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 250617 250781 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon8;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon8;rank=8 +1 irgsp CDS 250617 250781 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 250860 250940 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon7;rank=7 +1 irgsp CDS 250860 250940 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 251026 251082 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon6;rank=6 +1 irgsp CDS 251026 251082 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 251316 251384 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon5;rank=5 +1 irgsp CDS 251316 251384 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 251695 251790 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104600-01.exon4;rank=4 +1 irgsp CDS 251695 251790 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 255325 255553 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104600-01.exon3;rank=3 +1 irgsp CDS 255325 255553 . - 1 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 255674 256098 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon2;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104600-01.exon2;rank=2 +1 irgsp CDS 255674 256098 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp CDS 256361 256441 . - 0 ID=CDS:Os01t0104600-01;Parent=transcript:Os01t0104600-01;protein_id=Os01t0104600-01 +1 irgsp exon 256361 256872 . - . Parent=transcript:Os01t0104600-01;Name=Os01t0104600-01.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104600-01.exon1;rank=1 +1 irgsp five_prime_UTR 256442 256872 . - . Parent=transcript:Os01t0104600-01 +### +1 irgsp gene 261530 268145 . + . ID=gene:Os01g0104800;biotype=protein_coding;description=Sas10/Utp3 family protein. (Os01t0104800-01)%3BHypothetical conserved gene. (Os01t0104800-02);gene_id=Os01g0104800;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 261530 268145 . + . ID=transcript:Os01t0104800-01;Parent=gene:Os01g0104800;biotype=protein_coding;transcript_id=Os01t0104800-01 +1 irgsp five_prime_UTR 261530 261561 . + . Parent=transcript:Os01t0104800-01 +1 irgsp exon 261530 261661 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon1;constitutive=0;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0104800-01.exon1;rank=1 +1 irgsp CDS 261562 261661 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 261767 261805 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon2;constitutive=0;ensembl_end_phase=1;ensembl_phase=1;exon_id=Os01t0104800-01.exon2;rank=2 +1 irgsp CDS 261767 261805 . + 2 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 261895 261941 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon3;constitutive=0;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0104800-01.exon3;rank=3 +1 irgsp CDS 261895 261941 . + 2 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 262582 262681 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon4;constitutive=0;ensembl_end_phase=1;ensembl_phase=0;exon_id=Os01t0104800-01.exon4;rank=4 +1 irgsp CDS 262582 262681 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 262925 263181 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon5;constitutive=0;ensembl_end_phase=0;ensembl_phase=1;exon_id=Os01t0104800-01.exon5;rank=5 +1 irgsp CDS 262925 263181 . + 2 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 263525 263640 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon6;constitutive=0;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104800-01.exon6;rank=6 +1 irgsp CDS 263525 263640 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 264014 264098 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104800-01.exon7;rank=7 +1 irgsp CDS 264014 264098 . + 1 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 265236 265415 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon8;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon8;rank=8 +1 irgsp CDS 265236 265415 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 265506 265649 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon9;rank=9 +1 irgsp CDS 265506 265649 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 265740 265817 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon10;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon10;rank=10 +1 irgsp CDS 265740 265817 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 265909 266045 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon11;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104800-01.exon11;rank=11 +1 irgsp CDS 265909 266045 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 266138 266246 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon12;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104800-01.exon12;rank=12 +1 irgsp CDS 266138 266246 . + 1 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 267237 267514 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon13;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104800-01.exon13;rank=13 +1 irgsp CDS 267237 267514 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 267591 267657 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon14;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104800-01.exon14;rank=14 +1 irgsp CDS 267591 267657 . + 1 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 267734 267802 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon15;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon15;rank=15 +1 irgsp CDS 267734 267802 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp CDS 267880 268011 . + 0 ID=CDS:Os01t0104800-01;Parent=transcript:Os01t0104800-01;protein_id=Os01t0104800-01 +1 irgsp exon 267880 268145 . + . Parent=transcript:Os01t0104800-01;Name=Os01t0104800-01.exon16;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0104800-01.exon16;rank=16 +1 irgsp three_prime_UTR 268012 268145 . + . Parent=transcript:Os01t0104800-01 +1 irgsp mRNA 263523 268120 . + . ID=transcript:Os01t0104800-02;Parent=gene:Os01g0104800;biotype=protein_coding;transcript_id=Os01t0104800-02 +1 irgsp five_prime_UTR 263523 263524 . + . Parent=transcript:Os01t0104800-02 +1 irgsp exon 263523 263640 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-02.exon1;constitutive=0;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0104800-02.exon1;rank=1 +1 irgsp CDS 263525 263640 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 264014 264098 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104800-01.exon7;rank=2 +1 irgsp CDS 264014 264098 . + 1 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 265236 265415 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon8;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon8;rank=3 +1 irgsp CDS 265236 265415 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 265506 265649 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon9;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon9;rank=4 +1 irgsp CDS 265506 265649 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 265740 265817 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon10;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon10;rank=5 +1 irgsp CDS 265740 265817 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 265909 266045 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon11;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104800-01.exon11;rank=6 +1 irgsp CDS 265909 266045 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 266138 266246 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon12;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104800-01.exon12;rank=7 +1 irgsp CDS 266138 266246 . + 1 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 267237 267514 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon13;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0104800-01.exon13;rank=8 +1 irgsp CDS 267237 267514 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 267591 267657 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon14;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0104800-01.exon14;rank=9 +1 irgsp CDS 267591 267657 . + 1 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 267734 267802 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-01.exon15;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0104800-01.exon15;rank=10 +1 irgsp CDS 267734 267802 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp CDS 267880 268011 . + 0 ID=CDS:Os01t0104800-02;Parent=transcript:Os01t0104800-02;protein_id=Os01t0104800-02 +1 irgsp exon 267880 268120 . + . Parent=transcript:Os01t0104800-02;Name=Os01t0104800-02.exon11;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0104800-02.exon11;rank=11 +1 irgsp three_prime_UTR 268012 268120 . + . Parent=transcript:Os01t0104800-02 +### +1 irgsp gene 270179 275084 . - . ID=gene:Os01g0104900;biotype=protein_coding;description=Transferase family protein. (Os01t0104900-01)%3BHypothetical conserved gene. (Os01t0104900-02);gene_id=Os01g0104900;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 270179 275084 . - . ID=transcript:Os01t0104900-01;Parent=gene:Os01g0104900;biotype=protein_coding;transcript_id=Os01t0104900-01 +1 irgsp three_prime_UTR 270179 270355 . - . Parent=transcript:Os01t0104900-01 +1 irgsp exon 270179 271333 . - . Parent=transcript:Os01t0104900-01;Name=Os01t0104900-01.exon2;constitutive=0;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0104900-01.exon2;rank=2 +1 irgsp CDS 270356 271333 . - 0 ID=CDS:Os01t0104900-01;Parent=transcript:Os01t0104900-01;protein_id=Os01t0104900-01 +1 irgsp CDS 274529 274957 . - 0 ID=CDS:Os01t0104900-01;Parent=transcript:Os01t0104900-01;protein_id=Os01t0104900-01 +1 irgsp exon 274529 275084 . - . Parent=transcript:Os01t0104900-01;Name=Os01t0104900-01.exon1;constitutive=0;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0104900-01.exon1;rank=1 +1 irgsp five_prime_UTR 274958 275084 . - . Parent=transcript:Os01t0104900-01 +1 irgsp mRNA 270250 271518 . - . ID=transcript:Os01t0104900-02;Parent=gene:Os01g0104900;biotype=protein_coding;transcript_id=Os01t0104900-02 +1 irgsp three_prime_UTR 270250 270355 . - . Parent=transcript:Os01t0104900-02 +1 irgsp exon 270250 271333 . - . Parent=transcript:Os01t0104900-02;Name=Os01t0104900-02.exon2;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0104900-02.exon2;rank=2 +1 irgsp CDS 270356 271309 . - 0 ID=CDS:Os01t0104900-02;Parent=transcript:Os01t0104900-02;protein_id=Os01t0104900-02 +1 irgsp five_prime_UTR 271310 271333 . - . Parent=transcript:Os01t0104900-02 +1 irgsp exon 271457 271518 . - . Parent=transcript:Os01t0104900-02;Name=Os01t0104900-02.exon1;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0104900-02.exon1;rank=1 +1 irgsp five_prime_UTR 271457 271518 . - . Parent=transcript:Os01t0104900-02 +### +1 irgsp gene 284762 291892 . - . ID=gene:Os01g0105300;biotype=protein_coding;description=Similar to HAT family dimerisation domain containing protein%2C expressed. (Os01t0105300-01);gene_id=Os01g0105300;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 284762 291892 . - . ID=transcript:Os01t0105300-01;Parent=gene:Os01g0105300;biotype=protein_coding;transcript_id=Os01t0105300-01 +1 irgsp three_prime_UTR 284762 284930 . - . Parent=transcript:Os01t0105300-01 +1 irgsp exon 284762 287047 . - . Parent=transcript:Os01t0105300-01;Name=Os01t0105300-01.exon5;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105300-01.exon5;rank=5 +1 irgsp CDS 284931 285020 . - 0 ID=CDS:Os01t0105300-01;Parent=transcript:Os01t0105300-01;protein_id=Os01t0105300-01 +1 irgsp five_prime_UTR 285021 287047 . - . Parent=transcript:Os01t0105300-01 +1 irgsp exon 291398 291436 . - . Parent=transcript:Os01t0105300-01;Name=Os01t0105300-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105300-01.exon4;rank=4 +1 irgsp five_prime_UTR 291398 291436 . - . Parent=transcript:Os01t0105300-01 +1 irgsp exon 291520 291534 . - . Parent=transcript:Os01t0105300-01;Name=Os01t0105300-01.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105300-01.exon3;rank=3 +1 irgsp five_prime_UTR 291520 291534 . - . Parent=transcript:Os01t0105300-01 +1 irgsp exon 291678 291738 . - . Parent=transcript:Os01t0105300-01;Name=Os01t0105300-01.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105300-01.exon2;rank=2 +1 irgsp five_prime_UTR 291678 291738 . - . Parent=transcript:Os01t0105300-01 +1 irgsp exon 291838 291892 . - . Parent=transcript:Os01t0105300-01;Name=Os01t0105300-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105300-01.exon1;rank=1 +1 irgsp five_prime_UTR 291838 291892 . - . Parent=transcript:Os01t0105300-01 +### +1 irgsp gene 288372 292296 . + . ID=gene:Os01g0105400;biotype=protein_coding;description=Similar to Kinesin heavy chain. (Os01t0105400-01);gene_id=Os01g0105400;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 288372 292296 . + . ID=transcript:Os01t0105400-01;Parent=gene:Os01g0105400;biotype=protein_coding;transcript_id=Os01t0105400-01 +1 irgsp exon 288372 288846 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon1;rank=1 +1 irgsp five_prime_UTR 288372 288846 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 288950 289116 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon2;rank=2 +1 irgsp five_prime_UTR 288950 289116 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 289202 289572 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon3;rank=3 +1 irgsp five_prime_UTR 289202 289572 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 289661 289830 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon4;rank=4 +1 irgsp five_prime_UTR 289661 289830 . + . Parent=transcript:Os01t0105400-01 +1 irgsp five_prime_UTR 290395 290432 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 290395 290512 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon5;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0105400-01.exon5;rank=5 +1 irgsp CDS 290433 290512 . + 0 ID=CDS:Os01t0105400-01;Parent=transcript:Os01t0105400-01;protein_id=Os01t0105400-01 +1 irgsp CDS 291372 291558 . + 1 ID=CDS:Os01t0105400-01;Parent=transcript:Os01t0105400-01;protein_id=Os01t0105400-01 +1 irgsp exon 291372 291574 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon6;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0105400-01.exon6;rank=6 +1 irgsp three_prime_UTR 291559 291574 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 291648 291779 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon7;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon7;rank=7 +1 irgsp three_prime_UTR 291648 291779 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 291859 291948 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon8;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon8;rank=8 +1 irgsp three_prime_UTR 291859 291948 . + . Parent=transcript:Os01t0105400-01 +1 irgsp exon 292073 292296 . + . Parent=transcript:Os01t0105400-01;Name=Os01t0105400-01.exon9;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105400-01.exon9;rank=9 +1 irgsp three_prime_UTR 292073 292296 . + . Parent=transcript:Os01t0105400-01 +### +1 irgsp gene 303233 306736 . + . ID=gene:Os01g0105700;Name=basic helix-loop-helix protein 071;biotype=protein_coding;description=Basic helix-loop-helix dimerisation region bHLH domain containing protein. (Os01t0105700-01);gene_id=Os01g0105700;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 303233 306736 . + . ID=transcript:Os01t0105700-01;Parent=gene:Os01g0105700;biotype=protein_coding;transcript_id=Os01t0105700-01 +1 irgsp five_prime_UTR 303233 303328 . + . Parent=transcript:Os01t0105700-01 +1 irgsp exon 303233 303471 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0105700-01.exon1;rank=1 +1 irgsp CDS 303329 303471 . + 0 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp exon 303981 304509 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0105700-01.exon2;rank=2 +1 irgsp CDS 303981 304509 . + 1 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp exon 305572 305718 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105700-01.exon3;rank=3 +1 irgsp CDS 305572 305718 . + 0 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp exon 305834 305899 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105700-01.exon4;rank=4 +1 irgsp CDS 305834 305899 . + 0 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp exon 305993 306058 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105700-01.exon5;rank=5 +1 irgsp CDS 305993 306058 . + 0 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp exon 306171 306245 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon6;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105700-01.exon6;rank=6 +1 irgsp CDS 306171 306245 . + 0 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp CDS 306353 306493 . + 0 ID=CDS:Os01t0105700-01;Parent=transcript:Os01t0105700-01;protein_id=Os01t0105700-01 +1 irgsp exon 306353 306736 . + . Parent=transcript:Os01t0105700-01;Name=Os01t0105700-01.exon7;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0105700-01.exon7;rank=7 +1 irgsp three_prime_UTR 306494 306736 . + . Parent=transcript:Os01t0105700-01 +### +1 irgsp gene 306871 308842 . - . ID=gene:Os01g0105800;Name=IRON-SULFUR CLUSTER PROTEIN 9;biotype=protein_coding;description=Similar to Iron sulfur assembly protein 1. (Os01t0105800-01);gene_id=Os01g0105800;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 306871 308842 . - . ID=transcript:Os01t0105800-01;Parent=gene:Os01g0105800;biotype=protein_coding;transcript_id=Os01t0105800-01 +1 irgsp three_prime_UTR 306871 307123 . - . Parent=transcript:Os01t0105800-01 +1 irgsp exon 306871 307217 . - . Parent=transcript:Os01t0105800-01;Name=Os01t0105800-01.exon4;constitutive=1;ensembl_end_phase=-1;ensembl_phase=2;exon_id=Os01t0105800-01.exon4;rank=4 +1 irgsp CDS 307124 307217 . - 1 ID=CDS:Os01t0105800-01;Parent=transcript:Os01t0105800-01;protein_id=Os01t0105800-01 +1 irgsp exon 307296 307413 . - . Parent=transcript:Os01t0105800-01;Name=Os01t0105800-01.exon3;constitutive=1;ensembl_end_phase=2;ensembl_phase=1;exon_id=Os01t0105800-01.exon3;rank=3 +1 irgsp CDS 307296 307413 . - 2 ID=CDS:Os01t0105800-01;Parent=transcript:Os01t0105800-01;protein_id=Os01t0105800-01 +1 irgsp CDS 308397 308601 . - 0 ID=CDS:Os01t0105800-01;Parent=transcript:Os01t0105800-01;protein_id=Os01t0105800-01 +1 irgsp exon 308397 308626 . - . Parent=transcript:Os01t0105800-01;Name=Os01t0105800-01.exon2;constitutive=1;ensembl_end_phase=1;ensembl_phase=-1;exon_id=Os01t0105800-01.exon2;rank=2 +1 irgsp five_prime_UTR 308602 308626 . - . Parent=transcript:Os01t0105800-01 +1 irgsp exon 308703 308842 . - . Parent=transcript:Os01t0105800-01;Name=Os01t0105800-01.exon1;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=Os01t0105800-01.exon1;rank=1 +1 irgsp five_prime_UTR 308703 308842 . - . Parent=transcript:Os01t0105800-01 +### +1 irgsp gene 309520 313170 . - . ID=gene:Os01g0105900;biotype=protein_coding;description=Carbohydrate/purine kinase domain containing protein. (Os01t0105900-01);gene_id=Os01g0105900;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 309520 313170 . - . ID=transcript:Os01t0105900-01;Parent=gene:Os01g0105900;biotype=protein_coding;transcript_id=Os01t0105900-01 +1 irgsp three_prime_UTR 309520 309821 . - . Parent=transcript:Os01t0105900-01 +1 irgsp exon 309520 310070 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon8;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0105900-01.exon8;rank=8 +1 irgsp CDS 309822 310070 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 310256 310367 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon7;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0105900-01.exon7;rank=7 +1 irgsp CDS 310256 310367 . - 1 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 310455 310552 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon6;constitutive=1;ensembl_end_phase=2;ensembl_phase=0;exon_id=Os01t0105900-01.exon6;rank=6 +1 irgsp CDS 310455 310552 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 310632 310739 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon5;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105900-01.exon5;rank=5 +1 irgsp CDS 310632 310739 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 310880 310918 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon4;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105900-01.exon4;rank=4 +1 irgsp CDS 310880 310918 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 311002 311073 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon3;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105900-01.exon3;rank=3 +1 irgsp CDS 311002 311073 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 311163 311426 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=0;exon_id=Os01t0105900-01.exon2;rank=2 +1 irgsp CDS 311163 311426 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp CDS 312867 313064 . - 0 ID=CDS:Os01t0105900-01;Parent=transcript:Os01t0105900-01;protein_id=Os01t0105900-01 +1 irgsp exon 312867 313170 . - . Parent=transcript:Os01t0105900-01;Name=Os01t0105900-01.exon1;constitutive=1;ensembl_end_phase=0;ensembl_phase=-1;exon_id=Os01t0105900-01.exon1;rank=1 +1 irgsp five_prime_UTR 313065 313170 . - . Parent=transcript:Os01t0105900-01 +### +1 irgsp gene 319754 322205 . + . ID=gene:Os01g0106200;biotype=protein_coding;description=Similar to RER1A protein (AtRER1A). (Os01t0106200-01);gene_id=Os01g0106200;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 319754 322205 . + . ID=transcript:Os01t0106200-01;Parent=gene:Os01g0106200;biotype=protein_coding;transcript_id=Os01t0106200-01 +1 irgsp five_prime_UTR 319754 319874 . + . Parent=transcript:Os01t0106200-01 +1 irgsp exon 319754 320236 . + . Parent=transcript:Os01t0106200-01;Name=Os01t0106200-01.exon1;constitutive=1;ensembl_end_phase=2;ensembl_phase=-1;exon_id=Os01t0106200-01.exon1;rank=1 +1 irgsp CDS 319875 320236 . + 0 ID=CDS:Os01t0106200-01;Parent=transcript:Os01t0106200-01;protein_id=Os01t0106200-01 +1 irgsp exon 321468 321648 . + . Parent=transcript:Os01t0106200-01;Name=Os01t0106200-01.exon2;constitutive=1;ensembl_end_phase=0;ensembl_phase=2;exon_id=Os01t0106200-01.exon2;rank=2 +1 irgsp CDS 321468 321648 . + 1 ID=CDS:Os01t0106200-01;Parent=transcript:Os01t0106200-01;protein_id=Os01t0106200-01 +1 irgsp CDS 321928 321975 . + 0 ID=CDS:Os01t0106200-01;Parent=transcript:Os01t0106200-01;protein_id=Os01t0106200-01 +1 irgsp exon 321928 322205 . + . Parent=transcript:Os01t0106200-01;Name=Os01t0106200-01.exon3;constitutive=1;ensembl_end_phase=-1;ensembl_phase=0;exon_id=Os01t0106200-01.exon3;rank=3 +1 irgsp three_prime_UTR 321976 322205 . + . Parent=transcript:Os01t0106200-01 +### +1 irgsp gene 322591 323923 . - . ID=gene:Os01g0106300;biotype=protein_coding;description=Similar to Isoflavone reductase homolog IRL (EC 1.3.1.-). (Os01t0106300-01);gene_id=Os01g0106300;logic_name=irgspv1.0-20170804-genes +1 irgsp mRNA 322591 323923 . - . ID=transcript:Os01t0106300-01;Parent=gene:Os01g0106300;biotype=protein_coding;transcript_id=Os01t0106300-01 +1 irgsp three_prime_UTR 322591 322809 . - . Parent=transcript:Os01t0106300-01 +1 irgsp exon 322591 322973 . - . Parent=transcript:Os01t0106300-01;Name=Os01t0106300-01.exon2;constitutive=1;ensembl_end_phase=-1;ensembl_phase=1;exon_id=Os01t0106300-01.exon2;rank=2 diff --git a/src/agat/agat_sq_stat_basic/test_data/agat_sq_stat_basic_1.gff b/src/agat/agat_sq_stat_basic/test_data/agat_sq_stat_basic_1.gff new file mode 100644 index 00000000..d8fc1f4e --- /dev/null +++ b/src/agat/agat_sq_stat_basic/test_data/agat_sq_stat_basic_1.gff @@ -0,0 +1,12 @@ +Type (3rd column) Number Size total (kb) Size mean (bp) /!\Results are rounding to two decimal places +cds 290 69.69 240.30 +chromosome 1 43270.92 43270923.00 +exon 320 107.30 335.32 +five_prime_utr 79 11.77 149.03 +gene 52 158.83 3054.40 +mrna 65 197.99 3045.94 +ncrna_gene 1 0.08 81.00 +repeat_region 2 0.20 101.00 +three_prime_utr 70 25.60 365.66 +trna 1 0.08 81.00 +Total 881 43842.46 49764.43 diff --git a/src/agat/agat_sq_stat_basic/test_data/script.sh b/src/agat/agat_sq_stat_basic/test_data/script.sh new file mode 100755 index 00000000..5527955d --- /dev/null +++ b/src/agat/agat_sq_stat_basic/test_data/script.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# clone repo +if [ ! -d /tmp/agat_source ]; then + git clone --depth 1 --single-branch --branch master https://github.com/NBISweden/AGAT /tmp/agat_source +fi + +# copy test data +cp -r /tmp/agat_source/t/scripts_output/in/1.gff src/agat/agat_sq_stat_basic/test_data/ +cp -r /tmp/agat_source/t/scripts_output/out/agat_sq_stat_basic_1.gff src/agat/agat_sq_stat_basic/test_data/ \ No newline at end of file diff --git a/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml index 4540e724..8c12a292 100644 --- a/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml @@ -235,9 +235,9 @@ build_info: output: "target/executable/agat/agat_convert_bed2gff" executable: "target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff b/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff index 76c95753..38e472cc 100755 --- a/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff +++ b/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff @@ -515,9 +515,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_bed2gff" -LABEL org.opencontainers.image.created="2024-10-26T18:44:10Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:08Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml index b0ee8c35..f0c0718b 100644 --- a/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml @@ -225,9 +225,9 @@ build_info: output: "target/executable/agat/agat_convert_embl2gff" executable: "target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff b/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff index 87ddfc02..763a1f15 100755 --- a/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff +++ b/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff @@ -505,9 +505,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_embl2gff" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:11Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml index 41b019a6..4680ca78 100644 --- a/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml @@ -230,9 +230,9 @@ build_info: output: "target/executable/agat/agat_convert_genscan2gff" executable: "target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff b/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff index a87f36f8..d4dc6bd0 100755 --- a/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff +++ b/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff @@ -514,9 +514,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_genscan2gff" -LABEL org.opencontainers.image.created="2024-10-26T18:44:07Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:11Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_mfannot2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_mfannot2gff/.config.vsh.yaml new file mode 100644 index 00000000..77010fee --- /dev/null +++ b/target/executable/agat/agat_convert_mfannot2gff/.config.vsh.yaml @@ -0,0 +1,213 @@ +name: "agat_convert_mfannot2gff" +namespace: "agat" +version: "main" +authors: +- name: "Leïla Paquay" + roles: + - "author" + - "maintainer" + info: + links: + email: "leila@data-intuitive.com" + github: "Leila011" + linkedin: "leilapaquay" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Software Developer" +argument_groups: +- name: "Inputs" + arguments: + - type: "file" + name: "--mfannot" + alternatives: + - "-m" + - "-i" + description: "The mfannot input file." + info: null + example: + - "input.mfannot" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Outputs" + arguments: + - type: "file" + name: "--gff" + alternatives: + - "-g" + - "-o" + description: "The GFF output file." + info: null + example: + - "output.gff" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" +- name: "Arguments" + arguments: + - type: "file" + name: "--config" + alternatives: + - "-c" + description: "AGAT config file. By default AGAT takes the original agat_config.yaml\ + \ shipped with AGAT. The `--config` option gives you the possibility to use\ + \ your own AGAT config file (located elsewhere or named differently).\n" + info: null + example: + - "custom_agat_config.yaml" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" +resources: +- type: "bash_script" + path: "script.sh" + is_executable: true +description: "Conversion utility for MFannot \"masterfile\" annotation produced by\ + \ the\n[MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports\n\ + GFF3 format.\n" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true +- type: "file" + path: "test_data" +info: null +status: "enabled" +requirements: + commands: + - "ps" +keywords: +- "gene annotations" +- "GFF" +- "Mfannot" +license: "GPL-3." +references: + doi: + - "10.5281/zenodo.3552717" +links: + repository: "https://github.com/NBISweden/AGAT" + homepage: "https://github.com/NBISweden/AGAT" + documentation: "https://agat.readthedocs.io/en/latest/tools/agat_convert_mfannot2gff.html" + issue_tracker: "https://github.com/NBISweden/AGAT/issues" +runners: +- type: "executable" + id: "executable" + docker_setup_strategy: "ifneedbepullelsecachedbuild" +- type: "nextflow" + id: "nextflow" + directives: + tag: "$id" + auto: + simplifyInput: true + simplifyOutput: false + transcript: false + publish: false + config: + labels: + mem1gb: "memory = 1000000000.B" + mem2gb: "memory = 2000000000.B" + mem5gb: "memory = 5000000000.B" + mem10gb: "memory = 10000000000.B" + mem20gb: "memory = 20000000000.B" + mem50gb: "memory = 50000000000.B" + mem100gb: "memory = 100000000000.B" + mem200gb: "memory = 200000000000.B" + mem500gb: "memory = 500000000000.B" + mem1tb: "memory = 1000000000000.B" + mem2tb: "memory = 2000000000000.B" + mem5tb: "memory = 5000000000000.B" + mem10tb: "memory = 10000000000000.B" + mem20tb: "memory = 20000000000000.B" + mem50tb: "memory = 50000000000000.B" + mem100tb: "memory = 100000000000000.B" + mem200tb: "memory = 200000000000000.B" + mem500tb: "memory = 500000000000000.B" + mem1gib: "memory = 1073741824.B" + mem2gib: "memory = 2147483648.B" + mem4gib: "memory = 4294967296.B" + mem8gib: "memory = 8589934592.B" + mem16gib: "memory = 17179869184.B" + mem32gib: "memory = 34359738368.B" + mem64gib: "memory = 68719476736.B" + mem128gib: "memory = 137438953472.B" + mem256gib: "memory = 274877906944.B" + mem512gib: "memory = 549755813888.B" + mem1tib: "memory = 1099511627776.B" + mem2tib: "memory = 2199023255552.B" + mem4tib: "memory = 4398046511104.B" + mem8tib: "memory = 8796093022208.B" + mem16tib: "memory = 17592186044416.B" + mem32tib: "memory = 35184372088832.B" + mem64tib: "memory = 70368744177664.B" + mem128tib: "memory = 140737488355328.B" + mem256tib: "memory = 281474976710656.B" + mem512tib: "memory = 562949953421312.B" + cpu1: "cpus = 1" + cpu2: "cpus = 2" + cpu5: "cpus = 5" + cpu10: "cpus = 10" + cpu20: "cpus = 20" + cpu50: "cpus = 50" + cpu100: "cpus = 100" + cpu200: "cpus = 200" + cpu500: "cpus = 500" + cpu1000: "cpus = 1000" + debug: false + container: "docker" +engines: +- type: "docker" + id: "docker" + image: "quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "docker" + run: + - "agat --version | sed 's/AGAT\\s\\(.*\\)/agat: \"\\1\"/' > /var/software_versions.txt\n" + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/agat/agat_convert_mfannot2gff/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/agat/agat_convert_mfannot2gff" + executable: "target/executable/agat/agat_convert_mfannot2gff/agat_convert_mfannot2gff" + viash_version: "0.9.0" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" +package_config: + name: "biobox" + version: "main" + description: "A collection of bioinformatics tools for working with sequence data.\n" + info: null + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "modules" + - "sequencing" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/biobox" + issue_tracker: "https://github.com/viash-hub/biobox/issues" diff --git a/target/executable/agat/agat_convert_mfannot2gff/agat_convert_mfannot2gff b/target/executable/agat/agat_convert_mfannot2gff/agat_convert_mfannot2gff new file mode 100755 index 00000000..ac1c7a4e --- /dev/null +++ b/target/executable/agat/agat_convert_mfannot2gff/agat_convert_mfannot2gff @@ -0,0 +1,1149 @@ +#!/usr/bin/env bash + +# agat_convert_mfannot2gff main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. +# +# Component authors: +# * Leïla Paquay (author, maintainer) + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="agat_convert_mfannot2gff" +VIASH_META_FUNCTIONALITY_NAME="agat_convert_mfannot2gff" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "agat_convert_mfannot2gff main" + echo "" + echo "Conversion utility for MFannot \"masterfile\" annotation produced by the" + echo "[MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports" + echo "GFF3 format." + echo "" + echo "Inputs:" + echo " -m, -i, --mfannot" + echo " type: file, required parameter, file must exist" + echo " example: input.mfannot" + echo " The mfannot input file." + echo "" + echo "Outputs:" + echo " -g, -o, --gff" + echo " type: file, required parameter, output, file must exist" + echo " example: output.gff" + echo " The GFF output file." + echo "" + echo "Arguments:" + echo " -c, --config" + echo " type: file, file must exist" + echo " example: custom_agat_config.yaml" + echo " AGAT config file. By default AGAT takes the original agat_config.yaml" + echo " shipped with AGAT. The \`--config\` option gives you the possibility to" + echo " use your own AGAT config file (located elsewhere or named differently)." +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0 +ENTRYPOINT [] +RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.txt + +LABEL org.opencontainers.image.authors="Leïla Paquay" +LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_mfannot2gff" +LABEL org.opencontainers.image.created="2024-11-02T09:32:23Z" +LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "agat_convert_mfannot2gff main" + exit + ;; + --mfannot) + [ -n "$VIASH_PAR_MFANNOT" ] && ViashError Bad arguments for option \'--mfannot\': \'$VIASH_PAR_MFANNOT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MFANNOT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --mfannot. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --mfannot=*) + [ -n "$VIASH_PAR_MFANNOT" ] && ViashError Bad arguments for option \'--mfannot=*\': \'$VIASH_PAR_MFANNOT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MFANNOT=$(ViashRemoveFlags "$1") + shift 1 + ;; + -m) + [ -n "$VIASH_PAR_MFANNOT" ] && ViashError Bad arguments for option \'-m\': \'$VIASH_PAR_MFANNOT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MFANNOT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -m. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + -i) + [ -n "$VIASH_PAR_MFANNOT" ] && ViashError Bad arguments for option \'-i\': \'$VIASH_PAR_MFANNOT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MFANNOT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -i. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --gff) + [ -n "$VIASH_PAR_GFF" ] && ViashError Bad arguments for option \'--gff\': \'$VIASH_PAR_GFF\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GFF="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --gff. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --gff=*) + [ -n "$VIASH_PAR_GFF" ] && ViashError Bad arguments for option \'--gff=*\': \'$VIASH_PAR_GFF\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GFF=$(ViashRemoveFlags "$1") + shift 1 + ;; + -g) + [ -n "$VIASH_PAR_GFF" ] && ViashError Bad arguments for option \'-g\': \'$VIASH_PAR_GFF\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GFF="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -g. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + -o) + [ -n "$VIASH_PAR_GFF" ] && ViashError Bad arguments for option \'-o\': \'$VIASH_PAR_GFF\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GFF="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -o. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --config) + [ -n "$VIASH_PAR_CONFIG" ] && ViashError Bad arguments for option \'--config\': \'$VIASH_PAR_CONFIG\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONFIG="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --config. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --config=*) + [ -n "$VIASH_PAR_CONFIG" ] && ViashError Bad arguments for option \'--config=*\': \'$VIASH_PAR_CONFIG\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONFIG=$(ViashRemoveFlags "$1") + shift 1 + ;; + -c) + [ -n "$VIASH_PAR_CONFIG" ] && ViashError Bad arguments for option \'-c\': \'$VIASH_PAR_CONFIG\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONFIG="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -c. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/biobox/agat/agat_convert_mfannot2gff:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_MFANNOT+x} ]; then + ViashError '--mfannot' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_GFF+x} ]; then + ViashError '--gff' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_MFANNOT" ] && [ ! -e "$VIASH_PAR_MFANNOT" ]; then + ViashError "Input file '$VIASH_PAR_MFANNOT' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_CONFIG" ] && [ ! -e "$VIASH_PAR_CONFIG" ]; then + ViashError "Input file '$VIASH_PAR_CONFIG' does not exist." + exit 1 +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +# create parent directories of output files, if so desired +if [ ! -z "$VIASH_PAR_GFF" ] && [ ! -d "$(dirname "$VIASH_PAR_GFF")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_GFF")" +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_MFANNOT" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_MFANNOT")" ) + VIASH_PAR_MFANNOT=$(ViashDockerAutodetectMount "$VIASH_PAR_MFANNOT") +fi +if [ ! -z "$VIASH_PAR_GFF" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_GFF")" ) + VIASH_PAR_GFF=$(ViashDockerAutodetectMount "$VIASH_PAR_GFF") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_GFF" ) +fi +if [ ! -z "$VIASH_PAR_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_CONFIG")" ) + VIASH_PAR_CONFIG=$(ViashDockerAutodetectMount "$VIASH_PAR_CONFIG") +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-agat_convert_mfannot2gff-XXXXXX").sh +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +#!/bin/bash + +set -eo pipefail + +## VIASH START +# The following code has been auto-generated by Viash. +$( if [ ! -z ${VIASH_PAR_MFANNOT+x} ]; then echo "${VIASH_PAR_MFANNOT}" | sed "s#'#'\"'\"'#g;s#.*#par_mfannot='&'#" ; else echo "# par_mfannot="; fi ) +$( if [ ! -z ${VIASH_PAR_GFF+x} ]; then echo "${VIASH_PAR_GFF}" | sed "s#'#'\"'\"'#g;s#.*#par_gff='&'#" ; else echo "# par_gff="; fi ) +$( if [ ! -z ${VIASH_PAR_CONFIG+x} ]; then echo "${VIASH_PAR_CONFIG}" | sed "s#'#'\"'\"'#g;s#.*#par_config='&'#" ; else echo "# par_config="; fi ) +$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi ) +$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi ) +$( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "${VIASH_META_RESOURCES_DIR}" | sed "s#'#'\"'\"'#g;s#.*#meta_resources_dir='&'#" ; else echo "# meta_resources_dir="; fi ) +$( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "${VIASH_META_EXECUTABLE}" | sed "s#'#'\"'\"'#g;s#.*#meta_executable='&'#" ; else echo "# meta_executable="; fi ) +$( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "${VIASH_META_CONFIG}" | sed "s#'#'\"'\"'#g;s#.*#meta_config='&'#" ; else echo "# meta_config="; fi ) +$( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "${VIASH_META_TEMP_DIR}" | sed "s#'#'\"'\"'#g;s#.*#meta_temp_dir='&'#" ; else echo "# meta_temp_dir="; fi ) +$( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "${VIASH_META_CPUS}" | sed "s#'#'\"'\"'#g;s#.*#meta_cpus='&'#" ; else echo "# meta_cpus="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "${VIASH_META_MEMORY_B}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_b='&'#" ; else echo "# meta_memory_b="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "${VIASH_META_MEMORY_KB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_kb='&'#" ; else echo "# meta_memory_kb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "${VIASH_META_MEMORY_MB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_mb='&'#" ; else echo "# meta_memory_mb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "${VIASH_META_MEMORY_GB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_gb='&'#" ; else echo "# meta_memory_gb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "${VIASH_META_MEMORY_TB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_tb='&'#" ; else echo "# meta_memory_tb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "${VIASH_META_MEMORY_PB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pb='&'#" ; else echo "# meta_memory_pb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "${VIASH_META_MEMORY_KIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_kib='&'#" ; else echo "# meta_memory_kib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "${VIASH_META_MEMORY_MIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_mib='&'#" ; else echo "# meta_memory_mib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "${VIASH_META_MEMORY_GIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_gib='&'#" ; else echo "# meta_memory_gib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_tib='&'#" ; else echo "# meta_memory_tib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) + +## VIASH END + +agat_convert_mfannot2gff.pl \\ + --mfannot "\$par_mfannot" \\ + --gff "\$par_gff" \\ + \${par_config:+--config "\${par_config}"} +VIASHMAIN +bash "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_MFANNOT" ]; then + VIASH_PAR_MFANNOT=$(ViashDockerStripAutomount "$VIASH_PAR_MFANNOT") + fi + if [ ! -z "$VIASH_PAR_GFF" ]; then + VIASH_PAR_GFF=$(ViashDockerStripAutomount "$VIASH_PAR_GFF") + fi + if [ ! -z "$VIASH_PAR_CONFIG" ]; then + VIASH_PAR_CONFIG=$(ViashDockerStripAutomount "$VIASH_PAR_CONFIG") + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +# check whether required files exist +if [ ! -z "$VIASH_PAR_GFF" ] && [ ! -e "$VIASH_PAR_GFF" ]; then + ViashError "Output file '$VIASH_PAR_GFF' does not exist." + exit 1 +fi + + +exit 0 diff --git a/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml b/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml index 05425917..804b005c 100644 --- a/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml @@ -228,9 +228,9 @@ build_info: output: "target/executable/agat/agat_convert_sp_gff2gtf" executable: "target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf b/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf index 71c963e9..8cc84f52 100755 --- a/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf +++ b/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf @@ -519,9 +519,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_sp_gff2gtf" -LABEL org.opencontainers.image.created="2024-10-26T18:44:09Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:09Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml b/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml index df3445ed..72912df0 100644 --- a/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml @@ -188,9 +188,9 @@ build_info: output: "target/executable/agat/agat_convert_sp_gff2tsv" executable: "target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv b/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv index 0749315f..51029e57 100755 --- a/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv +++ b/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv @@ -484,9 +484,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_sp_gff2tsv" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:09Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml b/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml index ddb3ec05..316164de 100644 --- a/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml @@ -195,9 +195,9 @@ build_info: output: "target/executable/agat/agat_convert_sp_gxf2gxf" executable: "target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf b/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf index 62a728fd..6b275578 100755 --- a/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf +++ b/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf @@ -493,9 +493,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_sp_gxf2gxf" -LABEL org.opencontainers.image.created="2024-10-26T18:44:07Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:23Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_sp_add_introns/.config.vsh.yaml b/target/executable/agat/agat_sp_add_introns/.config.vsh.yaml index 1bb83d2d..8611d9aa 100644 --- a/target/executable/agat/agat_sp_add_introns/.config.vsh.yaml +++ b/target/executable/agat/agat_sp_add_introns/.config.vsh.yaml @@ -186,9 +186,9 @@ build_info: output: "target/executable/agat/agat_sp_add_introns" executable: "target/executable/agat/agat_sp_add_introns/agat_sp_add_introns" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_sp_add_introns/agat_sp_add_introns b/target/executable/agat/agat_sp_add_introns/agat_sp_add_introns index 9acefe5b..69bde162 100755 --- a/target/executable/agat/agat_sp_add_introns/agat_sp_add_introns +++ b/target/executable/agat/agat_sp_add_introns/agat_sp_add_introns @@ -479,9 +479,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_sp_add_introns" -LABEL org.opencontainers.image.created="2024-10-26T18:44:09Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:09Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml b/target/executable/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml index f248e314..01bae571 100644 --- a/target/executable/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml +++ b/target/executable/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml @@ -236,9 +236,9 @@ build_info: output: "target/executable/agat/agat_sp_filter_feature_from_kill_list" executable: "target/executable/agat/agat_sp_filter_feature_from_kill_list/agat_sp_filter_feature_from_kill_list" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_sp_filter_feature_from_kill_list/agat_sp_filter_feature_from_kill_list b/target/executable/agat/agat_sp_filter_feature_from_kill_list/agat_sp_filter_feature_from_kill_list index 2cfc8821..703c786c 100755 --- a/target/executable/agat/agat_sp_filter_feature_from_kill_list/agat_sp_filter_feature_from_kill_list +++ b/target/executable/agat/agat_sp_filter_feature_from_kill_list/agat_sp_filter_feature_from_kill_list @@ -517,9 +517,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_sp_filter_feature_from_kill_list" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:11Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_sp_merge_annotations/.config.vsh.yaml b/target/executable/agat/agat_sp_merge_annotations/.config.vsh.yaml index b460de98..b94d6e59 100644 --- a/target/executable/agat/agat_sp_merge_annotations/.config.vsh.yaml +++ b/target/executable/agat/agat_sp_merge_annotations/.config.vsh.yaml @@ -184,9 +184,9 @@ build_info: output: "target/executable/agat/agat_sp_merge_annotations" executable: "target/executable/agat/agat_sp_merge_annotations/agat_sp_merge_annotations" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_sp_merge_annotations/agat_sp_merge_annotations b/target/executable/agat/agat_sp_merge_annotations/agat_sp_merge_annotations index c0e43395..69fd5e8e 100755 --- a/target/executable/agat/agat_sp_merge_annotations/agat_sp_merge_annotations +++ b/target/executable/agat/agat_sp_merge_annotations/agat_sp_merge_annotations @@ -482,9 +482,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_sp_merge_annotations" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:10Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_sp_statistics/.config.vsh.yaml b/target/executable/agat/agat_sp_statistics/.config.vsh.yaml index 349b3d36..43f539e5 100644 --- a/target/executable/agat/agat_sp_statistics/.config.vsh.yaml +++ b/target/executable/agat/agat_sp_statistics/.config.vsh.yaml @@ -231,9 +231,9 @@ build_info: output: "target/executable/agat/agat_sp_statistics" executable: "target/executable/agat/agat_sp_statistics/agat_sp_statistics" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_sp_statistics/agat_sp_statistics b/target/executable/agat/agat_sp_statistics/agat_sp_statistics index eeac3fca..1303dfa8 100755 --- a/target/executable/agat/agat_sp_statistics/agat_sp_statistics +++ b/target/executable/agat/agat_sp_statistics/agat_sp_statistics @@ -507,9 +507,9 @@ RUN agat --version | sed 's/.*v\.//; s/\s.*//' | sed 's/^/AGAT: /' > /var/softwa LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_sp_statistics" -LABEL org.opencontainers.image.created="2024-10-26T18:44:09Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:10Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_sq_stat_basic/.config.vsh.yaml b/target/executable/agat/agat_sq_stat_basic/.config.vsh.yaml new file mode 100644 index 00000000..df3106eb --- /dev/null +++ b/target/executable/agat/agat_sq_stat_basic/.config.vsh.yaml @@ -0,0 +1,254 @@ +name: "agat_sq_stat_basic" +namespace: "agat" +version: "main" +authors: +- name: "Leïla Paquay" + roles: + - "author" + - "maintainer" + info: + links: + email: "leila@data-intuitive.com" + github: "Leila011" + linkedin: "leilapaquay" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Software Developer" +argument_groups: +- name: "Inputs" + arguments: + - type: "file" + name: "--gff" + alternatives: + - "-i" + - "--file" + - "--input" + description: "Input GTF/GFF file.\n" + info: null + example: + - "input.gff" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" + - type: "integer" + name: "--genome_size" + alternatives: + - "-g" + description: "That input is designed to know the genome size in order to calculate\ + \ the percentage of the genome represented by each kind of feature type. You\ + \ can provide an INTEGER. Or you can also pass a fasta file using the argument\ + \ --genome_size_fasta. If both are provided, only the value of --genome_size\ + \ will be considered.\n" + info: null + example: + - 10000 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--genome_size_fasta" + description: "That input is designed to know the genome size in order to calculate\ + \ the percentage of the genome represented by each kind of feature type. You\ + \ can provide the genome in fasta format. Or you can also pass the size directly\ + \ as an integer using the argument --genome_size. If you provide the fasta,\ + \ the genome size will be calculated on the fly. If both are provided, only\ + \ the value of --genome_size will be considered.\n" + info: null + example: + - "genome.fasta" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Outputs" + arguments: + - type: "file" + name: "--output" + alternatives: + - "-o" + description: "Output file. The result is in tabulate format.\n" + info: null + example: + - "output.txt" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" +- name: "Arguments" + arguments: + - type: "boolean_true" + name: "--inflate" + description: "Inflate the statistics taking into account feature with\nmulti-parents.\ + \ Indeed to avoid redundant information, some gff\nfactorize identical features.\ + \ e.g: one exon used in two\ndifferent isoform will be defined only once, and\ + \ will have\nmultiple parent. By default the script count such feature only\n\ + once. Using the inflate option allows to count the feature and\nits size as\ + \ many time there are parents.\n" + info: null + direction: "input" + - type: "file" + name: "--config" + alternatives: + - "-c" + description: "AGAT config file. By default AGAT takes the original agat_config.yaml\ + \ shipped with AGAT. The `--config` option gives you the possibility to use\ + \ your own AGAT config file (located elsewhere or named differently).\n" + info: null + example: + - "custom_agat_config.yaml" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" +resources: +- type: "bash_script" + path: "script.sh" + is_executable: true +description: "The script aims to provide basic statistics of a gtf/gff file.\n" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true +- type: "file" + path: "test_data" +info: null +status: "enabled" +requirements: + commands: + - "ps" +keywords: +- "gene annotations" +- "gff" +- "statistics" +license: "GPL-3.0" +references: + doi: + - "10.5281/zenodo.3552717" +links: + repository: "https://github.com/NBISweden/AGAT" + homepage: "https://github.com/NBISweden/AGAT" + documentation: "https://agat.readthedocs.io/en/latest/tools/agat_sq_stat_basic.html" + issue_tracker: "https://github.com/NBISweden/AGAT/issues" +runners: +- type: "executable" + id: "executable" + docker_setup_strategy: "ifneedbepullelsecachedbuild" +- type: "nextflow" + id: "nextflow" + directives: + tag: "$id" + auto: + simplifyInput: true + simplifyOutput: false + transcript: false + publish: false + config: + labels: + mem1gb: "memory = 1000000000.B" + mem2gb: "memory = 2000000000.B" + mem5gb: "memory = 5000000000.B" + mem10gb: "memory = 10000000000.B" + mem20gb: "memory = 20000000000.B" + mem50gb: "memory = 50000000000.B" + mem100gb: "memory = 100000000000.B" + mem200gb: "memory = 200000000000.B" + mem500gb: "memory = 500000000000.B" + mem1tb: "memory = 1000000000000.B" + mem2tb: "memory = 2000000000000.B" + mem5tb: "memory = 5000000000000.B" + mem10tb: "memory = 10000000000000.B" + mem20tb: "memory = 20000000000000.B" + mem50tb: "memory = 50000000000000.B" + mem100tb: "memory = 100000000000000.B" + mem200tb: "memory = 200000000000000.B" + mem500tb: "memory = 500000000000000.B" + mem1gib: "memory = 1073741824.B" + mem2gib: "memory = 2147483648.B" + mem4gib: "memory = 4294967296.B" + mem8gib: "memory = 8589934592.B" + mem16gib: "memory = 17179869184.B" + mem32gib: "memory = 34359738368.B" + mem64gib: "memory = 68719476736.B" + mem128gib: "memory = 137438953472.B" + mem256gib: "memory = 274877906944.B" + mem512gib: "memory = 549755813888.B" + mem1tib: "memory = 1099511627776.B" + mem2tib: "memory = 2199023255552.B" + mem4tib: "memory = 4398046511104.B" + mem8tib: "memory = 8796093022208.B" + mem16tib: "memory = 17592186044416.B" + mem32tib: "memory = 35184372088832.B" + mem64tib: "memory = 70368744177664.B" + mem128tib: "memory = 140737488355328.B" + mem256tib: "memory = 281474976710656.B" + mem512tib: "memory = 562949953421312.B" + cpu1: "cpus = 1" + cpu2: "cpus = 2" + cpu5: "cpus = 5" + cpu10: "cpus = 10" + cpu20: "cpus = 20" + cpu50: "cpus = 50" + cpu100: "cpus = 100" + cpu200: "cpus = 200" + cpu500: "cpus = 500" + cpu1000: "cpus = 1000" + debug: false + container: "docker" +engines: +- type: "docker" + id: "docker" + image: "quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "docker" + run: + - "agat --version | sed 's/AGAT\\s\\(.*\\)/agat: \"\\1\"/' > /var/software_versions.txt\n" + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/agat/agat_sq_stat_basic/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/agat/agat_sq_stat_basic" + executable: "target/executable/agat/agat_sq_stat_basic/agat_sq_stat_basic" + viash_version: "0.9.0" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" +package_config: + name: "biobox" + version: "main" + description: "A collection of bioinformatics tools for working with sequence data.\n" + info: null + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "modules" + - "sequencing" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/biobox" + issue_tracker: "https://github.com/viash-hub/biobox/issues" diff --git a/target/executable/agat/agat_sq_stat_basic/agat_sq_stat_basic b/target/executable/agat/agat_sq_stat_basic/agat_sq_stat_basic new file mode 100755 index 00000000..82099b4d --- /dev/null +++ b/target/executable/agat/agat_sq_stat_basic/agat_sq_stat_basic @@ -0,0 +1,1300 @@ +#!/usr/bin/env bash + +# agat_sq_stat_basic main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. +# +# Component authors: +# * Leïla Paquay (author, maintainer) + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="agat_sq_stat_basic" +VIASH_META_FUNCTIONALITY_NAME="agat_sq_stat_basic" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "agat_sq_stat_basic main" + echo "" + echo "The script aims to provide basic statistics of a gtf/gff file." + echo "" + echo "Inputs:" + echo " -i, --file, --input, --gff" + echo " type: file, required parameter, multiple values allowed, file must exist" + echo " example: input.gff" + echo " Input GTF/GFF file." + echo "" + echo " -g, --genome_size" + echo " type: integer" + echo " example: 10000" + echo " That input is designed to know the genome size in order to calculate the" + echo " percentage of the genome represented by each kind of feature type. You" + echo " can provide an INTEGER. Or you can also pass a fasta file using the" + echo " argument --genome_size_fasta. If both are provided, only the value of" + echo " --genome_size will be considered." + echo "" + echo " --genome_size_fasta" + echo " type: file, file must exist" + echo " example: genome.fasta" + echo " That input is designed to know the genome size in order to calculate the" + echo " percentage of the genome represented by each kind of feature type. You" + echo " can provide the genome in fasta format. Or you can also pass the size" + echo " directly as an integer using the argument --genome_size. If you provide" + echo " the fasta, the genome size will be calculated on the fly. If both are" + echo " provided, only the value of --genome_size will be considered." + echo "" + echo "Outputs:" + echo " -o, --output" + echo " type: file, required parameter, output, file must exist" + echo " example: output.txt" + echo " Output file. The result is in tabulate format." + echo "" + echo "Arguments:" + echo " --inflate" + echo " type: boolean_true" + echo " Inflate the statistics taking into account feature with" + echo " multi-parents. Indeed to avoid redundant information, some gff" + echo " factorize identical features. e.g: one exon used in two" + echo " different isoform will be defined only once, and will have" + echo " multiple parent. By default the script count such feature only" + echo " once. Using the inflate option allows to count the feature and" + echo " its size as many time there are parents." + echo "" + echo " -c, --config" + echo " type: file, file must exist" + echo " example: custom_agat_config.yaml" + echo " AGAT config file. By default AGAT takes the original agat_config.yaml" + echo " shipped with AGAT. The \`--config\` option gives you the possibility to" + echo " use your own AGAT config file (located elsewhere or named differently)." +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0 +ENTRYPOINT [] +RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.txt + +LABEL org.opencontainers.image.authors="Leïla Paquay" +LABEL org.opencontainers.image.description="Companion container for running component agat agat_sq_stat_basic" +LABEL org.opencontainers.image.created="2024-11-02T09:32:23Z" +LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "agat_sq_stat_basic main" + exit + ;; + --gff) + if [ -z "$VIASH_PAR_GFF" ]; then + VIASH_PAR_GFF="$2" + else + VIASH_PAR_GFF="$VIASH_PAR_GFF;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to --gff. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --gff=*) + if [ -z "$VIASH_PAR_GFF" ]; then + VIASH_PAR_GFF=$(ViashRemoveFlags "$1") + else + VIASH_PAR_GFF="$VIASH_PAR_GFF;"$(ViashRemoveFlags "$1") + fi + shift 1 + ;; + -i) + if [ -z "$VIASH_PAR_GFF" ]; then + VIASH_PAR_GFF="$2" + else + VIASH_PAR_GFF="$VIASH_PAR_GFF;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to -i. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --file) + if [ -z "$VIASH_PAR_GFF" ]; then + VIASH_PAR_GFF="$2" + else + VIASH_PAR_GFF="$VIASH_PAR_GFF;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to --file. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --input) + if [ -z "$VIASH_PAR_GFF" ]; then + VIASH_PAR_GFF="$2" + else + VIASH_PAR_GFF="$VIASH_PAR_GFF;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to --input. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --genome_size) + [ -n "$VIASH_PAR_GENOME_SIZE" ] && ViashError Bad arguments for option \'--genome_size\': \'$VIASH_PAR_GENOME_SIZE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GENOME_SIZE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --genome_size. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --genome_size=*) + [ -n "$VIASH_PAR_GENOME_SIZE" ] && ViashError Bad arguments for option \'--genome_size=*\': \'$VIASH_PAR_GENOME_SIZE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GENOME_SIZE=$(ViashRemoveFlags "$1") + shift 1 + ;; + -g) + [ -n "$VIASH_PAR_GENOME_SIZE" ] && ViashError Bad arguments for option \'-g\': \'$VIASH_PAR_GENOME_SIZE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GENOME_SIZE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -g. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --genome_size_fasta) + [ -n "$VIASH_PAR_GENOME_SIZE_FASTA" ] && ViashError Bad arguments for option \'--genome_size_fasta\': \'$VIASH_PAR_GENOME_SIZE_FASTA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GENOME_SIZE_FASTA="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --genome_size_fasta. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --genome_size_fasta=*) + [ -n "$VIASH_PAR_GENOME_SIZE_FASTA" ] && ViashError Bad arguments for option \'--genome_size_fasta=*\': \'$VIASH_PAR_GENOME_SIZE_FASTA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GENOME_SIZE_FASTA=$(ViashRemoveFlags "$1") + shift 1 + ;; + --output) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --output. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --output=*) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'--output=*\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT=$(ViashRemoveFlags "$1") + shift 1 + ;; + -o) + [ -n "$VIASH_PAR_OUTPUT" ] && ViashError Bad arguments for option \'-o\': \'$VIASH_PAR_OUTPUT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -o. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --inflate) + [ -n "$VIASH_PAR_INFLATE" ] && ViashError Bad arguments for option \'--inflate\': \'$VIASH_PAR_INFLATE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_INFLATE=true + shift 1 + ;; + --config) + [ -n "$VIASH_PAR_CONFIG" ] && ViashError Bad arguments for option \'--config\': \'$VIASH_PAR_CONFIG\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONFIG="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --config. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --config=*) + [ -n "$VIASH_PAR_CONFIG" ] && ViashError Bad arguments for option \'--config=*\': \'$VIASH_PAR_CONFIG\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONFIG=$(ViashRemoveFlags "$1") + shift 1 + ;; + -c) + [ -n "$VIASH_PAR_CONFIG" ] && ViashError Bad arguments for option \'-c\': \'$VIASH_PAR_CONFIG\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONFIG="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -c. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/biobox/agat/agat_sq_stat_basic:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_GFF+x} ]; then + ViashError '--gff' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_OUTPUT+x} ]; then + ViashError '--output' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# filling in defaults +if [ -z ${VIASH_PAR_INFLATE+x} ]; then + VIASH_PAR_INFLATE="false" +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_GFF" ]; then + IFS=';' + set -f + for file in $VIASH_PAR_GFF; do + unset IFS + if [ ! -e "$file" ]; then + ViashError "Input file '$file' does not exist." + exit 1 + fi + done + set +f +fi +if [ ! -z "$VIASH_PAR_GENOME_SIZE_FASTA" ] && [ ! -e "$VIASH_PAR_GENOME_SIZE_FASTA" ]; then + ViashError "Input file '$VIASH_PAR_GENOME_SIZE_FASTA' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_CONFIG" ] && [ ! -e "$VIASH_PAR_CONFIG" ]; then + ViashError "Input file '$VIASH_PAR_CONFIG' does not exist." + exit 1 +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_PAR_GENOME_SIZE" ]]; then + if ! [[ "$VIASH_PAR_GENOME_SIZE" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--genome_size' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_INFLATE" ]]; then + if ! [[ "$VIASH_PAR_INFLATE" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--inflate' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +# create parent directories of output files, if so desired +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -d "$(dirname "$VIASH_PAR_OUTPUT")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_OUTPUT")" +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_GFF" ]; then + VIASH_TEST_GFF=() + IFS=';' + for var in $VIASH_PAR_GFF; do + unset IFS + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$var")" ) + var=$(ViashDockerAutodetectMount "$var") + VIASH_TEST_GFF+=( "$var" ) + done + VIASH_PAR_GFF=$(IFS=';' ; echo "${VIASH_TEST_GFF[*]}") +fi +if [ ! -z "$VIASH_PAR_GENOME_SIZE_FASTA" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_GENOME_SIZE_FASTA")" ) + VIASH_PAR_GENOME_SIZE_FASTA=$(ViashDockerAutodetectMount "$VIASH_PAR_GENOME_SIZE_FASTA") +fi +if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_OUTPUT")" ) + VIASH_PAR_OUTPUT=$(ViashDockerAutodetectMount "$VIASH_PAR_OUTPUT") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_OUTPUT" ) +fi +if [ ! -z "$VIASH_PAR_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_CONFIG")" ) + VIASH_PAR_CONFIG=$(ViashDockerAutodetectMount "$VIASH_PAR_CONFIG") +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-agat_sq_stat_basic-XXXXXX").sh +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +#!/bin/bash + +set -eo pipefail + +## VIASH START +# The following code has been auto-generated by Viash. +$( if [ ! -z ${VIASH_PAR_GFF+x} ]; then echo "${VIASH_PAR_GFF}" | sed "s#'#'\"'\"'#g;s#.*#par_gff='&'#" ; else echo "# par_gff="; fi ) +$( if [ ! -z ${VIASH_PAR_GENOME_SIZE+x} ]; then echo "${VIASH_PAR_GENOME_SIZE}" | sed "s#'#'\"'\"'#g;s#.*#par_genome_size='&'#" ; else echo "# par_genome_size="; fi ) +$( if [ ! -z ${VIASH_PAR_GENOME_SIZE_FASTA+x} ]; then echo "${VIASH_PAR_GENOME_SIZE_FASTA}" | sed "s#'#'\"'\"'#g;s#.*#par_genome_size_fasta='&'#" ; else echo "# par_genome_size_fasta="; fi ) +$( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "${VIASH_PAR_OUTPUT}" | sed "s#'#'\"'\"'#g;s#.*#par_output='&'#" ; else echo "# par_output="; fi ) +$( if [ ! -z ${VIASH_PAR_INFLATE+x} ]; then echo "${VIASH_PAR_INFLATE}" | sed "s#'#'\"'\"'#g;s#.*#par_inflate='&'#" ; else echo "# par_inflate="; fi ) +$( if [ ! -z ${VIASH_PAR_CONFIG+x} ]; then echo "${VIASH_PAR_CONFIG}" | sed "s#'#'\"'\"'#g;s#.*#par_config='&'#" ; else echo "# par_config="; fi ) +$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi ) +$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi ) +$( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "${VIASH_META_RESOURCES_DIR}" | sed "s#'#'\"'\"'#g;s#.*#meta_resources_dir='&'#" ; else echo "# meta_resources_dir="; fi ) +$( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "${VIASH_META_EXECUTABLE}" | sed "s#'#'\"'\"'#g;s#.*#meta_executable='&'#" ; else echo "# meta_executable="; fi ) +$( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "${VIASH_META_CONFIG}" | sed "s#'#'\"'\"'#g;s#.*#meta_config='&'#" ; else echo "# meta_config="; fi ) +$( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "${VIASH_META_TEMP_DIR}" | sed "s#'#'\"'\"'#g;s#.*#meta_temp_dir='&'#" ; else echo "# meta_temp_dir="; fi ) +$( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "${VIASH_META_CPUS}" | sed "s#'#'\"'\"'#g;s#.*#meta_cpus='&'#" ; else echo "# meta_cpus="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "${VIASH_META_MEMORY_B}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_b='&'#" ; else echo "# meta_memory_b="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "${VIASH_META_MEMORY_KB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_kb='&'#" ; else echo "# meta_memory_kb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "${VIASH_META_MEMORY_MB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_mb='&'#" ; else echo "# meta_memory_mb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "${VIASH_META_MEMORY_GB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_gb='&'#" ; else echo "# meta_memory_gb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "${VIASH_META_MEMORY_TB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_tb='&'#" ; else echo "# meta_memory_tb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "${VIASH_META_MEMORY_PB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pb='&'#" ; else echo "# meta_memory_pb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "${VIASH_META_MEMORY_KIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_kib='&'#" ; else echo "# meta_memory_kib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "${VIASH_META_MEMORY_MIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_mib='&'#" ; else echo "# meta_memory_mib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "${VIASH_META_MEMORY_GIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_gib='&'#" ; else echo "# meta_memory_gib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_tib='&'#" ; else echo "# meta_memory_tib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) + +## VIASH END + +# unset flags +[[ "\$par_inflate" == "false" ]] && unset par_inflate + +# Convert a list of file names to multiple -gff arguments +input_files="" +IFS=";" read -ra file_names <<< "\$par_gff" +for file in "\${file_names[@]}"; do + input_files+="--gff \$file " +done + +# take care of --genome (can originally be either a fasta file or an integer) +if [[ -n "\$par_genome_size" ]]; then + genome_arg=\$par_genome_size +elif [[ -n "\$par_genome_size_fasta" ]]; then + genome_arg=\$par_genome_size_fasta +fi + +# run agat_convert_sp_bed2gff.pl +agat_sq_stat_basic.pl \\ + \$input_files \\ + \${genome_arg:+--genome "\${genome_arg}"} \\ + --output "\${par_output}" \\ + \${par_inflate:+--inflate} \\ + \${par_config:+--config "\${par_config}"} +VIASHMAIN +bash "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_GFF" ]; then + unset VIASH_TEST_GFF + IFS=';' + for var in $VIASH_PAR_GFF; do + unset IFS + if [ -z "$VIASH_TEST_GFF" ]; then + VIASH_TEST_GFF="$(ViashDockerStripAutomount "$var")" + else + VIASH_TEST_GFF="$VIASH_TEST_GFF;""$(ViashDockerStripAutomount "$var")" + fi + done + VIASH_PAR_GFF="$VIASH_TEST_GFF" + fi + if [ ! -z "$VIASH_PAR_GENOME_SIZE_FASTA" ]; then + VIASH_PAR_GENOME_SIZE_FASTA=$(ViashDockerStripAutomount "$VIASH_PAR_GENOME_SIZE_FASTA") + fi + if [ ! -z "$VIASH_PAR_OUTPUT" ]; then + VIASH_PAR_OUTPUT=$(ViashDockerStripAutomount "$VIASH_PAR_OUTPUT") + fi + if [ ! -z "$VIASH_PAR_CONFIG" ]; then + VIASH_PAR_CONFIG=$(ViashDockerStripAutomount "$VIASH_PAR_CONFIG") + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +# check whether required files exist +if [ ! -z "$VIASH_PAR_OUTPUT" ] && [ ! -e "$VIASH_PAR_OUTPUT" ]; then + ViashError "Output file '$VIASH_PAR_OUTPUT' does not exist." + exit 1 +fi + + +exit 0 diff --git a/target/executable/arriba/.config.vsh.yaml b/target/executable/arriba/.config.vsh.yaml index a034357e..15dbc1d8 100644 --- a/target/executable/arriba/.config.vsh.yaml +++ b/target/executable/arriba/.config.vsh.yaml @@ -706,9 +706,9 @@ build_info: output: "target/executable/arriba" executable: "target/executable/arriba/arriba" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/arriba/arriba b/target/executable/arriba/arriba index b957fcd6..b68853b6 100755 --- a/target/executable/arriba/arriba +++ b/target/executable/arriba/arriba @@ -754,9 +754,9 @@ RUN arriba -h | grep 'Version:' 2>&1 | sed 's/Version:\s\(.*\)/arriba: "\1"/' > LABEL org.opencontainers.image.authors="Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component arriba" -LABEL org.opencontainers.image.created="2024-10-26T18:44:10Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:12Z" LABEL org.opencontainers.image.source="https://github.com/suhrig/arriba" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bbmap/bbmap_bbsplit/.config.vsh.yaml b/target/executable/bbmap/bbmap_bbsplit/.config.vsh.yaml index 6586c1e4..a4e259c9 100644 --- a/target/executable/bbmap/bbmap_bbsplit/.config.vsh.yaml +++ b/target/executable/bbmap/bbmap_bbsplit/.config.vsh.yaml @@ -359,9 +359,9 @@ build_info: output: "target/executable/bbmap/bbmap_bbsplit" executable: "target/executable/bbmap/bbmap_bbsplit/bbmap_bbsplit" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bbmap/bbmap_bbsplit/bbmap_bbsplit b/target/executable/bbmap/bbmap_bbsplit/bbmap_bbsplit index fc42d009..5092cbf8 100755 --- a/target/executable/bbmap/bbmap_bbsplit/bbmap_bbsplit +++ b/target/executable/bbmap/bbmap_bbsplit/bbmap_bbsplit @@ -600,9 +600,9 @@ cp -r bbmap/* /usr/local/bin RUN bbsplit.sh --version 2>&1 | awk '/BBMap version/{print "BBMAP:", $NF}' > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component bbmap bbmap_bbsplit" -LABEL org.opencontainers.image.created="2024-10-26T18:44:12Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:13Z" LABEL org.opencontainers.image.source="https://github.com/BioInfoTools/BBMap/blob/master/sh/bbsplit.sh" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml b/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml index 5228e868..0bfd37f2 100644 --- a/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml @@ -469,9 +469,9 @@ build_info: output: "target/executable/bcftools/bcftools_annotate" executable: "target/executable/bcftools/bcftools_annotate/bcftools_annotate" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_annotate/bcftools_annotate b/target/executable/bcftools/bcftools_annotate/bcftools_annotate index 1158f3e3..5e41a626 100755 --- a/target/executable/bcftools/bcftools_annotate/bcftools_annotate +++ b/target/executable/bcftools/bcftools_annotate/bcftools_annotate @@ -650,9 +650,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_annotate" -LABEL org.opencontainers.image.created="2024-10-26T18:44:00Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:22Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_concat/.config.vsh.yaml b/target/executable/bcftools/bcftools_concat/.config.vsh.yaml index ade51af9..61caa766 100644 --- a/target/executable/bcftools/bcftools_concat/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_concat/.config.vsh.yaml @@ -335,9 +335,9 @@ build_info: output: "target/executable/bcftools/bcftools_concat" executable: "target/executable/bcftools/bcftools_concat/bcftools_concat" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_concat/bcftools_concat b/target/executable/bcftools/bcftools_concat/bcftools_concat index b49da971..c2beeed0 100755 --- a/target/executable/bcftools/bcftools_concat/bcftools_concat +++ b/target/executable/bcftools/bcftools_concat/bcftools_concat @@ -566,9 +566,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_concat" -LABEL org.opencontainers.image.created="2024-10-26T18:44:01Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:21Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_norm/.config.vsh.yaml b/target/executable/bcftools/bcftools_norm/.config.vsh.yaml index b71f853d..8ad429ca 100644 --- a/target/executable/bcftools/bcftools_norm/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_norm/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/executable/bcftools/bcftools_norm" executable: "target/executable/bcftools/bcftools_norm/bcftools_norm" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_norm/bcftools_norm b/target/executable/bcftools/bcftools_norm/bcftools_norm index 7544eb41..71546ead 100755 --- a/target/executable/bcftools/bcftools_norm/bcftools_norm +++ b/target/executable/bcftools/bcftools_norm/bcftools_norm @@ -589,9 +589,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_norm" -LABEL org.opencontainers.image.created="2024-10-26T18:44:02Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:21Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_sort/.config.vsh.yaml b/target/executable/bcftools/bcftools_sort/.config.vsh.yaml index 388a563e..6ee727b7 100644 --- a/target/executable/bcftools/bcftools_sort/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_sort/.config.vsh.yaml @@ -185,9 +185,9 @@ build_info: output: "target/executable/bcftools/bcftools_sort" executable: "target/executable/bcftools/bcftools_sort/bcftools_sort" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_sort/bcftools_sort b/target/executable/bcftools/bcftools_sort/bcftools_sort index 9b2f72e5..471e0476 100755 --- a/target/executable/bcftools/bcftools_sort/bcftools_sort +++ b/target/executable/bcftools/bcftools_sort/bcftools_sort @@ -483,9 +483,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_sort" -LABEL org.opencontainers.image.created="2024-10-26T18:44:02Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:20Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_stats/.config.vsh.yaml b/target/executable/bcftools/bcftools_stats/.config.vsh.yaml index 7216a9f9..2670e26f 100644 --- a/target/executable/bcftools/bcftools_stats/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_stats/.config.vsh.yaml @@ -458,9 +458,9 @@ build_info: output: "target/executable/bcftools/bcftools_stats" executable: "target/executable/bcftools/bcftools_stats/bcftools_stats" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_stats/bcftools_stats b/target/executable/bcftools/bcftools_stats/bcftools_stats index d9ebd0d9..5dfee466 100755 --- a/target/executable/bcftools/bcftools_stats/bcftools_stats +++ b/target/executable/bcftools/bcftools_stats/bcftools_stats @@ -626,9 +626,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_stats" -LABEL org.opencontainers.image.created="2024-10-26T18:44:01Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:21Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcl_convert/.config.vsh.yaml b/target/executable/bcl_convert/.config.vsh.yaml index b31b4646..a6284a8b 100644 --- a/target/executable/bcl_convert/.config.vsh.yaml +++ b/target/executable/bcl_convert/.config.vsh.yaml @@ -418,9 +418,9 @@ build_info: output: "target/executable/bcl_convert" executable: "target/executable/bcl_convert/bcl_convert" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcl_convert/bcl_convert b/target/executable/bcl_convert/bcl_convert index 6eddf272..02a599e0 100755 --- a/target/executable/bcl_convert/bcl_convert +++ b/target/executable/bcl_convert/bcl_convert @@ -599,9 +599,9 @@ RUN echo "bcl-convert: \"$(bcl-convert -V 2>&1 >/dev/null | sed -n '/Version/ s/ LABEL org.opencontainers.image.authors="Toni Verbeiren, Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component bcl_convert" -LABEL org.opencontainers.image.created="2024-10-26T18:44:07Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml index d501da67..614dae24 100644 --- a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml +++ b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml @@ -274,9 +274,9 @@ build_info: output: "target/executable/bd_rhapsody/bd_rhapsody_make_reference" executable: "target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference index 5cb72ebb..37310731 100755 --- a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference +++ b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference @@ -554,9 +554,9 @@ RUN VERSION=$(ls -v /var/bd_rhapsody_cwl | grep '^v' | sed 's#v##' | tail -1) RUN echo "bdgenomics/rhapsody: \"$VERSION\"" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Robrecht Cannoodt, Weiwei Schultz" LABEL org.opencontainers.image.description="Companion container for running component bd_rhapsody bd_rhapsody_make_reference" -LABEL org.opencontainers.image.created="2024-10-26T18:44:03Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:23Z" LABEL org.opencontainers.image.source="https://bitbucket.org/CRSwDev/cwl/src/master/v2.2.1/Extra_Utilities/" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml index 75eb0e02..d441c826 100644 --- a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml +++ b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml @@ -1115,9 +1115,9 @@ build_info: output: "target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis" executable: "target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis index a91508ab..14d94c88 100755 --- a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis +++ b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis @@ -954,9 +954,9 @@ RUN VERSION=$(ls -v /var/bd_rhapsody_cwl | grep '^v' | sed 's#v##' | tail -1) RUN echo "bdgenomics/rhapsody: \"$VERSION\"" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Robrecht Cannoodt, Weiwei Schultz" LABEL org.opencontainers.image.description="Companion container for running component bd_rhapsody bd_rhapsody_sequence_analysis" -LABEL org.opencontainers.image.created="2024-10-26T18:44:03Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:22Z" LABEL org.opencontainers.image.source="https://bitbucket.org/CRSwDev/cwl/src/master/v2.2.1" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bamtobed/.config.vsh.yaml b/target/executable/bedtools/bedtools_bamtobed/.config.vsh.yaml index c495fa2f..76523f12 100644 --- a/target/executable/bedtools/bedtools_bamtobed/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bamtobed/.config.vsh.yaml @@ -235,9 +235,9 @@ build_info: output: "target/executable/bedtools/bedtools_bamtobed" executable: "target/executable/bedtools/bedtools_bamtobed/bedtools_bamtobed" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bamtobed/bedtools_bamtobed b/target/executable/bedtools/bedtools_bamtobed/bedtools_bamtobed index 8ddc020e..7bcf475c 100755 --- a/target/executable/bedtools/bedtools_bamtobed/bedtools_bamtobed +++ b/target/executable/bedtools/bedtools_bamtobed/bedtools_bamtobed @@ -522,9 +522,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bamtobed" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml b/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml index 0acf32cf..801f9a4d 100644 --- a/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml @@ -187,9 +187,9 @@ build_info: output: "target/executable/bedtools/bedtools_bamtofastq" executable: "target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq b/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq index b8e89008..52b264a7 100755 --- a/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq +++ b/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq @@ -483,9 +483,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bamtofastq" -LABEL org.opencontainers.image.created="2024-10-26T18:44:07Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:20Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml b/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml index c4457466..b5dcdb6e 100644 --- a/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml @@ -176,9 +176,9 @@ build_info: output: "target/executable/bedtools/bedtools_bed12tobed6" executable: "target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 b/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 index 3f0c611a..d48d3a84 100755 --- a/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 +++ b/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 @@ -480,9 +480,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bed12tobed6" -LABEL org.opencontainers.image.created="2024-10-26T18:44:09Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:21Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml b/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml index 6d533216..6cc8a91b 100644 --- a/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml @@ -214,9 +214,9 @@ build_info: output: "target/executable/bedtools/bedtools_bedtobam" executable: "target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam b/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam index a2f4a727..cff1cc8d 100755 --- a/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam +++ b/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam @@ -496,9 +496,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bedtobam" -LABEL org.opencontainers.image.created="2024-10-26T18:44:10Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:22Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml b/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml index d841906d..0547466e 100644 --- a/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml @@ -337,9 +337,9 @@ build_info: output: "target/executable/bedtools/bedtools_genomecov" executable: "target/executable/bedtools/bedtools_genomecov/bedtools_genomecov" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov b/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov index 79221112..47ac52f7 100755 --- a/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov +++ b/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov @@ -591,9 +591,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_genomecov" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:22Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml b/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml index 8fbf68b1..fbc01421 100644 --- a/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml @@ -232,9 +232,9 @@ build_info: output: "target/executable/bedtools/bedtools_getfasta" executable: "target/executable/bedtools/bedtools_getfasta/bedtools_getfasta" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta b/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta index da484e58..9e4befe3 100755 --- a/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta +++ b/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta @@ -526,9 +526,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Dries Schaumont" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_getfasta" -LABEL org.opencontainers.image.created="2024-10-26T18:44:10Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:20Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml b/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml index fc195ac1..a03e45c5 100644 --- a/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml @@ -273,9 +273,9 @@ build_info: output: "target/executable/bedtools/bedtools_groupby" executable: "target/executable/bedtools/bedtools_groupby/bedtools_groupby" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_groupby/bedtools_groupby b/target/executable/bedtools/bedtools_groupby/bedtools_groupby index 1f7a0a68..aaa45789 100755 --- a/target/executable/bedtools/bedtools_groupby/bedtools_groupby +++ b/target/executable/bedtools/bedtools_groupby/bedtools_groupby @@ -552,9 +552,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_groupby" -LABEL org.opencontainers.image.created="2024-10-26T18:44:09Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml b/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml index df9afc62..b0a0e1b6 100644 --- a/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml @@ -410,9 +410,9 @@ build_info: output: "target/executable/bedtools/bedtools_intersect" executable: "target/executable/bedtools/bedtools_intersect/bedtools_intersect" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_intersect/bedtools_intersect b/target/executable/bedtools/bedtools_intersect/bedtools_intersect index c399dec1..ad0746ff 100755 --- a/target/executable/bedtools/bedtools_intersect/bedtools_intersect +++ b/target/executable/bedtools/bedtools_intersect/bedtools_intersect @@ -633,9 +633,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_intersect" -LABEL org.opencontainers.image.created="2024-10-26T18:44:07Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:21Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_links/.config.vsh.yaml b/target/executable/bedtools/bedtools_links/.config.vsh.yaml index 9b28fd8a..137f7730 100644 --- a/target/executable/bedtools/bedtools_links/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_links/.config.vsh.yaml @@ -210,9 +210,9 @@ build_info: output: "target/executable/bedtools/bedtools_links" executable: "target/executable/bedtools/bedtools_links/bedtools_links" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_links/bedtools_links b/target/executable/bedtools/bedtools_links/bedtools_links index cb3cc188..33ec3159 100755 --- a/target/executable/bedtools/bedtools_links/bedtools_links +++ b/target/executable/bedtools/bedtools_links/bedtools_links @@ -500,9 +500,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_links" -LABEL org.opencontainers.image.created="2024-10-26T18:44:08Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:21Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_merge/.config.vsh.yaml b/target/executable/bedtools/bedtools_merge/.config.vsh.yaml index fc36f972..b2e8f2e6 100644 --- a/target/executable/bedtools/bedtools_merge/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_merge/.config.vsh.yaml @@ -279,9 +279,9 @@ build_info: output: "target/executable/bedtools/bedtools_merge" executable: "target/executable/bedtools/bedtools_merge/bedtools_merge" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_merge/bedtools_merge b/target/executable/bedtools/bedtools_merge/bedtools_merge index 069f45df..8958f8c7 100755 --- a/target/executable/bedtools/bedtools_merge/bedtools_merge +++ b/target/executable/bedtools/bedtools_merge/bedtools_merge @@ -558,9 +558,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_merge" -LABEL org.opencontainers.image.created="2024-10-26T18:44:09Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:22Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_sort/.config.vsh.yaml b/target/executable/bedtools/bedtools_sort/.config.vsh.yaml index dc23e354..d01a2a8a 100644 --- a/target/executable/bedtools/bedtools_sort/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_sort/.config.vsh.yaml @@ -222,9 +222,9 @@ build_info: output: "target/executable/bedtools/bedtools_sort" executable: "target/executable/bedtools/bedtools_sort/bedtools_sort" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_sort/bedtools_sort b/target/executable/bedtools/bedtools_sort/bedtools_sort index 6f25ffc7..331dead2 100755 --- a/target/executable/bedtools/bedtools_sort/bedtools_sort +++ b/target/executable/bedtools/bedtools_sort/bedtools_sort @@ -509,9 +509,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_sort" -LABEL org.opencontainers.image.created="2024-10-26T18:44:07Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:20Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/busco/busco_download_datasets/.config.vsh.yaml b/target/executable/busco/busco_download_datasets/.config.vsh.yaml index bc7976b2..11a124ca 100644 --- a/target/executable/busco/busco_download_datasets/.config.vsh.yaml +++ b/target/executable/busco/busco_download_datasets/.config.vsh.yaml @@ -158,9 +158,9 @@ build_info: output: "target/executable/busco/busco_download_datasets" executable: "target/executable/busco/busco_download_datasets/busco_download_datasets" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/busco/busco_download_datasets/busco_download_datasets b/target/executable/busco/busco_download_datasets/busco_download_datasets index a33a4232..d9c66cae 100755 --- a/target/executable/busco/busco_download_datasets/busco_download_datasets +++ b/target/executable/busco/busco_download_datasets/busco_download_datasets @@ -475,9 +475,9 @@ RUN busco --version | sed 's/BUSCO\s\(.*\)/busco: "\1"/' > /var/software_version LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component busco busco_download_datasets" -LABEL org.opencontainers.image.created="2024-10-26T18:44:06Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://gitlab.com/ezlab/busco" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/busco/busco_list_datasets/.config.vsh.yaml b/target/executable/busco/busco_list_datasets/.config.vsh.yaml index efa8a7e9..899db5bb 100644 --- a/target/executable/busco/busco_list_datasets/.config.vsh.yaml +++ b/target/executable/busco/busco_list_datasets/.config.vsh.yaml @@ -145,9 +145,9 @@ build_info: output: "target/executable/busco/busco_list_datasets" executable: "target/executable/busco/busco_list_datasets/busco_list_datasets" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/busco/busco_list_datasets/busco_list_datasets b/target/executable/busco/busco_list_datasets/busco_list_datasets index 5f7fe70d..2668f8cf 100755 --- a/target/executable/busco/busco_list_datasets/busco_list_datasets +++ b/target/executable/busco/busco_list_datasets/busco_list_datasets @@ -465,9 +465,9 @@ RUN busco --version | sed 's/BUSCO\s\(.*\)/busco: "\1"/' > /var/software_version LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component busco busco_list_datasets" -LABEL org.opencontainers.image.created="2024-10-26T18:44:06Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:18Z" LABEL org.opencontainers.image.source="https://gitlab.com/ezlab/busco" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/busco/busco_run/.config.vsh.yaml b/target/executable/busco/busco_run/.config.vsh.yaml index 241e6c2b..8766d7e1 100644 --- a/target/executable/busco/busco_run/.config.vsh.yaml +++ b/target/executable/busco/busco_run/.config.vsh.yaml @@ -423,9 +423,9 @@ build_info: output: "target/executable/busco/busco_run" executable: "target/executable/busco/busco_run/busco_run" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/busco/busco_run/busco_run b/target/executable/busco/busco_run/busco_run index 33a95e82..2f2a7040 100755 --- a/target/executable/busco/busco_run/busco_run +++ b/target/executable/busco/busco_run/busco_run @@ -632,9 +632,9 @@ RUN busco --version | sed 's/BUSCO\s\(.*\)/busco: "\1"/' > /var/software_version LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component busco busco_run" -LABEL org.opencontainers.image.created="2024-10-26T18:44:06Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:18Z" LABEL org.opencontainers.image.source="https://gitlab.com/ezlab/busco" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/cutadapt/.config.vsh.yaml b/target/executable/cutadapt/.config.vsh.yaml index ffb10c02..f602e2a6 100644 --- a/target/executable/cutadapt/.config.vsh.yaml +++ b/target/executable/cutadapt/.config.vsh.yaml @@ -740,9 +740,9 @@ build_info: output: "target/executable/cutadapt" executable: "target/executable/cutadapt/cutadapt" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/cutadapt/cutadapt b/target/executable/cutadapt/cutadapt index d9462971..50480f06 100755 --- a/target/executable/cutadapt/cutadapt +++ b/target/executable/cutadapt/cutadapt @@ -831,9 +831,9 @@ RUN cutadapt --version | sed 's/\(.*\)/cutadapt: "\1"/' > /var/software_versions LABEL org.opencontainers.image.authors="Toni Verbeiren" LABEL org.opencontainers.image.description="Companion container for running component cutadapt" -LABEL org.opencontainers.image.created="2024-10-26T18:43:58Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:14Z" LABEL org.opencontainers.image.source="https://github.com/marcelm/cutadapt" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/falco/.config.vsh.yaml b/target/executable/falco/.config.vsh.yaml index 2cd5897c..b17e85cc 100644 --- a/target/executable/falco/.config.vsh.yaml +++ b/target/executable/falco/.config.vsh.yaml @@ -317,9 +317,9 @@ build_info: output: "target/executable/falco" executable: "target/executable/falco/falco" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/falco/falco b/target/executable/falco/falco index c12bd439..ad2f8d26 100755 --- a/target/executable/falco/falco +++ b/target/executable/falco/falco @@ -589,9 +589,9 @@ RUN echo "falco: \"$(falco -v | sed -n 's/^falco //p')\"" > /var/software_versio LABEL org.opencontainers.image.authors="Toni Verbeiren" LABEL org.opencontainers.image.description="Companion container for running component falco" -LABEL org.opencontainers.image.created="2024-10-26T18:44:00Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:10Z" LABEL org.opencontainers.image.source="https://github.com/smithlabcode/falco" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/fastp/.config.vsh.yaml b/target/executable/fastp/.config.vsh.yaml index 67a2ddfc..854e7cc9 100644 --- a/target/executable/fastp/.config.vsh.yaml +++ b/target/executable/fastp/.config.vsh.yaml @@ -1083,9 +1083,9 @@ build_info: output: "target/executable/fastp" executable: "target/executable/fastp/fastp" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/fastp/fastp b/target/executable/fastp/fastp index 08fc63a3..dbb52132 100755 --- a/target/executable/fastp/fastp +++ b/target/executable/fastp/fastp @@ -1028,9 +1028,9 @@ RUN fastp --version 2>&1 | sed 's# #: "#;s#$#"#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component fastp" -LABEL org.opencontainers.image.created="2024-10-26T18:44:03Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:23Z" LABEL org.opencontainers.image.source="https://github.com/OpenGene/fastp" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/fastqc/.config.vsh.yaml b/target/executable/fastqc/.config.vsh.yaml index 76a69d20..1c8cc1f9 100644 --- a/target/executable/fastqc/.config.vsh.yaml +++ b/target/executable/fastqc/.config.vsh.yaml @@ -340,9 +340,9 @@ build_info: output: "target/executable/fastqc" executable: "target/executable/fastqc/fastqc" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/fastqc/fastqc b/target/executable/fastqc/fastqc index 6922494f..98a32d13 100755 --- a/target/executable/fastqc/fastqc +++ b/target/executable/fastqc/fastqc @@ -601,9 +601,9 @@ RUN echo "fastqc: $(fastqc --version | sed -n 's/^FastQC //p')" > /var/software_ LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component fastqc" -LABEL org.opencontainers.image.created="2024-10-26T18:44:04Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:24Z" LABEL org.opencontainers.image.source="https://github.com/s-andrews/FastQC" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/featurecounts/.config.vsh.yaml b/target/executable/featurecounts/.config.vsh.yaml index 59e70f22..575eb53d 100644 --- a/target/executable/featurecounts/.config.vsh.yaml +++ b/target/executable/featurecounts/.config.vsh.yaml @@ -645,9 +645,9 @@ build_info: output: "target/executable/featurecounts" executable: "target/executable/featurecounts/featurecounts" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/featurecounts/featurecounts b/target/executable/featurecounts/featurecounts index 952763b5..c62fdbf7 100755 --- a/target/executable/featurecounts/featurecounts +++ b/target/executable/featurecounts/featurecounts @@ -754,9 +754,9 @@ RUN featureCounts -v 2>&1 | sed 's/featureCounts v\([0-9.]*\)/featureCounts: \1/ LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component featurecounts" -LABEL org.opencontainers.image.created="2024-10-26T18:44:00Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:08Z" LABEL org.opencontainers.image.source="https://github.com/ShiLab-Bioinformatics/subread" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/fq_subsample/.config.vsh.yaml b/target/executable/fq_subsample/.config.vsh.yaml index d4eb2bfe..f8f10d5c 100644 --- a/target/executable/fq_subsample/.config.vsh.yaml +++ b/target/executable/fq_subsample/.config.vsh.yaml @@ -190,9 +190,9 @@ build_info: output: "target/executable/fq_subsample" executable: "target/executable/fq_subsample/fq_subsample" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/fq_subsample/fq_subsample b/target/executable/fq_subsample/fq_subsample index e88955eb..e6b1853e 100755 --- a/target/executable/fq_subsample/fq_subsample +++ b/target/executable/fq_subsample/fq_subsample @@ -493,9 +493,9 @@ mv target/release/fq /usr/local/bin/ && \ cd / && rm -rf /fq LABEL org.opencontainers.image.description="Companion container for running component fq_subsample" -LABEL org.opencontainers.image.created="2024-10-26T18:44:00Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:17Z" LABEL org.opencontainers.image.source="https://github.com/stjude-rust-labs/fq" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/gffread/.config.vsh.yaml b/target/executable/gffread/.config.vsh.yaml index 95b23697..4f182620 100644 --- a/target/executable/gffread/.config.vsh.yaml +++ b/target/executable/gffread/.config.vsh.yaml @@ -685,9 +685,9 @@ build_info: output: "target/executable/gffread" executable: "target/executable/gffread/gffread" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/gffread/gffread b/target/executable/gffread/gffread index d6ebb00d..6b22195c 100755 --- a/target/executable/gffread/gffread +++ b/target/executable/gffread/gffread @@ -807,9 +807,9 @@ RUN echo "gffread: \"$(gffread --version 2>&1)\"" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component gffread" -LABEL org.opencontainers.image.created="2024-10-26T18:44:04Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:12Z" LABEL org.opencontainers.image.source="https://github.com/gpertea/gffread" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/kallisto/kallisto_index/.config.vsh.yaml b/target/executable/kallisto/kallisto_index/.config.vsh.yaml index 60157212..e04af030 100644 --- a/target/executable/kallisto/kallisto_index/.config.vsh.yaml +++ b/target/executable/kallisto/kallisto_index/.config.vsh.yaml @@ -218,9 +218,9 @@ build_info: output: "target/executable/kallisto/kallisto_index" executable: "target/executable/kallisto/kallisto_index/kallisto_index" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/kallisto/kallisto_index/kallisto_index b/target/executable/kallisto/kallisto_index/kallisto_index index b01f9560..0b93d8eb 100755 --- a/target/executable/kallisto/kallisto_index/kallisto_index +++ b/target/executable/kallisto/kallisto_index/kallisto_index @@ -506,9 +506,9 @@ tar -xzf kallisto_linux-v0.50.1.tar.gz && \ mv kallisto/kallisto /usr/local/bin/ LABEL org.opencontainers.image.description="Companion container for running component kallisto kallisto_index" -LABEL org.opencontainers.image.created="2024-10-26T18:44:10Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:11Z" LABEL org.opencontainers.image.source="https://github.com/pachterlab/kallisto" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/kallisto/kallisto_quant/.config.vsh.yaml b/target/executable/kallisto/kallisto_quant/.config.vsh.yaml index 73593726..b1380a11 100644 --- a/target/executable/kallisto/kallisto_quant/.config.vsh.yaml +++ b/target/executable/kallisto/kallisto_quant/.config.vsh.yaml @@ -234,9 +234,9 @@ build_info: output: "target/executable/kallisto/kallisto_quant" executable: "target/executable/kallisto/kallisto_quant/kallisto_quant" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/kallisto/kallisto_quant/kallisto_quant b/target/executable/kallisto/kallisto_quant/kallisto_quant index f0f06367..259efced 100755 --- a/target/executable/kallisto/kallisto_quant/kallisto_quant +++ b/target/executable/kallisto/kallisto_quant/kallisto_quant @@ -518,9 +518,9 @@ mv kallisto/kallisto /usr/local/bin/ RUN echo "kallisto: $(kallisto version | sed 's/kallisto, version //')" > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component kallisto kallisto_quant" -LABEL org.opencontainers.image.created="2024-10-26T18:44:11Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:11Z" LABEL org.opencontainers.image.source="https://github.com/pachterlab/kallisto" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/lofreq/lofreq_call/.config.vsh.yaml b/target/executable/lofreq/lofreq_call/.config.vsh.yaml index 42f277fa..d1b4d62a 100644 --- a/target/executable/lofreq/lofreq_call/.config.vsh.yaml +++ b/target/executable/lofreq/lofreq_call/.config.vsh.yaml @@ -507,9 +507,9 @@ build_info: output: "target/executable/lofreq/lofreq_call" executable: "target/executable/lofreq/lofreq_call/lofreq_call" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/lofreq/lofreq_call/lofreq_call b/target/executable/lofreq/lofreq_call/lofreq_call index 9f97fbab..0f797cb8 100755 --- a/target/executable/lofreq/lofreq_call/lofreq_call +++ b/target/executable/lofreq/lofreq_call/lofreq_call @@ -656,9 +656,9 @@ echo "lofreq: $version" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Kai Waldrant" LABEL org.opencontainers.image.description="Companion container for running component lofreq lofreq_call" -LABEL org.opencontainers.image.created="2024-10-26T18:44:11Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:23Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml b/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml index f7a06d09..2f05bc59 100644 --- a/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml +++ b/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml @@ -215,9 +215,9 @@ build_info: output: "target/executable/lofreq/lofreq_indelqual" executable: "target/executable/lofreq/lofreq_indelqual/lofreq_indelqual" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual b/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual index 990b7153..22c4a176 100755 --- a/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual +++ b/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual @@ -501,9 +501,9 @@ echo "lofreq: $version" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Kai Waldrant" LABEL org.opencontainers.image.description="Companion container for running component lofreq lofreq_indelqual" -LABEL org.opencontainers.image.created="2024-10-26T18:44:12Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/multiqc/.config.vsh.yaml b/target/executable/multiqc/.config.vsh.yaml index 42ddb186..4cb8fdf0 100644 --- a/target/executable/multiqc/.config.vsh.yaml +++ b/target/executable/multiqc/.config.vsh.yaml @@ -456,9 +456,9 @@ build_info: output: "target/executable/multiqc" executable: "target/executable/multiqc/multiqc" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/multiqc/multiqc b/target/executable/multiqc/multiqc index 55deff3b..6887caf1 100755 --- a/target/executable/multiqc/multiqc +++ b/target/executable/multiqc/multiqc @@ -637,9 +637,9 @@ RUN multiqc --version | sed 's/multiqc, version\s\(.*\)/multiqc: "\1"/' > /var/s LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component multiqc" -LABEL org.opencontainers.image.created="2024-10-26T18:44:05Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:14Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/nanoplot/.config.vsh.yaml b/target/executable/nanoplot/.config.vsh.yaml index 99130c27..9cc333e1 100644 --- a/target/executable/nanoplot/.config.vsh.yaml +++ b/target/executable/nanoplot/.config.vsh.yaml @@ -492,9 +492,9 @@ build_info: output: "target/executable/nanoplot" executable: "target/executable/nanoplot/nanoplot" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/nanoplot/nanoplot b/target/executable/nanoplot/nanoplot index 3477c545..ccdbae8d 100755 --- a/target/executable/nanoplot/nanoplot +++ b/target/executable/nanoplot/nanoplot @@ -661,9 +661,9 @@ RUN version=$(NanoPlot --version) && \ echo "$version" > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component nanoplot" -LABEL org.opencontainers.image.created="2024-10-26T18:44:05Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:14Z" LABEL org.opencontainers.image.source="https://github.com/wdecoster/NanoPlot" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/pear/.config.vsh.yaml b/target/executable/pear/.config.vsh.yaml index 82e6e3e3..dba70db1 100644 --- a/target/executable/pear/.config.vsh.yaml +++ b/target/executable/pear/.config.vsh.yaml @@ -398,9 +398,9 @@ build_info: output: "target/executable/pear" executable: "target/executable/pear/pear" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/pear/pear b/target/executable/pear/pear index c2891765..df650169 100755 --- a/target/executable/pear/pear +++ b/target/executable/pear/pear @@ -597,9 +597,9 @@ echo "pear: $version" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Kai Waldrant" LABEL org.opencontainers.image.description="Companion container for running component pear" -LABEL org.opencontainers.image.created="2024-10-26T18:43:57Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:18Z" LABEL org.opencontainers.image.source="https://github.com/tseemann/PEAR" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml b/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml index dfafc8c2..2f1856fb 100644 --- a/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml +++ b/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/executable/qualimap/qualimap_rnaseq" executable: "target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq b/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq index e276cdf7..dbeee225 100755 --- a/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq +++ b/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq @@ -527,9 +527,9 @@ RUN echo QualiMap: $(qualimap 2>&1 | grep QualiMap | sed 's/^.*QualiMap//') > /v LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component qualimap qualimap_rnaseq" -LABEL org.opencontainers.image.created="2024-10-26T18:44:00Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:11Z" LABEL org.opencontainers.image.source="https://bitbucket.org/kokonech/qualimap/commits/branch/master" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml b/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml index e8b5f602..bfc64615 100644 --- a/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml +++ b/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml @@ -852,9 +852,9 @@ build_info: output: "target/executable/rsem/rsem_calculate_expression" executable: "target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression b/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression index 84ca3bfd..135f856f 100755 --- a/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression +++ b/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression @@ -991,9 +991,9 @@ echo "bowtie: `bowtie --version | grep -oP 'bowtie-align-s version \K\d+\.\d+\.\ echo "HISAT2: `hisat2 --version | grep -oP 'hisat2-align-s version \K\d+\.\d+\.\d+'`" >> /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component rsem rsem_calculate_expression" -LABEL org.opencontainers.image.created="2024-10-26T18:43:59Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:09Z" LABEL org.opencontainers.image.source="https://github.com/deweylab/RSEM" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml b/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml index fb530b60..f879e9a6 100644 --- a/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml +++ b/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/executable/rsem/rsem_prepare_reference" executable: "target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference b/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference index 672a7028..70846f53 100755 --- a/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference +++ b/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference @@ -656,9 +656,9 @@ echo "HISAT2: `hisat2 --version | grep -oP 'hisat2-align-s version \K\d+\.\d+\.\ LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component rsem rsem_prepare_reference" -LABEL org.opencontainers.image.created="2024-10-26T18:43:59Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:10Z" LABEL org.opencontainers.image.source="https://github.com/deweylab/RSEM" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml b/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml index 850fe78d..6b2d1470 100644 --- a/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml @@ -175,9 +175,9 @@ build_info: output: "target/executable/rseqc/rseqc_bamstat" executable: "target/executable/rseqc/rseqc_bamstat/rseqc_bamstat" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat b/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat index c2fb8028..e813b5eb 100755 --- a/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat +++ b/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat @@ -477,9 +477,9 @@ RUN echo "RSeQC bam_stat.py: $(bam_stat.py --version | cut -d' ' -f2-)" > /var/s LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_bamstat" -LABEL org.opencontainers.image.created="2024-10-26T18:44:06Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:17Z" LABEL org.opencontainers.image.source="https://github.com/MonashBioinformaticsPlatform/RSeQC" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml b/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml index c2be895c..5a1931c9 100644 --- a/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml @@ -201,9 +201,9 @@ build_info: output: "target/executable/rseqc/rseqc_inferexperiment" executable: "target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment b/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment index f9f4c8ed..a082248f 100755 --- a/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment +++ b/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment @@ -488,9 +488,9 @@ RUN echo "RSeQC - infer_experiment.py: $(infer_experiment.py --version | cut -d' LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_inferexperiment" -LABEL org.opencontainers.image.created="2024-10-26T18:44:06Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:17Z" LABEL org.opencontainers.image.source="https://github.com/MonashBioinformaticsPlatform/RSeQC" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_inner_distance/.config.vsh.yaml b/target/executable/rseqc/rseqc_inner_distance/.config.vsh.yaml index bc547d2e..472bc6b2 100644 --- a/target/executable/rseqc/rseqc_inner_distance/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_inner_distance/.config.vsh.yaml @@ -294,9 +294,9 @@ build_info: output: "target/executable/rseqc/rseqc_inner_distance" executable: "target/executable/rseqc/rseqc_inner_distance/rseqc_inner_distance" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/rseqc/rseqc_inner_distance/rseqc_inner_distance b/target/executable/rseqc/rseqc_inner_distance/rseqc_inner_distance index 098d90bc..b5466ab7 100755 --- a/target/executable/rseqc/rseqc_inner_distance/rseqc_inner_distance +++ b/target/executable/rseqc/rseqc_inner_distance/rseqc_inner_distance @@ -532,9 +532,9 @@ RUN echo "RSeQC - inner_distance.py: $(inner_distance.py --version | cut -d' ' - LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_inner_distance" -LABEL org.opencontainers.image.created="2024-10-26T18:44:06Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:16Z" LABEL org.opencontainers.image.source="https://github.com/MonashBioinformaticsPlatform/RSeQC" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/salmon/salmon_index/.config.vsh.yaml b/target/executable/salmon/salmon_index/.config.vsh.yaml index d4ff9c33..dfae9a48 100644 --- a/target/executable/salmon/salmon_index/.config.vsh.yaml +++ b/target/executable/salmon/salmon_index/.config.vsh.yaml @@ -277,9 +277,9 @@ build_info: output: "target/executable/salmon/salmon_index" executable: "target/executable/salmon/salmon_index/salmon_index" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/salmon/salmon_index/salmon_index b/target/executable/salmon/salmon_index/salmon_index index 8ff5c23c..0907e987 100755 --- a/target/executable/salmon/salmon_index/salmon_index +++ b/target/executable/salmon/salmon_index/salmon_index @@ -546,9 +546,9 @@ RUN salmon index -v 2>&1 | sed 's/salmon \([0-9.]*\)/salmon: \1/' > /var/softwar LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component salmon salmon_index" -LABEL org.opencontainers.image.created="2024-10-26T18:44:05Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:20Z" LABEL org.opencontainers.image.source="https://github.com/COMBINE-lab/salmon" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/salmon/salmon_quant/.config.vsh.yaml b/target/executable/salmon/salmon_quant/.config.vsh.yaml index a9d3fa34..a3c6af7e 100644 --- a/target/executable/salmon/salmon_quant/.config.vsh.yaml +++ b/target/executable/salmon/salmon_quant/.config.vsh.yaml @@ -1173,9 +1173,9 @@ build_info: output: "target/executable/salmon/salmon_quant" executable: "target/executable/salmon/salmon_quant/salmon_quant" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/salmon/salmon_quant/salmon_quant b/target/executable/salmon/salmon_quant/salmon_quant index 60877576..7db17611 100755 --- a/target/executable/salmon/salmon_quant/salmon_quant +++ b/target/executable/salmon/salmon_quant/salmon_quant @@ -1168,9 +1168,9 @@ RUN salmon index -v 2>&1 | sed 's/salmon \([0-9.]*\)/salmon: \1/' > /var/softwar LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component salmon salmon_quant" -LABEL org.opencontainers.image.created="2024-10-26T18:44:05Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://github.com/COMBINE-lab/salmon" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_collate/.config.vsh.yaml b/target/executable/samtools/samtools_collate/.config.vsh.yaml index 067ca194..d40a8428 100644 --- a/target/executable/samtools/samtools_collate/.config.vsh.yaml +++ b/target/executable/samtools/samtools_collate/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/executable/samtools/samtools_collate" executable: "target/executable/samtools/samtools_collate/samtools_collate" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_collate/samtools_collate b/target/executable/samtools/samtools_collate/samtools_collate index 6e0693d1..6bfac3f5 100755 --- a/target/executable/samtools/samtools_collate/samtools_collate +++ b/target/executable/samtools/samtools_collate/samtools_collate @@ -519,9 +519,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_collate" -LABEL org.opencontainers.image.created="2024-10-26T18:43:57Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:17Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_faidx/.config.vsh.yaml b/target/executable/samtools/samtools_faidx/.config.vsh.yaml index 35641919..c13a6b89 100644 --- a/target/executable/samtools/samtools_faidx/.config.vsh.yaml +++ b/target/executable/samtools/samtools_faidx/.config.vsh.yaml @@ -243,9 +243,9 @@ build_info: output: "target/executable/samtools/samtools_faidx" executable: "target/executable/samtools/samtools_faidx/samtools_faidx" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_faidx/samtools_faidx b/target/executable/samtools/samtools_faidx/samtools_faidx index 685ac3ba..14bbca79 100755 --- a/target/executable/samtools/samtools_faidx/samtools_faidx +++ b/target/executable/samtools/samtools_faidx/samtools_faidx @@ -512,9 +512,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_faidx" -LABEL org.opencontainers.image.created="2024-10-26T18:44:12Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:18Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_fasta/.config.vsh.yaml b/target/executable/samtools/samtools_fasta/.config.vsh.yaml index 763a7d28..ded03d47 100644 --- a/target/executable/samtools/samtools_fasta/.config.vsh.yaml +++ b/target/executable/samtools/samtools_fasta/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/executable/samtools/samtools_fasta" executable: "target/executable/samtools/samtools_fasta/samtools_fasta" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_fasta/samtools_fasta b/target/executable/samtools/samtools_fasta/samtools_fasta index 523ba5b8..476c0a16 100755 --- a/target/executable/samtools/samtools_fasta/samtools_fasta +++ b/target/executable/samtools/samtools_fasta/samtools_fasta @@ -625,9 +625,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_fasta" -LABEL org.opencontainers.image.created="2024-10-26T18:43:58Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_fastq/.config.vsh.yaml b/target/executable/samtools/samtools_fastq/.config.vsh.yaml index 8c4eb310..05062415 100644 --- a/target/executable/samtools/samtools_fastq/.config.vsh.yaml +++ b/target/executable/samtools/samtools_fastq/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/executable/samtools/samtools_fastq" executable: "target/executable/samtools/samtools_fastq/samtools_fastq" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_fastq/samtools_fastq b/target/executable/samtools/samtools_fastq/samtools_fastq index 771d7d84..e1987f6b 100755 --- a/target/executable/samtools/samtools_fastq/samtools_fastq +++ b/target/executable/samtools/samtools_fastq/samtools_fastq @@ -626,9 +626,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_fastq" -LABEL org.opencontainers.image.created="2024-10-26T18:43:59Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:16Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_flagstat/.config.vsh.yaml b/target/executable/samtools/samtools_flagstat/.config.vsh.yaml index 34f6fd16..908a874f 100644 --- a/target/executable/samtools/samtools_flagstat/.config.vsh.yaml +++ b/target/executable/samtools/samtools_flagstat/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/executable/samtools/samtools_flagstat" executable: "target/executable/samtools/samtools_flagstat/samtools_flagstat" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_flagstat/samtools_flagstat b/target/executable/samtools/samtools_flagstat/samtools_flagstat index 0d5928fe..937940b8 100755 --- a/target/executable/samtools/samtools_flagstat/samtools_flagstat +++ b/target/executable/samtools/samtools_flagstat/samtools_flagstat @@ -474,9 +474,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_flagstat" -LABEL org.opencontainers.image.created="2024-10-26T18:44:11Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:17Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_idxstats/.config.vsh.yaml b/target/executable/samtools/samtools_idxstats/.config.vsh.yaml index 2ecdffa7..ff77e3eb 100644 --- a/target/executable/samtools/samtools_idxstats/.config.vsh.yaml +++ b/target/executable/samtools/samtools_idxstats/.config.vsh.yaml @@ -183,9 +183,9 @@ build_info: output: "target/executable/samtools/samtools_idxstats" executable: "target/executable/samtools/samtools_idxstats/samtools_idxstats" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_idxstats/samtools_idxstats b/target/executable/samtools/samtools_idxstats/samtools_idxstats index a083bf56..6d1278ec 100755 --- a/target/executable/samtools/samtools_idxstats/samtools_idxstats +++ b/target/executable/samtools/samtools_idxstats/samtools_idxstats @@ -478,9 +478,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_idxstats" -LABEL org.opencontainers.image.created="2024-10-26T18:44:11Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:19Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_index/.config.vsh.yaml b/target/executable/samtools/samtools_index/.config.vsh.yaml index 9d77a155..9d326b6a 100644 --- a/target/executable/samtools/samtools_index/.config.vsh.yaml +++ b/target/executable/samtools/samtools_index/.config.vsh.yaml @@ -189,9 +189,9 @@ build_info: output: "target/executable/samtools/samtools_index" executable: "target/executable/samtools/samtools_index/samtools_index" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_index/samtools_index b/target/executable/samtools/samtools_index/samtools_index index ea207921..95807563 100755 --- a/target/executable/samtools/samtools_index/samtools_index +++ b/target/executable/samtools/samtools_index/samtools_index @@ -485,9 +485,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_index" -LABEL org.opencontainers.image.created="2024-10-26T18:44:11Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:17Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_sort/.config.vsh.yaml b/target/executable/samtools/samtools_sort/.config.vsh.yaml index 5fdab70a..1881485b 100644 --- a/target/executable/samtools/samtools_sort/.config.vsh.yaml +++ b/target/executable/samtools/samtools_sort/.config.vsh.yaml @@ -332,9 +332,9 @@ build_info: output: "target/executable/samtools/samtools_sort" executable: "target/executable/samtools/samtools_sort/samtools_sort" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_sort/samtools_sort b/target/executable/samtools/samtools_sort/samtools_sort index 7359bc89..e04f6d91 100755 --- a/target/executable/samtools/samtools_sort/samtools_sort +++ b/target/executable/samtools/samtools_sort/samtools_sort @@ -556,9 +556,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_sort" -LABEL org.opencontainers.image.created="2024-10-26T18:43:58Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:18Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_stats/.config.vsh.yaml b/target/executable/samtools/samtools_stats/.config.vsh.yaml index 04c9c623..d8bd9ff8 100644 --- a/target/executable/samtools/samtools_stats/.config.vsh.yaml +++ b/target/executable/samtools/samtools_stats/.config.vsh.yaml @@ -401,9 +401,9 @@ build_info: output: "target/executable/samtools/samtools_stats" executable: "target/executable/samtools/samtools_stats/samtools_stats" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_stats/samtools_stats b/target/executable/samtools/samtools_stats/samtools_stats index 5ee10440..97837e7c 100755 --- a/target/executable/samtools/samtools_stats/samtools_stats +++ b/target/executable/samtools/samtools_stats/samtools_stats @@ -575,9 +575,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_stats" -LABEL org.opencontainers.image.created="2024-10-26T18:44:10Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:18Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_view/.config.vsh.yaml b/target/executable/samtools/samtools_view/.config.vsh.yaml index 8eac778f..cfcf44de 100644 --- a/target/executable/samtools/samtools_view/.config.vsh.yaml +++ b/target/executable/samtools/samtools_view/.config.vsh.yaml @@ -665,9 +665,9 @@ build_info: output: "target/executable/samtools/samtools_view" executable: "target/executable/samtools/samtools_view/samtools_view" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_view/samtools_view b/target/executable/samtools/samtools_view/samtools_view index dcac1e7b..b7c53ba0 100755 --- a/target/executable/samtools/samtools_view/samtools_view +++ b/target/executable/samtools/samtools_view/samtools_view @@ -825,9 +825,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_view" -LABEL org.opencontainers.image.created="2024-10-26T18:44:11Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:16Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/seqtk/seqtk_sample/.config.vsh.yaml b/target/executable/seqtk/seqtk_sample/.config.vsh.yaml index 8ac08ff4..6c00ca79 100644 --- a/target/executable/seqtk/seqtk_sample/.config.vsh.yaml +++ b/target/executable/seqtk/seqtk_sample/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/executable/seqtk/seqtk_sample" executable: "target/executable/seqtk/seqtk_sample/seqtk_sample" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/seqtk/seqtk_sample/seqtk_sample b/target/executable/seqtk/seqtk_sample/seqtk_sample index 56dd3e1e..cb0133ca 100755 --- a/target/executable/seqtk/seqtk_sample/seqtk_sample +++ b/target/executable/seqtk/seqtk_sample/seqtk_sample @@ -481,9 +481,9 @@ FROM quay.io/biocontainers/seqtk:1.4--he4a0461_2 ENTRYPOINT [] LABEL org.opencontainers.image.authors="Jakub Majercik" LABEL org.opencontainers.image.description="Companion container for running component seqtk seqtk_sample" -LABEL org.opencontainers.image.created="2024-10-26T18:44:12Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:15Z" LABEL org.opencontainers.image.source="https://github.com/lh3/seqtk/tree/v1.4" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml b/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml index f99e0ea2..c8f2168c 100644 --- a/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml +++ b/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml @@ -196,9 +196,9 @@ build_info: output: "target/executable/seqtk/seqtk_subseq" executable: "target/executable/seqtk/seqtk_subseq/seqtk_subseq" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/seqtk/seqtk_subseq/seqtk_subseq b/target/executable/seqtk/seqtk_subseq/seqtk_subseq index 0f6c7136..cb4aba2c 100755 --- a/target/executable/seqtk/seqtk_subseq/seqtk_subseq +++ b/target/executable/seqtk/seqtk_subseq/seqtk_subseq @@ -491,9 +491,9 @@ RUN echo $(echo $(seqtk 2>&1) | sed -n 's/.*\(Version: [^ ]*\).*/\1/p') > /var/s LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component seqtk seqtk_subseq" -LABEL org.opencontainers.image.created="2024-10-26T18:44:12Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:14Z" LABEL org.opencontainers.image.source="https://github.com/lh3/seqtk/tree/v1.4" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/snpeff/.config.vsh.yaml b/target/executable/snpeff/.config.vsh.yaml index 059b8b1a..3aa9ef47 100644 --- a/target/executable/snpeff/.config.vsh.yaml +++ b/target/executable/snpeff/.config.vsh.yaml @@ -628,9 +628,9 @@ build_info: output: "target/executable/snpeff" executable: "target/executable/snpeff/snpeff" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/snpeff/snpeff b/target/executable/snpeff/snpeff index cf8c7502..10b30de5 100755 --- a/target/executable/snpeff/snpeff +++ b/target/executable/snpeff/snpeff @@ -756,9 +756,9 @@ version_trimmed=$(echo "$version" | awk '{print $1, $2}') && \ echo "$version_trimmed" > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component snpeff" -LABEL org.opencontainers.image.created="2024-10-26T18:44:02Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:13Z" LABEL org.opencontainers.image.source="https://github.com/pcingola/SnpEff" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/sortmerna/.config.vsh.yaml b/target/executable/sortmerna/.config.vsh.yaml index c877c452..f7baf85d 100644 --- a/target/executable/sortmerna/.config.vsh.yaml +++ b/target/executable/sortmerna/.config.vsh.yaml @@ -591,9 +591,9 @@ build_info: output: "target/executable/sortmerna" executable: "target/executable/sortmerna/sortmerna" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/sortmerna/sortmerna b/target/executable/sortmerna/sortmerna index 0aaed3ab..9c79e932 100755 --- a/target/executable/sortmerna/sortmerna +++ b/target/executable/sortmerna/sortmerna @@ -744,9 +744,9 @@ wget --no-check-certificate https://github.com/sortmerna/sortmerna/releases/down bash sortmerna-4.3.6-Linux.sh --skip-license LABEL org.opencontainers.image.description="Companion container for running component sortmerna" -LABEL org.opencontainers.image.created="2024-10-26T18:43:59Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:15Z" LABEL org.opencontainers.image.source="https://github.com/sortmerna/sortmerna" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/star/star_align_reads/.config.vsh.yaml b/target/executable/star/star_align_reads/.config.vsh.yaml index 248068f2..caa19233 100644 --- a/target/executable/star/star_align_reads/.config.vsh.yaml +++ b/target/executable/star/star_align_reads/.config.vsh.yaml @@ -2663,9 +2663,9 @@ build_info: output: "target/executable/star/star_align_reads" executable: "target/executable/star/star_align_reads/star_align_reads" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/star/star_align_reads/star_align_reads b/target/executable/star/star_align_reads/star_align_reads index 161c928b..442eba3c 100755 --- a/target/executable/star/star_align_reads/star_align_reads +++ b/target/executable/star/star_align_reads/star_align_reads @@ -1920,9 +1920,9 @@ RUN STAR --version | sed 's#\(.*\)#star: "\1"#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Angela Oliveira Pisco, Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component star star_align_reads" -LABEL org.opencontainers.image.created="2024-10-26T18:44:01Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:12Z" LABEL org.opencontainers.image.source="https://github.com/alexdobin/STAR" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/star/star_genome_generate/.config.vsh.yaml b/target/executable/star/star_genome_generate/.config.vsh.yaml index 15375b6d..a9af430c 100644 --- a/target/executable/star/star_genome_generate/.config.vsh.yaml +++ b/target/executable/star/star_genome_generate/.config.vsh.yaml @@ -333,9 +333,9 @@ build_info: output: "target/executable/star/star_genome_generate" executable: "target/executable/star/star_genome_generate/star_genome_generate" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/star/star_genome_generate/star_genome_generate b/target/executable/star/star_genome_generate/star_genome_generate index 44422fdd..ba3e138b 100755 --- a/target/executable/star/star_genome_generate/star_genome_generate +++ b/target/executable/star/star_genome_generate/star_genome_generate @@ -577,9 +577,9 @@ RUN STAR --version | sed 's#\(.*\)#star: "\1"#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component star star_genome_generate" -LABEL org.opencontainers.image.created="2024-10-26T18:44:00Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:13Z" LABEL org.opencontainers.image.source="https://github.com/alexdobin/STAR" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/trimgalore/.config.vsh.yaml b/target/executable/trimgalore/.config.vsh.yaml index f2d9d3c4..8e40c8b3 100644 --- a/target/executable/trimgalore/.config.vsh.yaml +++ b/target/executable/trimgalore/.config.vsh.yaml @@ -770,9 +770,9 @@ build_info: output: "target/executable/trimgalore" executable: "target/executable/trimgalore/trimgalore" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/trimgalore/trimgalore b/target/executable/trimgalore/trimgalore index b599ba42..ab635565 100755 --- a/target/executable/trimgalore/trimgalore +++ b/target/executable/trimgalore/trimgalore @@ -881,9 +881,9 @@ RUN echo "TrimGalore: `trim_galore --version | sed -n 's/.*version\s\+\([0-9]\+\ LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component trimgalore" -LABEL org.opencontainers.image.created="2024-10-26T18:44:04Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:15Z" LABEL org.opencontainers.image.source="https://github.com/FelixKrueger/TrimGalore" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml b/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml index be52b591..fd03cf45 100644 --- a/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml +++ b/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml @@ -611,9 +611,9 @@ build_info: output: "target/executable/umi_tools/umi_tools_dedup" executable: "target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup b/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup index e3a53492..582b568f 100755 --- a/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup +++ b/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup @@ -770,9 +770,9 @@ RUN umi_tools -v | sed 's/ version//g' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component umi_tools umi_tools_dedup" -LABEL org.opencontainers.image.created="2024-10-26T18:44:03Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:15Z" LABEL org.opencontainers.image.source="https://github.com/CGATOxford/UMI-tools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml b/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml index 232beff1..3cb968c8 100644 --- a/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml +++ b/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml @@ -449,9 +449,9 @@ build_info: output: "target/executable/umi_tools/umi_tools_extract" executable: "target/executable/umi_tools/umi_tools_extract/umi_tools_extract" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/umi_tools/umi_tools_extract/umi_tools_extract b/target/executable/umi_tools/umi_tools_extract/umi_tools_extract index c95662ec..f13df866 100755 --- a/target/executable/umi_tools/umi_tools_extract/umi_tools_extract +++ b/target/executable/umi_tools/umi_tools_extract/umi_tools_extract @@ -637,9 +637,9 @@ ENTRYPOINT [] RUN umi_tools -v | sed 's/ version//g' > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component umi_tools umi_tools_extract" -LABEL org.opencontainers.image.created="2024-10-26T18:44:02Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:15Z" LABEL org.opencontainers.image.source="https://github.com/CGATOxford/UMI-tools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml b/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml index ade1ff8b..af401d8e 100644 --- a/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml +++ b/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml @@ -256,9 +256,9 @@ build_info: output: "target/executable/umi_tools/umi_tools_prepareforrsem" executable: "target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem b/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem index a2d13fca..3f825bc3 100755 --- a/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem +++ b/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem @@ -519,9 +519,9 @@ ENTRYPOINT [] RUN umi_tools -v | sed 's/ version//g' > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component umi_tools umi_tools_prepareforrsem" -LABEL org.opencontainers.image.created="2024-10-26T18:44:03Z" +LABEL org.opencontainers.image.created="2024-11-02T09:32:16Z" LABEL org.opencontainers.image.source="https://github.com/CGATOxford/UMI-tools" -LABEL org.opencontainers.image.revision="aa43543e1fb609901d09b7a9f0c5e72707cb47a4" +LABEL org.opencontainers.image.revision="06005a79b49911f1197ccfddf066fc566d5b1def" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml index 74d95755..25fb63ef 100644 --- a/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml @@ -235,9 +235,9 @@ build_info: output: "target/nextflow/agat/agat_convert_bed2gff" executable: "target/nextflow/agat/agat_convert_bed2gff/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_bed2gff/main.nf b/target/nextflow/agat/agat_convert_bed2gff/main.nf index 070e7441..6f9e52fc 100644 --- a/target/nextflow/agat/agat_convert_bed2gff/main.nf +++ b/target/nextflow/agat/agat_convert_bed2gff/main.nf @@ -3092,9 +3092,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_bed2gff", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml index ed155150..1961f83a 100644 --- a/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml @@ -225,9 +225,9 @@ build_info: output: "target/nextflow/agat/agat_convert_embl2gff" executable: "target/nextflow/agat/agat_convert_embl2gff/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_embl2gff/main.nf b/target/nextflow/agat/agat_convert_embl2gff/main.nf index e5405e5a..a48d89d0 100644 --- a/target/nextflow/agat/agat_convert_embl2gff/main.nf +++ b/target/nextflow/agat/agat_convert_embl2gff/main.nf @@ -3085,9 +3085,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_embl2gff", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml index 029ab91f..393affba 100644 --- a/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml @@ -230,9 +230,9 @@ build_info: output: "target/nextflow/agat/agat_convert_genscan2gff" executable: "target/nextflow/agat/agat_convert_genscan2gff/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_genscan2gff/main.nf b/target/nextflow/agat/agat_convert_genscan2gff/main.nf index 94c235c2..4536dd9b 100644 --- a/target/nextflow/agat/agat_convert_genscan2gff/main.nf +++ b/target/nextflow/agat/agat_convert_genscan2gff/main.nf @@ -3087,9 +3087,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_genscan2gff", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_mfannot2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_mfannot2gff/.config.vsh.yaml new file mode 100644 index 00000000..09c4d2d4 --- /dev/null +++ b/target/nextflow/agat/agat_convert_mfannot2gff/.config.vsh.yaml @@ -0,0 +1,213 @@ +name: "agat_convert_mfannot2gff" +namespace: "agat" +version: "main" +authors: +- name: "Leïla Paquay" + roles: + - "author" + - "maintainer" + info: + links: + email: "leila@data-intuitive.com" + github: "Leila011" + linkedin: "leilapaquay" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Software Developer" +argument_groups: +- name: "Inputs" + arguments: + - type: "file" + name: "--mfannot" + alternatives: + - "-m" + - "-i" + description: "The mfannot input file." + info: null + example: + - "input.mfannot" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Outputs" + arguments: + - type: "file" + name: "--gff" + alternatives: + - "-g" + - "-o" + description: "The GFF output file." + info: null + example: + - "output.gff" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" +- name: "Arguments" + arguments: + - type: "file" + name: "--config" + alternatives: + - "-c" + description: "AGAT config file. By default AGAT takes the original agat_config.yaml\ + \ shipped with AGAT. The `--config` option gives you the possibility to use\ + \ your own AGAT config file (located elsewhere or named differently).\n" + info: null + example: + - "custom_agat_config.yaml" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" +resources: +- type: "bash_script" + path: "script.sh" + is_executable: true +description: "Conversion utility for MFannot \"masterfile\" annotation produced by\ + \ the\n[MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports\n\ + GFF3 format.\n" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true +- type: "file" + path: "test_data" +info: null +status: "enabled" +requirements: + commands: + - "ps" +keywords: +- "gene annotations" +- "GFF" +- "Mfannot" +license: "GPL-3." +references: + doi: + - "10.5281/zenodo.3552717" +links: + repository: "https://github.com/NBISweden/AGAT" + homepage: "https://github.com/NBISweden/AGAT" + documentation: "https://agat.readthedocs.io/en/latest/tools/agat_convert_mfannot2gff.html" + issue_tracker: "https://github.com/NBISweden/AGAT/issues" +runners: +- type: "executable" + id: "executable" + docker_setup_strategy: "ifneedbepullelsecachedbuild" +- type: "nextflow" + id: "nextflow" + directives: + tag: "$id" + auto: + simplifyInput: true + simplifyOutput: false + transcript: false + publish: false + config: + labels: + mem1gb: "memory = 1000000000.B" + mem2gb: "memory = 2000000000.B" + mem5gb: "memory = 5000000000.B" + mem10gb: "memory = 10000000000.B" + mem20gb: "memory = 20000000000.B" + mem50gb: "memory = 50000000000.B" + mem100gb: "memory = 100000000000.B" + mem200gb: "memory = 200000000000.B" + mem500gb: "memory = 500000000000.B" + mem1tb: "memory = 1000000000000.B" + mem2tb: "memory = 2000000000000.B" + mem5tb: "memory = 5000000000000.B" + mem10tb: "memory = 10000000000000.B" + mem20tb: "memory = 20000000000000.B" + mem50tb: "memory = 50000000000000.B" + mem100tb: "memory = 100000000000000.B" + mem200tb: "memory = 200000000000000.B" + mem500tb: "memory = 500000000000000.B" + mem1gib: "memory = 1073741824.B" + mem2gib: "memory = 2147483648.B" + mem4gib: "memory = 4294967296.B" + mem8gib: "memory = 8589934592.B" + mem16gib: "memory = 17179869184.B" + mem32gib: "memory = 34359738368.B" + mem64gib: "memory = 68719476736.B" + mem128gib: "memory = 137438953472.B" + mem256gib: "memory = 274877906944.B" + mem512gib: "memory = 549755813888.B" + mem1tib: "memory = 1099511627776.B" + mem2tib: "memory = 2199023255552.B" + mem4tib: "memory = 4398046511104.B" + mem8tib: "memory = 8796093022208.B" + mem16tib: "memory = 17592186044416.B" + mem32tib: "memory = 35184372088832.B" + mem64tib: "memory = 70368744177664.B" + mem128tib: "memory = 140737488355328.B" + mem256tib: "memory = 281474976710656.B" + mem512tib: "memory = 562949953421312.B" + cpu1: "cpus = 1" + cpu2: "cpus = 2" + cpu5: "cpus = 5" + cpu10: "cpus = 10" + cpu20: "cpus = 20" + cpu50: "cpus = 50" + cpu100: "cpus = 100" + cpu200: "cpus = 200" + cpu500: "cpus = 500" + cpu1000: "cpus = 1000" + debug: false + container: "docker" +engines: +- type: "docker" + id: "docker" + image: "quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "docker" + run: + - "agat --version | sed 's/AGAT\\s\\(.*\\)/agat: \"\\1\"/' > /var/software_versions.txt\n" + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/agat/agat_convert_mfannot2gff/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/agat/agat_convert_mfannot2gff" + executable: "target/nextflow/agat/agat_convert_mfannot2gff/main.nf" + viash_version: "0.9.0" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" +package_config: + name: "biobox" + version: "main" + description: "A collection of bioinformatics tools for working with sequence data.\n" + info: null + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "modules" + - "sequencing" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/biobox" + issue_tracker: "https://github.com/viash-hub/biobox/issues" diff --git a/target/nextflow/agat/agat_convert_mfannot2gff/main.nf b/target/nextflow/agat/agat_convert_mfannot2gff/main.nf new file mode 100644 index 00000000..3b4fed58 --- /dev/null +++ b/target/nextflow/agat/agat_convert_mfannot2gff/main.nf @@ -0,0 +1,3605 @@ +// agat_convert_mfannot2gff main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. +// +// Component authors: +// * Leïla Paquay (author, maintainer) + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "agat_convert_mfannot2gff", + "namespace" : "agat", + "version" : "main", + "authors" : [ + { + "name" : "Leïla Paquay", + "roles" : [ + "author", + "maintainer" + ], + "info" : { + "links" : { + "email" : "leila@data-intuitive.com", + "github" : "Leila011", + "linkedin" : "leilapaquay" + }, + "organizations" : [ + { + "name" : "Data Intuitive", + "href" : "https://www.data-intuitive.com", + "role" : "Software Developer" + } + ] + } + } + ], + "argument_groups" : [ + { + "name" : "Inputs", + "arguments" : [ + { + "type" : "file", + "name" : "--mfannot", + "alternatives" : [ + "-m", + "-i" + ], + "description" : "The mfannot input file.", + "example" : [ + "input.mfannot" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Outputs", + "arguments" : [ + { + "type" : "file", + "name" : "--gff", + "alternatives" : [ + "-g", + "-o" + ], + "description" : "The GFF output file.", + "example" : [ + "output.gff" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Arguments", + "arguments" : [ + { + "type" : "file", + "name" : "--config", + "alternatives" : [ + "-c" + ], + "description" : "AGAT config file. By default AGAT takes the original agat_config.yaml shipped with AGAT. The `--config` option gives you the possibility to use your own AGAT config file (located elsewhere or named differently).\n", + "example" : [ + "custom_agat_config.yaml" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "bash_script", + "path" : "script.sh", + "is_executable" : true + } + ], + "description" : "Conversion utility for MFannot \\"masterfile\\" annotation produced by the\n[MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports\nGFF3 format.\n", + "test_resources" : [ + { + "type" : "bash_script", + "path" : "test.sh", + "is_executable" : true + }, + { + "type" : "file", + "path" : "test_data" + } + ], + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "keywords" : [ + "gene annotations", + "GFF", + "Mfannot" + ], + "license" : "GPL-3.", + "references" : { + "doi" : [ + "10.5281/zenodo.3552717" + ] + }, + "links" : { + "repository" : "https://github.com/NBISweden/AGAT", + "homepage" : "https://github.com/NBISweden/AGAT", + "documentation" : "https://agat.readthedocs.io/en/latest/tools/agat_convert_mfannot2gff.html", + "issue_tracker" : "https://github.com/NBISweden/AGAT/issues" + }, + "runners" : [ + { + "type" : "executable", + "id" : "executable", + "docker_setup_strategy" : "ifneedbepullelsecachedbuild" + }, + { + "type" : "nextflow", + "id" : "nextflow", + "directives" : { + "tag" : "$id" + }, + "auto" : { + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false + }, + "config" : { + "labels" : { + "mem1gb" : "memory = 1000000000.B", + "mem2gb" : "memory = 2000000000.B", + "mem5gb" : "memory = 5000000000.B", + "mem10gb" : "memory = 10000000000.B", + "mem20gb" : "memory = 20000000000.B", + "mem50gb" : "memory = 50000000000.B", + "mem100gb" : "memory = 100000000000.B", + "mem200gb" : "memory = 200000000000.B", + "mem500gb" : "memory = 500000000000.B", + "mem1tb" : "memory = 1000000000000.B", + "mem2tb" : "memory = 2000000000000.B", + "mem5tb" : "memory = 5000000000000.B", + "mem10tb" : "memory = 10000000000000.B", + "mem20tb" : "memory = 20000000000000.B", + "mem50tb" : "memory = 50000000000000.B", + "mem100tb" : "memory = 100000000000000.B", + "mem200tb" : "memory = 200000000000000.B", + "mem500tb" : "memory = 500000000000000.B", + "mem1gib" : "memory = 1073741824.B", + "mem2gib" : "memory = 2147483648.B", + "mem4gib" : "memory = 4294967296.B", + "mem8gib" : "memory = 8589934592.B", + "mem16gib" : "memory = 17179869184.B", + "mem32gib" : "memory = 34359738368.B", + "mem64gib" : "memory = 68719476736.B", + "mem128gib" : "memory = 137438953472.B", + "mem256gib" : "memory = 274877906944.B", + "mem512gib" : "memory = 549755813888.B", + "mem1tib" : "memory = 1099511627776.B", + "mem2tib" : "memory = 2199023255552.B", + "mem4tib" : "memory = 4398046511104.B", + "mem8tib" : "memory = 8796093022208.B", + "mem16tib" : "memory = 17592186044416.B", + "mem32tib" : "memory = 35184372088832.B", + "mem64tib" : "memory = 70368744177664.B", + "mem128tib" : "memory = 140737488355328.B", + "mem256tib" : "memory = 281474976710656.B", + "mem512tib" : "memory = 562949953421312.B", + "cpu1" : "cpus = 1", + "cpu2" : "cpus = 2", + "cpu5" : "cpus = 5", + "cpu10" : "cpus = 10", + "cpu20" : "cpus = 20", + "cpu50" : "cpus = 50", + "cpu100" : "cpus = 100", + "cpu200" : "cpus = 200", + "cpu500" : "cpus = 500", + "cpu1000" : "cpus = 1000" + } + }, + "debug" : false, + "container" : "docker" + } + ], + "engines" : [ + { + "type" : "docker", + "id" : "docker", + "image" : "quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0", + "target_registry" : "images.viash-hub.com", + "target_tag" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "docker", + "run" : [ + "agat --version | sed 's/AGAT\\\\s\\\\(.*\\\\)/agat: \\"\\\\1\\"/' > /var/software_versions.txt\n" + ] + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/agat/agat_convert_mfannot2gff/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/agat/agat_convert_mfannot2gff", + "viash_version" : "0.9.0", + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" + }, + "package_config" : { + "name" : "biobox", + "version" : "main", + "description" : "A collection of bioinformatics tools for working with sequence data.\n", + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "modules", + "sequencing" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/biobox", + "issue_tracker" : "https://github.com/viash-hub/biobox/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +#!/bin/bash + +set -eo pipefail + +## VIASH START +# The following code has been auto-generated by Viash. +$( if [ ! -z ${VIASH_PAR_MFANNOT+x} ]; then echo "${VIASH_PAR_MFANNOT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_mfannot='&'#" ; else echo "# par_mfannot="; fi ) +$( if [ ! -z ${VIASH_PAR_GFF+x} ]; then echo "${VIASH_PAR_GFF}" | sed "s#'#'\\"'\\"'#g;s#.*#par_gff='&'#" ; else echo "# par_gff="; fi ) +$( if [ ! -z ${VIASH_PAR_CONFIG+x} ]; then echo "${VIASH_PAR_CONFIG}" | sed "s#'#'\\"'\\"'#g;s#.*#par_config='&'#" ; else echo "# par_config="; fi ) +$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi ) +$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi ) +$( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "${VIASH_META_RESOURCES_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_resources_dir='&'#" ; else echo "# meta_resources_dir="; fi ) +$( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "${VIASH_META_EXECUTABLE}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_executable='&'#" ; else echo "# meta_executable="; fi ) +$( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "${VIASH_META_CONFIG}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_config='&'#" ; else echo "# meta_config="; fi ) +$( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "${VIASH_META_TEMP_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_temp_dir='&'#" ; else echo "# meta_temp_dir="; fi ) +$( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "${VIASH_META_CPUS}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_cpus='&'#" ; else echo "# meta_cpus="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "${VIASH_META_MEMORY_B}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_b='&'#" ; else echo "# meta_memory_b="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "${VIASH_META_MEMORY_KB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_kb='&'#" ; else echo "# meta_memory_kb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "${VIASH_META_MEMORY_MB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_mb='&'#" ; else echo "# meta_memory_mb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "${VIASH_META_MEMORY_GB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_gb='&'#" ; else echo "# meta_memory_gb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "${VIASH_META_MEMORY_TB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_tb='&'#" ; else echo "# meta_memory_tb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "${VIASH_META_MEMORY_PB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pb='&'#" ; else echo "# meta_memory_pb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "${VIASH_META_MEMORY_KIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_kib='&'#" ; else echo "# meta_memory_kib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "${VIASH_META_MEMORY_MIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_mib='&'#" ; else echo "# meta_memory_mib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "${VIASH_META_MEMORY_GIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_gib='&'#" ; else echo "# meta_memory_gib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_tib='&'#" ; else echo "# meta_memory_tib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) + +## VIASH END + +agat_convert_mfannot2gff.pl \\\\ + --mfannot "\\$par_mfannot" \\\\ + --gff "\\$par_gff" \\\\ + \\${par_config:+--config "\\${par_config}"} +VIASHMAIN +bash "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/biobox/agat/agat_convert_mfannot2gff", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/agat/agat_convert_mfannot2gff/nextflow.config b/target/nextflow/agat/agat_convert_mfannot2gff/nextflow.config new file mode 100644 index 00000000..02f1a69b --- /dev/null +++ b/target/nextflow/agat/agat_convert_mfannot2gff/nextflow.config @@ -0,0 +1,126 @@ +manifest { + name = 'agat/agat_convert_mfannot2gff' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' + description = 'Conversion utility for MFannot "masterfile" annotation produced by the\n[MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports\nGFF3 format.\n' + author = 'Leïla Paquay' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + + diff --git a/target/nextflow/agat/agat_convert_mfannot2gff/nextflow_schema.json b/target/nextflow/agat/agat_convert_mfannot2gff/nextflow_schema.json new file mode 100644 index 00000000..f4b1c959 --- /dev/null +++ b/target/nextflow/agat/agat_convert_mfannot2gff/nextflow_schema.json @@ -0,0 +1,119 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "agat_convert_mfannot2gff", +"description": "Conversion utility for MFannot \"masterfile\" annotation produced by the\n[MFannot pipeline](http://megasun.bch.umontreal.ca/RNAweasel/). Reports\nGFF3 format.\n", +"type": "object", +"definitions": { + + + + "inputs" : { + "title": "Inputs", + "type": "object", + "description": "No description", + "properties": { + + + "mfannot": { + "type": + "string", + "description": "Type: `file`, required, example: `input.mfannot`. The mfannot input file", + "help_text": "Type: `file`, required, example: `input.mfannot`. The mfannot input file." + + } + + +} +}, + + + "outputs" : { + "title": "Outputs", + "type": "object", + "description": "No description", + "properties": { + + + "gff": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.gff.gff`, example: `output.gff`. The GFF output file", + "help_text": "Type: `file`, required, default: `$id.$key.gff.gff`, example: `output.gff`. The GFF output file." + , + "default": "$id.$key.gff.gff" + } + + +} +}, + + + "arguments" : { + "title": "Arguments", + "type": "object", + "description": "No description", + "properties": { + + + "config": { + "type": + "string", + "description": "Type: `file`, example: `custom_agat_config.yaml`. AGAT config file", + "help_text": "Type: `file`, example: `custom_agat_config.yaml`. AGAT config file. By default AGAT takes the original agat_config.yaml shipped with AGAT. The `--config` option gives you the possibility to use your own AGAT config file (located elsewhere or named differently).\n" + + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/inputs" + }, + + { + "$ref": "#/definitions/outputs" + }, + + { + "$ref": "#/definitions/arguments" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml b/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml index 1e529b2d..009a0646 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml @@ -228,9 +228,9 @@ build_info: output: "target/nextflow/agat/agat_convert_sp_gff2gtf" executable: "target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf b/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf index 3886681e..3ff92fdb 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf +++ b/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf @@ -3068,9 +3068,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_sp_gff2gtf", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml b/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml index 626202b6..b49fecce 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml @@ -188,9 +188,9 @@ build_info: output: "target/nextflow/agat/agat_convert_sp_gff2tsv" executable: "target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf b/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf index f173da04..d24223ed 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf +++ b/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf @@ -3046,9 +3046,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_sp_gff2tsv", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml b/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml index 08454fd5..bfc44f5a 100644 --- a/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml @@ -195,9 +195,9 @@ build_info: output: "target/nextflow/agat/agat_convert_sp_gxf2gxf" executable: "target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf b/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf index 9483023f..67067725 100644 --- a/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf +++ b/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf @@ -3046,9 +3046,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_sp_gxf2gxf", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_sp_add_introns/.config.vsh.yaml b/target/nextflow/agat/agat_sp_add_introns/.config.vsh.yaml index 83a50490..bf36fbc1 100644 --- a/target/nextflow/agat/agat_sp_add_introns/.config.vsh.yaml +++ b/target/nextflow/agat/agat_sp_add_introns/.config.vsh.yaml @@ -186,9 +186,9 @@ build_info: output: "target/nextflow/agat/agat_sp_add_introns" executable: "target/nextflow/agat/agat_sp_add_introns/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_sp_add_introns/main.nf b/target/nextflow/agat/agat_sp_add_introns/main.nf index 6aa25e0d..61474ac7 100644 --- a/target/nextflow/agat/agat_sp_add_introns/main.nf +++ b/target/nextflow/agat/agat_sp_add_introns/main.nf @@ -3049,9 +3049,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_sp_add_introns", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml b/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml index dd47e0a0..7cc2060d 100644 --- a/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml +++ b/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/.config.vsh.yaml @@ -236,9 +236,9 @@ build_info: output: "target/nextflow/agat/agat_sp_filter_feature_from_kill_list" executable: "target/nextflow/agat/agat_sp_filter_feature_from_kill_list/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/main.nf b/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/main.nf index 42366c01..7d2ffb85 100644 --- a/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/main.nf +++ b/target/nextflow/agat/agat_sp_filter_feature_from_kill_list/main.nf @@ -3096,9 +3096,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_sp_filter_feature_from_kill_list", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_sp_merge_annotations/.config.vsh.yaml b/target/nextflow/agat/agat_sp_merge_annotations/.config.vsh.yaml index fce2f26a..884f3ffe 100644 --- a/target/nextflow/agat/agat_sp_merge_annotations/.config.vsh.yaml +++ b/target/nextflow/agat/agat_sp_merge_annotations/.config.vsh.yaml @@ -184,9 +184,9 @@ build_info: output: "target/nextflow/agat/agat_sp_merge_annotations" executable: "target/nextflow/agat/agat_sp_merge_annotations/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_sp_merge_annotations/main.nf b/target/nextflow/agat/agat_sp_merge_annotations/main.nf index f52667d1..2ea98c55 100644 --- a/target/nextflow/agat/agat_sp_merge_annotations/main.nf +++ b/target/nextflow/agat/agat_sp_merge_annotations/main.nf @@ -3046,9 +3046,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_sp_merge_annotations", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_sp_statistics/.config.vsh.yaml b/target/nextflow/agat/agat_sp_statistics/.config.vsh.yaml index bbb23a8f..f1ceb4e1 100644 --- a/target/nextflow/agat/agat_sp_statistics/.config.vsh.yaml +++ b/target/nextflow/agat/agat_sp_statistics/.config.vsh.yaml @@ -231,9 +231,9 @@ build_info: output: "target/nextflow/agat/agat_sp_statistics" executable: "target/nextflow/agat/agat_sp_statistics/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_sp_statistics/main.nf b/target/nextflow/agat/agat_sp_statistics/main.nf index 6fb56cdf..16f937e3 100644 --- a/target/nextflow/agat/agat_sp_statistics/main.nf +++ b/target/nextflow/agat/agat_sp_statistics/main.nf @@ -3096,9 +3096,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_sp_statistics", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_sq_stat_basic/.config.vsh.yaml b/target/nextflow/agat/agat_sq_stat_basic/.config.vsh.yaml new file mode 100644 index 00000000..7a1120e5 --- /dev/null +++ b/target/nextflow/agat/agat_sq_stat_basic/.config.vsh.yaml @@ -0,0 +1,254 @@ +name: "agat_sq_stat_basic" +namespace: "agat" +version: "main" +authors: +- name: "Leïla Paquay" + roles: + - "author" + - "maintainer" + info: + links: + email: "leila@data-intuitive.com" + github: "Leila011" + linkedin: "leilapaquay" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Software Developer" +argument_groups: +- name: "Inputs" + arguments: + - type: "file" + name: "--gff" + alternatives: + - "-i" + - "--file" + - "--input" + description: "Input GTF/GFF file.\n" + info: null + example: + - "input.gff" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" + - type: "integer" + name: "--genome_size" + alternatives: + - "-g" + description: "That input is designed to know the genome size in order to calculate\ + \ the percentage of the genome represented by each kind of feature type. You\ + \ can provide an INTEGER. Or you can also pass a fasta file using the argument\ + \ --genome_size_fasta. If both are provided, only the value of --genome_size\ + \ will be considered.\n" + info: null + example: + - 10000 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--genome_size_fasta" + description: "That input is designed to know the genome size in order to calculate\ + \ the percentage of the genome represented by each kind of feature type. You\ + \ can provide the genome in fasta format. Or you can also pass the size directly\ + \ as an integer using the argument --genome_size. If you provide the fasta,\ + \ the genome size will be calculated on the fly. If both are provided, only\ + \ the value of --genome_size will be considered.\n" + info: null + example: + - "genome.fasta" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Outputs" + arguments: + - type: "file" + name: "--output" + alternatives: + - "-o" + description: "Output file. The result is in tabulate format.\n" + info: null + example: + - "output.txt" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" +- name: "Arguments" + arguments: + - type: "boolean_true" + name: "--inflate" + description: "Inflate the statistics taking into account feature with\nmulti-parents.\ + \ Indeed to avoid redundant information, some gff\nfactorize identical features.\ + \ e.g: one exon used in two\ndifferent isoform will be defined only once, and\ + \ will have\nmultiple parent. By default the script count such feature only\n\ + once. Using the inflate option allows to count the feature and\nits size as\ + \ many time there are parents.\n" + info: null + direction: "input" + - type: "file" + name: "--config" + alternatives: + - "-c" + description: "AGAT config file. By default AGAT takes the original agat_config.yaml\ + \ shipped with AGAT. The `--config` option gives you the possibility to use\ + \ your own AGAT config file (located elsewhere or named differently).\n" + info: null + example: + - "custom_agat_config.yaml" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" +resources: +- type: "bash_script" + path: "script.sh" + is_executable: true +description: "The script aims to provide basic statistics of a gtf/gff file.\n" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true +- type: "file" + path: "test_data" +info: null +status: "enabled" +requirements: + commands: + - "ps" +keywords: +- "gene annotations" +- "gff" +- "statistics" +license: "GPL-3.0" +references: + doi: + - "10.5281/zenodo.3552717" +links: + repository: "https://github.com/NBISweden/AGAT" + homepage: "https://github.com/NBISweden/AGAT" + documentation: "https://agat.readthedocs.io/en/latest/tools/agat_sq_stat_basic.html" + issue_tracker: "https://github.com/NBISweden/AGAT/issues" +runners: +- type: "executable" + id: "executable" + docker_setup_strategy: "ifneedbepullelsecachedbuild" +- type: "nextflow" + id: "nextflow" + directives: + tag: "$id" + auto: + simplifyInput: true + simplifyOutput: false + transcript: false + publish: false + config: + labels: + mem1gb: "memory = 1000000000.B" + mem2gb: "memory = 2000000000.B" + mem5gb: "memory = 5000000000.B" + mem10gb: "memory = 10000000000.B" + mem20gb: "memory = 20000000000.B" + mem50gb: "memory = 50000000000.B" + mem100gb: "memory = 100000000000.B" + mem200gb: "memory = 200000000000.B" + mem500gb: "memory = 500000000000.B" + mem1tb: "memory = 1000000000000.B" + mem2tb: "memory = 2000000000000.B" + mem5tb: "memory = 5000000000000.B" + mem10tb: "memory = 10000000000000.B" + mem20tb: "memory = 20000000000000.B" + mem50tb: "memory = 50000000000000.B" + mem100tb: "memory = 100000000000000.B" + mem200tb: "memory = 200000000000000.B" + mem500tb: "memory = 500000000000000.B" + mem1gib: "memory = 1073741824.B" + mem2gib: "memory = 2147483648.B" + mem4gib: "memory = 4294967296.B" + mem8gib: "memory = 8589934592.B" + mem16gib: "memory = 17179869184.B" + mem32gib: "memory = 34359738368.B" + mem64gib: "memory = 68719476736.B" + mem128gib: "memory = 137438953472.B" + mem256gib: "memory = 274877906944.B" + mem512gib: "memory = 549755813888.B" + mem1tib: "memory = 1099511627776.B" + mem2tib: "memory = 2199023255552.B" + mem4tib: "memory = 4398046511104.B" + mem8tib: "memory = 8796093022208.B" + mem16tib: "memory = 17592186044416.B" + mem32tib: "memory = 35184372088832.B" + mem64tib: "memory = 70368744177664.B" + mem128tib: "memory = 140737488355328.B" + mem256tib: "memory = 281474976710656.B" + mem512tib: "memory = 562949953421312.B" + cpu1: "cpus = 1" + cpu2: "cpus = 2" + cpu5: "cpus = 5" + cpu10: "cpus = 10" + cpu20: "cpus = 20" + cpu50: "cpus = 50" + cpu100: "cpus = 100" + cpu200: "cpus = 200" + cpu500: "cpus = 500" + cpu1000: "cpus = 1000" + debug: false + container: "docker" +engines: +- type: "docker" + id: "docker" + image: "quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "docker" + run: + - "agat --version | sed 's/AGAT\\s\\(.*\\)/agat: \"\\1\"/' > /var/software_versions.txt\n" + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/agat/agat_sq_stat_basic/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/agat/agat_sq_stat_basic" + executable: "target/nextflow/agat/agat_sq_stat_basic/main.nf" + viash_version: "0.9.0" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" +package_config: + name: "biobox" + version: "main" + description: "A collection of bioinformatics tools for working with sequence data.\n" + info: null + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "modules" + - "sequencing" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/biobox" + issue_tracker: "https://github.com/viash-hub/biobox/issues" diff --git a/target/nextflow/agat/agat_sq_stat_basic/main.nf b/target/nextflow/agat/agat_sq_stat_basic/main.nf new file mode 100644 index 00000000..e976ed54 --- /dev/null +++ b/target/nextflow/agat/agat_sq_stat_basic/main.nf @@ -0,0 +1,3663 @@ +// agat_sq_stat_basic main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. +// +// Component authors: +// * Leïla Paquay (author, maintainer) + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "agat_sq_stat_basic", + "namespace" : "agat", + "version" : "main", + "authors" : [ + { + "name" : "Leïla Paquay", + "roles" : [ + "author", + "maintainer" + ], + "info" : { + "links" : { + "email" : "leila@data-intuitive.com", + "github" : "Leila011", + "linkedin" : "leilapaquay" + }, + "organizations" : [ + { + "name" : "Data Intuitive", + "href" : "https://www.data-intuitive.com", + "role" : "Software Developer" + } + ] + } + } + ], + "argument_groups" : [ + { + "name" : "Inputs", + "arguments" : [ + { + "type" : "file", + "name" : "--gff", + "alternatives" : [ + "-i", + "--file", + "--input" + ], + "description" : "Input GTF/GFF file.\n", + "example" : [ + "input.gff" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : true, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--genome_size", + "alternatives" : [ + "-g" + ], + "description" : "That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type. You can provide an INTEGER. Or you can also pass a fasta file using the argument --genome_size_fasta. If both are provided, only the value of --genome_size will be considered.\n", + "example" : [ + 10000 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--genome_size_fasta", + "description" : "That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type. You can provide the genome in fasta format. Or you can also pass the size directly as an integer using the argument --genome_size. If you provide the fasta, the genome size will be calculated on the fly. If both are provided, only the value of --genome_size will be considered.\n", + "example" : [ + "genome.fasta" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Outputs", + "arguments" : [ + { + "type" : "file", + "name" : "--output", + "alternatives" : [ + "-o" + ], + "description" : "Output file. The result is in tabulate format.\n", + "example" : [ + "output.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Arguments", + "arguments" : [ + { + "type" : "boolean_true", + "name" : "--inflate", + "description" : "Inflate the statistics taking into account feature with\nmulti-parents. Indeed to avoid redundant information, some gff\nfactorize identical features. e.g: one exon used in two\ndifferent isoform will be defined only once, and will have\nmultiple parent. By default the script count such feature only\nonce. Using the inflate option allows to count the feature and\nits size as many time there are parents.\n", + "direction" : "input" + }, + { + "type" : "file", + "name" : "--config", + "alternatives" : [ + "-c" + ], + "description" : "AGAT config file. By default AGAT takes the original agat_config.yaml shipped with AGAT. The `--config` option gives you the possibility to use your own AGAT config file (located elsewhere or named differently).\n", + "example" : [ + "custom_agat_config.yaml" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "bash_script", + "path" : "script.sh", + "is_executable" : true + } + ], + "description" : "The script aims to provide basic statistics of a gtf/gff file.\n", + "test_resources" : [ + { + "type" : "bash_script", + "path" : "test.sh", + "is_executable" : true + }, + { + "type" : "file", + "path" : "test_data" + } + ], + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "keywords" : [ + "gene annotations", + "gff", + "statistics" + ], + "license" : "GPL-3.0", + "references" : { + "doi" : [ + "10.5281/zenodo.3552717" + ] + }, + "links" : { + "repository" : "https://github.com/NBISweden/AGAT", + "homepage" : "https://github.com/NBISweden/AGAT", + "documentation" : "https://agat.readthedocs.io/en/latest/tools/agat_sq_stat_basic.html", + "issue_tracker" : "https://github.com/NBISweden/AGAT/issues" + }, + "runners" : [ + { + "type" : "executable", + "id" : "executable", + "docker_setup_strategy" : "ifneedbepullelsecachedbuild" + }, + { + "type" : "nextflow", + "id" : "nextflow", + "directives" : { + "tag" : "$id" + }, + "auto" : { + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false + }, + "config" : { + "labels" : { + "mem1gb" : "memory = 1000000000.B", + "mem2gb" : "memory = 2000000000.B", + "mem5gb" : "memory = 5000000000.B", + "mem10gb" : "memory = 10000000000.B", + "mem20gb" : "memory = 20000000000.B", + "mem50gb" : "memory = 50000000000.B", + "mem100gb" : "memory = 100000000000.B", + "mem200gb" : "memory = 200000000000.B", + "mem500gb" : "memory = 500000000000.B", + "mem1tb" : "memory = 1000000000000.B", + "mem2tb" : "memory = 2000000000000.B", + "mem5tb" : "memory = 5000000000000.B", + "mem10tb" : "memory = 10000000000000.B", + "mem20tb" : "memory = 20000000000000.B", + "mem50tb" : "memory = 50000000000000.B", + "mem100tb" : "memory = 100000000000000.B", + "mem200tb" : "memory = 200000000000000.B", + "mem500tb" : "memory = 500000000000000.B", + "mem1gib" : "memory = 1073741824.B", + "mem2gib" : "memory = 2147483648.B", + "mem4gib" : "memory = 4294967296.B", + "mem8gib" : "memory = 8589934592.B", + "mem16gib" : "memory = 17179869184.B", + "mem32gib" : "memory = 34359738368.B", + "mem64gib" : "memory = 68719476736.B", + "mem128gib" : "memory = 137438953472.B", + "mem256gib" : "memory = 274877906944.B", + "mem512gib" : "memory = 549755813888.B", + "mem1tib" : "memory = 1099511627776.B", + "mem2tib" : "memory = 2199023255552.B", + "mem4tib" : "memory = 4398046511104.B", + "mem8tib" : "memory = 8796093022208.B", + "mem16tib" : "memory = 17592186044416.B", + "mem32tib" : "memory = 35184372088832.B", + "mem64tib" : "memory = 70368744177664.B", + "mem128tib" : "memory = 140737488355328.B", + "mem256tib" : "memory = 281474976710656.B", + "mem512tib" : "memory = 562949953421312.B", + "cpu1" : "cpus = 1", + "cpu2" : "cpus = 2", + "cpu5" : "cpus = 5", + "cpu10" : "cpus = 10", + "cpu20" : "cpus = 20", + "cpu50" : "cpus = 50", + "cpu100" : "cpus = 100", + "cpu200" : "cpus = 200", + "cpu500" : "cpus = 500", + "cpu1000" : "cpus = 1000" + } + }, + "debug" : false, + "container" : "docker" + } + ], + "engines" : [ + { + "type" : "docker", + "id" : "docker", + "image" : "quay.io/biocontainers/agat:1.4.0--pl5321hdfd78af_0", + "target_registry" : "images.viash-hub.com", + "target_tag" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "docker", + "run" : [ + "agat --version | sed 's/AGAT\\\\s\\\\(.*\\\\)/agat: \\"\\\\1\\"/' > /var/software_versions.txt\n" + ] + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/agat/agat_sq_stat_basic/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/agat/agat_sq_stat_basic", + "viash_version" : "0.9.0", + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" + }, + "package_config" : { + "name" : "biobox", + "version" : "main", + "description" : "A collection of bioinformatics tools for working with sequence data.\n", + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "modules", + "sequencing" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/biobox", + "issue_tracker" : "https://github.com/viash-hub/biobox/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +#!/bin/bash + +set -eo pipefail + +## VIASH START +# The following code has been auto-generated by Viash. +$( if [ ! -z ${VIASH_PAR_GFF+x} ]; then echo "${VIASH_PAR_GFF}" | sed "s#'#'\\"'\\"'#g;s#.*#par_gff='&'#" ; else echo "# par_gff="; fi ) +$( if [ ! -z ${VIASH_PAR_GENOME_SIZE+x} ]; then echo "${VIASH_PAR_GENOME_SIZE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_genome_size='&'#" ; else echo "# par_genome_size="; fi ) +$( if [ ! -z ${VIASH_PAR_GENOME_SIZE_FASTA+x} ]; then echo "${VIASH_PAR_GENOME_SIZE_FASTA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_genome_size_fasta='&'#" ; else echo "# par_genome_size_fasta="; fi ) +$( if [ ! -z ${VIASH_PAR_OUTPUT+x} ]; then echo "${VIASH_PAR_OUTPUT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_output='&'#" ; else echo "# par_output="; fi ) +$( if [ ! -z ${VIASH_PAR_INFLATE+x} ]; then echo "${VIASH_PAR_INFLATE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_inflate='&'#" ; else echo "# par_inflate="; fi ) +$( if [ ! -z ${VIASH_PAR_CONFIG+x} ]; then echo "${VIASH_PAR_CONFIG}" | sed "s#'#'\\"'\\"'#g;s#.*#par_config='&'#" ; else echo "# par_config="; fi ) +$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi ) +$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi ) +$( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "${VIASH_META_RESOURCES_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_resources_dir='&'#" ; else echo "# meta_resources_dir="; fi ) +$( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "${VIASH_META_EXECUTABLE}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_executable='&'#" ; else echo "# meta_executable="; fi ) +$( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "${VIASH_META_CONFIG}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_config='&'#" ; else echo "# meta_config="; fi ) +$( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "${VIASH_META_TEMP_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_temp_dir='&'#" ; else echo "# meta_temp_dir="; fi ) +$( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "${VIASH_META_CPUS}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_cpus='&'#" ; else echo "# meta_cpus="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "${VIASH_META_MEMORY_B}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_b='&'#" ; else echo "# meta_memory_b="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "${VIASH_META_MEMORY_KB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_kb='&'#" ; else echo "# meta_memory_kb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "${VIASH_META_MEMORY_MB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_mb='&'#" ; else echo "# meta_memory_mb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "${VIASH_META_MEMORY_GB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_gb='&'#" ; else echo "# meta_memory_gb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "${VIASH_META_MEMORY_TB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_tb='&'#" ; else echo "# meta_memory_tb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "${VIASH_META_MEMORY_PB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pb='&'#" ; else echo "# meta_memory_pb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "${VIASH_META_MEMORY_KIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_kib='&'#" ; else echo "# meta_memory_kib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "${VIASH_META_MEMORY_MIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_mib='&'#" ; else echo "# meta_memory_mib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "${VIASH_META_MEMORY_GIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_gib='&'#" ; else echo "# meta_memory_gib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_tib='&'#" ; else echo "# meta_memory_tib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) + +## VIASH END + +# unset flags +[[ "\\$par_inflate" == "false" ]] && unset par_inflate + +# Convert a list of file names to multiple -gff arguments +input_files="" +IFS=";" read -ra file_names <<< "\\$par_gff" +for file in "\\${file_names[@]}"; do + input_files+="--gff \\$file " +done + +# take care of --genome (can originally be either a fasta file or an integer) +if [[ -n "\\$par_genome_size" ]]; then + genome_arg=\\$par_genome_size +elif [[ -n "\\$par_genome_size_fasta" ]]; then + genome_arg=\\$par_genome_size_fasta +fi + +# run agat_convert_sp_bed2gff.pl +agat_sq_stat_basic.pl \\\\ + \\$input_files \\\\ + \\${genome_arg:+--genome "\\${genome_arg}"} \\\\ + --output "\\${par_output}" \\\\ + \\${par_inflate:+--inflate} \\\\ + \\${par_config:+--config "\\${par_config}"} +VIASHMAIN +bash "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/biobox/agat/agat_sq_stat_basic", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/agat/agat_sq_stat_basic/nextflow.config b/target/nextflow/agat/agat_sq_stat_basic/nextflow.config new file mode 100644 index 00000000..cc475aad --- /dev/null +++ b/target/nextflow/agat/agat_sq_stat_basic/nextflow.config @@ -0,0 +1,126 @@ +manifest { + name = 'agat/agat_sq_stat_basic' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' + description = 'The script aims to provide basic statistics of a gtf/gff file.\n' + author = 'Leïla Paquay' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + + diff --git a/target/nextflow/agat/agat_sq_stat_basic/nextflow_schema.json b/target/nextflow/agat/agat_sq_stat_basic/nextflow_schema.json new file mode 100644 index 00000000..d72f4d3e --- /dev/null +++ b/target/nextflow/agat/agat_sq_stat_basic/nextflow_schema.json @@ -0,0 +1,150 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "agat_sq_stat_basic", +"description": "The script aims to provide basic statistics of a gtf/gff file.\n", +"type": "object", +"definitions": { + + + + "inputs" : { + "title": "Inputs", + "type": "object", + "description": "No description", + "properties": { + + + "gff": { + "type": + "string", + "description": "Type: List of `file`, required, example: `input.gff`, multiple_sep: `\";\"`. Input GTF/GFF file", + "help_text": "Type: List of `file`, required, example: `input.gff`, multiple_sep: `\";\"`. Input GTF/GFF file.\n" + + } + + + , + "genome_size": { + "type": + "integer", + "description": "Type: `integer`, example: `10000`. That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type", + "help_text": "Type: `integer`, example: `10000`. That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type. You can provide an INTEGER. Or you can also pass a fasta file using the argument --genome_size_fasta. If both are provided, only the value of --genome_size will be considered.\n" + + } + + + , + "genome_size_fasta": { + "type": + "string", + "description": "Type: `file`, example: `genome.fasta`. That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type", + "help_text": "Type: `file`, example: `genome.fasta`. That input is designed to know the genome size in order to calculate the percentage of the genome represented by each kind of feature type. You can provide the genome in fasta format. Or you can also pass the size directly as an integer using the argument --genome_size. If you provide the fasta, the genome size will be calculated on the fly. If both are provided, only the value of --genome_size will be considered.\n" + + } + + +} +}, + + + "outputs" : { + "title": "Outputs", + "type": "object", + "description": "No description", + "properties": { + + + "output": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.output.txt`, example: `output.txt`. Output file", + "help_text": "Type: `file`, required, default: `$id.$key.output.txt`, example: `output.txt`. Output file. The result is in tabulate format.\n" + , + "default": "$id.$key.output.txt" + } + + +} +}, + + + "arguments" : { + "title": "Arguments", + "type": "object", + "description": "No description", + "properties": { + + + "inflate": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Inflate the statistics taking into account feature with\nmulti-parents", + "help_text": "Type: `boolean_true`, default: `false`. Inflate the statistics taking into account feature with\nmulti-parents. Indeed to avoid redundant information, some gff\nfactorize identical features. e.g: one exon used in two\ndifferent isoform will be defined only once, and will have\nmultiple parent. By default the script count such feature only\nonce. Using the inflate option allows to count the feature and\nits size as many time there are parents.\n" + , + "default": "False" + } + + + , + "config": { + "type": + "string", + "description": "Type: `file`, example: `custom_agat_config.yaml`. AGAT config file", + "help_text": "Type: `file`, example: `custom_agat_config.yaml`. AGAT config file. By default AGAT takes the original agat_config.yaml shipped with AGAT. The `--config` option gives you the possibility to use your own AGAT config file (located elsewhere or named differently).\n" + + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/inputs" + }, + + { + "$ref": "#/definitions/outputs" + }, + + { + "$ref": "#/definitions/arguments" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/arriba/.config.vsh.yaml b/target/nextflow/arriba/.config.vsh.yaml index 2336cb67..790a14fb 100644 --- a/target/nextflow/arriba/.config.vsh.yaml +++ b/target/nextflow/arriba/.config.vsh.yaml @@ -706,9 +706,9 @@ build_info: output: "target/nextflow/arriba" executable: "target/nextflow/arriba/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/arriba/main.nf b/target/nextflow/arriba/main.nf index 8941edc0..36c86ab7 100644 --- a/target/nextflow/arriba/main.nf +++ b/target/nextflow/arriba/main.nf @@ -3592,9 +3592,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/arriba", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bbmap/bbmap_bbsplit/.config.vsh.yaml b/target/nextflow/bbmap/bbmap_bbsplit/.config.vsh.yaml index b052ae29..5c66fb0f 100644 --- a/target/nextflow/bbmap/bbmap_bbsplit/.config.vsh.yaml +++ b/target/nextflow/bbmap/bbmap_bbsplit/.config.vsh.yaml @@ -359,9 +359,9 @@ build_info: output: "target/nextflow/bbmap/bbmap_bbsplit" executable: "target/nextflow/bbmap/bbmap_bbsplit/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bbmap/bbmap_bbsplit/main.nf b/target/nextflow/bbmap/bbmap_bbsplit/main.nf index 64b97122..baf8adcf 100644 --- a/target/nextflow/bbmap/bbmap_bbsplit/main.nf +++ b/target/nextflow/bbmap/bbmap_bbsplit/main.nf @@ -3207,9 +3207,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bbmap/bbmap_bbsplit", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml index e26babf9..828d1e41 100644 --- a/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml @@ -469,9 +469,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_annotate" executable: "target/nextflow/bcftools/bcftools_annotate/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_annotate/main.nf b/target/nextflow/bcftools/bcftools_annotate/main.nf index 493c6cbb..0e8a0158 100644 --- a/target/nextflow/bcftools/bcftools_annotate/main.nf +++ b/target/nextflow/bcftools/bcftools_annotate/main.nf @@ -3335,9 +3335,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_annotate", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml index 8725a7c6..61306931 100644 --- a/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml @@ -335,9 +335,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_concat" executable: "target/nextflow/bcftools/bcftools_concat/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_concat/main.nf b/target/nextflow/bcftools/bcftools_concat/main.nf index 301be3f6..baff1acd 100644 --- a/target/nextflow/bcftools/bcftools_concat/main.nf +++ b/target/nextflow/bcftools/bcftools_concat/main.nf @@ -3207,9 +3207,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_concat", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml index 92d42517..3052e4e7 100644 --- a/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_norm" executable: "target/nextflow/bcftools/bcftools_norm/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_norm/main.nf b/target/nextflow/bcftools/bcftools_norm/main.nf index 7ada3f0d..a0ea0d12 100644 --- a/target/nextflow/bcftools/bcftools_norm/main.nf +++ b/target/nextflow/bcftools/bcftools_norm/main.nf @@ -3300,9 +3300,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_norm", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml index 77670a0d..2a338915 100644 --- a/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml @@ -185,9 +185,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_sort" executable: "target/nextflow/bcftools/bcftools_sort/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_sort/main.nf b/target/nextflow/bcftools/bcftools_sort/main.nf index bb214da8..a382c1da 100644 --- a/target/nextflow/bcftools/bcftools_sort/main.nf +++ b/target/nextflow/bcftools/bcftools_sort/main.nf @@ -3048,9 +3048,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_sort", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml index 3ad6adbf..623ba093 100644 --- a/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml @@ -458,9 +458,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_stats" executable: "target/nextflow/bcftools/bcftools_stats/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_stats/main.nf b/target/nextflow/bcftools/bcftools_stats/main.nf index 325d573b..0936d349 100644 --- a/target/nextflow/bcftools/bcftools_stats/main.nf +++ b/target/nextflow/bcftools/bcftools_stats/main.nf @@ -3337,9 +3337,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_stats", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcl_convert/.config.vsh.yaml b/target/nextflow/bcl_convert/.config.vsh.yaml index aba9cf97..7bb0b552 100644 --- a/target/nextflow/bcl_convert/.config.vsh.yaml +++ b/target/nextflow/bcl_convert/.config.vsh.yaml @@ -418,9 +418,9 @@ build_info: output: "target/nextflow/bcl_convert" executable: "target/nextflow/bcl_convert/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcl_convert/main.nf b/target/nextflow/bcl_convert/main.nf index a8dc67d6..5d170693 100644 --- a/target/nextflow/bcl_convert/main.nf +++ b/target/nextflow/bcl_convert/main.nf @@ -3329,9 +3329,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcl_convert", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml index da113e86..b58034ef 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml @@ -274,9 +274,9 @@ build_info: output: "target/nextflow/bd_rhapsody/bd_rhapsody_make_reference" executable: "target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf index fc2e45a8..c792ccf6 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf @@ -3146,9 +3146,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bd_rhapsody/bd_rhapsody_make_reference", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml index fe3a2bc2..bb4c5240 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml @@ -1115,9 +1115,9 @@ build_info: output: "target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis" executable: "target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf index be33fd1f..366b4c15 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf @@ -4193,9 +4193,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bamtobed/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bamtobed/.config.vsh.yaml index 3549a3f5..da3e31a4 100644 --- a/target/nextflow/bedtools/bedtools_bamtobed/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bamtobed/.config.vsh.yaml @@ -235,9 +235,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bamtobed" executable: "target/nextflow/bedtools/bedtools_bamtobed/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bamtobed/main.nf b/target/nextflow/bedtools/bedtools_bamtobed/main.nf index 38dce111..73c1119b 100644 --- a/target/nextflow/bedtools/bedtools_bamtobed/main.nf +++ b/target/nextflow/bedtools/bedtools_bamtobed/main.nf @@ -3101,9 +3101,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bamtobed", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml index 5ed71e60..f34acc53 100644 --- a/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml @@ -187,9 +187,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bamtofastq" executable: "target/nextflow/bedtools/bedtools_bamtofastq/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bamtofastq/main.nf b/target/nextflow/bedtools/bedtools_bamtofastq/main.nf index d80a14a7..c3c70c46 100644 --- a/target/nextflow/bedtools/bedtools_bamtofastq/main.nf +++ b/target/nextflow/bedtools/bedtools_bamtofastq/main.nf @@ -3050,9 +3050,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bamtofastq", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml index 52354569..37aa0f61 100644 --- a/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml @@ -176,9 +176,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bed12tobed6" executable: "target/nextflow/bedtools/bedtools_bed12tobed6/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf b/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf index 262d9a20..6d83eff8 100644 --- a/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf +++ b/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf @@ -3035,9 +3035,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bed12tobed6", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml index f68171c0..10467c67 100644 --- a/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml @@ -214,9 +214,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bedtobam" executable: "target/nextflow/bedtools/bedtools_bedtobam/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bedtobam/main.nf b/target/nextflow/bedtools/bedtools_bedtobam/main.nf index 0c09d6f4..3524d384 100644 --- a/target/nextflow/bedtools/bedtools_bedtobam/main.nf +++ b/target/nextflow/bedtools/bedtools_bedtobam/main.nf @@ -3083,9 +3083,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bedtobam", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml index bfb05453..a9e954ed 100644 --- a/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml @@ -337,9 +337,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_genomecov" executable: "target/nextflow/bedtools/bedtools_genomecov/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_genomecov/main.nf b/target/nextflow/bedtools/bedtools_genomecov/main.nf index 29d326ab..88eb8b8c 100644 --- a/target/nextflow/bedtools/bedtools_genomecov/main.nf +++ b/target/nextflow/bedtools/bedtools_genomecov/main.nf @@ -3207,9 +3207,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_genomecov", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml index 1c02380e..778997db 100644 --- a/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml @@ -232,9 +232,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_getfasta" executable: "target/nextflow/bedtools/bedtools_getfasta/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_getfasta/main.nf b/target/nextflow/bedtools/bedtools_getfasta/main.nf index 208d7946..02b38439 100644 --- a/target/nextflow/bedtools/bedtools_getfasta/main.nf +++ b/target/nextflow/bedtools/bedtools_getfasta/main.nf @@ -3086,9 +3086,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_getfasta", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml index 20bd4b1a..727a2cc6 100644 --- a/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml @@ -273,9 +273,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_groupby" executable: "target/nextflow/bedtools/bedtools_groupby/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_groupby/main.nf b/target/nextflow/bedtools/bedtools_groupby/main.nf index 831b59f3..d29d6ca8 100644 --- a/target/nextflow/bedtools/bedtools_groupby/main.nf +++ b/target/nextflow/bedtools/bedtools_groupby/main.nf @@ -3130,9 +3130,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_groupby", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml index 9cd8ee94..34834190 100644 --- a/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml @@ -410,9 +410,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_intersect" executable: "target/nextflow/bedtools/bedtools_intersect/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_intersect/main.nf b/target/nextflow/bedtools/bedtools_intersect/main.nf index c61c7ffc..352bbf25 100644 --- a/target/nextflow/bedtools/bedtools_intersect/main.nf +++ b/target/nextflow/bedtools/bedtools_intersect/main.nf @@ -3282,9 +3282,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_intersect", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml index 8b9d53bc..0dccf1eb 100644 --- a/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml @@ -210,9 +210,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_links" executable: "target/nextflow/bedtools/bedtools_links/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_links/main.nf b/target/nextflow/bedtools/bedtools_links/main.nf index ae289cb9..7bdd23ac 100644 --- a/target/nextflow/bedtools/bedtools_links/main.nf +++ b/target/nextflow/bedtools/bedtools_links/main.nf @@ -3073,9 +3073,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_links", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml index 8a8233b7..139db3b4 100644 --- a/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml @@ -279,9 +279,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_merge" executable: "target/nextflow/bedtools/bedtools_merge/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_merge/main.nf b/target/nextflow/bedtools/bedtools_merge/main.nf index b7ff7c5d..3fc42d27 100644 --- a/target/nextflow/bedtools/bedtools_merge/main.nf +++ b/target/nextflow/bedtools/bedtools_merge/main.nf @@ -3134,9 +3134,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_merge", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml index 953b28d9..91ddbb4a 100644 --- a/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml @@ -222,9 +222,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_sort" executable: "target/nextflow/bedtools/bedtools_sort/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_sort/main.nf b/target/nextflow/bedtools/bedtools_sort/main.nf index b76a0121..85c70819 100644 --- a/target/nextflow/bedtools/bedtools_sort/main.nf +++ b/target/nextflow/bedtools/bedtools_sort/main.nf @@ -3092,9 +3092,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_sort", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml b/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml index 643a6832..f21261f7 100644 --- a/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml +++ b/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml @@ -158,9 +158,9 @@ build_info: output: "target/nextflow/busco/busco_download_datasets" executable: "target/nextflow/busco/busco_download_datasets/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/busco/busco_download_datasets/main.nf b/target/nextflow/busco/busco_download_datasets/main.nf index 4c195aff..391d57c0 100644 --- a/target/nextflow/busco/busco_download_datasets/main.nf +++ b/target/nextflow/busco/busco_download_datasets/main.nf @@ -3011,9 +3011,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/busco/busco_download_datasets", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml b/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml index e7679ac8..e36e20f4 100644 --- a/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml +++ b/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml @@ -145,9 +145,9 @@ build_info: output: "target/nextflow/busco/busco_list_datasets" executable: "target/nextflow/busco/busco_list_datasets/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/busco/busco_list_datasets/main.nf b/target/nextflow/busco/busco_list_datasets/main.nf index d1ca78ba..b6e074a6 100644 --- a/target/nextflow/busco/busco_list_datasets/main.nf +++ b/target/nextflow/busco/busco_list_datasets/main.nf @@ -2997,9 +2997,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/busco/busco_list_datasets", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/busco/busco_run/.config.vsh.yaml b/target/nextflow/busco/busco_run/.config.vsh.yaml index a993e3dd..f4767629 100644 --- a/target/nextflow/busco/busco_run/.config.vsh.yaml +++ b/target/nextflow/busco/busco_run/.config.vsh.yaml @@ -423,9 +423,9 @@ build_info: output: "target/nextflow/busco/busco_run" executable: "target/nextflow/busco/busco_run/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/busco/busco_run/main.nf b/target/nextflow/busco/busco_run/main.nf index 9d3f16ef..0e416f52 100644 --- a/target/nextflow/busco/busco_run/main.nf +++ b/target/nextflow/busco/busco_run/main.nf @@ -3309,9 +3309,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/busco/busco_run", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/cutadapt/.config.vsh.yaml b/target/nextflow/cutadapt/.config.vsh.yaml index 483469af..ed9ca980 100644 --- a/target/nextflow/cutadapt/.config.vsh.yaml +++ b/target/nextflow/cutadapt/.config.vsh.yaml @@ -740,9 +740,9 @@ build_info: output: "target/nextflow/cutadapt" executable: "target/nextflow/cutadapt/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/cutadapt/main.nf b/target/nextflow/cutadapt/main.nf index b1f71137..1dc4d2ee 100644 --- a/target/nextflow/cutadapt/main.nf +++ b/target/nextflow/cutadapt/main.nf @@ -3619,9 +3619,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/cutadapt", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/falco/.config.vsh.yaml b/target/nextflow/falco/.config.vsh.yaml index 9e5b0a45..547ee070 100644 --- a/target/nextflow/falco/.config.vsh.yaml +++ b/target/nextflow/falco/.config.vsh.yaml @@ -317,9 +317,9 @@ build_info: output: "target/nextflow/falco" executable: "target/nextflow/falco/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/falco/main.nf b/target/nextflow/falco/main.nf index 7726536e..832027a2 100644 --- a/target/nextflow/falco/main.nf +++ b/target/nextflow/falco/main.nf @@ -3170,9 +3170,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/falco", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/fastp/.config.vsh.yaml b/target/nextflow/fastp/.config.vsh.yaml index ff74fb20..67799378 100644 --- a/target/nextflow/fastp/.config.vsh.yaml +++ b/target/nextflow/fastp/.config.vsh.yaml @@ -1083,9 +1083,9 @@ build_info: output: "target/nextflow/fastp" executable: "target/nextflow/fastp/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/fastp/main.nf b/target/nextflow/fastp/main.nf index 4e53f73c..646bfe24 100644 --- a/target/nextflow/fastp/main.nf +++ b/target/nextflow/fastp/main.nf @@ -4023,9 +4023,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fastp", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/fastqc/.config.vsh.yaml b/target/nextflow/fastqc/.config.vsh.yaml index e452520f..e1620937 100644 --- a/target/nextflow/fastqc/.config.vsh.yaml +++ b/target/nextflow/fastqc/.config.vsh.yaml @@ -340,9 +340,9 @@ build_info: output: "target/nextflow/fastqc" executable: "target/nextflow/fastqc/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/fastqc/main.nf b/target/nextflow/fastqc/main.nf index db3d6e05..3a18f295 100644 --- a/target/nextflow/fastqc/main.nf +++ b/target/nextflow/fastqc/main.nf @@ -3182,9 +3182,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fastqc", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/featurecounts/.config.vsh.yaml b/target/nextflow/featurecounts/.config.vsh.yaml index 1a78e19f..0541f8e5 100644 --- a/target/nextflow/featurecounts/.config.vsh.yaml +++ b/target/nextflow/featurecounts/.config.vsh.yaml @@ -645,9 +645,9 @@ build_info: output: "target/nextflow/featurecounts" executable: "target/nextflow/featurecounts/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/featurecounts/main.nf b/target/nextflow/featurecounts/main.nf index 96d1548d..757b6da0 100644 --- a/target/nextflow/featurecounts/main.nf +++ b/target/nextflow/featurecounts/main.nf @@ -3549,9 +3549,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/featurecounts", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/fq_subsample/.config.vsh.yaml b/target/nextflow/fq_subsample/.config.vsh.yaml index 4e800eb6..247ad9ca 100644 --- a/target/nextflow/fq_subsample/.config.vsh.yaml +++ b/target/nextflow/fq_subsample/.config.vsh.yaml @@ -190,9 +190,9 @@ build_info: output: "target/nextflow/fq_subsample" executable: "target/nextflow/fq_subsample/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/fq_subsample/main.nf b/target/nextflow/fq_subsample/main.nf index b98d7bb4..22852fa3 100644 --- a/target/nextflow/fq_subsample/main.nf +++ b/target/nextflow/fq_subsample/main.nf @@ -3032,9 +3032,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fq_subsample", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/gffread/.config.vsh.yaml b/target/nextflow/gffread/.config.vsh.yaml index b1940e11..0d099a7c 100644 --- a/target/nextflow/gffread/.config.vsh.yaml +++ b/target/nextflow/gffread/.config.vsh.yaml @@ -685,9 +685,9 @@ build_info: output: "target/nextflow/gffread" executable: "target/nextflow/gffread/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/gffread/main.nf b/target/nextflow/gffread/main.nf index 6006a931..1ebd70aa 100644 --- a/target/nextflow/gffread/main.nf +++ b/target/nextflow/gffread/main.nf @@ -3606,9 +3606,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/gffread", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml b/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml index cab2c353..40fb183b 100644 --- a/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml +++ b/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml @@ -218,9 +218,9 @@ build_info: output: "target/nextflow/kallisto/kallisto_index" executable: "target/nextflow/kallisto/kallisto_index/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/kallisto/kallisto_index/main.nf b/target/nextflow/kallisto/kallisto_index/main.nf index 402fe9b8..5b028238 100644 --- a/target/nextflow/kallisto/kallisto_index/main.nf +++ b/target/nextflow/kallisto/kallisto_index/main.nf @@ -3071,9 +3071,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/kallisto/kallisto_index", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml b/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml index 643a4ced..74d774b6 100644 --- a/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml +++ b/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml @@ -234,9 +234,9 @@ build_info: output: "target/nextflow/kallisto/kallisto_quant" executable: "target/nextflow/kallisto/kallisto_quant/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/kallisto/kallisto_quant/main.nf b/target/nextflow/kallisto/kallisto_quant/main.nf index 6f55f1e8..0d139b3e 100644 --- a/target/nextflow/kallisto/kallisto_quant/main.nf +++ b/target/nextflow/kallisto/kallisto_quant/main.nf @@ -3092,9 +3092,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/kallisto/kallisto_quant", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml b/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml index dc1f0017..2a5d3dcb 100644 --- a/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml +++ b/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml @@ -507,9 +507,9 @@ build_info: output: "target/nextflow/lofreq/lofreq_call" executable: "target/nextflow/lofreq/lofreq_call/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/lofreq/lofreq_call/main.nf b/target/nextflow/lofreq/lofreq_call/main.nf index 5646710b..e0920a27 100644 --- a/target/nextflow/lofreq/lofreq_call/main.nf +++ b/target/nextflow/lofreq/lofreq_call/main.nf @@ -3414,9 +3414,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/lofreq/lofreq_call", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml b/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml index 4d42f045..ebe7e97a 100644 --- a/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml +++ b/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml @@ -215,9 +215,9 @@ build_info: output: "target/nextflow/lofreq/lofreq_indelqual" executable: "target/nextflow/lofreq/lofreq_indelqual/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/lofreq/lofreq_indelqual/main.nf b/target/nextflow/lofreq/lofreq_indelqual/main.nf index 56b19630..5409c582 100644 --- a/target/nextflow/lofreq/lofreq_indelqual/main.nf +++ b/target/nextflow/lofreq/lofreq_indelqual/main.nf @@ -3077,9 +3077,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/lofreq/lofreq_indelqual", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/multiqc/.config.vsh.yaml b/target/nextflow/multiqc/.config.vsh.yaml index 0cb194c9..459ca4d5 100644 --- a/target/nextflow/multiqc/.config.vsh.yaml +++ b/target/nextflow/multiqc/.config.vsh.yaml @@ -456,9 +456,9 @@ build_info: output: "target/nextflow/multiqc" executable: "target/nextflow/multiqc/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/multiqc/main.nf b/target/nextflow/multiqc/main.nf index bf304714..9d7a7c02 100644 --- a/target/nextflow/multiqc/main.nf +++ b/target/nextflow/multiqc/main.nf @@ -3366,9 +3366,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/multiqc", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/nanoplot/.config.vsh.yaml b/target/nextflow/nanoplot/.config.vsh.yaml index 53b8ee23..a6496e13 100644 --- a/target/nextflow/nanoplot/.config.vsh.yaml +++ b/target/nextflow/nanoplot/.config.vsh.yaml @@ -492,9 +492,9 @@ build_info: output: "target/nextflow/nanoplot" executable: "target/nextflow/nanoplot/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/nanoplot/main.nf b/target/nextflow/nanoplot/main.nf index 77ef76a0..bf35b249 100644 --- a/target/nextflow/nanoplot/main.nf +++ b/target/nextflow/nanoplot/main.nf @@ -3397,9 +3397,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/nanoplot", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/pear/.config.vsh.yaml b/target/nextflow/pear/.config.vsh.yaml index 47d4eafd..5a278958 100644 --- a/target/nextflow/pear/.config.vsh.yaml +++ b/target/nextflow/pear/.config.vsh.yaml @@ -398,9 +398,9 @@ build_info: output: "target/nextflow/pear" executable: "target/nextflow/pear/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/pear/main.nf b/target/nextflow/pear/main.nf index be34e640..ac06f764 100644 --- a/target/nextflow/pear/main.nf +++ b/target/nextflow/pear/main.nf @@ -3259,9 +3259,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/pear", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml b/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml index c8416da8..10cb3097 100644 --- a/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml +++ b/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/nextflow/qualimap/qualimap_rnaseq" executable: "target/nextflow/qualimap/qualimap_rnaseq/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/qualimap/qualimap_rnaseq/main.nf b/target/nextflow/qualimap/qualimap_rnaseq/main.nf index 502efc68..51f3c28b 100644 --- a/target/nextflow/qualimap/qualimap_rnaseq/main.nf +++ b/target/nextflow/qualimap/qualimap_rnaseq/main.nf @@ -3129,9 +3129,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/qualimap/qualimap_rnaseq", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml b/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml index 12804391..0d3f3eae 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml +++ b/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml @@ -852,9 +852,9 @@ build_info: output: "target/nextflow/rsem/rsem_calculate_expression" executable: "target/nextflow/rsem/rsem_calculate_expression/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rsem/rsem_calculate_expression/main.nf b/target/nextflow/rsem/rsem_calculate_expression/main.nf index f4476aed..cd995bc4 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/main.nf +++ b/target/nextflow/rsem/rsem_calculate_expression/main.nf @@ -3661,9 +3661,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rsem/rsem_calculate_expression", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml b/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml index 82a6bee2..b23cf82b 100644 --- a/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml +++ b/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/nextflow/rsem/rsem_prepare_reference" executable: "target/nextflow/rsem/rsem_prepare_reference/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rsem/rsem_prepare_reference/main.nf b/target/nextflow/rsem/rsem_prepare_reference/main.nf index 3b34d47c..804e8417 100644 --- a/target/nextflow/rsem/rsem_prepare_reference/main.nf +++ b/target/nextflow/rsem/rsem_prepare_reference/main.nf @@ -3245,9 +3245,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rsem/rsem_prepare_reference", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml index 25e87f31..fc8899fb 100644 --- a/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml @@ -175,9 +175,9 @@ build_info: output: "target/nextflow/rseqc/rseqc_bamstat" executable: "target/nextflow/rseqc/rseqc_bamstat/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rseqc/rseqc_bamstat/main.nf b/target/nextflow/rseqc/rseqc_bamstat/main.nf index 1e545087..5d4b5f70 100644 --- a/target/nextflow/rseqc/rseqc_bamstat/main.nf +++ b/target/nextflow/rseqc/rseqc_bamstat/main.nf @@ -3036,9 +3036,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rseqc/rseqc_bamstat", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml index 2b628405..29509ad9 100644 --- a/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml @@ -201,9 +201,9 @@ build_info: output: "target/nextflow/rseqc/rseqc_inferexperiment" executable: "target/nextflow/rseqc/rseqc_inferexperiment/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rseqc/rseqc_inferexperiment/main.nf b/target/nextflow/rseqc/rseqc_inferexperiment/main.nf index 308162e2..7cab189b 100644 --- a/target/nextflow/rseqc/rseqc_inferexperiment/main.nf +++ b/target/nextflow/rseqc/rseqc_inferexperiment/main.nf @@ -3069,9 +3069,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rseqc/rseqc_inferexperiment", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rseqc/rseqc_inner_distance/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_inner_distance/.config.vsh.yaml index a2620a9e..fb908a80 100644 --- a/target/nextflow/rseqc/rseqc_inner_distance/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_inner_distance/.config.vsh.yaml @@ -294,9 +294,9 @@ build_info: output: "target/nextflow/rseqc/rseqc_inner_distance" executable: "target/nextflow/rseqc/rseqc_inner_distance/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rseqc/rseqc_inner_distance/main.nf b/target/nextflow/rseqc/rseqc_inner_distance/main.nf index 50bd7154..49fd2998 100644 --- a/target/nextflow/rseqc/rseqc_inner_distance/main.nf +++ b/target/nextflow/rseqc/rseqc_inner_distance/main.nf @@ -3169,9 +3169,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rseqc/rseqc_inner_distance", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/salmon/salmon_index/.config.vsh.yaml b/target/nextflow/salmon/salmon_index/.config.vsh.yaml index 9178942c..720d1b54 100644 --- a/target/nextflow/salmon/salmon_index/.config.vsh.yaml +++ b/target/nextflow/salmon/salmon_index/.config.vsh.yaml @@ -277,9 +277,9 @@ build_info: output: "target/nextflow/salmon/salmon_index" executable: "target/nextflow/salmon/salmon_index/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/salmon/salmon_index/main.nf b/target/nextflow/salmon/salmon_index/main.nf index 71ccc050..f71816d7 100644 --- a/target/nextflow/salmon/salmon_index/main.nf +++ b/target/nextflow/salmon/salmon_index/main.nf @@ -3129,9 +3129,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/salmon/salmon_index", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/salmon/salmon_quant/.config.vsh.yaml b/target/nextflow/salmon/salmon_quant/.config.vsh.yaml index 58b965db..64ed0d01 100644 --- a/target/nextflow/salmon/salmon_quant/.config.vsh.yaml +++ b/target/nextflow/salmon/salmon_quant/.config.vsh.yaml @@ -1173,9 +1173,9 @@ build_info: output: "target/nextflow/salmon/salmon_quant" executable: "target/nextflow/salmon/salmon_quant/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/salmon/salmon_quant/main.nf b/target/nextflow/salmon/salmon_quant/main.nf index ea86078c..a9aadae8 100644 --- a/target/nextflow/salmon/salmon_quant/main.nf +++ b/target/nextflow/salmon/salmon_quant/main.nf @@ -3964,9 +3964,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/salmon/salmon_quant", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_collate/.config.vsh.yaml b/target/nextflow/samtools/samtools_collate/.config.vsh.yaml index 4f0d52ce..e3ef2216 100644 --- a/target/nextflow/samtools/samtools_collate/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_collate/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/nextflow/samtools/samtools_collate" executable: "target/nextflow/samtools/samtools_collate/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_collate/main.nf b/target/nextflow/samtools/samtools_collate/main.nf index a5395a5f..f5eedcc3 100644 --- a/target/nextflow/samtools/samtools_collate/main.nf +++ b/target/nextflow/samtools/samtools_collate/main.nf @@ -3140,9 +3140,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_collate", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml b/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml index 2865fe3c..44acef8a 100644 --- a/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml @@ -243,9 +243,9 @@ build_info: output: "target/nextflow/samtools/samtools_faidx" executable: "target/nextflow/samtools/samtools_faidx/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_faidx/main.nf b/target/nextflow/samtools/samtools_faidx/main.nf index 66182629..d6afaab3 100644 --- a/target/nextflow/samtools/samtools_faidx/main.nf +++ b/target/nextflow/samtools/samtools_faidx/main.nf @@ -3112,9 +3112,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_faidx", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml b/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml index 1b66b116..8624267c 100644 --- a/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/nextflow/samtools/samtools_fasta" executable: "target/nextflow/samtools/samtools_fasta/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_fasta/main.nf b/target/nextflow/samtools/samtools_fasta/main.nf index 1496e396..c2d4f579 100644 --- a/target/nextflow/samtools/samtools_fasta/main.nf +++ b/target/nextflow/samtools/samtools_fasta/main.nf @@ -3304,9 +3304,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_fasta", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml b/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml index 4124925c..14090d94 100644 --- a/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/nextflow/samtools/samtools_fastq" executable: "target/nextflow/samtools/samtools_fastq/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_fastq/main.nf b/target/nextflow/samtools/samtools_fastq/main.nf index dcac0a63..51e9b94f 100644 --- a/target/nextflow/samtools/samtools_fastq/main.nf +++ b/target/nextflow/samtools/samtools_fastq/main.nf @@ -3304,9 +3304,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_fastq", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml b/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml index 9db4af4e..c7bae14d 100644 --- a/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/nextflow/samtools/samtools_flagstat" executable: "target/nextflow/samtools/samtools_flagstat/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_flagstat/main.nf b/target/nextflow/samtools/samtools_flagstat/main.nf index 1b87bd95..c2639148 100644 --- a/target/nextflow/samtools/samtools_flagstat/main.nf +++ b/target/nextflow/samtools/samtools_flagstat/main.nf @@ -3028,9 +3028,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_flagstat", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml b/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml index d92260ea..13dffe25 100644 --- a/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml @@ -183,9 +183,9 @@ build_info: output: "target/nextflow/samtools/samtools_idxstats" executable: "target/nextflow/samtools/samtools_idxstats/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_idxstats/main.nf b/target/nextflow/samtools/samtools_idxstats/main.nf index e70a99b9..26907962 100644 --- a/target/nextflow/samtools/samtools_idxstats/main.nf +++ b/target/nextflow/samtools/samtools_idxstats/main.nf @@ -3040,9 +3040,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_idxstats", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_index/.config.vsh.yaml b/target/nextflow/samtools/samtools_index/.config.vsh.yaml index 58bc5856..ce1ef76e 100644 --- a/target/nextflow/samtools/samtools_index/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_index/.config.vsh.yaml @@ -189,9 +189,9 @@ build_info: output: "target/nextflow/samtools/samtools_index" executable: "target/nextflow/samtools/samtools_index/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_index/main.nf b/target/nextflow/samtools/samtools_index/main.nf index 37d74d85..489ef93b 100644 --- a/target/nextflow/samtools/samtools_index/main.nf +++ b/target/nextflow/samtools/samtools_index/main.nf @@ -3053,9 +3053,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_index", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_sort/.config.vsh.yaml b/target/nextflow/samtools/samtools_sort/.config.vsh.yaml index 48348d75..8b4c5ef8 100644 --- a/target/nextflow/samtools/samtools_sort/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_sort/.config.vsh.yaml @@ -332,9 +332,9 @@ build_info: output: "target/nextflow/samtools/samtools_sort" executable: "target/nextflow/samtools/samtools_sort/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_sort/main.nf b/target/nextflow/samtools/samtools_sort/main.nf index f9b31557..f3747a0d 100644 --- a/target/nextflow/samtools/samtools_sort/main.nf +++ b/target/nextflow/samtools/samtools_sort/main.nf @@ -3225,9 +3225,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_sort", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_stats/.config.vsh.yaml b/target/nextflow/samtools/samtools_stats/.config.vsh.yaml index 45f98e1e..44c884e1 100644 --- a/target/nextflow/samtools/samtools_stats/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_stats/.config.vsh.yaml @@ -401,9 +401,9 @@ build_info: output: "target/nextflow/samtools/samtools_stats" executable: "target/nextflow/samtools/samtools_stats/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_stats/main.nf b/target/nextflow/samtools/samtools_stats/main.nf index 435ef291..41b9e618 100644 --- a/target/nextflow/samtools/samtools_stats/main.nf +++ b/target/nextflow/samtools/samtools_stats/main.nf @@ -3295,9 +3295,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_stats", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_view/.config.vsh.yaml b/target/nextflow/samtools/samtools_view/.config.vsh.yaml index dda15972..27a16944 100644 --- a/target/nextflow/samtools/samtools_view/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_view/.config.vsh.yaml @@ -665,9 +665,9 @@ build_info: output: "target/nextflow/samtools/samtools_view" executable: "target/nextflow/samtools/samtools_view/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_view/main.nf b/target/nextflow/samtools/samtools_view/main.nf index 117ba5da..1e41a496 100644 --- a/target/nextflow/samtools/samtools_view/main.nf +++ b/target/nextflow/samtools/samtools_view/main.nf @@ -3476,9 +3476,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_view", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml b/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml index 295a9983..bca15afa 100644 --- a/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml +++ b/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/nextflow/seqtk/seqtk_sample" executable: "target/nextflow/seqtk/seqtk_sample/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/seqtk/seqtk_sample/main.nf b/target/nextflow/seqtk/seqtk_sample/main.nf index 01065c2e..5132957e 100644 --- a/target/nextflow/seqtk/seqtk_sample/main.nf +++ b/target/nextflow/seqtk/seqtk_sample/main.nf @@ -3030,9 +3030,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/seqtk/seqtk_sample", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml b/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml index 884ce881..6f30ee4f 100644 --- a/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml +++ b/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml @@ -196,9 +196,9 @@ build_info: output: "target/nextflow/seqtk/seqtk_subseq" executable: "target/nextflow/seqtk/seqtk_subseq/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/seqtk/seqtk_subseq/main.nf b/target/nextflow/seqtk/seqtk_subseq/main.nf index cc8ab07b..69fa2c13 100644 --- a/target/nextflow/seqtk/seqtk_subseq/main.nf +++ b/target/nextflow/seqtk/seqtk_subseq/main.nf @@ -3060,9 +3060,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/seqtk/seqtk_subseq", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/snpeff/.config.vsh.yaml b/target/nextflow/snpeff/.config.vsh.yaml index 3ced6f4f..9b113acc 100644 --- a/target/nextflow/snpeff/.config.vsh.yaml +++ b/target/nextflow/snpeff/.config.vsh.yaml @@ -628,9 +628,9 @@ build_info: output: "target/nextflow/snpeff" executable: "target/nextflow/snpeff/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/snpeff/main.nf b/target/nextflow/snpeff/main.nf index 47342a89..f754d67e 100644 --- a/target/nextflow/snpeff/main.nf +++ b/target/nextflow/snpeff/main.nf @@ -3555,9 +3555,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/snpeff", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/sortmerna/.config.vsh.yaml b/target/nextflow/sortmerna/.config.vsh.yaml index dc619c1b..39deb93a 100644 --- a/target/nextflow/sortmerna/.config.vsh.yaml +++ b/target/nextflow/sortmerna/.config.vsh.yaml @@ -591,9 +591,9 @@ build_info: output: "target/nextflow/sortmerna" executable: "target/nextflow/sortmerna/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/sortmerna/main.nf b/target/nextflow/sortmerna/main.nf index 9cc8d9b6..a6266591 100644 --- a/target/nextflow/sortmerna/main.nf +++ b/target/nextflow/sortmerna/main.nf @@ -3456,9 +3456,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/sortmerna", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/star/star_align_reads/.config.vsh.yaml b/target/nextflow/star/star_align_reads/.config.vsh.yaml index d89af70f..47e97cd8 100644 --- a/target/nextflow/star/star_align_reads/.config.vsh.yaml +++ b/target/nextflow/star/star_align_reads/.config.vsh.yaml @@ -2663,9 +2663,9 @@ build_info: output: "target/nextflow/star/star_align_reads" executable: "target/nextflow/star/star_align_reads/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/star/star_align_reads/main.nf b/target/nextflow/star/star_align_reads/main.nf index a6377b73..d46118b7 100644 --- a/target/nextflow/star/star_align_reads/main.nf +++ b/target/nextflow/star/star_align_reads/main.nf @@ -5943,9 +5943,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/star/star_align_reads", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/star/star_genome_generate/.config.vsh.yaml b/target/nextflow/star/star_genome_generate/.config.vsh.yaml index 0f79a2dc..4844e3d9 100644 --- a/target/nextflow/star/star_genome_generate/.config.vsh.yaml +++ b/target/nextflow/star/star_genome_generate/.config.vsh.yaml @@ -333,9 +333,9 @@ build_info: output: "target/nextflow/star/star_genome_generate" executable: "target/nextflow/star/star_genome_generate/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/star/star_genome_generate/main.nf b/target/nextflow/star/star_genome_generate/main.nf index 2cc6bc08..ae69bb1c 100644 --- a/target/nextflow/star/star_genome_generate/main.nf +++ b/target/nextflow/star/star_genome_generate/main.nf @@ -3195,9 +3195,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/star/star_genome_generate", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/trimgalore/.config.vsh.yaml b/target/nextflow/trimgalore/.config.vsh.yaml index cbc68f4a..996380e9 100644 --- a/target/nextflow/trimgalore/.config.vsh.yaml +++ b/target/nextflow/trimgalore/.config.vsh.yaml @@ -770,9 +770,9 @@ build_info: output: "target/nextflow/trimgalore" executable: "target/nextflow/trimgalore/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/trimgalore/main.nf b/target/nextflow/trimgalore/main.nf index 9325e6fc..a53afbff 100644 --- a/target/nextflow/trimgalore/main.nf +++ b/target/nextflow/trimgalore/main.nf @@ -3560,9 +3560,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/trimgalore", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml b/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml index 8f48bd65..43b6177b 100644 --- a/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml +++ b/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml @@ -611,9 +611,9 @@ build_info: output: "target/nextflow/umi_tools/umi_tools_dedup" executable: "target/nextflow/umi_tools/umi_tools_dedup/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/umi_tools/umi_tools_dedup/main.nf b/target/nextflow/umi_tools/umi_tools_dedup/main.nf index 0f3803b2..50dfc392 100644 --- a/target/nextflow/umi_tools/umi_tools_dedup/main.nf +++ b/target/nextflow/umi_tools/umi_tools_dedup/main.nf @@ -3487,9 +3487,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_dedup", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml b/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml index e9c440ea..df021a06 100644 --- a/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml +++ b/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml @@ -449,9 +449,9 @@ build_info: output: "target/nextflow/umi_tools/umi_tools_extract" executable: "target/nextflow/umi_tools/umi_tools_extract/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/umi_tools/umi_tools_extract/main.nf b/target/nextflow/umi_tools/umi_tools_extract/main.nf index cf3722b9..6fcdb6b9 100644 --- a/target/nextflow/umi_tools/umi_tools_extract/main.nf +++ b/target/nextflow/umi_tools/umi_tools_extract/main.nf @@ -3316,9 +3316,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_extract", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml b/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml index 142ac5c4..eb6b44ec 100644 --- a/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml +++ b/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml @@ -256,9 +256,9 @@ build_info: output: "target/nextflow/umi_tools/umi_tools_prepareforrsem" executable: "target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf" viash_version: "0.9.0" - git_commit: "aa43543e1fb609901d09b7a9f0c5e72707cb47a4" - git_remote: "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox" - git_tag: "v0.2.0-20-gaa43543" + git_commit: "06005a79b49911f1197ccfddf066fc566d5b1def" + git_remote: "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox" + git_tag: "v0.2.0-22-g06005a7" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf b/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf index b700b618..6ef91023 100644 --- a/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf +++ b/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf @@ -3121,9 +3121,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_prepareforrsem", "viash_version" : "0.9.0", - "git_commit" : "aa43543e1fb609901d09b7a9f0c5e72707cb47a4", - "git_remote" : "https://x-access-token:ghs_9v4VhFt3rgNHA8iZY5HYB5rN6bmxTd2UtBuO@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-20-gaa43543" + "git_commit" : "06005a79b49911f1197ccfddf066fc566d5b1def", + "git_remote" : "https://x-access-token:ghs_s2VchCFPnGFkJ2bOWXBcoeam5dPxgi4UR0W2@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-22-g06005a7" }, "package_config" : { "name" : "biobox",