Inverse Module

This module contains the classes and functions needed to run the inverse problem for both the high-fidelity and reduced systems of equations.

Main Function

inverse.GenInverse(name1, value1, name2, value2...)
Description:

Function to run the inverse problem with either the traditional method or using ROM with the RBModel created using the GenRBModel() function (see ‘help GenRBModel’ for guidance). This function takes the measurements provided with the data_path argument or uses the measurements in the Results/measurements/ folder to estimate the conductivities in the tissues. This function also has the ability to use anisotropic layers if ROM was made with them.

Parameters:
  • ROM – Boolean, run ROM inverse problem

  • Cluster – Boolean, run ROM inverse on the cluster (recommended)

  • TRAD – Boolean, run the traditional method of estimation

  • simultaneous – (beta), Boolean, run ROM in simultaneous mode

  • x0 – starting conductivity values for optimization

  • data_path – path to the measurements

  • model – path to the model

  • sinks – 2D array with injection pattern data

  • sinks_path – path to injection data mat file

  • top – path to the top of the ROMEG tree

  • current – the injection current

  • num_samples – number of samples measurements to run the inverse with

  • sample_num – the specific sample or samples to run for

  • snaps – (boolean) would you like the inverse to be run for each number of snapshots (this will take much longer)

  • fix_conds – either boolean or an array of ALL non-active layer conds

  • active_layers – array of the layers to keep active for inverse

  • sensitivity – is this a sensitivity analysis?

  • new_sinks – (boolean) use a new set of sinks called new_sinks.mat; this means the first set (used for ROM) must be a 1-1 set where the injection electrode is the same number as the pattern number and the extraction electrode is the final electrode.

  • use_sinks – tell this function that ROM used ‘use_sinks’

  • complim – max number of processes to run in parallel on cluster

  • use_noise – (boolean) if true, uses measurements with noise

  • noise – what noise is used in the measurements

  • tag – (string) how to label the estimates

  • debug – (boolean) turn debug mode on

  • weighted – use weights on the measurements

  • ref_sink – used when ROM is trained with a common sink (advised), and then new sinks are used in the inverse problem

  • omit_layers – when using synthetic measurements with different number of layers. Specify the layer(s) not trained in ROM model.

  • ground – the reference/ground electrode

  • real – are the measurements real (i.e. are the synthetic conds missing)?

  • simultaneousN – which layers should be simultaneously estimated?

Classes

class inverse.InverseClass

Bases: core.OrderedModelClass

Property Summary
ROM

is this being used for ROM inverse

TRAD

is the traditional inverse method being run as well?

active_layers

when selected by the user, can determine the layers actually used for inverse

cond_lf

conductivities not to estimate

current

injection current

data_path

path to measurment data

eL

number of electrodes

el_in

injection electrode

estimate

array of estimated conductivities

estimates

2D-array of estimates from all injection patterns

fix_conds

fix the non active conductivity layers to centre

lb

lower conductivity bound

lf

index for conductivities not to estimate

noise

for adding noise to the combined measurements

num_samples

number of samples to run the inverse problem for

pattern

electrode pattern number in sink file

ref_sink

the reference electrode used as a sink for all pairs.

synth_cond

conductivity set to make the synthetic measurements with

te

index for conductivities to estimate

u

measurements (artificial measurements)

ub

upper conductivity bound

use_noise

use the measurements with noise

verbose

boolean - verbose mode for debugging

x0

starting point of the optimisation

class inverse.InverseROMClass

Bases: inverse.InverseClass, core.OrderedModelClass

Constructor Summary
InverseROMClass(varargin)

obj = obj.processArgs(varargin);

Property Summary
LF

ROM model

ground

the reference/ground electrode

simultaneous

simultaneous electrode estimation

snap

current number of snapshots to use in RBModel

snaps

boolean, run inverse for all number of snapshots

tag

how to label the estimates

Method Summary
RBsolution(num, mu_a)

returns the potential given by RB solution on the electrodes

inverse.InverseTRADClass