Eidors-logo    

EIDORS: Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software

EIDORS (mirror)
Main
Documentation
Examples
Tutorials
− Image Reconst
− Data Structures
− Application Examples
− FEM Modelling
Download
Contrib Data
GREIT
Browse SVN

News
FAQ
Developer
                       

 

Hosted by SourceForge.net Logo

 

PEEP trial after lung injury (pig)

Methods and Data

Use mk_common_model to create a thorax shaped model with 16 electrodes. Ensure the model uses 1) Correct stimulation patterns (adjacent is default), 2) Normalized difference imaging

Methods and Data

The measurements were performed in the same pig after induction of acute lung injury by repeated bronchoalveolar lavage (p1130107.get) and after administration of surfactant (p1130122.get). Both measurements were acquired at a rate of 13 scans/s, a total of 1500 frames were obtained. The excitation current was 50 kHz. The data was acquired during an incremental and decremental PEEP trial (stepwise increase and decrease of positive end-expiratory pressure).

Data were published in Frerichs, I., Dargavillle, P.A., Dudykevych, T., Rimensberger, P.M. (2003) Electrical Impedance Tomography − a method for monitoring regional lung aeration and tidal volume distribution? Intensive Care Med. 29:2312-2316, 2003.

Results

The key results are shown in Fig.3 from the paper
figure 3

EIDORS Analysis

  1. Download the data and save it to your working directory.
  2. Create a FEM model of the pig
    % Create Model $Id: if_peep_trial01.m 1535 2008-07-26 15:36:27Z aadler $
    
    imdl= mk_common_model('c2c2',16);
    % Use normalized difference imaging
    imdl.fwd_model.normalize_measurements=1;
    
    subplot(211);
    show_fem(imdl.fwd_model, [0,1,0]);
    axis equal; axis off
    
    hh=text(-1.1,0,'Right');
    set(hh,'Rotation',90,'HorizontalAlignment','Center');
    hh=text(0,+1.1,'Ventral');
    set(hh,'HorizontalAlignment','Center');
    
    print -r150 -dpng if_peep_trial01.png
    
    

    Figure: 2D FEM of pig thorax
  3. Reconstruct images
    % Reconstruct Images $Id: if_peep_trial02.m 1535 2008-07-26 15:36:27Z aadler $
    
    v_injury = eidors_readdata('p1130107.get');
    r_injury = mean(v_injury(:,1:10),2); % reference meas
    v_treat  = eidors_readdata('p1130122.get');
    r_treat  = mean(v_treat(:,1:10),2); % reference meas
    
    i_injury = inv_solve(imdl, r_injury, v_injury);
    i_treat  = inv_solve(imdl, r_treat , v_treat );
    
    
  4. Select Regions of interest to plot
    % Select ROI's
    
    img = i_injury; img.elem_data = img.elem_data(:,630);
    rimg = calc_colours( calc_slices( img ), img);
    
    np= calc_colours('npoints');
    xlocn= 0.25 * np;
    ylocn= [2:5]/8 * np; 
    for yl = 1:4;
       rimg(ylocn(yl) + (-2:2), xlocn + (-2:2) ) = 1;
    end
    image(rimg); axis square
    
    for yl = 1:4;
       text(xlocn-1, ylocn(yl), num2str(yl));
    end
    
    axis off
    print -r100 -dpng if_peep_trial03.png
    
    

    Figure: Image of ventilation and 4 identified points to analyse regional ventilation
  5. Normalized Impedance Change (ΔZ) at each ROI
    % Display Times courses $Id: if_peep_trial04.m 1535 2008-07-26 15:36:27Z aadler $
    
    for loop = 1:2;
       if loop == 1; img = i_injury;
       else          img = i_treat;
       end
    
       subplot(2,2,loop);
       time = (0:size(img.elem_data,2)-1)/13; % Frame rate = 13/s
    
       raster= calc_slices( img );
       ROIs  = raster(ylocn, xlocn, :);
       ROIs  = permute(ROIs, [3,1,2]);
    
       %Normalize to its maximum
       for i=1:length(ylocn)
          ROIs(:,i) = - ROIs(:,i) / max(abs(ROIs(:,i)));
       end
       plot(time, ROIs);
       axis([0, max(time), -0.1, 1]);
       legend('1','2','3','4',2)
       xlabel('time (s)')
       ylabel('normalized \Delta Z')
    end
    
    print -dpng -r150 if_peep_trial04.png
    
    

    Figure: Normalized ΔZ time course for different lung ROIs. Left Lung Injury Right Treated
  6. Animate Output for each condition This function creates a video of the sample sequences.
    % Display Times courses $Id: if_peep_trial04.m 1535 2008-07-26 15:36:27Z aadler $
    
    for loop = 1:2;
       if loop == 1; img = i_injury;
       else          img = i_treat;
       end
    
       subplot(2,2,loop);
       time = (0:size(img.elem_data,2)-1)/13; % Frame rate = 13/s
    
       raster= calc_slices( img );
       ROIs  = raster(ylocn, xlocn, :);
       ROIs  = permute(ROIs, [3,1,2]);
    
       %Normalize to its maximum
       for i=1:length(ylocn)
          ROIs(:,i) = - ROIs(:,i) / max(abs(ROIs(:,i)));
       end
       plot(time, ROIs);
       axis([0, max(time), -0.1, 1]);
       legend('1','2','3','4',2)
       xlabel('time (s)')
       ylabel('normalized \Delta Z')
    end
    
    print -dpng -r150 if_peep_trial04.png
    
    

    Figure: Video of sample sequences Left Lung Injury Right Treated

Last Modified: $Date: 2008-07-26 11:36:27 -0400 (Sat, 26 Jul 2008) $ by $Author: aadler $