0001
0002 function [File] = zBackboneContinuity(File)
0003
0004 for f = 1:length(File),
0005
0006 File(f).Covalent = sparse(zeros(File(f).NumNT,File(f).NumNT));
0007
0008 d = [];
0009 g = [];
0010
0011 if isempty(File(f).Distance),
0012 c = cat(1,File(f).NT(1:File(f).NumNT).Center);
0013 File(f).Distance = zMutualDistance(c,16);
0014 end
0015
0016 for i = 2:length(File(f).NT),
0017 a = File(f).NT(i).Sugar(10,:);
0018 b = File(f).NT(i-1).Sugar(5,:);
0019 c = File(f).NT(i-1).Sugar(3,:);
0020
0021 x = norm(a-b);
0022 y = norm(a-c);
0023
0024 if x < 2 && x < y,
0025 File(f).Covalent(i-1,i) = 1;
0026 File(f).Covalent(i,i-1) = -1;
0027 elseif y < 2,
0028 File(f).Covalent(i-1,i) = 2;
0029 File(f).Covalent(i,i-1) = -2;
0030 else
0031 j = find(File(f).Distance(i-1,:));
0032 for k = 1:length(j),
0033 a = File(f).NT(j(k)).Sugar(10,:);
0034 x = norm(a-b);
0035 y = norm(a-c);
0036
0037 if x < 2 && x < y,
0038 File(f).Covalent(i-1,j(k)) = 1;
0039 File(f).Covalent(j(k),i-1) = -1;
0040 fprintf('Covalent connection c35 between nucleotides not in order in the PDB file. %s %s %s\n', File(f).Filename, File(f).NT(i-1).Number, File(f).NT(j(k)).Number);
0041 elseif y < 2,
0042 File(f).Covalent(i-1,j(k)) = 2;
0043 File(f).Covalent(j(k),i-1) = -2;
0044
0045 fprintf('Covalent connection c25 between nucleotides not in order in the PDB file. %s %s %s\n', File(f).Filename, File(f).NT(i-1).Number, File(f).NT(j(k)).Number);
0046 end
0047 end
0048 end
0049
0050
0051
0052
0053
0054 end
0055 end
0056
0057 return
0058
0059 min(d)
0060 max(d)
0061
0062 e = sort(d);
0063
0064 e(end-10:end)
0065
0066 figure(2)
0067 clf
0068 i = find(d < 2);
0069 hist(d(i),30)
0070
0071 figure(3)
0072 clf
0073 i = find(d < 2);
0074 plot(d(i),g(i),'.')
0075
0076 figure(1)
0077 clf
0078 VP.Sugar = 1;
0079 VP.LabelSugar = 10;
0080 VP.LabelBase = 10;
0081 zDisplayNT(File(1),[10 11],VP);
0082 axis square