1 <H2> API(Application Interface)</H2>
4 <DD> llDataFileRead( <BR>
7 llDataParaTypeInteger* status<BR>
10 <DD> llDataFileRead( <BR>
12 llData* llDataIn, <BR>
13 llDataParaTypeInteger* status<BR>
18 <A NAME="Information">
19 <H2>Information from source codes</H2>
34 ../src/llDataIntensityInformationGet.c:
50 ../src/lllDataAverage.c:
52 ../src/lllDataAvgTo.c:
54 ../src/lllDataAxisSearch.c:
56 ../src/lllDataAxisSearch2.c:
58 ../src/lllDataAxisSearchAndAverage.c:
60 ../src/lllDataCTFCompensate.c:
62 ../src/lllDataCTFObservation.c:
64 ../src/lllDataCompare.c:
66 ../src/lllDataContributionCalcDifferentN.c:
68 ../src/lllDataDifferenceCalc.c:
70 ../src/lllDataEquatorAdd.c:
72 ../src/lllDataExtract.c:
78 ../src/lllDataFitAndAverage.c:
80 ../src/lllDataFitMergedLL.c:
82 ../src/lllDataFitOut.c:
84 ../src/lllDataFitParamInverse.c:
86 ../src/lllDataFitUtil.c:
88 ../src/lllDataFitUtilPVM.c:
90 ../src/lllDataInterpolate.c:
92 ../src/lllDataLowPassFiltering.c:
94 ../src/lllDataMergeDifferentN.c:
96 ../src/lllDataMultiCTFCompensation.c:
98 ../src/lllDataPhaseShift.c:
100 ../src/lllDataPrint.c:
102 ../src/lllDataRescaling.c:
104 ../src/lllDataSingleCTFCompensation.c:
106 ../src/lllDataWeightSet.c:
108 ../src/lllDatarMaxLimit.c:
117 # The latest update : %G% at %U%
119 #%Z% llData.h ver %I%
122 #%Z% Usage : llData.h
125 * Edited by tacyas@tkyemg
137 typedef unsigned int llDataStatusType;
139 #define llDataStatusOK ((llDataStatusType)0x00000000)
142 #define llDataCanNotReadFile ((llDataStatusType)0x00010000);
143 #define llDataCanNotWriteFile ((llDataStatusType)0x00010001);
146 #ifdef __LLDATAINIT__
147 char* llDataErrorMsgReferFile[] = {
152 char* llDataReferenceData[] = {
153 "Amos,L.A. & Klug,A. J.Mol.Biol(1975),99,51-73",
154 " Three-dimensional Image Reconstructions of the Contractile Tail of T4 Bacteriophage",
155 " Appendix: Combination of Data from Helical Particles : Correlation and Selection",
157 " delta(theta)= -n*delta(phi) + 2*PI*Z*delta(z)",
158 " Klug,A. Crick,A., F.H.C. & Wyckoff,H.W. Acta Crystallogr.sect.(1958),11,199-213",
163 extern char* llDataErrorMsgReferFile[];
164 extern char* llDataReferenceData[];
167 #define DefaultStringLength (256)
170 #define AverageSide (2)
171 #define SidePosition (14)
172 #define CommentLength (80)
173 #define WeightPosition (SidePosition+4+CommentLength)
174 #define NNPosition (WeightPosition+12)
175 #define NLPosition (NNPosition+5)
176 #define LLDataFormat "%12.5e%12.5e%12.5e\n"
177 #define LLDataFormat0 "%12.5e%12.5e%12.5e"
178 #define LLDataFormat1 "%12.5e %12.5e %12.5e"
179 #define RRPosition (0)
180 #define FPosition (RRPosition+12)
181 #define PHIPosition (FPosition +12)
184 #define PVALUE_MODE (0x01)
185 #define QVALUE_MODE (0x02)
186 #define RVALUE_MODE (0x04)
187 #define Q2VALUE_MODE (0x08)
189 typedef int llDataParaTypeInteger;
190 typedef float llDataParaTypeReal;
191 typedef enum llDataPole {
192 llDataPoleNormal = 0,
196 typedef enum llDataMode {
197 llDataModeMemoryNotAllocate = 0,
198 llDataModeMemoryAllocate = 1
204 typedef struct llComplex {
205 llDataParaTypeReal R; /* Spherical R */
206 llDataParaTypeReal RR; /* Radial R */
207 llDataParaTypeReal F; /* F*exp(PHI) */
208 llDataParaTypeReal PHI;
209 llDataParaTypeReal Re; /* Re + i * Im */
210 llDataParaTypeReal Im;
213 typedef struct oneLLData {
214 char Head[DefaultStringLength]; /* Comment */
215 llDataParaTypeReal Weight; /* Weight of This Layer Line */
216 llDataParaTypeInteger nn; /* The [n] dim. Bessel function */
217 llDataParaTypeInteger nl; /* The [l]th layer line */
218 llDataParaTypeInteger nm; /* [l] = t*[n]+s*[m] */
219 llComplex* data; /* Layer line data */
220 llDataParaTypeInteger Side; /* Near/Far Side/Average */
221 llDataParaTypeInteger nR; /* Number of layer line data */
223 llDataParaTypeReal Z;
224 llDataParaTypeInteger iZ;
225 llDataParaTypeReal RMin; /* Radial R Info */
226 llDataParaTypeInteger iRMin;
227 llDataParaTypeReal RMax;
228 llDataParaTypeInteger iRMax;
229 llDataParaTypeReal delBR;
230 llDataParaTypeReal Fmax; /* Fmax */
234 typedef struct llData {
236 llDataParaTypeInteger llMax;
237 llDataParaTypeInteger nRMax;
238 llDataParaTypeReal truePitch;
239 llDataParaTypeReal Weight;
240 llDataParaTypeReal rScale;
242 llDataParaTypeReal Side;
243 llDataParaTypeInteger RRInfoSet;
244 llDataParaTypeInteger FmaxSet;
245 llDataParaTypeInteger RValueSet;
246 llDataParaTypeInteger ZValueSet;
250 typedef struct llDataBoth {
255 typedef struct llDataAttributes {
257 llDataParaTypeInteger llMax;
258 llDataParaTypeInteger nRMax;
259 llDataParaTypeReal truePitch;
260 llDataParaTypeReal Weight;
261 llDataParaTypeReal rScale;
263 llDataParaTypeReal Side;
267 /* in llDataIntensityInformationGet.c */
268 typedef struct onelllDataIntensityInformation {
276 } onelllDataIntensityInformation;
278 typedef struct lllDataIntensityInformation {
279 onelllDataIntensityInformation* onedata;
280 llDataParaTypeInteger llMax;
281 } lllDataIntensityInformation;
286 /* prototype begin */
291 /* in llDataRead.c */
292 extern void llDataFileRead(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
293 extern void llDataFileReadFollowingllData(FILE* fpt, llData* ll, llData* Ref, llDataParaTypeInteger* status);
294 extern void llDataFileReadFollowingAttributes(FILE* fpt, llData* ll, llDataAttributes* attr, llDataParaTypeInteger* status);
296 /* in llDataWrite.c */
297 extern void llDataFileWrite(FILE* fpt, llData* ll, llDataParaTypeInteger* status);
299 /* in llDataInit.c */
300 extern void llDataInit(llData* ll);
301 extern void llDataInitWithReference(llData* ll, llData* ref);
302 extern void llDataInitWithReference2(llData* ll, llData* ref, int side);
303 extern void llDataHeaderInit(llData* ll);
304 extern void llDataDataInit(llData* ll);
305 extern void llDataFree(llData* ll);
306 extern void llDataHeaderFree(llData* ll);
307 extern void llDataDataFree(llData* ll);
309 /* in llDataInfo.c */
310 extern void llDataInfoPrint(FILE* fpt, llData* ll, long WhichLayer, long WhatInfo);
311 extern void llDataInfoPrintUsage(FILE* fpt);
313 /* in llDataUtil.c */
314 extern void llDataRValueSet(llData* dst, int mode);
315 extern void llDataFmaxSet(llData* dst, int mode);
316 extern void llDataZValueSet(llData* dst, int mode);
318 extern llDataParaTypeInteger* llDataTableBetweenTwollDataCreate(llData* ll1, llData* ll2, int mode);
320 extern inline llDataParaTypeReal nearSidePhaseGet(llDataParaTypeReal phase,
321 llDataParaTypeInteger nn,
322 llDataParaTypeInteger side,
323 llDataParaTypeInteger pole);
324 extern inline llDataParaTypeReal farSidePhaseGet(llDataParaTypeReal phase,
325 llDataParaTypeInteger nn,
326 llDataParaTypeInteger side,
327 llDataParaTypeInteger pole);
328 extern void lllDataAttributeCopy(llData* ll1, llData* ll2);
329 extern void lllDataHeaderCopy(llData* ll1, llData* ll2);
330 extern void lllDataCopy(llData* ll1, llData* ll2);
331 extern void lllDataClear(llData* ll1);
332 extern void lllDataMul(llData* ll1, llData* ll2);
333 extern void lllDataPoleSet(llData* ll1, llDataPole pole);
334 extern void lllDataSideSet(llData* ll1, llDataParaTypeInteger Side);
335 extern void lllDataMultiplyReal(llData* ll1, llDataParaTypeReal f);
336 extern void lllDataDevidedByReal(llData* ll1, llDataParaTypeReal f);
338 /* in lllDataAdd.c */
339 extern void lllDataAdd(llData* ll1, llData* ll2);
340 extern void lllDataAdd2(llData* ll, llData* ll1, llData* ll2);
342 /* in lllDataAvgTo */
343 extern void lllDataAvgTo(llData* dst, llData* src, llDataParaTypeInteger Side);
344 extern void lllDataAvgToNea(llData* nea, llData* avg);
345 extern void lllDataAvgToFar(llData* far, llData* avg);
347 /* lllDataWeightSet.c */
348 extern void lllDataWeightSet(FILE* fpt, llData* ll, llDataParaTypeReal w, long mode);
352 Mode 0: llData.LL[].Weight = 0 without Definition
356 extern inline long llDataValueGet(llData* ll, long l, double R, double* re, double *im);
357 extern inline long llDataValueGet2(llData* ll, long nn, long nl, double R, double* re, double *im);
358 extern long llDataLayerNumberGet(llData* ll, long n, long l);
359 extern long llDataNLNumberGet(llData* ll);
362 extern void llDataFandPHISet(llData* ll);
363 extern void llDataReAndImSet(llData* ll);
364 extern void llDataRRSet(llData* ll);
365 extern void llDataRRInfoSet(llData* ll);
366 extern void llDataAttributesSet2(llData* dst, llData* src);
369 extern long llDataSizeCheck(llData* ll1, llData* ll2, char* message);
371 /* in llDataIntensityInformationGet.c */
372 extern void lllDataIntensityInformationGet(llData* in, lllDataIntensityInformation* data, int mode);
374 /* in llDataError.h */
375 extern void llDataError(char* s);
376 extern void llDataErrorMessage(void);
384 #endif /* LL_DATA_H */