Giter Site home page Giter Site logo

ppang's Introduction

[TOC]

PPanG: a precision pangenome browser enabling nucleotide-level analysis of genomic variations in individual genomes and their graph-based pangenome

PPanG is a precision genome browser with a new perspective of pangenome. Existing pangenome browsers focus on the variations of nucleotide sequences, including base mutations and structural variations. However, pangenomic studies of the variations at gene level (presence/absence variations (PAV) and gene structural variations (gSV)) just stay on statistics, and the details of variation still remain unknown. PPanG provides nucleotide-accurate visualization of both genome sequences and genome annotations, making it clear to analyze the genomic variations from the nucleotide level to gene level.

PPanG is composed of two subviews: graph view for the whole pangenome in SequenceTubeMap and linear view for each individual genome in JBrowse2. PPanG is easy to get started, but requires efforts to interpret the visualizations, as the visualizations are mixture of different views (graph & linear views) and different tracks (sequence & annotation tracks). So it is strongly recommended to understand the principles of PPanG first. The introduction page is https://cgm.sjtu.edu.cn/PPanG/.

User Guide

PPanG is divided into three areas: Navigation Area, Visualization Area and Functional Area, and sd-1 gene region is visualized by default: Next we will explain these three areas in details.

Navigation Area

Navigation Area allows users to provide the custom region for visualization besides the default sd-1 gene region. The navigation is very simple within three steps:

  1. Select the target chromosome at Data. Pangenome graphs built by both MC and PGGB are available for users to choose.

  2. Select the navigation type. There are three navigation types available:

    a) Navigation Type=built-in genes

    Just select from the built-in genes. e.g.The navigation of GS5 on chr05:

    b) Navigation Type=reference annotation gene ID

    Input the target MSU RGAP7 gene ID and select the gene ID from the list. e.g. The navigation of LOC_Os08g03060 on chr08:

    c) Navigation Type=custom region

    Input the target region by coordinates. Format: <sample name.chrxx>:<start coordinate>-<end coordinate>. In this step any individual can be selected as reference. The "Custom Path" box provides the list of available paths. Type and select the path name (related samples will be suggested if typing into the box), and "Region" is automatically filled with the selected path name. e.g. Data=chr11_mc, Navigation Type=custom region, Custom Path=CHAOMEO.chr11 and fill the region with CHAOMEO.chr11:6541923-6546025:

  3. Click the "Go" button and wait a minute for loading. The visualization of Visualization Area will be updated.

There are several functional buttons beside "Go":

  • Left: Shift the target region to (start - offset, end - offset). offset is half the length of target region.
  • Zoom in: Double the scaling of visualization in graph view.
  • Zoom out: Half the scaling of visualization in graph view.
  • Right: Shift the target region to (start + offset, end + offset). offset is half the length of target region.
  • Compress: Compress the visualization of graph view within the width of the window. This function may be useful because the whole pangenome graph can be too long to observe.
  • Reset: Reset the translation/zoom scaling to default in graph view.
  • Download Image: Download the visualization composed of graph view and linear views. Note that this function is not suitable for large graphs. For this use case, see FAQ for more details.

Visualization Area

The visualization of PPanG is composed of SequenceTubeMap graph view and JBrowse2 linear views. For interpretation of PPanG visualization, please refer to the PPanG homepage: https://cgm.sjtu.edu.cn/PPanG/. The custom options for visualization are available at Functional Area.

Graph View in SequenceTubeMap

In the graph view, the pangenome graph of nine representative genomes are visualized by default. The graph is ultra long because each nucleotide is visualized, and the graph can be translated by mouse-dragging, zoomed by mouse-scrolling and compressed by clicking the "Compress" button at Navigation Area.

Zoom Behavior

The zoom behavior of "Zoom" button at Navigation Area and mouse-scrolling is different, because sometimes the zoom is only required at horizontal direction (compress the graph):

  • For "Zoom" button: It is equivalent to normal zoom scaling.
  • For mouse-scrolling: If horizontal zoom scaling < 1.0, the zoom only works horizontally. That is to compress/uncompress the graph. If horizontal zoom scaling > 1.0, the zoom works both horizontally and vertically. That is equivalent to normal zoom scaling.
Coordinates

Above the graph is the coordinate axis of the reference (not necessarily the reference genome, but the reference selected in the target region). In SequenceTubeMap, the coordinate axis may be longer than the target region, and the actual start and end coordinates are marked in yellow circles. For example, in the figure below, the yellow circle represents the start coordinate 6,541,923:

Linear View in JBrowse2

By default, the linear view of reference is visible below the graph view. Linear views for other individuals are simply added by double-clicking the paths in graph view. The usage of linear view is the same as native JBrowse2 component. (The more detailed document of JBrowse2 is available at https://www.jbrowse.org/jb2/docs/.)

Combination of Graph View and Linear View

In PPanG, the graph view and linear views are combined in parallel. The connection among different views are shared coordinates. Different linear views are all aligned to the graph view according to start and end coordinates. Besides, the coordinate change in graph view will trigger synchronous changes in linear views (The opposite is unavailable, because the linear views are free to extend outside the target region while the graph view is not). Consequently, exons at the same position from different views represents the same exon. Note that the coordinate alignment cannot be exactly perfect, because the coordinates of graph view are not uniformly distributed with occasional variations.

Functional Area

Functional Area contains several additional features helpful to users:

BLAT server

As the list of reference gene IDs is available in PPanG, it is easy to navigate to the known gene region. But it does not work for novel sequences, including distributed genes absent in reference genome but present in other genomes. Therefore, a BLAT server is embedded in PPanG, which helps the locating of novel sequences. Input the target sequence and click the "Search" button, the BLAT server will automatically process the alignment result and provide the target region. By default, the novel sequence is searched within the nine reference genomes, and the search range can be expanded to all individuals by selecting the "Search all genomes". img.png Then input the "tRegion" (target region) of BLAT result as Navigation Type=custom region in 2c to visualize the custom region in PPanG.

Annotation Data

The Annotation Data tab collects genome annotations within the target region. Click the "Download All" button to download these annotation data for each individual.

Legend

The legends of all aligned genome tracks in graph view are shown in this tab. By default, the nine reference genomes are selected to show, and users are able to select any individual to add it in the pangenome graph. To visualize all individuals, please click the "Select all" and wait a moment. The large pangenome graph may cost much time and memory.

Visualization Options

There are some options to adjust the visualization in PPanG.

For SequenceTubeMap view:

  • Hide nucleotide bases: Hide the text of nucleotide bases for simplicity.
  • Fully transparent nodes: Turn the nodes transparent. Otherwise, the nodes are covered with gray masks.
  • Show exons on genome tracks: Visualize the exons on genome tracks. Otherwise, only genome tracks are visualized.
  • Select genes of no interest to hide: Hide exons from the selected transcripts. It is useful when different transcripts overlap and cannot be distinguished.
  • Colors: By default, the genome tracks are colored in pale colors and exons are colored in grayscale. Users are able to select the color options to their preferences.

For JBrowse2 views:

  • Rearrange linear views: Reorder or remove the linear views for better visualization.

Other options for JBrowse2 are available by clicking the button in the top-left corner of each linear view.

Quick Start

Example for MSU RGAP7 genes (reference annotation)

The visualization of reference annotation genes (e.g. LOC_Os08g03060) is simple with the steps below:

  • Select "chr08_mc" at Data;
  • Select "reference annotation gene ID" at Navigation Type and type the gene ID LOC_Os08g03060 into MSU RGAP7 Gene ID;
  • Click the "Go" button.

Example for distributed gene Xa7 (novel sequence)

This section we will describe the whole user path for visualization of the distributed gene Xa7.

Xa7 is known to be absent in the reference genome, so the Navigation Type=reference annotation gene ID is unable for navigation. Then, the BLAT server is necessary to locate the Xa7 region. The Xa7 sequence is input into the BLAT server to find the target "tRegion": As the BLAT result shows, there is only one match with the "tRegion" of NATELBORO.chr06:28873554-28874897. Then the region is provided in the Navigation Area step 2c:

  • Select "chr06_mc" at Data;
  • Select "custom region" at Navigation Type and copy the tRegion NATELBORO.chr06:28873554-28874897 into Region;
  • Click the "Go" button.

The visualization is shown below: img.png As this figure shows, only one track is visible for nine reference genomes. That is, Xa7 sequence is only present in one genome and absent in the other eight genomes. All aligned tracks are listed in the Legend tab: img.png Click the "Select all" button to visualize all individuals and click the "Compress" button at Navigation Area for a global overview. Double click some of the paths in graph view to add them into linear views. The final visualization is as follows: img.png

Run PPanG for your own data

  • Install

    clone the repo and install dependencies:

    git clone [email protected]:SJTU-CGM/PPanG.git
    cd PPanG/
    npm install # or yarn install

    tabix (https://github.com/samtools/tabix) and vg (https://github.com/vgteam/vg) are also needed in your PATH.

  • Configuration for SequenceTubeMap

    The configuration of SequenceTubeMap view is in src/config.json, dataPath should be set to your own data folder (in PPanG dataPath is riceData/) and DATA_SOURCES correspond to the xg files in your dataPath. The reference is set in reference. The name, alias and annotation of reference can be the same. bedFile is only available if vg chunks are pre-processed, otherwise it should be removed. Other detailed configuration is available in SequenceTubeMap.

  • Configuration for JBrowse2

    All genomes and GFF3 annotations are needed in bgzip format with tabix index (*.fasta.gz, *.fasta.gz.gzi, *.fasta.gz.fai, *.gff.gz, *.gff.gz.tbi) in jbrowse/ folder.

  • Notes for BLAT server

    Unfortunately, the total size of all 113 genomes in PPanG is over the max limit of the BLAT server. So indeed, these genomes are divided into 11 parts of database. The BLAT server searches part1 (for nine references) or all parts (for all genomes) for the query sequence and collects the results together. That explains why searching all genomes may exceed the time limit. We do not recommend deploying the BLAT server as PPanG does. For novel sequences, just use sequence alignment tool like BLAST at user's local machine and ignore the BLAT server.

  • Other Configurations for PPanG

    builtin_genes.json and reference_genes.json are required in src/ folder. The format is:

    {
      "<data.xg>": {
        "<gene_id>": "<gene_region>",
        ...
      },
      ...
    }

    For example, the builtin_genes.json in PPanG is like:

    {
      "chr01_mc.xg": {
        "sd1 (LOC_Os01g66100)": "IRGSP-1.0.chr01:38382381-38385503",
        "Pish (LOC_Os01g57340)": "IRGSP-1.0.chr01:33141126-33145608",
        "Gn1a (LOC_Os01g10110)": "IRGSP-1.0.chr01:5270102-5275677"
      },
      "chr02_mc.xg": {
        "tgw2 (LOC_Os02g52550)": "IRGSP-1.0.chr02:32155212-32156481",
        "GW2 (LOC_Os02g14720)": "IRGSP-1.0.chr02:8114960-8121924",
        "OsGL1-4 (LOC_Os02g40784)": "IRGSP-1.0.chr02:24718046-24724119",
        "tms5 (LOC_Os02g12290)": "IRGSP-1.0.chr02:6397341-6399235",
        "EP3 (LOC_Os02g15950)": "IRGSP-1.0.chr02:9042075-9046140",
        "RSS1 (LOC_Os02g39390)": "IRGSP-1.0.chr02:23769389-23772841",
        "OsSKIPa (LOC_Os02g52250)": "IRGSP-1.0.chr02:31995217-31997696"
      },
      ...
    }

FAQ

Q: Why sometimes the linear view reports the bug like "failed to fetch data, reload"?

A: This bug occurs possibly due to the network failure. Click the "reload" button will solve the problem.

Q: How to download the large pangenome graph?

A: The library used by "Download Image" button is designed for daily use, when users hardly need to download a so large graph. It is not suitable for the large pangenome data. As an alternative, we recommend a better way to download the large graph with a native tool in the Edge/Chrome browser. Press F12 to open the developer tools. Select the Elements tab, double-click the <div id="root">, and double-click the <div> below. Then, right-click the <div id="Pangenome browser">...</div> and click Capture node screenshot. Then the browser will automatically download the large graph into xx.png. img.png

Q: Is it unavailable to search all genomes in the BLAT server if it exceeds the time limit?

A: Actually, the BLAT server uses caches to store the alignment results. Although one request exceeds the time limit, the caches are still saved in the server. If the same request comes, the BLAT server will use cashes to avoid redundant calculations. So it is feasible to click the "Search" button again and again until success.

Q: Why one genome has more than one paths in some regions in the graph view?

A: From the perspective of the whole pangenome graph, one genome should correspond to only one path exactly. But in a directed cyclic graph, one path may be truncated into different pieces within a target region. We show a simple demo in the figure below: img.png There are totally two paths in this graph. However, if the right part of this graph is extracted as marked in the figure, there will be many broken lines in the subgraph. Actually, how to extract a pretty subgraph from the original graph is also a challenge to pangenome graph algorithms.

ppang's People

Contributors

mintanxon avatar wolfib avatar adamnovak avatar clswcc-mwliu avatar jachansantiago avatar tanessav avatar 6br avatar jmonlong avatar nheyer avatar subwaystation avatar w-gao avatar

Stargazers

 avatar LIU avatar  avatar  avatar Gaorui Gong avatar  avatar Zhigui Bao avatar

Watchers

CWei avatar

ppang's Issues

Issues with nodejs dependencies

Hello, i tried installing the nodejs dependencies with:
npm install
I get:

npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN ERESOLVE overriding peer dependency
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated [email protected]: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated [email protected]: flatten is deprecated in favor of utility frameworks such as lodash.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.
npm WARN deprecated [email protected]: This module is no longer supported.
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated @humanwhocodes/[email protected]: Use @eslint/config-array instead
npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated [email protected]: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.
npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: Glob versions prior to v9 are no longer supported
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: Use your platform's native DOMException instead
npm WARN deprecated @babel/[email protected]: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
npm WARN deprecated
npm WARN deprecated (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated [email protected]: Please use @jridgewell/sourcemap-codec instead
npm WARN deprecated [email protected]: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
npm WARN deprecated @oclif/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated [email protected]: Multer 1.x is affected by CVE-2022-24434. This is fixed in v1.4.4-lts.1 which drops support for versions of Node.js before 6. Please upgrade to at least Node.js 6 and version 1.4.4-lts.1 of Multer. If you need support for older versions of Node.js, we are open to accepting patches that would fix the CVE on the main 1.x release line, whilst maintaining compatibility with Node.js 0.10.
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated @oclif/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated @humanwhocodes/[email protected]: Use @eslint/object-schema instead
npm WARN deprecated [email protected]: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-babel.
npm WARN deprecated @oclif/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated @fortawesome/[email protected]: Please upgrade to 6.1.0. https://fontawesome.com/docs/changelog/
npm WARN deprecated [email protected]: This package is no longer supported.
npm WARN deprecated @oclif/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @oclif/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @oclif/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @fortawesome/[email protected]: Please upgrade to 6.1.0. https://fontawesome.com/docs/changelog/
npm WARN deprecated [email protected]: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained
npm WARN deprecated [email protected]: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm.
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.

> [email protected] postinstall
> patch-package

patch-package 7.0.0
Applying patches...
[email protected] โœ”
Error: Patch file found for package plugin-linear-genome-view which is not present at node_modules/@jbrowse/plugin-linear-genome-view

**ERROR** Failed to apply patch for package @jbrowse/react-linear-genome-view at path

    node_modules/@jbrowse/react-linear-genome-view

  This error was caused because @jbrowse/react-linear-genome-view has changed since you
  made the patch file for it. This introduced conflicts with your patch,
  just like a merge conflict in Git when separate incompatible changes are
  made to the same piece of code.

  Maybe this means your patch file is no longer necessary, in which case
  hooray! Just delete it!

  Otherwise, you need to generate a new patch file.

  To generate a new one, just repeat the steps you made to generate the first
  one.

  i.e. manually make the appropriate file changes, then run

    patch-package @jbrowse/react-linear-genome-view

  Info:
    Patch file: patches/@jbrowse+react-linear-genome-view+2.4.2.patch
    Patch was made for version: 2.4.2
    Installed version: 2.12.3

---
patch-package finished with 2 error(s).

added 2313 packages, and audited 2314 packages in 2m

234 packages are looking for funding
  run `npm fund` for details

163 vulnerabilities (1 low, 79 moderate, 71 high, 12 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues possible (including breaking changes), run:
  npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

When running

npm run build
I get:

> [email protected] build
> react-scripts build && ln jbrowse/* build/

Creating an optimized production build...
/gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/react-scripts/scripts/build.js:19
  throw err;
  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/webpack/lib/NormalModule.js:417:16)
    at /gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/webpack/lib/NormalModule.js:452:10
    at /gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/webpack/lib/NormalModule.js:323:13
    at /gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /gpfs1HP/workspace/limagrain/bioinfo/maize/PangenomeProject/data/giraffe/4.Pangenome_graph_viz/PPanG/node_modules/babel-loader/lib/index.js:59:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.15.0

Fixed it with export NODE_OPTIONS=--openssl-legacy-provider

but then i get

npm run build

> [email protected] build
> react-scripts build && ln jbrowse/* build/

Creating an optimized production build...
Failed to compile.

./src/components/CustomizationAccordion.js
Cannot find module: '@mui/x-data-grid'. Make sure this package is installed.

You can install this package by running: yarn add @mui/x-data-grid.
(mamba) (cactus_env) [malek.chaouchi@svbigsiscnp31 PPanG]$ npm install @mui/x-data-grid
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR!   react@"^16.8.6" from the root project
npm ERR!   peer react@">=16.8.0" from @emotion/[email protected]
npm ERR!   node_modules/@emotion/react
npm ERR!     peerOptional @emotion/react@"^11.5.0" from @mui/[email protected]
npm ERR!     node_modules/@mui/material
npm ERR!       peer @mui/material@"^5.15.14" from @mui/[email protected]
npm ERR!       node_modules/@mui/x-data-grid
npm ERR!         @mui/x-data-grid@"*" from the root project
npm ERR!     peer @emotion/react@"^11.0.0-rc.0" from @emotion/[email protected]
npm ERR!     node_modules/@emotion/styled
npm ERR!       peerOptional @emotion/styled@"^11.3.0" from @mui/[email protected]
npm ERR!       node_modules/@mui/material
npm ERR!         peer @mui/material@"^5.15.14" from @mui/[email protected]
npm ERR!         node_modules/@mui/x-data-grid
npm ERR!   1 more (@emotion/styled)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^17.0.0 || ^18.0.0" from @mui/[email protected]
npm ERR! node_modules/@mui/material
npm ERR!   peer @mui/material@"^5.15.14" from @mui/[email protected]
npm ERR!   node_modules/@mui/x-data-grid
npm ERR!     @mui/x-data-grid@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /home/fetl/malek.chaouchi/.npm/_logs/2024-06-28T13_38_27_961Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/fetl/malek.chaouchi/.npm/_logs/2024-06-28T13_38_27_961Z-debug-0.log

Thank you in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.