json файловая модель генома манипуляции - PullRequest
0 голосов
/ 11 января 2020

У меня есть проблема в моем коде, и я не понимаю, как я могу это исправить. По сути, у меня есть файл json, который выглядит следующим образом, в каждой переменной только несколько данных:

{
    "metabolites": [
        {
            "id": "10fthf[c]",
            "name": "10-Formyltetrahydrofolate",
            "compartment": "c",
            "formula": "C20H21N7O7"
        },
        {
            "id": "10fthf[h]",
            "name": "10-Formyltetrahydrofolate",
            "compartment": "h",
            "formula": "C20H21N7O7"
        },
        {
            "id": "10fthf[m]",
            "name": "10-Formyltetrahydrofolate",
            "compartment": "m",
            "formula": "C20H21N7O7"
        },
    ],
    "reactions": [
        {
            "id": "PRISM_solar_litho",
            "name": "spectral decomposition of solar light measured from Earth's surface",
            "metabolites": {
                "photon298[c]": 4.26984325300204e-05,
                "photon437[u]": 0.088253056987783,
                "photon438[u]": 0.187390761056649,
                "photon450[h]": 0.114958292879089,
                "photon490[h]": 0.19581,
                "photon646[h]": 0.18566429641716,
                "photon673[u]": 0.08361649412414,
                "photon680[u]": 0.094404940130699,
                "photonVis[e]": -1.0
            },
            "lower_bound": 646.06656,
            "upper_bound": 646.06656,
            "gene_reaction_rule": "",
            "subsystem": "[array(['Spectral decomposition'], dtype='<U22')]"
        },
        {
            "id": "PRISM_solar_exo",
            "name": "spectral decomposition of solar light measured from outer space",
            "metabolites": {
                "photon298[c]": 0.009126633453201,
                "photon437[u]": 0.107054407672067,
                "photon438[u]": 0.224061663093904,
                "photon450[h]": 0.133591526308582,
                "photon490[h]": 0.20968,
                "photon646[h]": 0.17175215519119,
                "photon673[u]": 0.072897947189877,
                "photon680[u]": 0.084315507784363,
                "photonVis[e]": -1.0
            },
"version": "1"
} 

мой код:

import json
from os.path import join
data_path= '/home/mathieu/Documents/Memoire/ESCHER_MAPPING'
with open(join(data_path,'icz843_model_PRETTY.json')) as f:
  icz843_model = json.load(f)

for x in range(len(icz843_model["metabolites"])):
    if(icz843_model["metabolites"][x]["compartment"]=="m"):
        L.append(icz843_model["metabolites"][x])
for x in range(len(icz843_model["reactions"])):
     for y in range(268):
         if(L[y]["id" in icz843_model["reactions"][x]["metabolites"]):
             print(icz843_model["reactions"][x])

Предполагается, что мой код извлечь из таблицы reactions metabolites, в которой присутствуют идентификаторы списка L.

...