我正在尝试访问基于 Numpy 的用于基因组数据的工具SciKit Allele中的基因组数据。
我对 python 不是很好,但我试图遍历每个变体并提取数组中的相关列,然后使用 Neo4j Rest Client 在 Neo4j 数据库中创建节点。
下面的代码生成一个包含所有变体和所有数据类型的数组:
variants = allel.VariantChunkedTable(callset[chrom]['variants'], names=['AC','AF_AFR', 'AF_AMR', 'AF_ASN', 'AF_EUR', 'AF_MAX', 'CGT', 'CLR', 'CSQ', 'DP', 'DP4', 'ESP_MAF', 'FILTER_LowQual', 'FILTER_MinHWE', 'FILTER_MinVQSLOD', 'FILTER_PASS', 'HWE', 'ICF', 'ID', 'IS', 'PC2', 'PCHI2', 'POS', 'PR', 'QCHI2', 'QUAL', 'REF', 'ALT', 'INDEL', 'SHAPEIT', 'SNP_ID', 'TYPE', 'UGT', 'VQSLOD', 'dbSNPmismatch', 'is_snp', 'numalt', 'svlen'], index='POS')
我(我想我)已经以数组形式声明了变量,如下所示:
pos = variants['POS'][:]
alt = variants['ALT'][:]
dp = variants['DP'][:]
ac = variants['AC'][:]
type = variants['TYPE'][:]
svlen = variants['svlen'][:]
qual = variants['QUAL'][:]
vq = variants['VQSLOD'][:]
这些变量创建数组,例如:
In: pos
Out: array([ 28590, 50481, 52152, ..., 249225077, 249229702,
249231222], dtype=int32)
我现在正在尝试访问每一行的变量,但似乎无法弄清楚如何做到这一点。我当前的尝试看起来像这样(前 10 行):
for variant in variants[0:10]:
a1 = db.nodes.create(pos=pos[variant], bp=alt[variant][0], DP=dp[variant], AC=ac[variant][0], type=type[variant][0], svlen=svlen[variant][0], qual=qual[variant], vqslod=vq[variant])
a1.relationships.create("belongs_to", c1)
不幸的是,这会出现以下错误:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
谁能帮我弄清楚如何获取每个属性的特定变量?