{"id":25977252,"url":"https://github.com/nbisweden/agat","last_synced_at":"2026-01-06T11:17:14.344Z","repository":{"id":37622898,"uuid":"222659741","full_name":"NBISweden/AGAT","owner":"NBISweden","description":"Another Gtf/Gff Analysis Toolkit https://nbisweden.github.io/AGAT/","archived":false,"fork":false,"pushed_at":"2025-04-15T18:47:20.000Z","size":31320,"stargazers_count":500,"open_issues_count":18,"forks_count":58,"subscribers_count":45,"default_branch":"master","last_synced_at":"2025-05-05T09:36:32.996Z","etag":null,"topics":["agat","gff","gff-format","gtf","perl-scripts","standardisation","toolkit"],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NBISweden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-11-19T09:35:50.000Z","updated_at":"2025-05-02T08:31:55.000Z","dependencies_parsed_at":"2024-02-21T16:54:20.067Z","dependency_job_id":"f2c84e40-8283-4b2c-b294-65af2adad8ba","html_url":"https://github.com/NBISweden/AGAT","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NBISweden%2FAGAT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NBISweden%2FAGAT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NBISweden%2FAGAT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NBISweden%2FAGAT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NBISweden","download_url":"https://codeload.github.com/NBISweden/AGAT/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442854,"owners_count":22071877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agat","gff","gff-format","gtf","perl-scripts","standardisation","toolkit"],"created_at":"2025-03-05T04:32:23.166Z","updated_at":"2026-01-06T11:17:14.338Z","avatar_url":"https://github.com/NBISweden.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub CI](https://github.com/NBISweden/AGAT/actions/workflows/main.yml/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/NBISweden/AGAT/badge.svg)](https://coveralls.io/github/NBISweden/AGAT)\n[![Documentation Status](https://readthedocs.org/projects/agat/badge/?version=latest)](https://agat.readthedocs.io/en/latest/?badge=latest)\n[![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat)](http://bioconda.github.io/recipes/agat/README.html)\n[\u003cimg alt=\"docker_agat\" src=\"https://img.shields.io/badge/container-Docker-blue\"\u003e](https://quay.io/repository/biocontainers/agat)\n[\u003cimg alt=\"singularity_agat\" src=\"https://img.shields.io/badge/container-Singularity-orange\"\u003e](https://quay.io/repository/biocontainers/agat)\n[![Anaconda-Server Badge](https://anaconda.org/bioconda/agat/badges/license.svg)](https://anaconda.org/bioconda/agat)\n[![Anaconda-Server Badge](https://img.shields.io/conda/dn/bioconda/agat.svg?style=flat)](https://anaconda.org/bioconda/agat)\n[\u003cimg alt=\"doi_zenodo\" src=\"https://img.shields.io/badge/DOI-10.5281/zenodo.3552717-blue\"\u003e](https://zenodo.org/doi/10.5281/zenodo.3552717)\n\n\nAGAT\n=========================================\n[\u003cimg align=\"right\" src=\"docs/img/NBIS.png\" width=\"200\" height=\"100\" /\u003e](https://nbis.se)\n\u003ch2\u003e\u003cem\u003eA\u003c/em\u003enother \u003cem\u003eG\u003c/em\u003etf/Gff \u003cem\u003eA\u003c/em\u003enalysis \u003ci\u003eT\u003c/i\u003eoolkit\u003c/h2\u003e  \n\n**Suite of tools to handle gene annotations in any GTF/GFF format.**  \n  \n*Documentation \\\u003e\u003e[here](https://nbisweden.github.io/AGAT/)\u003c\u003c   \nPrevious documentation until v1.4.0 (readthedocs) [here](https://agat.readthedocs.io/en/latest/index.html)*\n\n---------------------------\n\n## Table of Contents\n\n   * [What can AGAT do for you?](#what-can-agat-do-for-you)\n   * [Installation](#installation)\n       * [Using Docker](#using-docker)\n       * [Using Singularity](#using-singularity)\n       * [Using Bioconda](#using-bioconda)\n          * [Install AGAT](#install-agat)\n          * [Update AGAT](#update-agat)\n          * [Uninstall AGAT](#uninstall-agat)\n       * [Old school - Manually](#old-school---manually)\n          * [Install prerequisites](#install-prerequisites)\n          * [Install AGAT](#install-agat-1)\n          * [Update AGAT](#update-agat-1)\n          * [Change to a specific version](#change-to-a-specific-version)\n          * [Uninstall AGAT](#uninstall-agat-1)\n   * [Usage](#usage)\n   * [List of tools](#list-of-tools)\n   * [More about the tools](#more-about-the-tools)\n   * [The AGAT parser - Standardisation to create GXF files compliant to any tool](#the-agat-parser---standardisation-to-create-gxf-files-compliant-to-any-tool)\n      * [The data structure](#the-data-structure)\n      * [How does the AGAT parser work](#how-does-the-agat-parser-work)\n      * [What can the AGAT parser do for you](#what-can-the-agat-parser-do-for-you)\n      * [examples](#examples)\n   * [How to cite?](#how-to-cite)\n   * [Publication using AGAT](#publication-using-agat)\n   * [Troubleshooting](#troubleshooting)\n---------------------------\n\n## What can AGAT do for you?  \n\nAGAT has the power to check, fix, pad missing information (features/attributes) of any kind of GTF and GFF to create complete, sorted and standardised gff3 format. Over the years it has been enriched by many many tools to perform just about any tasks that is possible related to GTF/GFF format files (sanitizing, conversions, merging, modifying, filtering, FASTA sequence extraction, adding information, etc). Comparing to other methods AGAT is robust to even the most despicable GTF/GFF files.\n\n  * Standardize/sanitize any GTF/GFF file into a comprehensive GFF3 format (script with `_sp_` prefix)\n\n    \u003cdetails\u003e\n      \u003csummary\u003eSee standardization/sanitization tool\u003c/summary\u003e\n\n      | task | tool |\n      | --- | --- |\n      | **check, fix, pad** missing information into sorted and standardised gff3 | `agat_convert_sp_gxf2gxf.pl`  |\n\n      * add missing parent features (e.g. gene and mRNA if only CDS/exon exists).  \n      * add missing features (e.g. exon and UTR).  \n      * add missing mandatory attributes (i.e. ID, Parent).  \n      * fix identifiers to be uniq.  \n      * fix feature locations.  \n      * remove duplicated features.  \n      * group related features (if spread in different places in the file).  \n      * sort features (tabix optional).  \n      * merge overlapping loci into one single locus (only if option activated).  \n    \u003c/details\u003e\n\n  * Convert many formats\n\n    \u003cdetails\u003e\n      \u003csummary\u003eSee conversion tools\u003c/summary\u003e\n\n      | task | tool |\n      | --- | --- |\n      | convert any **GTF/GFF** into **BED** format | `agat_convert_sp_gff2bed.pl`  |\n      | convert any **GTF/GFF** into **GTF** format | `agat_convert_sp_gff2gtf.pl`  |\n      | convert any **GTF/GFF** into **tabulated format** | `agat_sp_gff2tsv.pl`  |\n      | convert any **BAM** from minimap2 into **GFF** format | `agat_convert_sp_minimap2_bam2gff.pl`  |\n      | convert any **GTF/GFF** into **ZFF** format | `agat_sp_gff2zff.pl`  |\n      | convert any **GTF/GFF** into any **GTF/GFF** (bioperl) format | `agat_convert_sp_gxf2gxf.pl`  |\n      | convert **BED** format into **GFF3** format | `agat_convert_bed2gff.pl`  |\n      | convert **EMBL** format into **GFF3** format | `agat_convert_embl2gff.pl`  |\n      | convert **genscan** format into **GFF3** format | `agat_convert_genscan2gff.pl`  |\n      | convert **mfannot** format into **GFF3** format | `agat_convert_mfannot2gff.pl`  |\n    \u003c/details\u003e\n\n\n  * Perform numerous tasks (Just about anything that is possible)\n\n    \u003cdetails\u003e\n      \u003csummary\u003eSee tools\u003c/summary\u003e\n\n      | task | tool |\n      | --- | --- |\n      | make feature **statistics** | `agat_sp_statistics.pl`  |\n      | make **function statistics** | `agat_sp_functional_statistics.pl`  |\n      | **extract** any type of sequence | `agat_sp_extract_sequences.pl`  |\n      | **extract** attributes | `agat_sp_extract_attributes.pl`  |\n      | **complement** annotations (non-overlapping loci) | `agat_sp_complement_annotations.pl`  |\n      | **merge** annotations | `agat_sp_merge_annotations.pl`  |\n      | **filter** gene models by ORF size | `agat_sp_filter_by_ORF_size.pl`  |\n      | **filter** to keep only longest isoforms | `agat_sp_keep_longest_isoform.pl`  |\n      | **create** introns features | `agat_sp_add_introns.pl`  |\n      | **fix** cds phases | `agat_sp_fix_cds_phases.pl`  |\n      | **manage** IDs | `agat_sp_manage_IDs.pl`  |\n      | **manage** UTRs | `agat_sp_manage_UTRs.pl`  |\n      | **manage** introns | `agat_sp_manage_introns.pl`  |\n      | **manage** functional annotation | `agat_sp_manage_functional_annotation.pl`  |\n      | **specificity sensitivity** | `agat_sp_sensitivity_specificity.pl`  |\n      | **fusion / split** analysis between two annotations | `agat_sp_compare_two_annotations.pl`  |\n      | analyze differences between **BUSCO** results | `agat_sp_compare_two_BUSCOs.pl`   |\n      | ... and much more ...| ... see [here](https://agat.readthedocs.io/en/latest/) ...|\n    \u003c/details\u003e\n\n**About the GTF/GFF fromat**  \nThe GTF/GFF formats are 9-column text formats used to describe and represent genomic features.\nThe formats have quite evolved since 1997, and despite well-defined specifications existing nowadays they have a great flexibility allowing holding wide variety of information.\nThis flexibility has a drawback aspect, there is an incredible amount of flavour of the formats, that can result in problems when using downstream programs.  \nFor a complete overview of the GTF/GFF formats have a look [here](https://agat.readthedocs.io/en/latest/gxf.html).\n\n## Installation\n\n### Using Docker\n   \u003cdetails\u003e\n      \u003csummary\u003eSee details\u003c/summary\u003e\n      \nFirst you must have [Docker](https://docs.docker.com/get-docker/) installed and running.  \nSecondly have look at the availabe AGAT biocontainers at [quay.io](https://quay.io/repository/biocontainers/agat?tab=tags).\n\nThen:\n  ```\n# get the chosen AGAT container version\ndocker pull quay.io/biocontainers/agat:1.4.2--pl5321hdfd78af_0\n# use an AGAT's tool e.g. agat_convert_sp_gxf2gxf.pl\ndocker run quay.io/biocontainers/agat:1.4.2--pl5321hdfd78af_0 agat_convert_sp_gxf2gxf.pl --help\n  ```\n   \u003c/details\u003e\n \n### Using Singularity\n   \u003cdetails\u003e\n      \u003csummary\u003eSee details\u003c/summary\u003e\n      \nFirst you must have [Singularity](https://sylabs.io/guides/3.5/user-guide/quick_start.html) installed and running.  \nSecondly have look at the availabe AGAT biocontainers at [quay.io](https://quay.io/repository/biocontainers/agat?tab=tags).\n\nThen:\n```\n# get the chosen AGAT container version\nsingularity pull docker://quay.io/biocontainers/agat:1.4.2--pl5321hdfd78af_0\n# run the container\nsingularity run agat_1.4.2--pl5321hdfd78af_0.sif\n```\n\nYou are now in the container. You can use an AGAT's tool e.g. agat_convert_sp_gxf2gxf.pl doing\n```\nagat_convert_sp_gxf2gxf.pl --help\n```\n   \u003c/details\u003e\n\n### Using Bioconda\n   \u003cdetails\u003e\n      \u003csummary\u003eSee details\u003c/summary\u003e\n      \n#### Install AGAT\n\n  ```\n  conda install -c bioconda agat\n  ```\n\n#### Update AGAT\n\n  ```\n  conda update agat\n  ```\n\n#### Uninstall AGAT\n  ```\n  conda uninstall agat  \n  ```\n   \u003c/details\u003e\n   \n### Old school - Manually\n   \u003cdetails\u003e\n      \u003csummary\u003eSee details\u003c/summary\u003e\nYou will have to install all prerequisites and AGAT manually.\n\n#### Install prerequisites\n  * R (optional)  \n    You can install it by conda (`conda install r-base`), through [CRAN](https://cran.r-project.org) ([See here for a nice tutorial](https://www.datacamp.com/community/tutorials/installing-R-windows-mac-ubuntu)) or using your package management tool (e.g apt for Debian, Ubuntu, and related Linux distributions). R is optional and can be used to perform some plots. You will need to install the perl depency Statistics::R\n\n  * Perl \u003e= 5.8  \n    It should already be available on your computer. If you are unlucky [perl.org](https://www.perl.org/get.html) is the place to go.\n\n  * Perl modules  \n    They can be installed in different ways:\n\n    * using cpan or cpanm\n\n    ```\n    cpanm --installdeps .\n    ```\n\n    * using conda\n\n      * using the provided yaml file\n\n      ```\n      conda env create -f conda_environment_AGAT.yml\n      conda activate agat\n      ```\n\n      * manually  \n\n      ```\n      conda install perl-bioperl perl-clone perl-graph perl-lwp-simple perl-carp perl-sort-naturally perl-file-share perl-file-sharedir-install perl-moose perl-yaml perl-lwp-protocol-https perl-term-progressbar perl-parallel-forkmanager perl-ipc-sharelite perl-file-chdir \n      ```\n\n    * using your package management tool (e.g apt for Debian, Ubuntu, and related Linux distributions)\n\n    ```\n    apt install libbio-perl-perl libclone-perl libgraph-perl liblwp-useragent-determined-perl libstatistics-r-perl libcarp-clan-perl libsort-naturally-perl libfile-share-perl libfile-sharedir-perl libfile-sharedir-install-perl libyaml-perl liblwp-protocol-https-perl libterm-progressbar-perl libparallel-forkmanager-perl libipc-sharelite-perl libtest-tempdir-perl libfile-chdir-perl\n    ```\n\n  * Optional\n    Some scripts offer the possibility to perform plots. You will need R and Statistics::R which are not included by default.\n\n    * R   \n      You can install it by conda (`conda install r-base`), through [CRAN](https://cran.r-project.org) ([See here for a nice tutorial](https://www.datacamp.com/community/tutorials/installing-R-windows-mac-ubuntu)) or using your package management tool (e.g apt for Debian, Ubuntu, and related Linux distributions).\n\n    * Statistics::R\n        You can install it through conda  (`conda install perl-statistics-r`), using cpan/cpanm (`cpanm install Statistics::R`), or your package management tool  (`apt install libstatistics-r-perl`)\n\n\n\n#### Install AGAT\n\n  ```\n  git clone https://github.com/NBISweden/AGAT.git # Clone AGAT\n  cd AGAT                                         # move into AGAT folder\n  perl Makefile.PL                                # Check all the dependencies*\n  make                                            # Compile\n  make test                                       # Test\n  make install                                    # Install\n  ```\n\n\u003csup\u003e*\u003c/sup\u003eIf dependencies are missing you will be warn. Please refer to the [Install prerequisites](#install-prerequisites) section.\n\n**Remark**: On MS Windows, instead of make you'd probably have to use dmake or nmake depending the toolchain you have.\n\n#### Update AGAT\nFrom the folder where the repository is located.\n\n  ```\n  git pull                                        # Update to last AGAT\n  perl Makefile.PL                                # Check all the dependencies*\n  make                                            # Compile\n  make test                                       # Test\n  make install                                    # Install\n  ```\n\u003csup\u003e*\u003c/sup\u003eIf dependencies are missing you will be warn. Please refer to the [Install prerequisites](#install-prerequisites) section.\n\n#### Change to a specific version\nFrom the folder where the repository is located.  \n\n  ```\n  git pull                                        # Update the code\n  git checkout v0.1                               # use version v0.1 (See releases tab for a list of available versions)\n  perl Makefile.PL                                # Check all the dependencies*\n  make                                            # Compile\n  make test                                       # Test\n  make install                                    # Install\n  ```\n\u003csup\u003e*\u003c/sup\u003eIf dependencies are missing you will be warn. Please refer to the [Install prerequisites](#install-prerequisites) section.\n\n#### Uninstall AGAT\n\n  ```\n  perl uninstall_AGAT\n  ```\n   \u003c/details\u003e\n\n## Usage\n\n  ```\n  script_name.pl -h\n  ```\n\n## List of tools\n\nAs AGAT is a toolkit, it contains a lot of tools. The main one is `agat_convert_sp_gxf2gxf.pl` that allows to check, fix, pad missing information (features/attributes) of any kind of gtf and gff to create complete, sorted and standardised gff3 format.\nAll the installed scripts have the `agat_` prefix.  \n\nTo have a look to the available tools you have several approaches:  \n  * `agat --tools`\n  * Typing `agat_` in your terminal followed by the \u003cTAB\u003e key to activate the autocompletion will display the complete list of available tools.\n  * [The documentation](https://agat.readthedocs.io/en/latest/?badge=latest).  \n\n\n### More about the tools\n\n#### with \\_sp\\_ prefix =\u003e Means SLURP\n\nThe gff file will be charged in memory in a specific data structure facilitating the access to desired features at any time.\nIt has a memory cost but make life smoother. Indeed, it allows to perform complicated tasks in a more time efficient way.\nMoreover, it allows to fix all potential errors in the limit of the possibilities given by the format itself.\nSee the AGAT parser section for more information about it.  \n\n#### with \\_sq\\_ prefix =\u003e Means SEQUENTIAL\n\nThe gff file is read and processed from its top to the end line by line without sanity check (e.g. relationship between the features). This is memory efficient.\n\n## The AGAT parser - Standardisation to create GXF files compliant to any tool  \n\nAll tools with `agat_sp_` prefix will parse and slurps the entire data into a specific data structure.\nBelow you will find more information about peculiarity of the data structure,\nand the parsing approach used.\n\n#### the data structure\n\n\u003cdetails\u003e\n   \u003csummary\u003eSee data structure details\u003c/summary\u003e\n  \nThe method create a hash structure containing all the data in memory. We can call it OMNISCIENT. \nThe OMNISCIENT hold the GFF/GTF header information in that structure:\n```\n$omniscient{other}{header} = header information from the beginning of the file starting by # \n```\nThe OMNISCIENT hold the GFF/GTF feature information in that structure:\n```\n$omniscient{level1}{tag_l1}{level1_id} = feature \u003c= tag could be gene, match  \n$omniscient{level2}{tag_l2}{idY} = @featureListL2 \u003c= tag could be mRNA,rRNA,tRNA,etc. idY is a level1_id (know as Parent attribute within the level2 feature). The @featureListL2 is a list to be able to manage isoform cases.  \n$omniscient{level3}{tag_l3}{idZ} =  @featureListL3 \u003c= tag could be exon,cds,utr3,utr5,etc. idZ is the ID of a level2 feature (know as Parent attribute within the level3 feature). The @featureListL3 is a list to be able to put all the feature of a same tag together.  \n```\nThe OMNISCIENT hold the `agat_config.yml` information in that structure:\n```\n$omniscient{config}{parameter1} = value parameter1\n$omniscient{config}{parameter2} = value parameter2\n```\nThe OMNISCIENT hold the `feature_levels.yaml` information in that structure:\n```\n$omniscient{other}{level}{level1}{featureTypeX} = value featureTypeX (standalone, topfeature)\n$omniscient{other}{level}{level2}{featureTypeY} = value featureTypeY \n$omniscient{other}{level}{level2}{featureTypeZ} = value featureTypeZ\n```\n\u003c/details\u003e\n\n#### How does the AGAT parser work\n\n[\u003cimg align=\"right\" src=\"docs/img/agat_parsing_overview.jpg\" width=\"500\" height=\"250\" /\u003e](https://nbis.se)\n\nThe AGAT parser phylosophy:\n  * 1) Parse by Parent/child relationship or gene_id/transcript_id relationship.\n  * 2) ELSE Parse by a common tag  (an attribute value shared by feature that must be grouped together. By default we are using locus_tag but can be set by parameter).  \n  * 3) ELSE Parse sequentially (mean group features in a bucket, and the bucket change at each level2 feature, and bucket are join in a common tag at each new L1 feature).  \n\n**/!\\\\** Cases with only level3 features (i.e rast or some prokka files), **sequential parsing** may not work as expected if Parent/ID gene_id/transcript_id attributes are missing. Indeed all features will be the child of only one newly created Parent. To create a parent per feature or group of features, a common tag must be used to group them correctly (by default `gene_id` and `locus_tag` but you can set up the ones of your choice)\n\nTo resume by priority of way to parse: **Parent/child relationship \u003e locus_tag \u003e sequential.**  \nThe parser may used only one or a mix of these approaches according of the peculiarity of the gtf/gff file you provide.\n\n#### What can the AGAT parser do for you\n\n* It creates missing parental features. (e.g if a level2 or level3 feature do not have parental feature(s) we create the missing level2 and/or level1 feature(s)).    \n* It creates missing mandatory attributes (ID and/or Parent).  \n* It fixes identifier to be uniq.  \n* It removes duplicated features (same position, same ID, same Parent).  \n* It expands level3 features sharing multiple parents (e.g  if one exon has list of multiple parent mRNA in its Parent attribute, one exon per parent with uniq ID will be created.  \n* It fixes feature location errors (e.g an mRNA spanning over its gene location, we fix the gene location).  \n* It adds UTR if possible (CDS and exon present).  \n* It adds exon if possible (CDS has to be present).  \n* It groups features together (if related features are spread at different places in the file).  \n\n\n\n#### examples\nAGAT was tested on 42 different types of GTF/GFF of different flavours or/and containing errors.\nBelow few are listed but you can find the full list of them into the `t/gff_syntax` directory.\n\n##### example 8 - only CDS defined\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee example\u003c/summary\u003e\n\n```\n##gff-version 3\nTob1_contig1\tProdigal:2.60\tCDS\t476\t670\t.\t-\t0\tID=Tob1_00001;locus_tag=Tob1_00001;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\tCDS\t34266\t35222\t.\t+\t0\tID=Tob1_00024;locus_tag=Tob1_00024;product=hypothetical protein\nTob1_contig1\tSignalP:4.1\tsig_peptide\t34266\t34298\t.\t+\t0\tinference=ab initio prediction:SignalP:4.1;note=predicted cleavage at residue 33;product=putative signal peptide\nTob1_contig1\tProdigal:2.60\tCDS\t35267\t37444\t.\t-\t0\tID=Tob1_00025;locus_tag=Tob1_00025;\nTob1_contig1\tSignalP:4.1\tsig_peptide\t37420\t37444\t.\t-\t0\tinference=ab initio prediction:SignalP:4.1;note=predicted cleavage at residue 25;product=putative signal peptide\nTob1_contig1\tProdigal:2.60\tCDS\t38304\t39338\t.\t-\t0\tID=Tob1_00026;locus_tag=Tob1_00026;\n```\n\u003c/details\u003e\n\n`agat_convert_sp_gxf2gxf.pl --gff 8_test.gff`  \n\n\u003cdetails\u003e\n  \u003csummary\u003eSee result\u003c/summary\u003e\n\n```\n##gff-version 3\nTob1_contig1\tProdigal:2.60\tgene\t476\t670\t.\t-\t0\tID=nbis_NEW-gene-1;locus_tag=Tob1_00001;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\tmRNA\t476\t670\t.\t-\t0\tID=nbis_nol2id-cds-1;Parent=nbis_NEW-gene-1;locus_tag=Tob1_00001;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\texon\t476\t670\t.\t-\t.\tID=nbis_NEW-exon-1;Parent=nbis_nol2id-cds-1;locus_tag=Tob1_00001;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\tCDS\t476\t670\t.\t-\t0\tID=Tob1_00001;Parent=nbis_nol2id-cds-1;locus_tag=Tob1_00001;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\tgene\t34266\t35222\t.\t+\t0\tID=nbis_NEW-gene-2;locus_tag=Tob1_00024;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\tmRNA\t34266\t35222\t.\t+\t0\tID=nbis_nol2id-cds-2;Parent=nbis_NEW-gene-2;locus_tag=Tob1_00024;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\texon\t34266\t35222\t.\t+\t.\tID=nbis_NEW-exon-2;Parent=nbis_nol2id-cds-2;locus_tag=Tob1_00024;product=hypothetical protein\nTob1_contig1\tProdigal:2.60\tCDS\t34266\t35222\t.\t+\t0\tID=Tob1_00024;Parent=nbis_nol2id-cds-2;locus_tag=Tob1_00024;product=hypothetical protein\nTob1_contig1\tSignalP:4.1\tsig_peptide\t34266\t34298\t.\t+\t0\tID=sig_peptide-1;Parent=nbis_nol2id-cds-2;inference=ab initio prediction:SignalP:4.1;note=predicted cleavage at residue 33;product=putative signal peptide\nTob1_contig1\tProdigal:2.60\tgene\t35267\t37444\t.\t-\t0\tID=nbis_NEW-gene-3;locus_tag=Tob1_00025\nTob1_contig1\tProdigal:2.60\tmRNA\t35267\t37444\t.\t-\t0\tID=nbis_nol2id-cds-3;Parent=nbis_NEW-gene-3;locus_tag=Tob1_00025\nTob1_contig1\tProdigal:2.60\texon\t35267\t37444\t.\t-\t.\tID=nbis_NEW-exon-3;Parent=nbis_nol2id-cds-3;locus_tag=Tob1_00025\nTob1_contig1\tProdigal:2.60\tCDS\t35267\t37444\t.\t-\t0\tID=Tob1_00025;Parent=nbis_nol2id-cds-3;locus_tag=Tob1_00025\nTob1_contig1\tSignalP:4.1\tsig_peptide\t37420\t37444\t.\t-\t0\tID=sig_peptide-2;Parent=nbis_nol2id-cds-3;inference=ab initio prediction:SignalP:4.1;note=predicted cleavage at residue 25;product=putative signal peptide\nTob1_contig1\tProdigal:2.60\tgene\t38304\t39338\t.\t-\t0\tID=nbis_NEW-gene-4;locus_tag=Tob1_00026\nTob1_contig1\tProdigal:2.60\tmRNA\t38304\t39338\t.\t-\t0\tID=nbis_nol2id-cds-4;Parent=nbis_NEW-gene-4;locus_tag=Tob1_00026\nTob1_contig1\tProdigal:2.60\texon\t38304\t39338\t.\t-\t.\tID=nbis_NEW-exon-4;Parent=nbis_nol2id-cds-4;locus_tag=Tob1_00026\nTob1_contig1\tProdigal:2.60\tCDS\t38304\t39338\t.\t-\t0\tID=Tob1_00026;Parent=nbis_nol2id-cds-4;locus_tag=Tob1_00026\n```\n\u003c/details\u003e\n\n##### example 9 - level2 feature missing (mRNA) and level3 features missing (UTRs)\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee example\u003c/summary\u003e\n\n```\n##gff-version 3\n#!gff-spec-version 1.14\n#!source-version NCBI C++ formatter 0.2\n##Type DNA NC_003070.9\nNC_003070.9\tRefSeq\tsource\t1\t30427671\t.\t+\t.\torganism=Arabidopsis thaliana;mol_type=genomic DNA;db_xref=taxon:3702;chromosome=1;ecotype=Columbia\nNC_003070.9\tRefSeq\tgene\t3631\t5899\t.\t+\t.\tID=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\texon\t3631\t3913\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\texon\t3996\t4276\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\texon\t4486\t4605\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\texon\t4706\t5095\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\texon\t5174\t5326\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\texon\t5439\t5899\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tCDS\t3760\t3913\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tCDS\t3996\t4276\t.\t+\t2\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tCDS\t4486\t4605\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tCDS\t4706\t5095\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tCDS\t5174\t5326\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tCDS\t5439\t5627\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tstart_codon\t3760\t3762\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\nNC_003070.9\tRefSeq\tstop_codon\t5628\t5630\t.\t+\t0\tID=NM_099983.2;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010;\n```\n\u003c/details\u003e\n\n`agat_convert_sp_gxf2gxf.pl --gff 8_test.gff`  \n\n\u003cdetails\u003e\n  \u003csummary\u003eSee result\u003c/summary\u003e\n\n```\n##gff-version 3\n#!gff-spec-version 1.14\n#!source-version NCBI C++ formatter 0.2\n##Type DNA NC_003070.9\nNC_003070.9\tRefSeq\tsource\t1\t30427671\t.\t+\t.\tID=source-1;chromosome=1;db_xref=taxon:3702;ecotype=Columbia;mol_type=genomic DNA;organism=Arabidopsis thaliana\nNC_003070.9\tRefSeq\tgene\t3631\t5899\t.\t+\t.\tID=nbis_NEW-gene-1;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tmRNA\t3631\t5899\t.\t+\t.\tID=NC_003070.9:NAC001;Parent=nbis_NEW-gene-1;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\texon\t3631\t3913\t.\t+\t.\tID=NM_099983.2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\texon\t3996\t4276\t.\t+\t.\tID=nbis_NEW-exon-1;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\texon\t4486\t4605\t.\t+\t.\tID=nbis_NEW-exon-2;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\texon\t4706\t5095\t.\t+\t.\tID=nbis_NEW-exon-3;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\texon\t5174\t5326\t.\t+\t.\tID=nbis_NEW-exon-4;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\texon\t5439\t5899\t.\t+\t.\tID=nbis_NEW-exon-5;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tCDS\t3760\t3913\t.\t+\t0\tID=nbis_NEW-cds-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tCDS\t3996\t4276\t.\t+\t2\tID=nbis_NEW-cds-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tCDS\t4486\t4605\t.\t+\t0\tID=nbis_NEW-cds-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tCDS\t4706\t5095\t.\t+\t0\tID=nbis_NEW-cds-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tCDS\t5174\t5326\t.\t+\t0\tID=nbis_NEW-cds-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tCDS\t5439\t5627\t.\t+\t0\tID=nbis_NEW-cds-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tfive_prime_UTR\t3631\t3759\t.\t+\t.\tID=nbis_NEW-five_prime_utr-1;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tstart_codon\t3760\t3762\t.\t+\t0\tID=nbis_NEW-start_codon-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tstop_codon\t5628\t5630\t.\t+\t0\tID=nbis_NEW-stop_codon-1;Parent=NC_003070.9:NAC001;locus_tag=AT1G01010\nNC_003070.9\tRefSeq\tthree_prime_UTR\t5628\t5899\t.\t+\t.\tID=nbis_NEW-three_prime_utr-1;Parent=NC_003070.9:NAC001;gbkey=mRNA;locus_tag=AT1G01010\n```\n\u003c/details\u003e\n\n##### example 18 - related features spread within the file  \n\n\u003cdetails\u003e\n  \u003csummary\u003eSee example\u003c/summary\u003e\n\n```\n##gff-version 3\nscaffold625\tmaker\tgene\t337818\t343277\t.\t+\t.\tID=CLUHARG00000005458;Name=TUBB3_2\nscaffold625\tmaker\tmRNA\t337818\t343277\t.\t+\t.\tID=CLUHART00000008717;Parent=CLUHARG00000005458\nscaffold625\tmaker\texon\t337818\t337971\t.\t+\t.\tID=CLUHART00000008717:exon:1404;Parent=CLUHART00000008717\nscaffold625\tmaker\texon\t340733\t340841\t.\t+\t.\tID=CLUHART00000008717:exon:1405;Parent=CLUHART00000008717\nscaffold789\tmaker\tthree_prime_UTR\t564589\t564780\t.\t+\t.\tID=CLUHART00000006146:three_prime_utr;Parent=CLUHART00000006146\nscaffold789\tmaker\tmRNA\t558184\t564780\t.\t+\t.\tID=CLUHART00000006147;Parent=CLUHARG00000003852\nscaffold625\tmaker\tCDS\t337915\t337971\t.\t+\t0\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t340733\t340841\t.\t+\t0\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t341518\t341628\t.\t+\t2\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t341964\t343033\t.\t+\t2\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tfive_prime_UTR\t337818\t337914\t.\t+\t.\tID=CLUHART00000008717:five_prime_utr;Parent=CLUHART00000008717\nscaffold625\tmaker\tthree_prime_UTR\t343034\t343277\t.\t+\t.\tID=CLUHART00000008717:three_prime_utr;Parent=CLUHART00000008717\nscaffold789\tmaker\tgene\t558184\t564780\t.\t+\t.\tID=CLUHARG00000003852;Name=PF11_0240\nscaffold789\tmaker\tmRNA\t558184\t564780\t.\t+\t.\tID=CLUHART00000006146;Parent=CLUHARG00000003852\nscaffold789\tmaker\texon\t558184\t560123\t.\t+\t.\tID=CLUHART00000006146:exon:995;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t561401\t561519\t.\t+\t.\tID=CLUHART00000006146:exon:996;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t564171\t564235\t.\t+\t.\tID=CLUHART00000006146:exon:997;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t564372\t564780\t.\t+\t.\tID=CLUHART00000006146:exon:998;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t558191\t560123\t.\t+\t0\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t561401\t561519\t.\t+\t2\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold625\tmaker\texon\t341518\t341628\t.\t+\t.\tID=CLUHART00000008717:exon:1406;Parent=CLUHART00000008717\nscaffold625\tmaker\texon\t341964\t343277\t.\t+\t.\tID=CLUHART00000008717:exon:1407;Parent=CLUHART00000008717\nscaffold789\tmaker\tCDS\t564171\t564235\t.\t+\t0\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t564372\t564588\t.\t+\t1\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tfive_prime_UTR\t558184\t558190\t.\t+\t.\tID=CLUHART00000006146:five_prime_utr;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t558184\t560123\t.\t+\t.\tID=CLUHART00000006147:exon:997;Parent=CLUHART00000006147\nscaffold789\tmaker\texon\t561401\t561519\t.\t+\t.\tID=CLUHART00000006147:exon:998;Parent=CLUHART00000006147\nscaffold789\tmaker\texon\t562057\t562121\t.\t+\t.\tID=CLUHART00000006147:exon:999;Parent=CLUHART00000006147\nscaffold789\tmaker\texon\t564372\t564780\t.\t+\t.\tID=CLUHART00000006147:exon:1000;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t558191\t560123\t.\t+\t0\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t561401\t561519\t.\t+\t2\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t562057\t562121\t.\t+\t0\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t564372\t564588\t.\t+\t1\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tfive_prime_UTR\t558184\t558190\t.\t+\t.\tID=CLUHART00000006147:five_prime_utr;Parent=CLUHART00000006147\nscaffold789\tmaker\tthree_prime_UTR\t564589\t564780\t.\t+\t.\tID=CLUHART00000006147:three_prime_utr;Parent=CLUHART00000006147\n```\n\u003c/details\u003e\n\n`agat_convert_sp_gxf2gxf.pl --gff 18_test.gff`\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee result\u003c/summary\u003e\n\n```\n##gff-version 3\nscaffold625\tmaker\tgene\t337818\t343277\t.\t+\t.\tID=CLUHARG00000005458;Name=TUBB3_2\nscaffold625\tmaker\tmRNA\t337818\t343277\t.\t+\t.\tID=CLUHART00000008717;Parent=CLUHARG00000005458\nscaffold625\tmaker\texon\t337818\t337971\t.\t+\t.\tID=CLUHART00000008717:exon:1404;Parent=CLUHART00000008717\nscaffold625\tmaker\texon\t340733\t340841\t.\t+\t.\tID=CLUHART00000008717:exon:1405;Parent=CLUHART00000008717\nscaffold625\tmaker\texon\t341518\t341628\t.\t+\t.\tID=CLUHART00000008717:exon:1406;Parent=CLUHART00000008717\nscaffold625\tmaker\texon\t341964\t343277\t.\t+\t.\tID=CLUHART00000008717:exon:1407;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t337915\t337971\t.\t+\t0\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t340733\t340841\t.\t+\t0\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t341518\t341628\t.\t+\t2\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tCDS\t341964\t343033\t.\t+\t2\tID=CLUHART00000008717:cds;Parent=CLUHART00000008717\nscaffold625\tmaker\tfive_prime_UTR\t337818\t337914\t.\t+\t.\tID=CLUHART00000008717:five_prime_utr;Parent=CLUHART00000008717\nscaffold625\tmaker\tthree_prime_UTR\t343034\t343277\t.\t+\t.\tID=CLUHART00000008717:three_prime_utr;Parent=CLUHART00000008717\nscaffold789\tmaker\tgene\t558184\t564780\t.\t+\t.\tID=CLUHARG00000003852;Name=PF11_0240\nscaffold789\tmaker\tmRNA\t558184\t564780\t.\t+\t.\tID=CLUHART00000006146;Parent=CLUHARG00000003852\nscaffold789\tmaker\texon\t558184\t560123\t.\t+\t.\tID=CLUHART00000006146:exon:995;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t561401\t561519\t.\t+\t.\tID=CLUHART00000006146:exon:996;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t564171\t564235\t.\t+\t.\tID=CLUHART00000006146:exon:997;Parent=CLUHART00000006146\nscaffold789\tmaker\texon\t564372\t564780\t.\t+\t.\tID=CLUHART00000006146:exon:998;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t558191\t560123\t.\t+\t0\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t561401\t561519\t.\t+\t2\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t564171\t564235\t.\t+\t0\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tCDS\t564372\t564588\t.\t+\t1\tID=CLUHART00000006146:cds;Parent=CLUHART00000006146\nscaffold789\tmaker\tfive_prime_UTR\t558184\t558190\t.\t+\t.\tID=CLUHART00000006146:five_prime_utr;Parent=CLUHART00000006146\nscaffold789\tmaker\tthree_prime_UTR\t564589\t564780\t.\t+\t.\tID=CLUHART00000006146:three_prime_utr;Parent=CLUHART00000006146\nscaffold789\tmaker\tmRNA\t558184\t564780\t.\t+\t.\tID=CLUHART00000006147;Parent=CLUHARG00000003852\nscaffold789\tmaker\texon\t558184\t560123\t.\t+\t.\tID=CLUHART00000006147:exon:997;Parent=CLUHART00000006147\nscaffold789\tmaker\texon\t561401\t561519\t.\t+\t.\tID=CLUHART00000006147:exon:998;Parent=CLUHART00000006147\nscaffold789\tmaker\texon\t562057\t562121\t.\t+\t.\tID=CLUHART00000006147:exon:999;Parent=CLUHART00000006147\nscaffold789\tmaker\texon\t564372\t564780\t.\t+\t.\tID=CLUHART00000006147:exon:1000;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t558191\t560123\t.\t+\t0\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t561401\t561519\t.\t+\t2\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t562057\t562121\t.\t+\t0\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tCDS\t564372\t564588\t.\t+\t1\tID=CLUHART00000006147:cds;Parent=CLUHART00000006147\nscaffold789\tmaker\tfive_prime_UTR\t558184\t558190\t.\t+\t.\tID=CLUHART00000006147:five_prime_utr;Parent=CLUHART00000006147\nscaffold789\tmaker\tthree_prime_UTR\t564589\t564780\t.\t+\t.\tID=CLUHART00000006147:three_prime_utr;Parent=CLUHART00000006147\n```\n\u003c/details\u003e\n\n## How to cite?\n\nThis work has not been published (I will think about it) but you can cite it as follow:  \n\n```\nDainat J. 2022. Another Gtf/Gff Analysis Toolkit (AGAT): Resolve interoperability issues and accomplish more with your annotations. Plant and Animal Genome XXIX Conference. https://github.com/NBISweden/AGAT.\n``` \n\nor/and (Adapt the AGAT version to the one you used):  \n\n```\nDainat J. AGAT: Another Gff Analysis Toolkit to handle annotations in any GTF/GFF format.  \n(Version v1.4.1). Zenodo. https://www.doi.org/10.5281/zenodo.3552717\n```\n\n## Publication using AGAT\n\nSee [here](https://scholar.google.com/citations?view_op=view_citation\u0026hl=en\u0026user=o0KM2sMAAAAJ\u0026citation_for_view=o0KM2sMAAAAJ:qxL8FJ1GzNcC) for examples of publications using AGAT.  \n\n## Troubleshooting\n\nSee Troubleshooting section form the doc [here](https://agat.readthedocs.io/en/latest/troubleshooting.html).\n\n## Acknowledgements\n\nI would like to thank all contributors who have helped in any way for their valuable support.  \nSpecial thanks to @kim-fehl, who does not appear among the contributors despite its involvement (see PR #558).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnbisweden%2Fagat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnbisweden%2Fagat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnbisweden%2Fagat/lists"}