From 91f2cbf5d3dcb42b7e6762fb54734096425f4315 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 28 Jan 2013 10:25:04 +0100 Subject: First bit of Crystal --- doc/reference/CrystFEL-docs.sgml | 5 +++++ doc/reference/CrystFEL-sections.txt | 7 +++++++ 2 files changed, 12 insertions(+) (limited to 'doc') diff --git a/doc/reference/CrystFEL-docs.sgml b/doc/reference/CrystFEL-docs.sgml index 34258a64..4e6cc877 100644 --- a/doc/reference/CrystFEL-docs.sgml +++ b/doc/reference/CrystFEL-docs.sgml @@ -37,6 +37,11 @@ + + Crystals + + + Statistics and R-factors diff --git a/doc/reference/CrystFEL-sections.txt b/doc/reference/CrystFEL-sections.txt index 18a20eb9..5df1f2d5 100644 --- a/doc/reference/CrystFEL-sections.txt +++ b/doc/reference/CrystFEL-sections.txt @@ -286,6 +286,13 @@ reverse_2d_mapping largest_q +
+crystal +Crystal +crystal_new +crystal_free +
+
hdf5-file hdf5_read -- cgit v1.2.3 From dac436f21df140b6bf0796f6f9cbb6fcb6c03e2d Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 8 Feb 2013 12:35:30 -0800 Subject: Update docs, comments etc --- doc/man/indexamajig.1 | 101 +++++++++++++------------------------------------- 1 file changed, 25 insertions(+), 76 deletions(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 9933627c..7f44605f 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -1,7 +1,8 @@ .\" .\" indexamajig man page .\" -.\" Copyright © 2012 Thomas White +.\" Copyright © 2012-2013 Deutsches Elektronen-Synchrotron DESY, + * a research centre of the Helmholtz Association. .\" .\" Part of CrystFEL - crystallography with a FEL .\" @@ -12,25 +13,23 @@ indexamajig \- bulk indexing and data reduction program .SH SYNOPSIS .PP .BR indexamajig -\fB-i\fR \fIfilename\fR \fB-o\fR \fIoutput.stream\fR \fB-g\fR \fIdetector.geom\fR \fB-b\fR \fIbeamline.beam\fR \fB--peaks=\fR\fImethod\fR \fB--indexing=\fR\fImethod\fR \fB--cell-reduction=\fR\fImethod\fR +\fB-i\fR \fIfilename\fR \fB-o\fR \fIoutput.stream\fR \fB-g\fR \fIdetector.geom\fR \fB-b\fR \fIbeamline.beam\fR \fB--peaks=\fR\fImethod\fR \fB--indexing=\fR\fImethod\fR [\fBoptions\fR] \fB...\fR .PP \fBindexamajig --help\fR .SH DESCRIPTION -indexamajig takes as input a list of diffraction image files, currently in HDF5 format. For each image, it attempts to find peaks and then index the pattern. If successful, it will measure the intensities of the peaks at Bragg locations and produce a list of integrated peaks and intensities (and so on) in an output text file known as a "stream". +\fBindexamajig\fR takes a list of diffraction snapshots from crystals in random orientations and attempts to find peaks, index and integrate each one. The input is a list of diffraction image files in HDF5 format and some auxiliary files and parameters. The output is a long text file ('stream') containing the results from each image in turn. -For minimal basic use, you need to provide the list of diffraction patterns, the method which will be used to index, a file describing the geometry of the detector, a PDB file which contains the unit cell which will be used for the indexing, and that you'd like the program to output a list of intensities for each successfully indexed pattern. Here is what the minimal use might look like on the command line: +For minimal basic use, you need to provide the list of diffraction patterns, the method which will be used to index, a file describing the geometry of the detector, and a PDB file which contains the unit cell which will be used for the indexing. Here is what the minimal use might look like on the command line: .IP \fBindexamajig\fR .PD --i mypatterns.lst -j 10 -g mygeometry.geom --indexing=mosflm,dirax --peaks=hdf5 --cell-reduction=reduce -b myxfel.beam -o test.stream -p mycell.pdb --record=integrated +-i mypatterns.lst -j 10 -g mygeometry.geom --indexing=mosflm,dirax --peaks=hdf5 -b myxfel.beam -o test.stream -p mycell.pdb .PP -More typical use includes all the above, but might also include a noise or -common mode filter (--filter-noise or --filter-cm respectively) if detector -noise causes problems for the peak detection. The HDF5 files might be in some +More typical use includes all the above, but might also include extra parameters to modify the behaviour. The HDF5 files might be in some folder a long way from the current directory, so you might want to specify a full pathname to be added in front of each filename. You'll probably want to run more than one indexing job at a time (-j ). @@ -43,33 +42,7 @@ array, where the first two columns contain fast scan and slow scan coordinates at the given location. The value will be spread in a small cross centred on that location. -See \fBman crystfel_geometry\fR for information about how to create a geometry description file. - -You can control what information is included in the output stream using -\fB--record\fR=\fIflags\fR. Possible flags are: - -.IP \fBintegrated\fR -.PD -Include a list of reflection intensities, produced by integrating around predicted peak locations. - -.IP \fBpeaks\fR -.PD -Include peak locations and intensities from the peak search. - -.IP \fBpeaksifindexed\fR -.PD -As 'peaks', but the peak information will be written only if the pattern could be indexed. - -.IP \fBpeaksifnotindexed\fR -.PD -As 'peaks', but the peak information will be written only if the pattern could \fInot\fR be indexed. - -.PP -The default is \fB--record=integrated\fR. - -.PP -If you just want the integrated intensities of indexed peaks, use \fB--record=integrated\fR. If you just want to check that the peak detection is working, used \fB--record=peaks\fR. If you want the integrated peaks for the indexable patterns, but also want to check the peak detection for the patterns -which could not be indexed, you might use \fB--record=integrated,peaksifnotindexed\fR and then use \fBcheck-peak-detection\fR from the scripts folder to visualise the results of the peak detection. +See \fBman crystfel_geometry\fR for information about how to create a geometry description file and a beam parameters file. .SH PEAK DETECTION @@ -77,63 +50,49 @@ You can control the peak detection on the command line. Firstly, you can choose If you use \fB--peaks=zaef\fR, indexamajig will use a simple gradient search after Zaefferer (2000). You can control the overall threshold and minimum gradient for finding a peak using \fB--threshold\fR and \fB--min-gradient\fR. Both of these have arbitrary units matching the pixel values in the data. -A minimum peak separation can also be provided in the geometry description file -(see \fBman crystfel_geometry\fR for details). This number serves two purposes. Firstly, it is the maximum distance allowed between the peak summit and the foot point (where the gradient exceeds the minimum gradient). Secondly, it is the minimum distance allowed between one peak and another, before the later peak will be rejected. +Peaks will be rejected if the 'foot point' is further away from the 'summit' of the peak by more than the inner integration radius (see below). They will also be rejected if the peak is closer than twice the inner integration radius from another peak. You can suppress peak detection altogether for a panel in the geometry file by specifying the "no_index" value for the panel as non-zero. .SH INDEXING METHODS -You can choose between a variety of indexing methods. You can choose more than one method, in which case each method will be tried in turn until the later cell reduction step says that the cell is a "hit". Choose from: - -.IP \fBnone\fR -.PD -No indexing, peak detection only. +You can choose between a variety of indexing methods. You can choose more than one method, in which case each method will be tried in turn until one of them reports that the pattern has been successfully indexed. Choose from: .IP \fBdirax\fR .PD -DirAx will be executed. DirAx must be installed and in your PATH for this to work. Test by running \fBdirax\fR on the command line immediately before running \fBindexamajig\fR - you should see a welcome message. If not, refer to the installation instructions for DirAx. + Invoke DirAx, check linear combinations of the resulting cell axes for agreement with your cell, and then check that the cell accounts for at least half of the peaks from the peak search. .IP \fBmosflm\fR .PD -MOSFLM will be executed. MOSFLM must be installed and in your PATH for this to work. Test by running \fBipmosflm\fR on the command line immediately before running \fBindexamajig\fR - you should see a welcome message. If not, refer to the installation instructions for CCP4. +As \fBdirax\fR, but invoke MOSFLM instead. If you provide a PDB file (with \fB-p\fR), the lattice type and centering information will be passed to MOSFLM, which will then return solutions which match. Note that the lattice parameter information will \fBnot\fR be given to MOSFLM. .IP \fBreax\fR .PD -An \fIexperimental\fR DPS-style algorithm will be used, which searches for a lattice with cell parameters close to those contained in the CRYST1 line of the PDB file given with \fB-p\fR or \fB--pdb\fR. If you use this option, you should also use \fB--cell-reduction=none\fR. +Run the DPS algorithm, looking for the axes of your cell. .PP -The default is \fB--indexing=none\fR. - - -.SH CELL REDUCTION -Neither MOSFLM nor DirAx are currently able to simply search for the orientation of a known unit cell. Instead, they determine the unit cell parameters ab initio. To check if the parameters match the known unit cell, which you provide with \fB-p\fR \fIunitcell.pdb\fR or \fB--pdb=\fR\fIunitcell.pdb\fR. There is a choice of ways in which this comparison can be performed, which you can choose between using \fB--cell-reduction=\fR\fImethod\fR. The choices for \fImethod\fR are: +You can add the following to the above indexing methods: -.IP \fBnone\fR +.IP \fB-raw\fR .PD -The raw cell from the autoindexer will be used. The cell probably won't match the target cell, but it'll still get used. Use this option to test whether the patterns are basically "indexable" or not, or if you don't know the cell parameters. In the latter case, you'll need to plot a histogram of the resulting parameters from the output stream to see which are the most popular. +Do not check the resulting unit cell. This option is useful when you need to determine the unit cell ab initio. Use with 'dirax' and 'mosflm' - the other indexing methods need the unit cell as input in any case, and cannot determine the unit cell ab initio. -.IP \fBreduce\fR +.IP \fB-axes\fR .PD -Linear combinations of the raw cell will be checked against the target cell. If at least one candidate is found for each axis of the target cell, the angles will be checked to correspondence. If a match is found, this cell will be used for further processing. This option should generate the most matches. +Check permutations of the axes for correspondence with your cell, but do not check linear combinations. This is useful to avoid a potential problem when one of the unit cell axis lengths is close to a multiple of one of the others. Use with \fBdirax\fR and \fBmosflm\fR. -.IP \fBcompare\fR -.PD -The cell will be checked for correspondence after only a simple permutation of the axes. This is useful when the target cell is subject to reticular twinning, such as if one cell axis length is close to twice another. With \fB--cell-reduction=reduce\fR there would be a possibility that the axes might be confused in this situation. This happens for lysozyme (1VDS), so watch out. +.IP \fB-bad\fR +Do not check that the cell accounts for any of the peaks as described in \fBdirax\fR above. Might be useful to debug initial indexing problems, or if there are many multi-crystal patterns and the indexing method has no concept of multiple crystals per pattern (which, at the moment, means all of them). Can be used with any indexing method. .PP -The tolerance for matching with \fBreduce\fR and \fBcompare\fR can be set using \fB--tolerance=\fR\fIa,b,c,angl\fR \- see below for more details. Cells from these reduction routines are further constrained to be right-handed, but no such constraint will be applied if you use \fB--cell-reduction=none\fR. Always using a right-handed cell means that the Bijvoet pairs can be told apart. +The default indexing method is 'none', which means no indexing will be done. This is useful if you just want to check that the peak detection is working properly. -.PP -If the unit cell is centered (i.e. if the space group begins with I, F, H, A, B, C), you should be careful when using "compare" for the cell reduction, since (for example) DirAx will always find a primitive unit cell, and this cell must be converted to the non-primitive conventional cell from the PDB. +Examples of indexing methods: 'dirax,mosflm,reax', 'dirax-raw,mosflm-raw', 'dirax-raw-bad'. -.PP -The default is \fB--cell-reduction=none\fR. .SH PEAK INTEGRATION -If the pattern could be successfully indexed and the cell reduction gave a -positive match, peaks will be predicted in the pattern and their intensities +If the pattern could be successfully indexed, peaks will be predicted in the pattern and their intensities measured. The peak integration relies on knowing an accurate radius to integrate the peak within, and that the annulus used to estimate the background level is not so big that that it covers neighbouring peaks. However, @@ -178,11 +137,6 @@ Find peaks in the images using \fImethod\fR. See the second titled \fBPEAK DETE .PD Index the patterns using \fImethod\fR. See the section titled \fBINDEXING METHODS\fR (above) for more information. -.PD 0 -.IP \fB--cell-reduction=\fR\fImethod\fR -.PD -Use \fImethod\fR for unit cell reduction. See the section titled \fBCELL REDUCTION\fR (above) for more information. - .PD 0 .IP "\fB-g\fR \fIfilename\fR" .IP \fB--geometry=\fR\fIfilename\fR @@ -235,7 +189,7 @@ When using \fB--peaks=hdf5\fR, read the peak locations from a table in the HDF5 .PD 0 .IP \fB--tolerance=\fR\fItol\fR .PD -Set the tolerances for unit cell comparison. \fItol\fR takes the form \fIa\fR,\fIb\fR,\fIc\fR,\fIang\fR. \fIa\fR, \fIb\fR and \fIc\fR are the tolerances, in percent, for the respective direct space axes when using \fBcompare\fR or \fBcompare_ab\fR for cell reduction (see above). \fIang\fR is the tolerance in degrees for the angles. They represent the respective \fIreciprocal\fR space parameters when using \fB--cell-reduction=reduce\fR. +Set the tolerances for unit cell comparison. \fItol\fR takes the form \fIa\fR,\fIb\fR,\fIc\fR,\fIang\fR. \fIa\fR, \fIb\fR and \fIc\fR are the tolerances, in percent, for the respective direct space axes when using \fB-axes\fR in the indexing method (see below). \fIang\fR is the tolerance in degrees for the angles. When \fBnot\fR using \fB-axes\fR, they represent the respective \fIreciprocal\fR space parameters. Sorry for the horrifying inconsistency. .PD The default is \fB--tolerance=5,5,5,1.5\fR. @@ -308,11 +262,6 @@ This is the opposite of \fB--closer-peak\fR, and is provided for compatibility with old scripts because this option selects the behaviour which is now the default. -.PD 0 -.IP \fB--insane\fR -.PD -Normally, indexamajig will check that the projected reciprocal space positions of peaks found by the peak detection are close to reciprocal lattice points. This option disables this check, and normally is \fInot\fR a good idea. - .PD 0 .IP \fB--no-bg-sub\fR .PD @@ -353,7 +302,7 @@ This page was written by Thomas White. Report bugs to , or visit . .SH COPYRIGHT AND DISCLAIMER -Copyright © 2012 Deutsches Elektronen-Synchrotron DESY, a research centre of the Helmholtz Association. +Copyright © 2012-2013 Deutsches Elektronen-Synchrotron DESY, a research centre of the Helmholtz Association. .P indexamajig, and this manual, are part of CrystFEL. .P -- cgit v1.2.3 From 8907b7cb333a893720cac1def3d86dbe26600fa8 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sat, 9 Feb 2013 10:18:48 -0800 Subject: Clarify lattice type information --- doc/man/indexamajig.1 | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 7f44605f..b17602e6 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -83,8 +83,13 @@ Do not check the resulting unit cell. This option is useful when you need to de Check permutations of the axes for correspondence with your cell, but do not check linear combinations. This is useful to avoid a potential problem when one of the unit cell axis lengths is close to a multiple of one of the others. Use with \fBdirax\fR and \fBmosflm\fR. .IP \fB-bad\fR +.PD Do not check that the cell accounts for any of the peaks as described in \fBdirax\fR above. Might be useful to debug initial indexing problems, or if there are many multi-crystal patterns and the indexing method has no concept of multiple crystals per pattern (which, at the moment, means all of them). Can be used with any indexing method. +.IP \fB-nolatt\fR +.PD +Do not use the lattice type information from the PDB file to help guide the indexing. Use with \fBmosflm\fR, which is the only indexing method which can take advantage of this information. + .PP The default indexing method is 'none', which means no indexing will be done. This is useful if you just want to check that the peak detection is working properly. -- cgit v1.2.3 From 6ccc117d5fbcba725ddc1ff67620452b41bd442c Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 15 Feb 2013 10:46:44 +0100 Subject: Update docs --- doc/man/indexamajig.1 | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index b17602e6..1c525ad6 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -61,38 +61,49 @@ You can choose between a variety of indexing methods. You can choose more than .IP \fBdirax\fR .PD - Invoke DirAx, check linear combinations of the resulting cell axes for agreement with your cell, and then check that the cell accounts for at least half of the peaks from the peak search. +Invoke DirAx, check linear combinations of the resulting cell axes for agreement with your cell, and then check that the cell accounts for at least half of the peaks from the peak search. .IP \fBmosflm\fR .PD -As \fBdirax\fR, but invoke MOSFLM instead. If you provide a PDB file (with \fB-p\fR), the lattice type and centering information will be passed to MOSFLM, which will then return solutions which match. Note that the lattice parameter information will \fBnot\fR be given to MOSFLM. +As \fBdirax\fR, but invoke MOSFLM instead. If you provide a PDB file (with \fB-p\fR), the lattice type and centering information will be passed to MOSFLM, which will then return solutions which match. Note that the lattice parameter information will \fBnot\fR be given to MOSFLM, because it has no way to make use of it. .IP \fBreax\fR .PD Run the DPS algorithm, looking for the axes of your cell. .PP -You can add the following to the above indexing methods: +You can add one or more of the following to the above indexing methods: .IP \fB-raw\fR .PD -Do not check the resulting unit cell. This option is useful when you need to determine the unit cell ab initio. Use with 'dirax' and 'mosflm' - the other indexing methods need the unit cell as input in any case, and cannot determine the unit cell ab initio. +Do not check the resulting unit cell. This option is useful when you need to determine the unit cell ab initio. Use with 'dirax' and 'mosflm' - the other indexing methods need the unit cell as input in any case, and cannot determine the unit cell ab initio. See \fB-comb\fR and \fB-axes\fR. .IP \fB-axes\fR .PD -Check permutations of the axes for correspondence with your cell, but do not check linear combinations. This is useful to avoid a potential problem when one of the unit cell axis lengths is close to a multiple of one of the others. Use with \fBdirax\fR and \fBmosflm\fR. +Check permutations of the axes for correspondence with your cell, but do not check linear combinations. This is useful to avoid a potential problem when one of the unit cell axis lengths is close to a multiple of one of the others. Can be used with \fBdirax\fR and \fBmosflm\fR. See \fB-raw\fR and \fB-comb\fR. + +.IP \fB-comb\fR +.PD +Check linear combinations of the unit cell basis vectors to see if a cell can be produced which looks like your unit cell. This is the default behaviour for \fBdirax\fR and \fBmosflm\fR. See \fB-raw\fR and \fB-axes\fR. .IP \fB-bad\fR .PD -Do not check that the cell accounts for any of the peaks as described in \fBdirax\fR above. Might be useful to debug initial indexing problems, or if there are many multi-crystal patterns and the indexing method has no concept of multiple crystals per pattern (which, at the moment, means all of them). Can be used with any indexing method. +Do not check that the cell accounts for any of the peaks as described in \fBdirax\fR above. Might be useful to debug initial indexing problems, or if there are many multi-crystal patterns and the indexing method has no concept of multiple crystals per pattern (which, at the moment, means all of them). Can be used with any indexing method, but is generally a bad idea. .IP \fB-nolatt\fR .PD -Do not use the lattice type information from the PDB file to help guide the indexing. Use with \fBmosflm\fR, which is the only indexing method which can take advantage of this information. +Do not use the lattice type information from the PDB file to help guide the indexing. Use with \fBmosflm\fR, which is the only indexing method which can optionally take advantage of this information. This is the default behaviour for \fBdirax\fR. This option makes no sense for \fBreax\fR, which is intrinsically based on using known lattice information. + +.IP \fB-latt\fR +.PD +This is the opposite of \fB-nolatt\fR, and is the default behaviour for \fBmosflm\fR and \fBreax\fR. .PP The default indexing method is 'none', which means no indexing will be done. This is useful if you just want to check that the peak detection is working properly. +.PP +Your indexing methods will be checked for validity, incompatible flags removed, and warnings given about duplicates. For example, \fBmosflm\fR and \fBmosflm-comb-latt\fR represent the same indexing method, because \fB-comb\fR and \fB-latt\fR are the default behaviour for \fBmosflm\fR. The 'long version' of each of your indexing methods will be listed in the output, and the stream will contain a record of which indexing method successfully indexed each pattern. + Examples of indexing methods: 'dirax,mosflm,reax', 'dirax-raw,mosflm-raw', 'dirax-raw-bad'. -- cgit v1.2.3 From 51d15260fcadeccb9be481ff9807d023e05d4c6d Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 15 Feb 2013 11:55:54 +0100 Subject: Add a small warning to the docs --- doc/man/indexamajig.1 | 3 +++ 1 file changed, 3 insertions(+) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 1c525ad6..2f06d8d3 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -104,6 +104,9 @@ The default indexing method is 'none', which means no indexing will be done. Th .PP Your indexing methods will be checked for validity, incompatible flags removed, and warnings given about duplicates. For example, \fBmosflm\fR and \fBmosflm-comb-latt\fR represent the same indexing method, because \fB-comb\fR and \fB-latt\fR are the default behaviour for \fBmosflm\fR. The 'long version' of each of your indexing methods will be listed in the output, and the stream will contain a record of which indexing method successfully indexed each pattern. +.PP +It's risky to use \fBmosflm-nolatt\fR in conjunction with either \fB-comb\fR or \fB-axes\fR when you have a rhombohedral cell. This would be an odd thing to do anyway: why withhold the lattice information from MOSFLM if you know what it is, and want to use it to check the result? It's risky because MOSFLM will by default return the "H centered" lattice for your rhombohedral cell, and it's not completely certain that MOSFLM consistently uses one or other of the two possible conventions for the relationship between the "H" and "R" cells. It is, however, very likely that it does. + Examples of indexing methods: 'dirax,mosflm,reax', 'dirax-raw,mosflm-raw', 'dirax-raw-bad'. -- cgit v1.2.3 From bca26df2b4ad88b56752d62a19b289946f262f94 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 18 Feb 2013 09:25:29 +0100 Subject: Whoops: what was labelled as "gradient" was actually "squared gradient" --- doc/man/indexamajig.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 2f06d8d3..11da2445 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -48,7 +48,7 @@ See \fBman crystfel_geometry\fR for information about how to create a geometry d You can control the peak detection on the command line. Firstly, you can choose the peak detection method using \fB--peaks=\fR\fImethod\fR. Currently, two values for "method" are available. \fB--peaks=hdf5\fR will take the peak locations from the HDF5 file. It expects a two dimensional array at where size in the first dimension is the number of peaks and the size in the second dimension is three. The first two columns contain the fast scan and slow scan coordinates, the third contains the intensity. However, the intensity will be ignored since the pattern will always be re-integrated using the unit cell provided by the indexer on the basis of the peaks. You can tell indexamajig where to find this table inside each HDF5 file using \fB--hdf5-peaks=\fR\fIpath\fR. -If you use \fB--peaks=zaef\fR, indexamajig will use a simple gradient search after Zaefferer (2000). You can control the overall threshold and minimum gradient for finding a peak using \fB--threshold\fR and \fB--min-gradient\fR. Both of these have arbitrary units matching the pixel values in the data. +If you use \fB--peaks=zaef\fR, indexamajig will use a simple gradient search after Zaefferer (2000). You can control the overall threshold and minimum squared gradient for finding a peak using \fB--threshold\fR and \fB--min-gradient\fR. The threshold has arbitrary units matching the pixel values in the data, and the minimum gradient has the equivalent squared units. Peaks will be rejected if the 'foot point' is further away from the 'summit' of the peak by more than the inner integration radius (see below). They will also be rejected if the peak is closer than twice the inner integration radius from another peak. -- cgit v1.2.3 From 672b01c166b8fa015750379a3e86176495cbebf5 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 18 Feb 2013 10:54:20 +0100 Subject: indexamajig: Remove --verbose option This hasn't done anything at all since the new indexing subsystem, and hasn't done anything useful for a lot longer. --- doc/man/indexamajig.1 | 5 ----- 1 file changed, 5 deletions(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 11da2445..91352f3e 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -252,11 +252,6 @@ Set the minimum I/sigma(I) for a peak to be integrated successfully. The defaul .PD Copy the information from \fIpath\fR in the HDF5 file into the output stream. The information must be a single scalar value. This option is sometimes useful to allow data to be separated after indexing according to some condition such the presence of an optical pump pulse. You can give this option as many times as you need to copy multiple bits of information. -.PD 0 -.IP \fB--verbose\fR -.PD -Be more verbose about indexing. - .PD 0 .IP "\fB-j\fR \fIn\fR" .PD -- cgit v1.2.3 From e7866b44c0704bc76a2bed2c0f8950797a6055f5 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 18 Feb 2013 11:35:36 +0100 Subject: Use a different folder for each worker process --- doc/man/indexamajig.1 | 4 ---- 1 file changed, 4 deletions(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 91352f3e..c3f1adac 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -303,10 +303,6 @@ When using \fB--peaks=hdf5\fR, the peaks will be put through the same checks as Without this option, peaks will be predicted in each pattern based on the crystal orientation from autoindexing and the parameters in the beam description file. With this option, indices will be assigned to the peaks found by the peak search, and the positions of those peaks used for the final integration stage. .SH BUGS -Don't run more than one indexamajig jobs simultaneously in the same working -directory - they'll overwrite each other's DirAx or MOSFLM files, causing subtle -problems which can't easily be detected. -.PP ReAx indexing is experimental. It works very nicely for some people, and crashes for others. In a future version, it will be improved and fully supported. .SH AUTHOR -- cgit v1.2.3 From a0f4c1506f1d7c1ad942bcccd30d3aaf0cd75bd4 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 18 Feb 2013 12:14:46 +0100 Subject: Update docs --- doc/man/indexamajig.1 | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index c3f1adac..91474156 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -62,15 +62,25 @@ You can choose between a variety of indexing methods. You can choose more than .IP \fBdirax\fR .PD Invoke DirAx, check linear combinations of the resulting cell axes for agreement with your cell, and then check that the cell accounts for at least half of the peaks from the peak search. +.sp +To use this option, 'dirax' must be in your shell's search path. If you see the DirAx version and copyright information when you run \fBdirax\fR on the command line, things are set up correctly. .IP \fBmosflm\fR .PD As \fBdirax\fR, but invoke MOSFLM instead. If you provide a PDB file (with \fB-p\fR), the lattice type and centering information will be passed to MOSFLM, which will then return solutions which match. Note that the lattice parameter information will \fBnot\fR be given to MOSFLM, because it has no way to make use of it. +.sp +To use this option, 'ipmosflm' must be in your shell's search path. If you see the MOSFLM version and copyright information when you run \fBipmosflm\fR on the command line, things are set up correctly. .IP \fBreax\fR .PD Run the DPS algorithm, looking for the axes of your cell. +.IP \fBgrainspotter\fR +.PD +Invoke GrainSpotter, which will use your cell parameters to find multiple crystals in each pattern. +.sp +To use this option, 'GrainSpotter.0.93' must be in your shell's search path. If you see the GrainSpotter version information when you run \fBGrainSpotter.0.93\fR on the command line, things are set up correctly. + .PP You can add one or more of the following to the above indexing methods: -- cgit v1.2.3 From 59b99486be3865a53049d0c6317157d9f22bc0e1 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 19 Feb 2013 18:13:13 +0100 Subject: Add -cell and -nocell to indexing methods --- doc/man/indexamajig.1 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 91474156..1195d417 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -81,6 +81,10 @@ Invoke GrainSpotter, which will use your cell parameters to find multiple crysta .sp To use this option, 'GrainSpotter.0.93' must be in your shell's search path. If you see the GrainSpotter version information when you run \fBGrainSpotter.0.93\fR on the command line, things are set up correctly. +.IP \fBxds\fR +.PD +Invoke XDS, and use its REFIDX procedure to attempt to index the pattern. + .PP You can add one or more of the following to the above indexing methods: @@ -106,7 +110,15 @@ Do not use the lattice type information from the PDB file to help guide the inde .IP \fB-latt\fR .PD -This is the opposite of \fB-nolatt\fR, and is the default behaviour for \fBmosflm\fR and \fBreax\fR. +This is the opposite of \fB-nolatt\fR, and is the default behaviour for \fBmosflm\fR, \fBxds\fR and \fBgrainspotter\fR. It is the only behaviour for \fBreax\fR. + +.IP \fB-cell\fR +.PD +Provide your unit cell parameters to the indexing algorithm. This is the default for \fBxds\fR and \fBgrainspotter\fR, and the only behaviour for \fBreax\fR. This option makes no sense for \fBdirax\fR and \fBmosflm\fR, neither of which can make use of this information. + +.IP \fB-nocell\fR +.PD +Do not provide your unit cell parameters to the indexing algorithm. This is the only behaviour for \fBmosflm\fR and \fBdirax\fR, both of which cannot make use of the information. Can be used with \fBgrainspotter\fR and \fBxds\fR, and makes no sense for \fBreax\fR, which is intrinsically based on using known cell parameters. .PP The default indexing method is 'none', which means no indexing will be done. This is useful if you just want to check that the peak detection is working properly. -- cgit v1.2.3 From 86f0167583e78e083f69b0c010da64bf60b74c27 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 22 Feb 2013 11:57:41 +0100 Subject: Update docs --- doc/man/indexamajig.1 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/man/indexamajig.1 b/doc/man/indexamajig.1 index 1195d417..8a41e054 100644 --- a/doc/man/indexamajig.1 +++ b/doc/man/indexamajig.1 @@ -303,7 +303,6 @@ default. .PD Don't subtract local background estimates from integrated intensities. This is almost never useful, but might help to detect problems from troublesome background noise. - .PD 0 .IP \fB--use-saturated\fR .PD @@ -324,6 +323,16 @@ When using \fB--peaks=hdf5\fR, the peaks will be put through the same checks as .PD Without this option, peaks will be predicted in each pattern based on the crystal orientation from autoindexing and the parameters in the beam description file. With this option, indices will be assigned to the peaks found by the peak search, and the positions of those peaks used for the final integration stage. +.PD 0 +.IP \fB--no-peaks-in-stream\fR +.PD +Do not record peak search results in the stream. You won't be able to check that the peak detection was any good, but the stream will be around 30% smaller. + +.PD 0 +.IP \fB--no-refls-in-stream\fR +.PD +Do not record integrated reflections in the stream. The resulting output won't be usable for merging, but will be a lot smaller. This option might be useful if you're only interested in things like unit cell parameters and orientations. + .SH BUGS ReAx indexing is experimental. It works very nicely for some people, and crashes for others. In a future version, it will be improved and fully supported. -- cgit v1.2.3 From ed6bf4edb2abd89188cdd38911473dadc194a7f9 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 1 Mar 2013 14:15:10 +0100 Subject: Use gtk-doc for libcrystfel only (not the contents of src) --- doc/reference/CrystFEL-docs.sgml | 106 ------- doc/reference/CrystFEL-sections.txt | 329 --------------------- doc/reference/Makefile.am | 102 ------- doc/reference/libcrystfel/CrystFEL-docs.sgml | 106 +++++++ doc/reference/libcrystfel/CrystFEL-sections.txt | 329 +++++++++++++++++++++ doc/reference/libcrystfel/Makefile.am | 102 +++++++ doc/reference/libcrystfel/xml/coding-standards.xml | 157 ++++++++++ doc/reference/xml/coding-standards.xml | 157 ---------- 8 files changed, 694 insertions(+), 694 deletions(-) delete mode 100644 doc/reference/CrystFEL-docs.sgml delete mode 100644 doc/reference/CrystFEL-sections.txt delete mode 100644 doc/reference/Makefile.am create mode 100644 doc/reference/libcrystfel/CrystFEL-docs.sgml create mode 100644 doc/reference/libcrystfel/CrystFEL-sections.txt create mode 100644 doc/reference/libcrystfel/Makefile.am create mode 100644 doc/reference/libcrystfel/xml/coding-standards.xml delete mode 100644 doc/reference/xml/coding-standards.xml (limited to 'doc') diff --git a/doc/reference/CrystFEL-docs.sgml b/doc/reference/CrystFEL-docs.sgml deleted file mode 100644 index 4e6cc877..00000000 --- a/doc/reference/CrystFEL-docs.sgml +++ /dev/null @@ -1,106 +0,0 @@ - - -]> - - - CrystFEL Reference Manual - - For libcrystfel from CrystFEL 0.4.3. - - - This is the internal documentation for CrystFEL. Unless you are looking at - the code, writing new programs or fixing bugs, you should not need to read - this. You might use the information here when reading the code or to better - understand how the software works, or refer to it when creating a new - program within the suite. - - - - - Images - - - - - Handling reflection data - There are three main reflection list thingies. - - - - - - Unit cells - - - - - - Crystals - - - - - Statistics and R-factors - - - - - Symmetry - - - - - Integer Matrices - - - - - Indexing - - - - - Detector - - - - - HDF5 - - - - - Stream - - - - - Render - - - - - Parallel programming - - - - - Miscellaneous - - - - - - Information for developers - - - - - API Index - - - - diff --git a/doc/reference/CrystFEL-sections.txt b/doc/reference/CrystFEL-sections.txt deleted file mode 100644 index 5df1f2d5..00000000 --- a/doc/reference/CrystFEL-sections.txt +++ /dev/null @@ -1,329 +0,0 @@ -
-reflist -RefList -Reflection -RefListIterator - -reflist_new -reflist_free -reflection_new -reflection_free - -add_refl -add_refl_to_list - -first_refl -next_refl - -find_refl -next_found_refl - -get_excitation_error -get_detector_pos -get_partiality -get_indices -get_symmetric_indices -get_intensity -get_partial -get_scalable -get_refinable -get_redundancy -get_esd_intensity -get_phase -get_temp1 -get_temp2 - -set_detector_pos -set_partial -set_intensity -set_scalable -set_refinable -set_redundancy -set_esd_intensity -set_phase -set_symmetric_indices -set_temp1 -set_temp2 - -copy_data -num_reflections -tree_depth -lock_reflection -unlock_reflection -
- -
-reflist-utils -write_reflist -write_reflections_to_file -read_reflections -read_reflections_from_file -asymmetric_indices -res_cutoff -check_list_symmetry -copy_reflist -find_equiv_in_list -
- -
-unitcell -UnitCell -LatticeType -UnitCellTransformation - -cell_new -cell_new_from_cell -cell_new_from_direct_axes -cell_new_from_parameters -cell_new_from_reciprocal_axes -cell_free - -cell_get_cartesian -cell_get_parameters -cell_get_pointgroup -cell_get_reciprocal -cell_get_centering -cell_get_lattice_type -cell_get_unique_axis - -cell_set_cartesian -cell_set_cartesian_a -cell_set_cartesian_b -cell_set_cartesian_c -cell_set_parameters -cell_set_pointgroup -cell_set_reciprocal -cell_set_centering -cell_set_lattice_type -cell_set_unique_axis - -cell_transform -cell_transform_inverse -tfn_combine -tfn_identity -tfn_from_intmat -tfn_inverse -tfn_print -tfn_vector -tfn_free - - -cell_rep -
- -
-cell-utils -cell_rotate -rotate_cell -cell_print -resolution -match_cell -match_cell_ab -cell_is_sensible -validate_cell -uncenter_cell -bravais_lattice -right_handed -str_lattice -forbidden_reflection -load_cell_from_pdb -
- -
-utils -show_matrix_eqn -AssplodeFlag -C_VACUO -ELECTRON_CHARGE -ERROR -J_to_eV -PLANCK -STATUS -THOMSON_LENGTH -assplode -biggest -check_prefix -chomp -deg2rad -eV_to_J -gaussian_noise -safe_basename -progress_bar -rad2deg -is_odd -poisson_noise -notrail -smallest -ph_en_to_lambda -ph_lambda_to_en -
- -
-quaternion -quaternion - -quaternion_modulus -normalise_quaternion -random_quaternion -quaternion_valid -quat_rot -
- -
-image -image -ImageFeatureList -image_add_feature -image_feature_closest -image_feature_count -image_feature_list_free -image_feature_list_new -image_get_feature -image_remove_feature -
- -
-thread-pool -TPGetTaskFunc -TPWorkFunc -TPFinalFunc - -run_threads -
- -
-statistics -stat_pearson_f_ignore -stat_pearson_f_zero -stat_pearson_i -stat_r1_i -stat_r1_ignore -stat_r1_zero -stat_r2 -stat_rdiff_ignore -stat_rdiff_intensity -stat_rdiff_zero -stat_scale_intensity -
- -
-indexing -IndexingMethod -IndexingPrivate -MAX_CELL_CANDIDATES -build_indexer_list -cleanup_indexing -prepare_indexing -index_pattern -run_dirax -run_mosflm -map_all_peaks -
- -
-symmetry -SymOpList -SymOpMask - -free_symoplist -num_equivs -get_pointgroup -get_equiv -special_position -get_asymm -get_ambiguities -is_subgroup - -new_symopmask -free_symopmask - -describe_symmetry -symmetry_name -is_centrosymmetric -
- -
-integer_matrix -IntegerMatrix - -intmat_new -intmat_copy -intmat_free - -intmat_get -intmat_set - -intmat_intmat_mult -intmat_intvec_mult -intmat_det -intmat_inverse - -intmat_equals -intmat_is_identity -intmat_is_inversion - -intmat_print -
- -
-detector -copy_geom -fill_in_values -free_detector_geometry -get_detector_geometry -write_detector_geometry -find_panel -find_panel_by_name -find_panel_number -simple_geometry -record_image -get_pixel_extents -get_q -get_q_for_panel -get_tt -smallest_q -reverse_2d_mapping -largest_q -
- -
-crystal -Crystal -crystal_new -crystal_free -
- -
-hdf5-file -hdf5_read -hdf5_write -hdfile -hdfile_close -hdfile_get_image_binned -hdfile_get_string_value -hdfile_open -hdfile_read_group -hdfile_set_first_image -hdfile_set_image -
- -
-stream -parse_stream_flags -read_chunk -write_chunk -write_stream_header -skip_some_files -is_stream -get_value -count_patterns -
- -
-render -render_get_colour_scale -render_panels -render_scale -render_tiff_fp -render_tiff_int16 -
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am deleted file mode 100644 index 3b03513d..00000000 --- a/doc/reference/Makefile.am +++ /dev/null @@ -1,102 +0,0 @@ -## Process this file with automake to produce Makefile.in - -# We require automake 1.6 at least. -AUTOMAKE_OPTIONS = 1.6 - -# This is a blank Makefile.am for using gtk-doc. -# Copy this to your project's API docs directory and modify the variables to -# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples -# of using the various options. - -# The name of the module, e.g. 'glib'. -DOC_MODULE=CrystFEL - -# Uncomment for versioned docs and specify the version of the module, e.g. '2'. -#DOC_MODULE_VERSION=2 - - -# The top-level SGML file. You can change this if you want to. -DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml - -# Directories containing the source code, relative to $(srcdir). -# gtk-doc will search all .c and .h files beneath these paths -# for inline comments documenting functions and macros. -# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk -DOC_SOURCE_DIR=../../libcrystfel/src ../../src - -# Extra options to pass to gtkdoc-scangobj. Not normally needed. -SCANGOBJ_OPTIONS= - -# Extra options to supply to gtkdoc-scan. -# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" -SCAN_OPTIONS= - -# Extra options to supply to gtkdoc-mkdb. -# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml -MKDB_OPTIONS=--sgml-mode --output-format=xml - -# Extra options to supply to gtkdoc-mktmpl -# e.g. MKTMPL_OPTIONS=--only-section-tmpl -MKTMPL_OPTIONS= - -# Extra options to supply to gtkdoc-mkhtml -MKHTML_OPTIONS= - -# Extra options to supply to gtkdoc-fixref. Not normally needed. -# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html -FIXXREF_OPTIONS= - -# Used for dependencies. The docs will be rebuilt if any of these change. -# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h -# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c -HFILE_GLOB=$(top_srcdir)/libcrystfel/src/*.h -CFILE_GLOB=$(top_srcdir)/libcrystfel/src/*.c - -# Extra header to include when scanning, which are not under DOC_SOURCE_DIR -# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h -EXTRA_HFILES= - -# Header files to ignore when scanning. Use base file name, no paths -# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h -IGNORE_HFILES= - -# Images to copy into HTML directory. -# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png -HTML_IMAGES= - -# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). -# e.g. content_files=running.sgml building.sgml changes-2.0.sgml -content_files= - -# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded -# These files must be listed here *and* in content_files -# e.g. expand_content_files=running.sgml -expand_content_files= - -# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. -# Only needed if you are using gtkdoc-scangobj to dynamically query widget -# signals and properties. -# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) -# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) -GTKDOC_CFLAGS= -GTKDOC_LIBS= - -# This includes the standard gtk-doc make rules, copied by gtkdocize. -include $(top_srcdir)/gtk-doc.make - -# Other files to distribute -# e.g. EXTRA_DIST += version.xml.in -EXTRA_DIST += - -# Files not to distribute -# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types -# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt -#DISTCLEANFILES += - -# Comment this out if you want your docs-status tested during 'make check' -#if ENABLE_GTK_DOC -#TESTS_ENVIRONMENT = cd $(srcsrc) && -#TESTS = $(GTKDOC_CHECK) -#endif - --include $(top_srcdir)/git.mk diff --git a/doc/reference/libcrystfel/CrystFEL-docs.sgml b/doc/reference/libcrystfel/CrystFEL-docs.sgml new file mode 100644 index 00000000..4e6cc877 --- /dev/null +++ b/doc/reference/libcrystfel/CrystFEL-docs.sgml @@ -0,0 +1,106 @@ + + +]> + + + CrystFEL Reference Manual + + For libcrystfel from CrystFEL 0.4.3. + + + This is the internal documentation for CrystFEL. Unless you are looking at + the code, writing new programs or fixing bugs, you should not need to read + this. You might use the information here when reading the code or to better + understand how the software works, or refer to it when creating a new + program within the suite. + + + + + Images + + + + + Handling reflection data + There are three main reflection list thingies. + + + + + + Unit cells + + + + + + Crystals + + + + + Statistics and R-factors + + + + + Symmetry + + + + + Integer Matrices + + + + + Indexing + + + + + Detector + + + + + HDF5 + + + + + Stream + + + + + Render + + + + + Parallel programming + + + + + Miscellaneous + + + + + + Information for developers + + + + + API Index + + + + diff --git a/doc/reference/libcrystfel/CrystFEL-sections.txt b/doc/reference/libcrystfel/CrystFEL-sections.txt new file mode 100644 index 00000000..5df1f2d5 --- /dev/null +++ b/doc/reference/libcrystfel/CrystFEL-sections.txt @@ -0,0 +1,329 @@ +
+reflist +RefList +Reflection +RefListIterator + +reflist_new +reflist_free +reflection_new +reflection_free + +add_refl +add_refl_to_list + +first_refl +next_refl + +find_refl +next_found_refl + +get_excitation_error +get_detector_pos +get_partiality +get_indices +get_symmetric_indices +get_intensity +get_partial +get_scalable +get_refinable +get_redundancy +get_esd_intensity +get_phase +get_temp1 +get_temp2 + +set_detector_pos +set_partial +set_intensity +set_scalable +set_refinable +set_redundancy +set_esd_intensity +set_phase +set_symmetric_indices +set_temp1 +set_temp2 + +copy_data +num_reflections +tree_depth +lock_reflection +unlock_reflection +
+ +
+reflist-utils +write_reflist +write_reflections_to_file +read_reflections +read_reflections_from_file +asymmetric_indices +res_cutoff +check_list_symmetry +copy_reflist +find_equiv_in_list +
+ +
+unitcell +UnitCell +LatticeType +UnitCellTransformation + +cell_new +cell_new_from_cell +cell_new_from_direct_axes +cell_new_from_parameters +cell_new_from_reciprocal_axes +cell_free + +cell_get_cartesian +cell_get_parameters +cell_get_pointgroup +cell_get_reciprocal +cell_get_centering +cell_get_lattice_type +cell_get_unique_axis + +cell_set_cartesian +cell_set_cartesian_a +cell_set_cartesian_b +cell_set_cartesian_c +cell_set_parameters +cell_set_pointgroup +cell_set_reciprocal +cell_set_centering +cell_set_lattice_type +cell_set_unique_axis + +cell_transform +cell_transform_inverse +tfn_combine +tfn_identity +tfn_from_intmat +tfn_inverse +tfn_print +tfn_vector +tfn_free + + +cell_rep +
+ +
+cell-utils +cell_rotate +rotate_cell +cell_print +resolution +match_cell +match_cell_ab +cell_is_sensible +validate_cell +uncenter_cell +bravais_lattice +right_handed +str_lattice +forbidden_reflection +load_cell_from_pdb +
+ +
+utils +show_matrix_eqn +AssplodeFlag +C_VACUO +ELECTRON_CHARGE +ERROR +J_to_eV +PLANCK +STATUS +THOMSON_LENGTH +assplode +biggest +check_prefix +chomp +deg2rad +eV_to_J +gaussian_noise +safe_basename +progress_bar +rad2deg +is_odd +poisson_noise +notrail +smallest +ph_en_to_lambda +ph_lambda_to_en +
+ +
+quaternion +quaternion + +quaternion_modulus +normalise_quaternion +random_quaternion +quaternion_valid +quat_rot +
+ +
+image +image +ImageFeatureList +image_add_feature +image_feature_closest +image_feature_count +image_feature_list_free +image_feature_list_new +image_get_feature +image_remove_feature +
+ +
+thread-pool +TPGetTaskFunc +TPWorkFunc +TPFinalFunc + +run_threads +
+ +
+statistics +stat_pearson_f_ignore +stat_pearson_f_zero +stat_pearson_i +stat_r1_i +stat_r1_ignore +stat_r1_zero +stat_r2 +stat_rdiff_ignore +stat_rdiff_intensity +stat_rdiff_zero +stat_scale_intensity +
+ +
+indexing +IndexingMethod +IndexingPrivate +MAX_CELL_CANDIDATES +build_indexer_list +cleanup_indexing +prepare_indexing +index_pattern +run_dirax +run_mosflm +map_all_peaks +
+ +
+symmetry +SymOpList +SymOpMask + +free_symoplist +num_equivs +get_pointgroup +get_equiv +special_position +get_asymm +get_ambiguities +is_subgroup + +new_symopmask +free_symopmask + +describe_symmetry +symmetry_name +is_centrosymmetric +
+ +
+integer_matrix +IntegerMatrix + +intmat_new +intmat_copy +intmat_free + +intmat_get +intmat_set + +intmat_intmat_mult +intmat_intvec_mult +intmat_det +intmat_inverse + +intmat_equals +intmat_is_identity +intmat_is_inversion + +intmat_print +
+ +
+detector +copy_geom +fill_in_values +free_detector_geometry +get_detector_geometry +write_detector_geometry +find_panel +find_panel_by_name +find_panel_number +simple_geometry +record_image +get_pixel_extents +get_q +get_q_for_panel +get_tt +smallest_q +reverse_2d_mapping +largest_q +
+ +
+crystal +Crystal +crystal_new +crystal_free +
+ +
+hdf5-file +hdf5_read +hdf5_write +hdfile +hdfile_close +hdfile_get_image_binned +hdfile_get_string_value +hdfile_open +hdfile_read_group +hdfile_set_first_image +hdfile_set_image +
+ +
+stream +parse_stream_flags +read_chunk +write_chunk +write_stream_header +skip_some_files +is_stream +get_value +count_patterns +
+ +
+render +render_get_colour_scale +render_panels +render_scale +render_tiff_fp +render_tiff_int16 +
diff --git a/doc/reference/libcrystfel/Makefile.am b/doc/reference/libcrystfel/Makefile.am new file mode 100644 index 00000000..e4f49b03 --- /dev/null +++ b/doc/reference/libcrystfel/Makefile.am @@ -0,0 +1,102 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=CrystFEL + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# Directories containing the source code, relative to $(srcdir). +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk +DOC_SOURCE_DIR=../../../libcrystfel/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS= + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS=--sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/libcrystfel/src/*.h +CFILE_GLOB=$(top_srcdir)/libcrystfel/src/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files to ignore when scanning. Use base file name, no paths +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES= + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS= +GTKDOC_LIBS= + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want your docs-status tested during 'make check' +#if ENABLE_GTK_DOC +#TESTS_ENVIRONMENT = cd $(srcsrc) && +#TESTS = $(GTKDOC_CHECK) +#endif + +-include $(top_srcdir)/git.mk diff --git a/doc/reference/libcrystfel/xml/coding-standards.xml b/doc/reference/libcrystfel/xml/coding-standards.xml new file mode 100644 index 00000000..d51ba293 --- /dev/null +++ b/doc/reference/libcrystfel/xml/coding-standards.xml @@ -0,0 +1,157 @@ + + +]> + + +CrystFEL coding standards +3 + + Coding standards + + + + + + +Summary + +This page documents the coding conventions used within the CrystFEL source code. Read these to help when reading the code or before making modifications destined to be sent upstream. + + + + + +Licensing and copyright + +CrystFEL is distributed under the terms of the GNU General Public License version 3 or higher. Contributions are very welcome provided they also use this license. + + +Whenever you edit a source file, don't forget to update the copyright dates at the top. Add your name and email address if they're not there already. Be sure to add your name to the 'AUTHORS' file in the top level folder, as well. + + + + + +Formatting + +Indentation is done with tabs and +alignment is done with spaces. This way, the code looks +neat whatever width you configure your editor to display tabs as. This means, +for example: + + + +struct something +{ + int thing; /* <--- spaces used to align comments */ + int thing_with_longer_name; /* <--- spaces used to align comments */ +} + +void somefunction(int something) +{ + /* <--- Tab character used at the start of this line */ +} + + + +However, code must be strictly wrapped at 80 columns, or +what would be 80 columns if the tabs were displayed as 8 spaces. +If you think you need more width, you're at too many levels of indentation and +need to break things down a bit. There are no exceptions whatsoever. + + +When performing a two or three dimensional iteration, for example over image +coordinates or Miller indices, it is acceptable to indent as follows: + + + +for ( h=-10; h<+10; h++ ) { +for ( k=-10; k<+10; k++ ) { +for ( l=-10; l<+10; l++ ) { + + /* Do stuff */ + +} +} +} + + + + + + +Brackets and so on + +Brackets and so on should go like this: + + + +/* Multiple line comments have stars + * down one side */ +void somefunction(int someparam) +{ + /* Single line comments use this style (not //) */ + if ( a < b ) { + /* 'if' statements usually have the opening brace on the same + * line as the condition. */ + } else { + /* 'else's are 'cuddled' */ + } + + if ( some && very && long && condition && that && spans + && two && lines ) + { + /* Opening brace is on a line by itself in the case of a very + * long condition */ + } +} + +/* Comments use proper capitalisation to make things look neat */ + + +'struct' blocks can have the braces like functions or 'if' statements. Usually the former looks nicer if the struct is large. +Parentheses should have spaces after them in 'if' statements, but not in function calls. Function arguments should have spaces after the comma. There should be no space between the function name and the opening bracket. That means: + +if ( something ) { + do_something(a, b, c); +} + +instead of: + +if (something) { + do_something (a,b,c); +} + + + + + +Cleverness + +Yes, we all know you can insert a new node into an RB-tree while simultaneously +calculating Pi to 150 decimal places in one line of code. You don't need to +prove it here. As a general rule, if you think you're about to do something clever, don't do it at all. + + + + + +VCS commit messages +The first line of your commit message should include a one line summary of the changes, in the form "Do XYZ". That is, not "Did XYZ". +Make the minimum possible changes in each commit. Try to really distill your changes down to the bare bones, and keep 'cleaning up' in separate commits. Remember that Git thinks about 'changes' rather than 'versions'. + + + + +Evil dictator + +Despite your following all of the above, I will probably still touch up your +code in some places while (or shortly after) integrating it into mainline +CrystFEL. Please try not to take it personally. + + + + diff --git a/doc/reference/xml/coding-standards.xml b/doc/reference/xml/coding-standards.xml deleted file mode 100644 index d51ba293..00000000 --- a/doc/reference/xml/coding-standards.xml +++ /dev/null @@ -1,157 +0,0 @@ - - -]> - - -CrystFEL coding standards -3 - - Coding standards - - - - - - -Summary - -This page documents the coding conventions used within the CrystFEL source code. Read these to help when reading the code or before making modifications destined to be sent upstream. - - - - - -Licensing and copyright - -CrystFEL is distributed under the terms of the GNU General Public License version 3 or higher. Contributions are very welcome provided they also use this license. - - -Whenever you edit a source file, don't forget to update the copyright dates at the top. Add your name and email address if they're not there already. Be sure to add your name to the 'AUTHORS' file in the top level folder, as well. - - - - - -Formatting - -Indentation is done with tabs and -alignment is done with spaces. This way, the code looks -neat whatever width you configure your editor to display tabs as. This means, -for example: - - - -struct something -{ - int thing; /* <--- spaces used to align comments */ - int thing_with_longer_name; /* <--- spaces used to align comments */ -} - -void somefunction(int something) -{ - /* <--- Tab character used at the start of this line */ -} - - - -However, code must be strictly wrapped at 80 columns, or -what would be 80 columns if the tabs were displayed as 8 spaces. -If you think you need more width, you're at too many levels of indentation and -need to break things down a bit. There are no exceptions whatsoever. - - -When performing a two or three dimensional iteration, for example over image -coordinates or Miller indices, it is acceptable to indent as follows: - - - -for ( h=-10; h<+10; h++ ) { -for ( k=-10; k<+10; k++ ) { -for ( l=-10; l<+10; l++ ) { - - /* Do stuff */ - -} -} -} - - - - - - -Brackets and so on - -Brackets and so on should go like this: - - - -/* Multiple line comments have stars - * down one side */ -void somefunction(int someparam) -{ - /* Single line comments use this style (not //) */ - if ( a < b ) { - /* 'if' statements usually have the opening brace on the same - * line as the condition. */ - } else { - /* 'else's are 'cuddled' */ - } - - if ( some && very && long && condition && that && spans - && two && lines ) - { - /* Opening brace is on a line by itself in the case of a very - * long condition */ - } -} - -/* Comments use proper capitalisation to make things look neat */ - - -'struct' blocks can have the braces like functions or 'if' statements. Usually the former looks nicer if the struct is large. -Parentheses should have spaces after them in 'if' statements, but not in function calls. Function arguments should have spaces after the comma. There should be no space between the function name and the opening bracket. That means: - -if ( something ) { - do_something(a, b, c); -} - -instead of: - -if (something) { - do_something (a,b,c); -} - - - - - -Cleverness - -Yes, we all know you can insert a new node into an RB-tree while simultaneously -calculating Pi to 150 decimal places in one line of code. You don't need to -prove it here. As a general rule, if you think you're about to do something clever, don't do it at all. - - - - - -VCS commit messages -The first line of your commit message should include a one line summary of the changes, in the form "Do XYZ". That is, not "Did XYZ". -Make the minimum possible changes in each commit. Try to really distill your changes down to the bare bones, and keep 'cleaning up' in separate commits. Remember that Git thinks about 'changes' rather than 'versions'. - - - - -Evil dictator - -Despite your following all of the above, I will probably still touch up your -code in some places while (or shortly after) integrating it into mainline -CrystFEL. Please try not to take it personally. - - - - -- cgit v1.2.3 From 5fa1c22d6bbeff12c2509e1222090a43a994f7a9 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 1 Mar 2013 14:50:30 +0100 Subject: Update docs (and shake out buglets revealed along the way) --- doc/reference/libcrystfel/CrystFEL-docs.sgml | 20 ++++ doc/reference/libcrystfel/CrystFEL-sections.txt | 129 +++++++++++++++++++++--- 2 files changed, 134 insertions(+), 15 deletions(-) (limited to 'doc') diff --git a/doc/reference/libcrystfel/CrystFEL-docs.sgml b/doc/reference/libcrystfel/CrystFEL-docs.sgml index 4e6cc877..1c91e72f 100644 --- a/doc/reference/libcrystfel/CrystFEL-docs.sgml +++ b/doc/reference/libcrystfel/CrystFEL-docs.sgml @@ -42,6 +42,26 @@ + + Geometry of diffraction + + + + + Beam parameters + + + + + Peaks + + + + + Image filters + + + Statistics and R-factors diff --git a/doc/reference/libcrystfel/CrystFEL-sections.txt b/doc/reference/libcrystfel/CrystFEL-sections.txt index 5df1f2d5..eb7ac054 100644 --- a/doc/reference/libcrystfel/CrystFEL-sections.txt +++ b/doc/reference/libcrystfel/CrystFEL-sections.txt @@ -63,6 +63,8 @@ res_cutoff check_list_symmetry copy_reflist find_equiv_in_list +resolution_limits +max_intensity
@@ -156,6 +158,10 @@ notrail smallest ph_en_to_lambda ph_lambda_to_en +ph_eV_to_lambda +ph_lambda_to_eV +random_flat +flat_noise
@@ -179,7 +185,9 @@ image_feature_count image_feature_list_free image_feature_list_new image_get_feature +image_add_crystal image_remove_feature +free_all_crystals
@@ -189,6 +197,8 @@ TPWorkFunc TPFinalFunc run_threads +stderr_lock +get_status_label
@@ -210,14 +220,32 @@ stat_scale_intensity indexing IndexingMethod IndexingPrivate -MAX_CELL_CANDIDATES +INDEXING_DEFAULTS_DIRAX +INDEXING_DEFAULTS_GRAINSPOTTER +INDEXING_DEFAULTS_MOSFLM +INDEXING_DEFAULTS_REAX +INDEXING_DEFAULTS_XDS +INDEXING_METHOD_MASK build_indexer_list cleanup_indexing prepare_indexing index_pattern +indexer_str +dirax_prepare run_dirax +dirax_cleanup +mosflm_prepare run_mosflm -map_all_peaks +mosflm_cleanup +xds_prepare +run_xds +xds_cleanup +reax_prepare +reax_index +reax_cleanup +grainspotter_prepare +grainspotter_index +grainspotter_cleanup
@@ -228,6 +256,7 @@ SymOpMask free_symoplist num_equivs get_pointgroup +add_symop get_equiv special_position get_asymm @@ -284,6 +313,15 @@ get_tt smallest_q reverse_2d_mapping largest_q +in_bad_region +
+ +
+beam-params +beam_params +get_beam_parameters +fill_in_beam_parameters +free_beam_parameters
@@ -297,6 +335,7 @@ crystal_free hdf5-file hdf5_read hdf5_write +hdf5_write_image hdfile hdfile_close hdfile_get_image_binned @@ -305,25 +344,85 @@ hdfile_open hdfile_read_group hdfile_set_first_image hdfile_set_image +get_value +copy_hdf5_field +copy_hdf5_fields +add_copy_hdf5_field +new_copy_hdf5_field_list +free_copy_hdf5_field_list +get_peaks
-stream -parse_stream_flags -read_chunk -write_chunk -write_stream_header -skip_some_files -is_stream -get_value -count_patterns +crystal +Crystal +crystal_new +crystal_free +crystal_get_cell +crystal_get_image +crystal_get_mosaicity +crystal_get_num_saturated_reflections +crystal_get_osf +crystal_get_profile_radius +crystal_get_reflections +crystal_get_resolution_limit +crystal_get_user_flag +crystal_set_cell +crystal_set_image +crystal_set_mosaicity +crystal_set_num_saturated_reflections +crystal_set_osf +crystal_set_profile_radius +crystal_set_reflections +crystal_set_resolution_limit +crystal_set_user_flag +
+ +
+geometry +find_intersections +select_intersections +update_partialities +
+ +
+peaks +peak_sanity_check +search_peaks +integrate_reflections +validate_peaks
render -render_get_colour_scale -render_panels render_scale -render_tiff_fp -render_tiff_int16 +
+ +
+filter +filter_cm +filter_noise +
+ +
+stream +Stream +CHUNK_END_MARKER +CHUNK_START_MARKER +CRYSTAL_END_MARKER +CRYSTAL_START_MARKER +PEAK_LIST_END_MARKER +PEAK_LIST_START_MARKER +REFLECTION_END_MARKER +REFLECTION_START_MARKER +open_stream_fd_for_write +open_stream_for_read +open_stream_for_write +close_stream +read_chunk +write_chunk +rewind_stream +is_stream +write_command +write_line
-- cgit v1.2.3 From 2a767bf372052f913ae872068d6b555d899953a3 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 4 Mar 2013 15:51:14 +0100 Subject: Add crystal_copy() --- doc/reference/libcrystfel/CrystFEL-sections.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/reference/libcrystfel/CrystFEL-sections.txt b/doc/reference/libcrystfel/CrystFEL-sections.txt index eb7ac054..b14f4adc 100644 --- a/doc/reference/libcrystfel/CrystFEL-sections.txt +++ b/doc/reference/libcrystfel/CrystFEL-sections.txt @@ -326,9 +326,6 @@ free_beam_parameters
crystal -Crystal -crystal_new -crystal_free
@@ -357,7 +354,9 @@ get_peaks crystal Crystal crystal_new +crystal_copy crystal_free + crystal_get_cell crystal_get_image crystal_get_mosaicity -- cgit v1.2.3 From 1e03ed982741fdc576ec5a915da120450df20499 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 6 Mar 2013 15:42:23 +0100 Subject: process_hkl: Restore --start-after and --stop-after --- doc/man/process_hkl.1 | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/man/process_hkl.1 b/doc/man/process_hkl.1 index 1a8bc05b..55af8261 100644 --- a/doc/man/process_hkl.1 +++ b/doc/man/process_hkl.1 @@ -58,18 +58,12 @@ Set the minimum and maximum values, and the number of bins, to \fImin\fR, \fImax .PD 0 .IP \fB--start-after=\fR\fIn\fR .PD -Ignore the first \fIn\fR patterns in the stream. +Ignore the first \fIn\fR crystals in the input. The default is \fB--start-after=0\fR, i.e. start at the beginning. .PD 0 .IP \fB--stop-after=\fR\fIn\fR .PD -Stop after processing \fIn\fR patterns. - -.PD 0 -.IP \fB--start-after=\fR\fIn\fR -.PD -Ignore the first \fIn\fR patterns in the stream, not including those skipped -with \fB--start-after\fR, if any. +Stop processing after \fIn\fR crystals have been successfully merged. The default is \fB--stop-after=0\fR, which means to process all the patterns from the start point to the end of the input (see \fB--start-after\fR). .PD 0 .IP \fB--reference=\fR\fIfilename\fR -- cgit v1.2.3