Я создал хранилища zarr для каждой хромосомы из файла VCF с несколькими выборками, используя scikit-allel в программе Python, запускаемой массивом заданий SLURM. Я сделал это для того, чтобы распараллелить работу, чтобы она выполнялась за меньшее время и требовала меньше памяти. Могу ли я теперь объединить полученные 14 хранилищ zarr в одно хранилище zarr, просто переименовав их, поместив в включающий каталог и добавив в него файл .zgroup? Это была оригинальная программа:
#!/usr/bin/env python3
import sys; print(sys.version)
import os
import glob
import subprocess
import numpy as np; print('numpy', np.__version__)
import pandas as pd; print('pandas',pd.__version__)
import allel; print('allel', allel.__version__)
import zarr; print('zarr', zarr.__version__)
INFN = sys.argv[1]
if not INFN:
print('Must provide input .vcf.gz as first argument')
sys.exit(2)
FIELDS = [
'samples',
'variants/CHROM',
'variants/POS',
'variants/REF',
'variants/ALT',
'variants/QUAL',
'variants/TYPE',
'variants/is_snp',
'variants/numalt',
'variants/AF',
'variants/DP',
'variants/ANN',
'calldata/DP',
'calldata/GT',
]
EXCLUDE_FIELDS = None
TABIX_EXEC = 'tabix'
print("Using tabix executable '{}' {} '{}'\n{}".format(TABIX_EXEC, "->",
subprocess.check_output(['which', 'tabix']).decode('utf-8').rstrip(),
subprocess.check_output([TABIX_EXEC, '--version']).decode('utf-8')))
task_id = int(os.environ.get("SLURM_ARRAY_TASK_ID", 0))
chroms = subprocess.check_output([TABIX_EXEC,'-l',INFN],
universal_newlines=True).strip().split('\n')
ch = chroms[task_id]
OUTFN = f"{INFN}.{ch}.zarr"
transformers = None
if 'ANN' in FIELDS:
transformers=allel.ANNTransformer()
def vcf_to_zarr_func(ch):
allel.vcf_to_zarr(INFN, OUTFN,
region=ch,
group=ch,
log=sys.stderr,
fields=FIELDS,
exclude_fields=EXCLUDE_FIELDS,
tabix=TABIX_EXEC,
transformers=transformers)
print(f"Processing chromosome: {ch}")
vcf_to_zarr_func(ch)
Могу ли я объединить магазины zarr, переместив их во включающий каталог? ⇐ Python
Программы на Python
1778697889
Anonymous
Я создал хранилища zarr для каждой хромосомы из файла VCF с несколькими выборками, используя scikit-allel в программе Python, запускаемой массивом заданий SLURM. Я сделал это для того, чтобы распараллелить работу, чтобы она выполнялась за меньшее время и требовала меньше памяти. Могу ли я теперь объединить полученные 14 хранилищ zarr в одно хранилище zarr, просто переименовав их, поместив в включающий каталог и добавив в него файл .zgroup? Это была оригинальная программа:
#!/usr/bin/env python3
import sys; print(sys.version)
import os
import glob
import subprocess
import numpy as np; print('numpy', np.__version__)
import pandas as pd; print('pandas',pd.__version__)
import allel; print('allel', allel.__version__)
import zarr; print('zarr', zarr.__version__)
INFN = sys.argv[1]
if not INFN:
print('Must provide input .vcf.gz as first argument')
sys.exit(2)
FIELDS = [
'samples',
'variants/CHROM',
'variants/POS',
'variants/REF',
'variants/ALT',
'variants/QUAL',
'variants/TYPE',
'variants/is_snp',
'variants/numalt',
'variants/AF',
'variants/DP',
'variants/ANN',
'calldata/DP',
'calldata/GT',
]
EXCLUDE_FIELDS = None
TABIX_EXEC = 'tabix'
print("Using tabix executable '{}' {} '{}'\n{}".format(TABIX_EXEC, "->",
subprocess.check_output(['which', 'tabix']).decode('utf-8').rstrip(),
subprocess.check_output([TABIX_EXEC, '--version']).decode('utf-8')))
task_id = int(os.environ.get("SLURM_ARRAY_TASK_ID", 0))
chroms = subprocess.check_output([TABIX_EXEC,'-l',INFN],
universal_newlines=True).strip().split('\n')
ch = chroms[task_id]
OUTFN = f"{INFN}.{ch}.zarr"
transformers = None
if 'ANN' in FIELDS:
transformers=allel.ANNTransformer()
def vcf_to_zarr_func(ch):
allel.vcf_to_zarr(INFN, OUTFN,
region=ch,
group=ch,
log=sys.stderr,
fields=FIELDS,
exclude_fields=EXCLUDE_FIELDS,
tabix=TABIX_EXEC,
transformers=transformers)
print(f"Processing chromosome: {ch}")
vcf_to_zarr_func(ch)
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия