如何将大型生物格式文件转换为可以异步访问的类数据库文件 width JavaScript

How to convert the large bio-format file to database-like file that can be asynchronously accessed width JavaScript

优点!

我有一个将生物数据渲染到 canvas 图表的可视化项目,我在其中使用名为 jgv.js(the doc API) 的 javascritp 框架来生成 canvas.

这是一个简单的配置演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>IGV Data Vis</title>
    <link rel="stylesheet" href="source/jquery-ui.css">
    <link rel="stylesheet" href="source/font-awesome.min.css">
    <link rel="stylesheet" href="source/igv-1.0.1.css">
    <script src="source/jquery.min.js"></script>
    <script src="source/jquery-ui.min.js"></script>
    <script src="source/igv-1.0.1.js"></script>
</head>
<body>
    <div id="container"></div>

    <script>
        let options = {
                palette: ["#00A0B0", "#6A4A3C", "#CC333F", "#EB6841"],
                locus: "7:55,085,725-55,276,031",

                reference: {
                    id: "hg19",
                    fastaURL: "//igv.broadinstitute.org/genomes/seq/1kg_v37/human_g1k_v37_decoy.fasta",
                    cytobandURL: "//igv.broadinstitute.org/genomes/seq/b37/b37_cytoband.txt"
                },

                trackDefaults: {
                    bam: {
                        coverageThreshold: 0.2,
                        coverageQualityWeight: true
                    }
                },

                tracks: [
                    {
                        name: "Genes",
                        url: "//igv.broadinstitute.org/annotations/hg19/genes/gencode.v18.collapsed.bed",
                        index: "//igv.broadinstitute.org/annotations/hg19/genes/gencode.v18.collapsed.bed.idx",
                        displayMode: "EXPANDED",
                        height: 350,
                        color: '#ff0000'
                    }
                ]
            };

        let browser = igv.createBrowser(document.getElementById('container'), options);
    </script>
</body>
</html>

上述代码中tracks项为生物信息表,可以是纯文本文件或二进制文件(*.bam)。

问题是 bio 文件太大了,我无法直接访问它们,更不用说客户端了。如:

那么,是否有任何后端解决方案可以让这些文件逐个访问?就像AJAX.

如有任何建议,我们将不胜感激!

问题太笼统了。有很多方法可以分段获取文件。 Php 有很多函数来处理像 fseek (doc) 或 fgets 这样的文件。最好不要给用户传输3G的数据,而是在后台做需要的计算。

使用任何图像库(gd2?),您可以根据服务器上的基因组文件制作图像。无需向客户端传输大量数据。

是的。 format bam dispics the whole genome reads alignment details,所以它非常大。 格式 vcf 显示全基因组 SNP 信息及其各自的注释

取决于你所说的 'piece by piece'。

Bam 和 vcf 文件使用可以使用随机访问访问的 bgzip 格式。即使通过网络也只要托管服务器支持'Byte-Range:'请求。

$ tabix "http://igv.broadinstitute.org/annotations/hg19/genes/gencode.v18.collapsed.bed.gz" "1:40723778-40759856"

1   40723778    40759856    ZMPSTE24    1000.0  +   40723778    40759856    .   17  288,159,156,183,147,72,87,51,117,153,142,185,105,353,144,1740,177,  0,129,132,1243,2732,4727,9679,9679,10312,11868,13787,23236,27818,32538,32747,34338,34338,
1   40728343    40728656    RP1-39G22.4 1000.0  -   40728343    40728656    .   1   313,    0,

生物信息学的也可以问 biostars.org