Профи!
У меня есть проект визуализации, который отображает биологические данные на холст-диаграммы, в которых я использую фреймворк 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).
Проблема в том, что биофайлы настолько велики, что я не могу получить к ним прямой доступ, не говоря уже о клиентах. Такие как:
Так, Есть ли какие-либо внутренние решения, чтобы сделать эти файлы доступными по частям? Точно так же, как AJAX.
Любые предложения будут оценены!
Зависит от того, что вы подразумеваете под «кусочек за кусочком».
Файлы 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
Слишком широкий вопрос. Есть много способов получить файл по частям. Php имеет много функций для работы с файлами, такими как fseek
(доктор) или же fgets
, Вы бы лучше не передавали данные 3G пользователю, а делали необходимые вычисления на своем сервере.
Используя любую библиотеку изображений (gd2?), Вы можете создать базу изображений на основе файла генома на вашем сервере. Не нужно передавать огромное количество данных клиенту.
да.
Формат bam показывает, что весь геном считывает детали выравнивания, поэтому он очень большой.
формат vcf отображает всю информацию SNP всего генома и соответствующие аннотации