Могу ли я объединить магазины zarr, переместив их во включающий каталог?Python

Программы на Python
Ответить
Anonymous
 Могу ли я объединить магазины zarr, переместив их во включающий каталог?

Сообщение 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)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»