示例#1
0
def delete_qc_entries(alyx_model):

    model_info = qc_update_models[alyx_model]

    qc_keys = update_utils.get_deleted_keys(alyx_model) + \
        update_utils.get_updated_keys(alyx_model, fields=['qc', 'extended_qc'])

    logger.log(
        25,
        f'Deleting updated entries for {alyx_model} from alyxraw fields...')
    (alyxraw.AlyxRaw.Field
     & [dict(fname=f)
        for f in model_info['alyx_fields']] & qc_keys).delete_quick()

    logger.log(
        25,
        f'Deleting updated qc and extended_qc for {alyx_model} from ingest tables...'
    )
    uuids_dict_list = [{model_info['uuid_name']: k['uuid']} for k in qc_keys]
    q_real = model_info['ref_table'] & uuids_dict_list

    for m in model_info['ingest_tables']:
        (m & uuids_dict_list).delete_quick()

    logger.log(
        25,
        f'Deleting updated qc and extended_qc for {alyx_model} from real tables...'
    )
    for m in model_info['real_tables']:
        (m & q_real).delete_quick()
示例#2
0
def delete_histology_alyx_shadow(verbose=False):

    CHANNEL_TABLES = [
        histology_ingest.ChannelBrainLocationTemp,
        alyxraw.AlyxRaw.Field,
        alyxraw.AlyxRaw
    ]

    channel_loc_keys = update_utils.get_deleted_keys('experiments.channel')
    for t in CHANNEL_TABLES:
        print(f'Deleting from table {t.__name__}')
        uuid_name = t.heading.primary_key[0]
        keys = [{uuid_name: k['uuid']} for k in tqdm(channel_loc_keys)]
        table = QueryBuffer(t)

        for k in tqdm(keys, position=0):
            table.add_to_queue1(k)
            if table.flush_delete(chunksz=1000, quick=True) and verbose:
                print(f'Deleted 1000 entries from {t.__name__}')

        table.flush_delete(quick=True)

    traj_keys = update_utils.get_deleted_keys('experiments.trajectoryestimate') + \
        update_utils.get_updated_keys('experiments.trajectoryestimate')

    TRAJ_TABLES = [
        histology_ingest.ProbeTrajectoryTemp,
        alyxraw.AlyxRaw.Field,
        alyxraw.AlyxRaw
    ]

    for t in TRAJ_TABLES:
        uuid_name = t.heading.primary_key[0]
        keys = [{uuid_name: k['uuid']} for k in traj_keys]
        table = QueryBuffer(t)
        for k in tqdm(keys, position=0):
            table.add_to_queue1(k)
            if table.flush_delete(chunksz=1000, quick=True) and verbose:
                print(f'Deleted 1000 entries from {t.__name__}')
        table.flush_delete(quick=True)
示例#3
0
def delete_histology_real():

    traj_uuids = update_utils.get_deleted_keys('experiments.trajectoryestimate') + \
        update_utils.get_updated_keys('experiments.trajectoryestimate')

    traj_uuids_real = [
        {'probe_trajectory_uuid': k['uuid']} for k in traj_uuids]

    traj_keys = (histology.ProbeTrajectoryTemp & traj_uuids_real).fetch('KEY')

    for t in HISTOLOGY_TABLES_FOR_DELETE:
        print(f'Deleting from table {t.__name__}')
        (t & traj_keys).delete_quick()
示例#4
0
def delete_qc_entries():

    qc_keys = update_utils.get_deleted_keys(alyx_model) + \
        update_utils.get_updated_keys(alyx_model, fields=['qc', 'extended_qc'])

    logger.log(25, 'Deleting updated qc and extended_qc from alyxraw...')
    (alyxraw.AlyxRaw.Field &
     'fname in ("qc", "extended_qc")' & qc_keys).delete_quick()

    logger.log(25, 'Deleting updated qc and extended_qc from shadow tables')
    session_uuids = [{'session_uuid': k['uuid']} for k in qc_keys]
    sessions = acquisition.Session & session_uuids
    (qc_ingest.SessionQCIngest & session_uuids).delete_quick()
    (qc_ingest.SessionQC & sessions).delete_quick()
    (qc_ingest.SessionExtendedQC.Field & sessions).delete_quick()
    (qc_ingest.SessionExtendedQC & sessions).delete_quick()

    logger.log(25, 'Deleting updated qc and extended_qc from real tables')
    (qc.SessionExtendedQC.Field & sessions).delete_quick()
    (qc.SessionExtendedQC & sessions).delete_quick()
    (qc.SessionQC & sessions).delete_quick()