Как преобразовать большой биоформат в файл, похожий на базу данных, доступ к которому можно получить асинхронно по ширине JavaScript

Профи!

У меня есть проект визуализации, который отображает биологические данные на холст-диаграммы, в которых я использую фреймворк javascritp, который называется jgv.js( Doc API) создать холст.

Вот простая демонстрационная конфигурация:

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

Предметы треков в приведенном выше коде приведены биоинформационные показатели, которые могут быть в виде простого текстового файла или двоичного файла (*. bam).

Проблема в том, что биофайлы настолько велики, что я не могу получить к ним прямой доступ, не говоря уже о клиентах. Такие как:

  • .бам приблизительный 3G
  • .VCF приблизительный 1G

Так, Есть ли какие-либо внутренние решения, чтобы сделать эти файлы доступными по частям? Точно так же, как AJAX.

Любые предложения будут оценены!

0

Решение

Зависит от того, что вы подразумеваете под «кусочек за кусочком».

Файлы 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

1

Другие решения

Слишком широкий вопрос. Есть много способов получить файл по частям. Php имеет много функций для работы с файлами, такими как fseek (доктор) или же fgets, Вы бы лучше не передавали данные 3G пользователю, а делали необходимые вычисления на своем сервере.

Используя любую библиотеку изображений (gd2?), Вы можете создать базу изображений на основе файла генома на вашем сервере. Не нужно передавать огромное количество данных клиенту.

0

да.
Формат bam показывает, что весь геном считывает детали выравнивания, поэтому он очень большой.
формат vcf отображает всю информацию SNP всего генома и соответствующие аннотации

0