0

优点!

我有一个可视化项目,将生物数据呈现到画布图表中,在其中我使用名为jgv.jsdoc API)的 javascritp 框架来生成画布。

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

<!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>

上面代码中的track项是生物信息的陈述,可以是纯文本文件或二进制文件(*.bam)的形式。

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

那么,是否有任何后端解决方案可以使这些文件可以逐个访问?就像AJAX的方式一样。

任何建议将不胜感激!

4

3 回答 3

1

取决于你所说的“一块一块”是什么意思。

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

于 2017-03-09T15:30:10.333 回答
0

太宽泛的问题。有很多方法可以分段获取文件。Php 有很多函数可以处理fseek( doc ) 或fgets. 您最好不要将 3G 数据传输给用户,而是在后端进行所需的计算。

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

于 2017-03-09T09:58:22.207 回答
0

是的。format bam 显示了整个基因组读取比对细节,所以它非常大。格式 vcf 显示了整个基因组 SNP 信息及其各自的注释

于 2017-03-09T09:58:56.910 回答