# Talk:Chromosome structure via Euclidean Distance Matrices

```%%% Ronan Fleming, E.coli molecule data
%%% -Jon Dattorro, August 2008
clear all

frame = 4;                                          % 1 through 12
G = her49imfs12movfull(frame).cdata;                % uint8
G = (double(G)-128)/128;                            % Gram matrix
N = size(G,1);

D = diag(G)*ones(N,1)' + ones(N,1)*diag(G)' - 2*G;  % EDM D

clear her49imfs12movfull G;

Vn = [-ones(1,N-1); speye(N-1)];
VDV = (-Vn'*D*Vn)/2;

clear D Vn

[evec evals flag] = eigs(VDV, [], 20, 'LR');
if flag, disp('convergence problem'), return, end;

close all

Xs = sqrt(real(evals(1:3,1:3)))*real(evec(:,1:3))'; % Projection of -VDV on PSD cone rank 3
plot3(Xs(1,:), Xs(2,:), Xs(3,:), '.')
```

## E.coli realization

Test image E.coli

I regard the autocorrelation data you provided as a Gram matrix.

Then conversion to an EDM is straightforward - Chapter 5.4.2 of Convex Optimization & Distance Geometry.

The program calculates only the first 20 eigenvalues of the projection of the EDM on the positive semidefinite (PSD) cone.

You can see that there are many significant eigenvalues; which means, the Euclidean body (the molecule) lives in a space higher than dimension 3, assuming I have interpreted the E.coli data correctly.

To get a picture corresponding to physical reality, we project on the PSD cone, rank 3 subset.

It is unlikely that this picture is an accurate representation unless the number of eigenvalues of the projection approaches 3.

Matlab Figures allow 3D rotation in real time, so you can get a good idea of the body's shape.

I include a low-resolution figure here for reference.