{"id":33051356,"url":"https://github.com/LegumeFederation/cvitjs","last_synced_at":"2025-11-18T21:01:04.027Z","repository":{"id":80511030,"uuid":"78667325","full_name":"LegumeFederation/cvitjs","owner":"LegumeFederation","description":"CViTjs - Chromosome Viewing Tool. A javascript tool for quick whole-genome views of data. ","archived":false,"fork":false,"pushed_at":"2021-01-15T06:37:59.000Z","size":5009,"stargazers_count":10,"open_issues_count":2,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-11T20:32:19.704Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LegumeFederation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-01-11T18:33:10.000Z","updated_at":"2022-04-18T08:29:49.000Z","dependencies_parsed_at":"2023-02-28T18:16:23.868Z","dependency_job_id":null,"html_url":"https://github.com/LegumeFederation/cvitjs","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/LegumeFederation/cvitjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LegumeFederation%2Fcvitjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LegumeFederation%2Fcvitjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LegumeFederation%2Fcvitjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LegumeFederation%2Fcvitjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LegumeFederation","download_url":"https://codeload.github.com/LegumeFederation/cvitjs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LegumeFederation%2Fcvitjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285138471,"owners_count":27121052,"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","status":"online","status_checked_at":"2025-11-18T02:00:05.759Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-11-14T03:00:27.111Z","updated_at":"2025-11-18T21:01:04.019Z","avatar_url":"https://github.com/LegumeFederation.png","language":"JavaScript","funding_links":[],"categories":["Comparative"],"sub_categories":[],"readme":"# CViTjs - Chromosome Visualization Tool, the JavaScript edition\n![CViTjs](img/cvitjs.png?raw=true)\n\n## Table of Contents\n+ [About](#about) \n+ [Setup](#setup) \n+ [Embedding](#embedding)\n+ [PHP](#php) \n+ [Gulp](#gulp) \n+ [Roadmap](#roadmap) \n+ [Using CViTjs](#using-cvitjs) \n  + [Definitions and glyph types](#definitions-and-glyph-types)\n  + [How to...](#how-to) \n+ [Examples](#examples)\n\n## About\n\nCViTjs is an interactive JavaScript implementation of the original Chromosome \nVisualization Tool (\u003ca href=\"https://sourceforge.net/projects/cvit/\"\u003eCViT\u003c/a\u003e), \nwhich was written in Perl. CViTjs displays features on chromosomes, linkage groups, or just \nabout any sort of backbone that has length and a two-dimensional, linear coordinate system.\n\n**The tool is currently in beta. Feedback is gratefully accepted.**\n\nFunctionality:\n+ Data is formatted in \u003ca href=\"http://gmod.org/wiki/GFF3\"\u003eGFF3\u003c/a\u003e\n+ Place various types of features on \"backbones\" (e.g., centromeres, markers, gene models, regions)\n+ Similar to genome browsers, CViTjs has a concept of tracks, sets of features organized in a group.\n+ A track can be interactively turned on and off\n+ Zooming and panning\n+ Annotate an image with the drawing tool\n+ Export image to a png or svg.\n\nFeatures:\n+ AMD style modules using RequireJS. Makes it easier to manage libraries, avoids polluting the global object, and allows for nicer later expansion.\n+ Software stack: Paper.js, RequireJS and jQuery.\n\n[See CViTjs in action](https://awilkey.github.io/cvitjs/?data=test1)\n\n## Setup\n\nCViTjs should work right out of the box. One or more data views are defined in cvit.conf,\nwhich is located in the root folder. Sample views are included in the starting cvit.conf.\n~~~~\n[general]\ndata_default = test1\n\n[data.test1]\nconf = data/test1/cvit.conf\ndefaultData = data/test1/data.gff\n~~~~\nThe [general] section and at least one dataset definition is required in cvit.conf.\n\nIn this example, to display the test1 dataset the URL would be: your-CViTjs-URL/cvitjs/?data=test1\n\nFor each dataset you will need a \u003ca href=\"http://gmod.org/wiki/GFF3\"\u003eGFF3\u003c/a\u003e file defining the backbones and an image configuration file, typically named cvit.ini. Almost every aspect of the presentation of the image can be controlled in the configuration file. See the sample file in data/test1/ for more information.\n\n## Embedding\n\nInstead of keeping CViTjs in its own special page, it may be embedded to show related data. In the page's head include:\n```\n\u003clink rel=\"stylesheet\" href=\"[pathToCViTjs]/js/lib/bootstrap_embed/css/bootstrap.min.css\" /\u003e\n\u003clink rel=\"stylesheet\" href=\"[pathToCViTjs]/js/lib/hopscotch/css/hopscotch.min.css\" /\u003e\n\u003clink rel=\"stylesheet\" href=\"[pathToCViTjs]/css/cvit.css\" /\u003e\n\n\u003cscript data-main=\"[pathToCViTjs]/js/lib/require/require-embed-config\" src=\"[pathToCViTjs]/js/lib/require/require.js\"\u003e\u003c/script\u003e\n```\nIf you wish to use an alternative main.js entry point, you will have to edit require-config. \nReplace the value in: `deps: [\"../main\"]` with the path to your custom main.js entry point, relative to the libs directory.\n\nIn the body of the page, all that is required is to place a `\u003cdiv id=\"cvit-div\"\u003e` at the location you want to add CViTjs. By default this will display the default view set in the [general] section of the cvit.conf. If you wish to override this display, CViTjs recognises two `data-` attributes by default:\n```\n\u003cdiv id=\"cvit-div\" data-backbone=\"backbone\" /div\u003e\n\u003cdiv id=\"cvit-div\" data-gff = \"pathToGff\" /div\u003e\n```\n\nThe backbone tag overrides the default dataset and uses the cvit.conf data settings for the provided backbone. The gff tag adds the provided gff to CViTjs to be drawn. These tags may be used seperately or combined to control an embedded instance of CViTjs. See `examples/cvittest.html` for an example of how this control works in practice.\n\n`\u003cdiv id=\"title-div\" /div\u003e` is entierly optional, and may be omitted.\n\nYou may wish to also set `#viewButton` and `#title-div` to `display:none` in the CSS (`css/cvit.css`)as well to ensure that the components don't render in the embedded context.\n\n## PHP\n\nPHP can launch CViTjs with a calculated set of inputs. To control CViTjs, you may either pass in the desired view and gff using the `data-` tags, or you can export the desired information as a globaly accessible variable and access it directly from `main.js`. See `examples/main.blast_ui.js` for an example of this based on drupal exports.\n\n## Gulp\n\nThough not required for CViTjs to work, there is a gulpfile available for those that care. Right now it is just setup to do basic linting and beautification of the generated source. the default behavior also includes watching, so if you decided to edit any files, it will lint and beautify them for you.\n\n### How to Gulp\n\nIf you have never used gulp before, it is a build system for JavaScript that requires NodeJS\n\nGet Node here (or from your package manager): [Get Node](https://nodejs.org/ \"Node's Homepage\")\n\n\n+ Navigate your terminal to the root of your copy of CViTjs.\n+ type: ``` npm install ```\n+ This will use the node package manager (npm) to download local copies of the required gulp and node packages as listed in required.json\n+ type: ``` gulp ```\n+ This will run all the tasks in the gulpfile. The current tasks are:\n\t+ lint: Runs a linter against the javascript in js/cvit. Will report out any problems it finds in the terminal.\n\t+ beautify: Makes the javascript pretty. In this case will go through and remove excess whitespace, and replace tabs with two spaces, as well as starndardize indent levels.\n\t+ watch: Watches for files in js/cvit to change.\n\t+ default: Runs all of the above tasks. With watch, this means that it will stay active in that terminal window until stopped (^C or equivalent) and run the lint and beautify tasks whenever it detects a change.\n+ Note you can run any task seperately by using ``` gulp \u003ctask\u003e ```\n\n## Roadmap\nThings to do on the way to the 1.0 release:\n+ Upload file manager\n\t+ Basic data validation\n\t+ Customized glyphs\n+ Advanced URI control \n+ Missing Glyphs:\n    + Measure\n    \t+ Heat\n        + Histogram\n        + Distance\n+ Release unit tests\n\n## Using CViTjs\n\n### Definitions and glyph types\n**chromosome:** a \"backbone\". Could be a psuedomolecule, linkage group, contig,\n                et cetera.  \n**centromere:** a glyph type that is drawn on the chromosome, with optional overhang on\n                either side of the chromosome bar.  \n**position:**   a glyph representing a point without size which is typically used for \n                features that are too small to display at scaled size, for example, a \n                gene.  \n**marker:**     a particular type of position depicted with a horizontal line.\n**range**       a glyph representing a feature with sufficient length to display at scale,\n                for example, centromeres or pericentromeric regions.  \n**measure**     _[Not Yet Implemented]_ a glyph representing a feature with some value, for\n                example, an e-value or expression value. The actual glyph can be a \n                position or range.  \n\n### How to...\n#### 1. prepare data\n\n\nInput data to CViT is in GFF3 (http://www.sequenceontology.org/gff3.shtml).\nCViT interpretes files as follows:  \n\n    column 1 (seqid)      chromosome name. If column 3 is 'chromosome' the \n                          record describes the chromosome (name, length, et \n                          cetera), otherwise the record describes a feature on \n                          the named chromosome.  \n    column 2 (source)     user defined. Can be used in conjunction with column 3\n                          by the options (.ini) file to indicate a special \n                          glyph.  \n    column 3 (type)       one of: 'chromosome', 'position', 'range', 'border', \n                          'measure', 'centromere', 'marker' or user defined. \n                          Can be used in conjunction with column 3.\n                          by the options (.ini) file to indicate a special \n                          glyph.  \n    column 4 (start)      start coordinate of chromosome if column 3 = \n                          'chromosome', start coordinate of feature otherwise.  \n    column 5 (end)        end coordinate of chromosome if column 3 = \n                         'chromosome', end coordinate of featuer otherwise.  \n    column 6 (score)      if record is of type 'measure' and 'value_type' \n                          parameter in options (.ini) file is set to \n                          'score_col', then this value will be used to generate \n                          a heatmap color or histogram.  \n    column 8 (strand)     Unused unless 'show_strands' parameter in options \n                          (.ini) file is set to 1.  \n    column 8 (phase)      UNUSED  \n    column 9 (attributes) User-defined attributes allowed and ignored by CViT. \n     \nThese attributes are defined:   \n**ID/Name** = name of chromosome or feature  \n**color**   = color for feature; overrides all other color\n          settings in options (.ini) file  \n**value**   = used for type=measure glyphs if 'value_type'\n          parameter in options is set to 'value_attr'  \n\n**Important:** The GFF data must contain at least one chromosome. Features must contain the \nname of the chromosome it belongs to in the seqid (1) column of the GFF file\nand that name must match the name in the seqid column for the chromosome. Also,\nits coordinates must lie within the start and end coordinates of the chromosome.\n\n#### 2. customize drawing options\nAlmost all aspects of the output images can be controlled via the .conf file. An example\ncan be found inside data/test1. Note that the drawing configuration file is different\nfrom the main configuration file, cvit.conf. \n**Important note:** as CViTjs is still in beta, some of these options may not yet be\nimplemented. If an option you need appears to have not been implemented, let us know and\nwe will make it a priority to implement it.\n\n**_General or overall options_**  \n\n**title**                Label for image.  \n**title_height**         Space allowance for title in pixels, ignored if font face   \n                         and size are set.  \n**title_font**           Use a built-in GD font (0=gdLargeFont, 1=gdMediumBoldFont,\n                         2=gdSmallFont, 3=gdTinyFont). If title_font_face is set,\n                         this setting is overridden.  \n**title_font_face**      Font face to use for title.  \n**title_font_size**      Title font size in points.  \n**title_color**          Title font color.  \n**title_location**       Title location as x,y coords, ignored if missing.  \n**image_padding**        Space around chromosome set, in pixels.  \n**scale_factor**         How much to scale units (pixels per unit); used to size \n                         image.  \n**border_color**         Color of the border around the image.  \n**tiny_font_face**       The prefered tiny font when small labels are needed.  \n**chrom_width**          How wide in pixels to draw a chromosome  \n**fixed_chrom_spacing**  Whether or not to draw chromosomes in fixed locations, or\n                         spaced to accomodate features and labels.  \n**chrom_spacing**        How far apart to space the chromosomes.  \n**chrom_padding_left**   Extra chromosome padding on the left.  \n**hrom_padding_right**  Extra chromosome padding on the right.  \n**chrom_color**          Fill color for the chromosome bar.  \n**chrom_border**         Whether or not to draw a border for the chromosome bar.  \n**chrom_border_color**   Border color for the chromosome bar.  \n**chrom_font**           Use a built-in GD font (0=gdLargeFont, 1=gdMediumBoldFont,\n                         2=gdSmallFont, 3=gdTinyFont). If chrom_font_face is set,\n                         this setting is overridden.  \n**chrom_font_face**      Font face to use to label chromosomes, ignored if empty.  \n**chrom_font_size**      Font size for chromosome labels in points, used only in \n                         conjuction with font_face.  \n**chrom_label_color**    Color for chromosome label.  \n**show_strands**         1=show both chromosome strands, 0=don't; both strands \n                         will fit inside chrom_width  \n**display_ruler**        0=none, 1=both, L=left side only, R=right side only.  \n**reverse_ruler**        1=ruler units run greatest to smallest, 0=normal order.  \n**ruler_units**          Ruler units (e.g. \"cM, \"kb\"), used to label the ruler.  \n**ruler_min**            Minimum value on ruler, if \u003e actual minimum value in the\n                         data this will be adjusted accordingly in the code.  \n**ruler_max**            Maximum value on ruler, if \u003c actual maximum value in the \n                         data, this will be adjusted accordingly in the code.\n**ruler_font**           Which built-in font to use (ruler_font_face overrides this\n                         setting).  \n**ruler_font_face**      Font face to use for ruler, ignored if empty.  \n**ruler_font_size**      Ruler font size in points, used only in conjuction with \n                         font_face.  \n\n**tick_line_width**      Width of ruler tick marks in pixels.  \n**tick_interval**        Ruler tick mark units in original chromosome units.  \n**minor_tick_divisions** Number of minor divisions per major tick (1 for none).  \n\n\n**_Glyph options (not all apply to all glyphs)_**\n\n**centromere_overhang**  How much centromere bar should extend beyond chromosome bar;\n                         only applies to centromere glyphs.  \n**color**                Glyph color. Can be overridend by class= attribute or \n                         color= attribute.  \n**border_color**         Color for drawing borders; only applies to borders.  \n**transparent**          Whether or not to draw glyph transparently.  \n**shape**                Glyph shape (circle, rect, or doublecircle).  \n**width**                Width of the shape.  \n**offset**               Offset glyph this many pixels from chromosome bar (negative \n                         value moves label to the left).  \n**enable_pileup**        If set to 1, CViT will offset features that overlap a\n                         previously-drawn feature by shifting them right (or\n                         left if on the left side of the chromosome).  \n**pileup_gap**           The space between adjacent, piled-up positions.  \n**fill**                 1=fill in area between borders, 0=don't; only applies to\n                         borders and measures.  \n**value_type**           If set to 'score_col', the measure value is taken from the  \n                         score column (6) in the GFF file AND IS ASSUMED TO BE AN \n                         E-VALUE. If the value in the score column is not an \n                         e-value, it will be displayed incorrectly. If set to\n                         'value_attr', the measure value is in the value= \n                         attribute in the attribute (9) column. Only applies to \n                         measures.  \n**display**              If 'heat' display measure as a heat color. If 'histogram'\n                         display measure as a histogram. If 'distance', the\n                         distance the glyph is draw from the chromosome (right\n                         or left side as indicated by offset) is determined by\n                         the feature's value. Only applies to measures.  \n**draw_as**              Whether to interpret a heat map or distance measure as a\n                         range, position, border, or marker.  \n**heat_colors**          Colors to use for scale (heat map only): redgreen or \n                         grayscale.  \n**min**                  Minimum value for a set of measure glyphs. If \u003e actual \n                         minimum value in the data this will be adjusted \n                         accordingly in the code. Only applies to measures.  \n**max**                  Maximum value for a set of measure glyphs. If \u003c actual \n                         maximum value in the data this will be adjusted \n                         accordingly in the code. Only applies to measures.  \n**max_distance**         Maximim distance to draw a distance measure.  \n**hist_perc**            Percentage of distance between chromosomes to fill with\n                         maximum value for a set of histogram measure glyphs.  \n**draw_label**           Whether or not to draw label (ID= or Name= attribute)  \n**font**                 Use a built-in GD font (0=gdLargeFont, 1=gdMediumBoldFont,\n                         2=gdSmallFont, 3=gdTinyFont). If font_face is set,\n                         this setting is overridden.\n**font_face**            Font face to use for label.  \n**font_size**            Font size in points, used only in conjuction with font_face.  \n**label_offset**         Start labels this many pixels right of region bar (negative \n                       value moves label to the left).  \n**label_color**          Color to use for label.  \n\n\nCharacteristics for a custom sequence type can be defined by naming a section\nby the source and type columns of the GFF. For example, the GFF record\n\n     ZmChr1 IBM2_2008_Neighbors locus 882.70 882.70 . . . Name=tb1\n     \nwould be identified by IBM2_2008_Neighbors:locus.\n\nExample:\n\n    [genes]\n    feature = IBM2_2008_Neighbors:locus\n    glyph = position\n    color = green\n    offset = -5\n    \n\n    \n\n## Examples\n\n![CViTjs](img/examples/cvit.png?raw=true)\n\nCViTjs exports views as png or svg files.\n\n![CViTjs as an embedded tool](img/examples/embedded.png?raw=true)\n\nEmbedded tool to display BLAST results. Image is a blastn result agains Cicer arietinum (kabuli, CDC Frontier) - genome using the following sequence:\n\n```\n\u003ecicar.Ca_13726\n\nATGTTTTCTCTCATCATTCTCTCACCAAACTATGCTTCCTCAACTTGGTGTTTGGATGAGCTACAAAAGATTGTTGAGTGTGGAAAGTGTTTTGGTGGTCAAGGTGTTTTTCCAATCTTCTATGGTGTAGATCCTTCTCATGTTAGGCATCAAAGTGGAAGCTTTGCTAAAGCATTTAGAAAACATGAAGAAAACTTTAGAGAAGATAGAGAGAAAGTGCAAAGGTGGAAAGATGCATTAAGAGAAGTTGCTGGTTATTCTGGTTGGGACTCCAAGGATTGGCATGAGGCAAAATTGATAGAAACAATTGTTGAAAACATTCAGAAAAAATTGATTCCTAAATTGAATGTTTGCACAGATAACTTTATTGGAATGGATTCAAAGATAAAAGAAGTAACTTCACTCCTAGGAATGAATTTAAACGATGTTCGCTTCGTAGGCATATGGGGCATGGGTGGAATAGGAAAGACAACTATTGCTCGATTAGTCTACGAAGCGATCAAAGATGAATTCAATATAAGTTGCTTTCTTGCAGACATTAGAGAATCAGTTTCCAAGACAAATGGCTTAGTTAATATCCAAATGGAACTTCTTTCTCATCTTAACATAAGAAGCAATGATTTTTACAATGTTCATGATGGAAAAAAGATATTAGCAAACTCCTTAAGCAACAAAAAGATTCTTCTTGTTCTTGATGATGTGAATGAGTTAAGCCAATTGGAGAGTTTAGCTTGGAAGCAAGAATGGTTTGGTAAAGGAAGTAGAGTTATAATCACAACTAGGGATAAGCACTTATTAATGACACATGGAGTGCATGAAACTTATAAGGCAAAAGGGTTAGTAAAAAATGAAGCACTTAAGCTCTTTTGTTTGAAAGCATTTAAACAAGACCAACCTAAAGAAGAGTATTTGAGTTTGTGTCAAGAAGCGGTTGAATACACAAAAGGACTTCCTTTGGCACTTGAGGTATTAGGTTCACATCTTCATGGAAGAAGTGTTGAGGTTTGGCATAGTGCTTTAGAACAAATAACAAGTGTTCCTCACTCCAAAGTTCAAGATACATTGAAAATAAGCTATGACAGTTTACAATCTATGGAGAAAAATTTGTTTCTAGATATTGCATGTTTCTTCAAAGGAATGGACTTAGATGAAGTAATAGATATGTTAGAAAATTGTGGTGATTATCCTAAAATTGGAATTGACATTTTGGCTGAAAGATCTTTGGTAAGTTTTGATAGGGGAGGAAATAAGTTGTGGATGCATGATTTGCTTCAAGAAATGGGAAGGAATATTGTGTTTCAAGAATATCCAAATGATCCTGGAAAACGCAGTCGATTATGGTCTCAAAAAGACATTGATCAAGTATTGACAAAAAATAAGGGAACTGATAAAATTCAAGGCATAGTTCTGAACTTGGATCAACCGTATGAAGCAAAATGGAACATTGAAGCCTTCTCCAAAATAAGTCACCTAAGGTTACTCAAATTATGTGGCATAAAACTCCCCCTTGGCCTCAACTGCTTCCCTAGTTCACTAAAAGTACTTGACTGGAGAGGATTTCCTTTGAAAACCCTTCCATTCACTAATAATTTGGATGAAATTGTTGACCTCAAATTGCCTCACAGTAAAATAGAACAACTTTGGCATGCAACACAGTTTCTTGAAAATCTGAAATCCATCAACTTGAGCTTTTCCAAGTCTCTAAAGCAATTGCCTGATTTCGTTGGTGTTCCGAATCTTGAATCATTGGTTTTTGAAGGCTGTACAAGCTTAACTGAGATTCATCCCTCCCTTTTAAGCCACAAGAAACTTGTTCAATTGAATTTGAAACACTGCAAAAGGCTCAAAACACTTCCATGCAAAATAGAAACAACTTCATTGAAGAATTTAAGTCTTGCTGGTTGCTCTGAATTCAAACATCTTCCTGAGTTTGATAAAAGCATGAAACATCTATCAAATCTTTCTTTATCAGATACTGCTATAACAAAACTACCATCTTCACTTGGATATCTTGTTTTCCTTAGACTTTTGGATTTAGAAAATTGCAAGAATCTTATTAGTCTTCCAGATACAATAAGTGAATTGAAGTCTCTCATAACTCTGAATGTTTCTGGCTGCTCAAAACTCCATAGCATTCCAGAAGGTTTAAAAGAAATCAACTGTTTGGAGGAACTTCTTGCAAGTGAAACTTCTATTGAAGAACTACCTTCATCTGTTTTTTATCTAGAAAACCTCAAAGTAATATCATTTTCTGGATGCAAAGGACCAGTGACTAAGACAGTGAATTCATTTTTGCTACCATTTACACATTTCTTAAGTAGTCCACAAGATCCTACTAGTTTTAGATTGCCGCATAAATTATCTCTACCTTCTTTGAAGTACTTAAATTTAAGTTACTGCAATCTATCTGAAGAATCAATCCCAAATGATTTTTTCAACTTTTCTTCTTTGATGGTTTTAAATCTCACTGGGAACAATTTTGTTAGTCCACCAAGTAGCATTTCAAAGCTACCAAAACTTGAGTATCTTAGCCTAAACTGGTGTGAAATGCTTCAGAATTTGCCAGAACTTCCCTCAAGTATGAGGACATTGGATGCATGTAATTGTGATTCACTGGAAACTTCTGAATTCAATCTTTCTAGATCATGCAATCTCATTGAATCGCCGATGAGGCAAAGACACTCGCATTTACCTGAAGTTCTGAAGAGCTATTTGGAGGCAGTGCAACTTGGTCTACCTAAAGAAAGATTTGACATGCTTATCACAGGGAGTGAAATTCCATTATGGTTTACACCTTCAAAATATGTTTCAGTTGCAAACATACCAGTCCCTCCTAATTGTCCAAATGATCAATGGGTAGGATTTGCTTTGTGTTTCTTGTTAGTAAGTTTTGCTGATCCACCTGAGTTATGTCATCATGAAGTAAGTTGTTACTTGTTTGGACCTAAGGGTAAGATGTTGATCAGCTCAAGGGATTTACCTCCTTTGGAACCATATTGCCGCCACCTTTATATTCTCTATTTGTCCATTGATGAATGCCGCAAAAGATTCGATAAAGGCGGTGACTGCAGTGAAATTGAGTTTGTCTTGAAAACTTATTGTTGTGATTCATTGAAAGTAGTGAGATGTGGTAGTCGTTTGGTATGTAAACAAGATGTTGAAGATATTTACAGAATTTGTAATTAG\n```\n\u003cbr\u003e\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLegumeFederation%2Fcvitjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLegumeFederation%2Fcvitjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLegumeFederation%2Fcvitjs/lists"}