forked from diffpy/diffpy.pdfgui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpdfgui.html
3034 lines (2870 loc) · 172 KB
/
pdfgui.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Up to the release 1.1.2 (February 2017) the copyright was held by
the institutions that hosted the work as follows:
Copyright 2006-2007, Board of Trustees of Michigan State University,
Copyright 2008-2012, Board of Trustees of Columbia University in the
city of New York.
Copyright 2013, Brookhaven National Laboratory (Copyright holder
indicated in each source file).
-->
<!-- Created on April 25, 2023 by texi2html 5.0
texi2html was written by:
Lionel Cons <[email protected]> (original author)
Karl Berry <[email protected]>
Olaf Bachmann <[email protected]>
and many others.
Maintained by: Many creative people.
Send bugs and suggestions to <[email protected]>
-->
<head>
<title>PDFgui user guide, release 2.0, May 2023</title>
<meta name="description" content="PDFgui user guide, release 2.0, May 2023">
<meta name="keywords" content="PDFgui user guide, release 2.0, May 2023">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2html 5.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
pre.display {font-family: serif}
pre.format {font-family: serif}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: serif; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: serif; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:pre}
span.nolinebreak {white-space:pre}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<h1>PDFgui user guide</h1>
<h3 align="right">2.0 release</h3>
<h3 align="right">May 2023</h3>
<strong>C. L. Farrow, P. Juhás, J. W. Liu, D. Bryndin, E. S. Božin,</strong><br>
<strong>J. Bloch, Th. Proffen, and S. J. L. Billinge</strong><br>
<hr>
<a name="acknowledgments"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[ < ]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Acknowledgments"></a>
<h2 class="heading">Acknowledgments</h2>
<a name="index-acknowledgments"></a>
<p>This software was originally developed by the Billinge group as part
of the Distributed Data Analysis of Neutron Scattering Experiments
(DANSE) project funded by the US National Science Foundation under
grant DMR-0520547. Developments of PDFfit2 were funded by NSF grant
DMR-0304391 in the Billinge group, and with support from Michigan State
University and Columbia University. Any opinions, findings, and conclusions
or recommendations expressed in this material are those of the author(s)
and do not necessarily reflect the views of the respective funding bodies.
Subsequent development was done in the Billinge group at Columbia University
and then in collaboration between the Billinge group at Columbia and Pavol
Juhas at Brookhaven National Laboratory. Moving forward, PDFgui will be
maintained as a community project with contributions welcomed from many people.
</p>
<p>Several of the examples in the tutorial part were made possible and benefited from samples
synthesized by J. F. Mitchell, and from data collected and processed by M.
Schmidt, P. G. Radaelli, and X. Qiu.
</p>
<p>If you use this program to do productive scientific research that leads
to publication, we ask that you acknowledge use of the program by citing
the following paper in your publication:
</p>
<blockquote>
<p>C. L. Farrow, P. Juhás, J. W. Liu, D. Bryndin, E. S. Božin,
J. Bloch, Th. Proffen and S. J. L. Billinge,
<a href="https://stacks.iop.org/0953-8984/19/335219">PDFfit2 and PDFgui: computer programs for studying nanostructure in crystals</a>,
<i>J. Phys.: Condens. Matter</i>, <b>19</b>, 335219 (2007)
</p></blockquote>
<p>Up to the release 1.1.2 (February 2017) the copyright was held by
the institutions that hosted the work as follows:
Copyright 2006-2007, Board of Trustees of Michigan State University,
Copyright 2008-2012, Board of Trustees of Columbia University in the
city of New York.
Copyright 2013, Brookhaven National Laboratory (Copyright holder
indicated in each source file).
</p><a name="index-copyright"></a>
<p>As of February 2017, and the 1.1.2 release, PDFgui has moved to a shared copyright model.
PDFgui uses a shared copyright model. Each contributor maintains copyright over their
contributions to PDFgui. But, it is important to note that these contributions are
typically only changes to the repositories. Thus, the PDFgui source code, in its entirety,
is not the copyright of any single person or institution. Instead, it is the collective
copyright of the entire PDFgui Development Team. If individual contributors want to
maintain a record of what changes/contributions they have specific copyright on, they
should indicate their copyright in the commit message of the change, when they commit
the change to one of the PDFgui repositories.
The PDFgui Development Team is the set of all contributors to the PDFgui project.
A full list can be obtained from the git version control logs.
For more information please visit <a href="https://www.diffpy.org">https://www.diffpy.org</a>
or contact Prof. Simon Billinge at <a href="mailto:[email protected]">[email protected]</a>.
</p>
<a name="Preface"></a>
<h1 class="majorheading">Preface</h1>
<a name="Using-PDFgui-and-PDFfit2"></a>
<h2 class="heading">Using PDFgui and PDFfit2</h2>
<p>Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
</p>
<p>Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
</p>
<p>Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
</p>
<p>Neither the names of COLUMBIA UNIVERSITY, MICHIGAN STATE UNIVERSITY nor the
names of their contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
</p>
<a name="Disclaimer"></a>
<h2 class="heading">Disclaimer</h2>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</p>
<a name="Top"></a>
<a name="SEC_Top"></a>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Introduction">1 Introduction</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Quick-start">2 Quick start</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Examples-and-tutorials">3 Examples and tutorials</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Extras">4 Extras</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#PDFgui-reference-sheets">5 PDFgui reference sheets</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Index">Index</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr size="6">
<a name="Introduction"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Top" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#PDFfit2" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Introduction-1"></a>
<h1 class="chapter">1 Introduction</h1>
<a name="index-introduction"></a>
<p>PDFgui is a graphical interface built on the PDFfit2 engine, which is a program
and programming library for real-space refinement of crystal structures based
on the atomic pair distribution function (PDF) method. PDFgui organizes fits
and simplifies many data analysis tasks, such as configuring and plotting
multiple fits. PDFfit2 is capable of fitting a theoretical three dimensional
structure to atomic pair distribution function data and is ideal for nanoscale
investigations. The fit system accounts for lattice constants, atomic positions
and anisotropic atomic displacement parameters, correlated atomic motion, and
experimental factors that may affect the data. The atomic positions and thermal
coefficients can be constrained to follow symmetry requirements of an arbitrary
space group. The PDFfit2 engine is written in C++ and accessible via Python,
allowing it to inter-operate with other Python programs.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#PDFfit2">1.1 PDFfit2</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#PDFgui">1.2 PDFgui</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Availability">1.3 Availability</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Installation">1.4 Installation</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#What-is-new">1.5 What is new</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Community">1.6 Community</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<a name="PDFfit2"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#PDFgui" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="PDFfit2-1"></a>
<h2 class="section">1.1 PDFfit2</h2>
<a name="index-PDFfit2"></a>
<p>PDFfit2 is a major upgrade to PDFfit, and inherits many of its
features. PDFfit is capable of fitting a theoretical three-dimensional
structure to an experimentally determined PDF. It can simultaneously
fit multiple structures, accounting for different structural phases
in a material. PDFfit has a constraint system that allows expressing
structure variables as simple functions of fitted parameters. PDFfit
structure variables include lattice constants, data and phase scale
factors, atomic site occupation, anisotropic atomic displacement
parameters (ADPs), and atomic vibrational correlations. PDFfit has a built-in
FORTRAN-style command language that understands simple FOR loops and
some built in arithmetic functions.
</p>
<p>The original PDFfit was written in FORTRAN-77, which imposes some
limitations on the program. For example, it uses fixed-size arrays
for internal storage. This precludes the analysis of structures with
large cells without modifying the code. Though the constraint system
is powerful, it requires that a constraint equation be accompanied
by its first derivative. This places the burden of determining the
derivatives on the user, which can introduce errors that lead to
instability in the convergence. Furthermore, the code is monolithic,
not easily extensible and hard to integrate with external programs.
</p>
<p>The primary focus of PDFfit2 development was to remedy the limitations of
PDFfit while extending its functionality. The old PDFfit engine has been
completely rewritten in C++, and many bugs have been fixed. The new engine
uses dynamic memory allocation so that the size of the structure or extent
of the fit-range of the PDF is limited only by the physical memory available.
The constraint system has also been upgraded. The program <i>automatically</i>
computes the analytical derivatives of the constraints that are required by
the minimization routine. This simplifies user input and reduces the
possibility of errors. In addition, new fitting parameters for handling
dynamic atomic correlations and experimental resolution have been introduced
as well.
</p>
<p>Instead of rewriting the PDFfit command interpreter, which is used
to define the fitting problem and to control and run the refinement,
its functions are carried out using the Python language
(<a href="https://www.python.org">https://www.python.org</a>). Python is a powerful, cross-platform,
open-source interpreted programming language (i.e., it does not need
to be compiled to run, similar to scripting) that emphasizes
object-oriented and modular design. PDFfit2 scripts written in
Python syntax take the place of PDFfit macros and the Python
interpreter can handle everything that the old interpreter could,
and more. Using Python as an interpreter allows PDFfit2 to be
combined with and enhanced by other Python libraries. We make use
of this capability with PDFgui as described below.
</p>
<hr>
<a name="PDFgui"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#PDFfit2" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Design-principles" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="PDFgui-1"></a>
<h2 class="section">1.2 PDFgui</h2>
<a name="index-PDFgui"></a>
<p>The PDFfit2 engine can be used either directly from the Python command line, or
as part of larger and more complex software applications. The first application
built on PDFfit2 is PDFgui, a graphical environment for PDF fitting.
</p>
<hr>
<a name="Design-principles"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#PDFgui" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#PDFgui" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Capabilities" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">1.2.1 Design principles</h3>
<p>PDFgui has been designed to provide users with an easy-to-use yet powerful
interface for fitting structure models to PDF data. It makes use of an
object-oriented architecture, which makes it highly extensible and
maintainable. This allows for powerful usability features such as real-time
plotting. PDFgui has been designed with multitasking in mind. It is
multi-threaded so that the work being done by the PDFfit2 engine does not
interfere with the tasks of the user interface.
</p>
<p>PDFgui is written in the Python programming language. Python features a relaxed
and friendly syntax, supports “write once, run anywhere” portability, and has
extensive libraries and modules for virtually every task. Software codes
written in a variety of programming languages can be bound into Python, which
allows them to be used together. Python is becoming a popular choice in the
scientific computation community.
</p>
<p>PDFgui’s interface is built using wxPython (<a href="https://www.wxpython.org">https://www.wxpython.org</a>), the
Python package for wxWidgets, a mature cross-platform GUI library. Graphical
applications written in wxPython provide a look and feel native to the platform
on which they are run. PDFgui is designed to run on Windows, Mac OS, Linux,
and all major Unix systems.
</p>
<hr>
<a name="Capabilities"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Design-principles" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#PDFgui" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Availability" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<h3 class="subsection">1.2.2 Capabilities</h3>
<p>PDFgui contains all of the functionality of PDFfit2 along with additional
enhancements for usability. Mundane tasks are handled by the program and
difficult tasks are made simple. PDFgui can manage multiple fits at once. Each
fit can have multiple experimental data sets and structure models. Fits in a
sequence can call upon other fits for their starting parameters, and configured
fits can be queued to run while the user is away. All the initial, final, and
intermediate data are stored in a platform independent project file that can be
loaded on any computer. All management tasks, such as fit creation,
configuration, modification, and visualization, can be done through the
graphical interface.
</p>
<p>PDFgui supports space group operations. Users can define an asymmetric unit
and let PDFgui expand it to a full cell with all symmetry related positions.
PDFgui can also generate symmetry constraints for atom positions and atomic
ADPs. Users just need to specify the space group, and the program will identify
equivalent sites and generate constraint equations for their coordinates and
temperature factors to keep the structure consistent with the symmetry
requirements. This can be done either for all atoms in the structure or for an
arbitrary subset - for example when it is known that only a certain species
show a local distortion. The code for space group definitions was provided by
the Python Macromolecular Library (mmLib,
<a href="http://pymmlib.sourceforge.net">http://pymmlib.sourceforge.net</a>). This was extened to include
non-standard space groups using the Computational Crystallography Toolbox
(cctbx, <a href="https://cctbx.github.io">https://cctbx.github.io</a>). PDFgui also supports supercell
expansion of a normal unit cell.
</p>
<p>PDFgui uses the matplotlib (<a href="https://matplotlib.org">https://matplotlib.org</a>) Python
package for 2D plotting of data and results. Matplotlib has a friendly
interface so the user can quickly and easily view the results of a fitting.
PDFgui lets users plot data from a series of fits and plot it against selected
meta-data (temperature, doping, etc.), plot the results of several fits in the
same window, plot the PDF in real time as the fitting is running, plot the
parameters or variables in real time as the refinement evolves, and save plots
in common image formats or export the data to a text file. PDFgui can be
configured to use one of many structure visualization packages, such as AtomEye
(<a href="http://li.mit.edu/A/Graphics/A/">http://li.mit.edu/A/Graphics/A/</a>) or PyMOL
(<a href="https://www.pymol.org">https://www.pymol.org</a>).
</p>
<p>PDFgui supports built-in macros for advanced fits. For a set of experimental
data from one system at different temperatures or doping levels, PDFgui can
expand a template fit to a series of related fits. Another PDFgui macro makes
it easy to set up boxcar fits, where the same model is fit over different
r-ranges of the PDF data.
</p>
<hr>
<a name="Availability"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Capabilities" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Installation" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Availability-1"></a>
<h2 class="section">1.3 Availability</h2>
<a name="index-availability"></a>
<p>PDFfit2 and PDFgui are open source and distributed under a BSD license. They
run on Windows, Mac OS, Linux, and all major Unix systems. The source code is
freely available. For more information please contact Professor Simon Billinge
(<a href="mailto:[email protected]">[email protected]</a>) or consult the web-page
<a href="https://www.diffpy.org">https://www.diffpy.org</a>. News of updates and releases will be posted at
this website and on the diffpy-users group at
<a href="https://groups.google.com/d/forum/diffpy-users">https://groups.google.com/d/forum/diffpy-users</a>.
</p>
<hr>
<a name="Installation"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Availability" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Installation-for-Anaconda-Python" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Installation-1"></a>
<h2 class="section">1.4 Installation</h2>
<a name="index-installation"></a>
<p>PDFgui is included as a part of DiffPy, a suite of Python and C++
libraries for structure analysis from diffraction data. For more
information about DiffPy products visit the project homepage at
<a href="https://www.diffpy.org">https://www.diffpy.org</a>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#Installation-for-Anaconda-Python">1.4.1 Installation for Anaconda Python</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Configuration-of-structure-viewer">1.4.2 Configuration of structure viewer</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Installation-from-sources">1.4.3 Installation from sources</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<a name="Installation-for-Anaconda-Python"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Installation" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Installation" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Configuration-of-structure-viewer" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Installation-for-Anaconda-Python-1"></a>
<h3 class="subsection">1.4.1 Installation for Anaconda Python</h3>
<p>As of version 1.1 PDFgui is distributed as a pre-built package for
<a href="https://www.anaconda.com">Anaconda Python</a>. This method makes it
easier to distribute software updates and also results in the same
installation procedure on all supported platforms.
</p>
<p>To install PDFgui, download and install Anaconda for Python 2.7 from
<a href="https://www.anaconda.com/download">https://www.anaconda.com/download</a>. When ready open a terminal
application (or <i>Anaconda Command Prompt</i> on Windows) and use the
<code>conda</code> package manager to install PDFgui from the “diffpy”
channel of Anaconda packages
</p>
<div class="example">
<pre class="example">conda config --add channels diffpy
conda install diffpy.pdfgui
</pre></div>
<p>The first command instructs Anaconda system to always check the
“diffpy” channel for any new software. Such configuration
allows to obtain PDFgui updates using
</p>
<div class="example">
<pre class="example">conda update diffpy.pdfgui
</pre></div>
<p>It is however not strictly necessary to make the “diffpy”
channel permanent. The same effect can be accomplished by adding the
‘<samp><span class="nolinebreak">--channel=diffpy</span></samp>’ option to either of
<code>conda install</code> or <code>conda update</code> commands.
</p>
<p>After installation is complete PDFgui can be started from a terminal by
entering <code>pdfgui</code> command or on Windows by using the DiffPy
start menu. PDFgui can be also started from the “Launcher” program
that is included with Anaconda.
</p>
<hr>
<a name="Configuration-of-structure-viewer"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Installation-for-Anaconda-Python" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Installation" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Installation-from-sources" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Configuration-of-structure-viewer-1"></a>
<h3 class="subsection">1.4.2 Configuration of structure viewer</h3>
<a name="index-visualization-setup"></a>
<p>PDFgui can visualize 3D structures by displaying them with an external
visualization program. The visualization program needs to
be specified together with a suitable structure format in the
“Edit → Preferences” menu in PDFgui. The structure plotting
feature has been tested with the following programs:
</p>
<dl compact="compact">
<dt><em>AtomEye</em></dt>
<dd><p>AtomEye structure viewer, XCFG format <br>
<a href="http://li.mit.edu/A/Graphics/A/">http://li.mit.edu/A/Graphics/A/</a>
</p>
</dd>
<dt><em>PyMOL</em></dt>
<dd><p>PyMOL structure viewer, PDB format <br>
<a href="https://www.pymol.org">https://www.pymol.org</a>
</p></dd>
</dl>
<p><b>A note for AtomEye users:</b>
<a name="index-AtomEye-viewer"></a>
</p>
<p>AtomEye requires its standard output is connected to a terminal.
On Unix this happens when <code>pdfgui</code> is started from a terminal.
However if you prefer to start PDFgui using a desktop shortcut or via
“Run Application” dialog of the window manager, you need to put the
following information to the “Edit → Preferences” menu of PDFgui.
</p><div class="example">
<pre class="example">Structure viewer executable: xterm
Argument string: -iconic -e ATOMEYE %s
Structure format: xcfg
</pre></div>
<p>In the above, ATOMEYE is the path to the ATOMEYE executable.
</p>
<p>For Cygwin users,
the workaround is to launch the executable from a batch file.
Batch files can only run in a command window on Windows and so
AtomEye’s requirements would be for sure satisfied.
In addition the batch file can be used to adjust environment
variables:
</p><div class="example">
<pre class="example">atomeye.bat
------------------------------------------------------------------------
set DISPLAY=localhost:0
set PATH=C:\cygwin\bin;C:\cygwin\usr\X11R6\bin;C:\ATOMEYE_DIR;%PATH%
start A.exe %*
------------------------------------------------------------------------
</pre></div>
<p>Here <tt>ATOMEYE_DIR</tt> needs to be replaced with a proper path. Make sure
that the X-server application included with Cygwin is started.
</p>
<hr>
<a name="Installation-from-sources"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Configuration-of-structure-viewer" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Installation" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#What-is-new" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Installation-from-sources-1"></a>
<h3 class="subsection">1.4.3 Installation from sources</h3>
<a name="index-Git-repository"></a>
<a name="index-development"></a>
<p>PDFgui sources are available in a public
<a href="https://git-scm.com">Git</a> repository at
<a href="https://github.com/diffpy/diffpy.pdfgui">https://github.com/diffpy/diffpy.pdfgui</a>.
Feel free to fork this project on GitHub and contribute. To
use the latest development version clone the Git repository
to your computer and install it in a development mode so that sources
are used directly rather than copied to a system location. It is also
recommended to uninstall the Anaconda package for PDFgui, so that
there is no confusion as to what version is the active one.
Here are the shell commands that would do it:
</p>
<div class="example">
<pre class="example"># Install PDFgui together with software dependencies.
conda install --channel=diffpy diffpy.pdfgui
# Make room for the version from sources. Keep dependencies installed.
conda remove diffpy.pdfgui
# Obtain a clone of the PDFgui Git repository.
git clone https://github.com/diffpy/diffpy.pdfgui.git
# Install PDFgui sources in a development mode.
cd diffpy.pdfgui
python setup.py develop
</pre></div>
<p>To verify that PDFgui is indeed loaded from the local source
repository run
</p>
<div class="example">
<pre class="example">python -m pydoc diffpy.pdfgui
</pre></div>
<p>and check the path displayed in the FILE section. The application
integrity can be verified by executing all builtin tests using
</p>
<div class="example">
<pre class="example">python -m diffpy.pdfgui.tests.rundeps
</pre></div>
<p>Use <code>git pull</code> to bring your source directory into sync
with the latest updates in the main repository. It is recommend
to afterwards do <code>`setup.py develop</code> again to refresh
the version metadata associated with the program:
</p>
<div class="example">
<pre class="example">git pull
python setup.py develop
</pre></div>
<p>To revert PDFgui installation from the source-code installation
back to the pre-built Anaconda package do
</p>
<div class="example">
<pre class="example">pip uninstall diffpy.pdfgui
conda install --channel=diffpy diffpy.pdfgui
</pre></div>
<hr>
<a name="What-is-new"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Installation-from-sources" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Community" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="What-is-new-1"></a>
<h2 class="section">1.5 What is new</h2>
<a name="index-versions"></a>
<a name="index-whatisnew"></a>
<a name="Version-1_002e1_002c-released-March-2016"></a>
<h3 class="subheading">Version 1.1, released March 2016</h3>
<p>Improvements and modifications since the last major release
1.0-r3067 from April 2009.
</p>
<dl compact="compact">
<dt><em>Anaconda installer</em></dt>
<dd>
<p>PDFgui is now distributed as a pre-built package for Anaconda Python.
The program is available for all platforms supported by Anaconda, i.e.,
for 32 and 64-bit Linux, Mac OS X, and for 32 and 64-bit Windows.
</p>
</dd>
<dt><em>upgrade for recent GUI libraries</em></dt>
<dd>
<p>Source codes were updated to work with WX GUI toolkit 2.9 or later.
Fixed blacked-out text fields on Mac OS X. Fixed missing toolbar
in plot-windows on Mac OS X.
</p>
</dd>
<dt><em>select atoms menu</em></dt>
<dd>
<p>Added “Select Atoms” context menu to the Phase Configuration and Phase
Constraints panels. This selects atom rows by a range of indices
or by atom type. Added keyboard shortcut <kbd>/</kbd> for activating the
atom-selection dialog.
</p>
</dd>
<dt><em>small enhancements</em></dt>
<dd>
<p>Fixed problems with <i>r</i>-grid interpolation near data boundaries. Allow
use of CIF-defined space groups for symmetry constraints. Use consistent
numbering for parameters created by symmetry constraints. Improved
export data tool in plot windows to group <i>y</i>-arrays that are on
the same <i>x</i> grid. Enhanced supercell expansion to also adjust
the coordinate constraints.
</p>
</dd>
<dt><em>project moved to GitHub</em></dt>
<dd>
<p>PDFgui source repository was converted from subversion to a Git repository at
<a href="https://github.com/diffpy/diffpy.pdfgui">https://github.com/diffpy/diffpy.pdfgui</a>. Project now uses Git tags
to define software release and version data.
</p>
</dd>
<dt><em>Unicode support</em></dt>
<dd>
<p>Allow accented characters in project filenames and in folder paths
where located. Allow accented characters for naming the fit tree
items. Note that such projects are unlikely to work with older
versions of PDFgui. Fix failure to exit when there is some
uncaught error in the at-exit cleanup functions.
</p>
</dd>
<dt><em>PDFgui tests</em></dt>
<dd>
<p>PDFgui installation now includes built-in tests. Added facility to
test PDFgui and all its DiffPy components. Implemented automated
testing and generation of test coverage reports when sources on
GitHub change.
</p>
</dd>
<dt><em>bug fixes</em></dt>
<dd><p>Quite a few. Consult the code history at
<a href="https://github.com/diffpy/diffpy.pdfgui/commits">https://github.com/diffpy/diffpy.pdfgui/commits</a>.
</p>
</dd>
</dl>
<a name="Version-1_002e0_002c-released-April-2009"></a>
<h3 class="subheading">Version 1.0, released April 2009</h3>
<p>This section describes improvements and modifications since the
last beta-release 1.0b.1792 from December 2007.
</p>
<dl compact="compact">
<dt><em>updates and installation</em></dt>
<dd><p>PDFgui can be installed or updated
with a simple run of the easy_install script. easy_install
checks our online code repository for any newer versions and takes
care of their download and installation. It can be also used to
add future DiffPy components as they become available. This should
work for Linux, Mac and Windows.
</p>
</dd>
<dt><em>Windows installer</em></dt>
<dd><p>The updated Windows package includes full installation of
Python 2.5 and script for code updates. PDFgui
can be installed under normal Python2.5 tree if it has the
easy_install script.
</p>
</dd>
<dt><em>particle shape correction stored with phase</em></dt>
<dd><p>The previous release of PDFgui had
spherical shape correction factors stored with PDF dataset. The
new layout is more logical and allows multi-phase refinements with
separate shape corrections.
</p>
</dd>
<dt><em>step shape factor</em></dt>
<dd><p>Defined new shape factor that cuts off the
simulated PDF at user defined r-limit.
</p>
</dd>
<dt><em>cumulative Rw</em></dt>
<dd><p>Implemented calculation of cumulative Rw
and option to show it in PDFgui plot window.
</p>
</dd>
<dt><em>project post-processing</em></dt>
<dd><p>Implemented new module
‘<samp>tui</samp>’ (text user interface) for simple access to the data
in PDFgui project files. The ‘<samp>tui</samp>’ module can be used
in easy-to-understand Python scripts for arbitrary data extraction
or conversion. It should be useful for project files with large
temperature or compositional series of PDF refinements.
</p>
</dd>
<dt><em>structure visualization</em></dt>
<dd><p>PDFgui can now show structures with any external structure viewer,
that accepts structure file as a command-line argument.
</p>
</dd>
<dt><em>space group representations</em></dt>
<dd><p>Added 249 space group
representations in non-standard settings. The new representations
were generated using the
<a href="https://cctbx.github.io">cctbx library</a> and helpful
hints from Ralf W. Grosse-Kunstleve.
</p>
</dd>
<dt><em>symmetry constraints</em></dt>
<dd><p>Fixed issues with generation of
symmetry requirements for the ADP tensors.
</p>
</dd>
<dt><em>default ADP tensors</em></dt>
<dd><p>PDF contributions are not counted for atoms that have
ADP tensors <i>Uij</i> equal zero. Atoms are now inserted with
a non-zero <i>Uij</i> matrix. Added warning when a phase
loaded from file has atoms with zero ADPs.
</p>
</dd>
<dt><em>temperature series macro</em></dt>
<dd><p>The temperature series macro was broken for datasets at equal temperature
or when temperature contained decimal point. Improved file
and temperature sorting in the temperature series dialog.
</p>
</dd>
<dt><em>journal panel</em></dt>
<dd><p>Fixed shortcut key handling and font size issues.
</p>
</dd>
<dt><em>startup option ‘<samp>--db-pdb</samp>’</em></dt>
<dd><p>The new command-line option starts Python debugger on
PDFgui crash instead of displaying error report dialog.
</p>
</dd>
<dt><em>grid interpolation</em></dt>
<dd><p>Fixed problems with r-grid interpolation appearing due to round-off errors.
</p>
</dd>
<dt><em>data load on Windows</em></dt>
<dd><p>Windows version could not read PDF datasets with NaN (not-a-number)
values in the dGr column, because NaN is not supported by the Windows
C-library. Added check for NaN-s before converting to float.
</p>
</dd>
</dl>
<hr>
<a name="Community"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#What-is-new" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Introduction" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Community-1"></a>
<h2 class="section">1.6 Community</h2>
<a name="index-Community"></a>
<a name="index-mail_002dlist"></a>
<a name="index-user-groups"></a>
<p>There are two Google groups for support and development of PDFgui and other
DiffPy software. Visit the links below for message archives or instructions on
subscription and posting.
</p>
<dl compact="compact">
<dt><em><b>diffpy-users</b> <a href="https://groups.google.com/d/forum/diffpy-users">https://groups.google.com/d/forum/diffpy-users</a></em></dt>
<dd><p>Help on usage of PDFgui, PDFfit2 and other DiffPy packages. This group should
become a knowledge base of PDFgui user tips, tricks and troubleshooting. Feel
free to ask your question here.
</p>
</dd>
<dt><em><b>diffpy-dev</b> <a href="https://groups.google.com/d/forum/diffpy-dev">https://groups.google.com/d/forum/diffpy-dev</a></em></dt>
<dd><p>For discussions about development and changes of PDFgui, PDFfit2 and DiffPy
library in general.
</p></dd>
</dl>
<hr>
<a name="Quick-start"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Community" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#PDFgui-layout" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Examples-and-tutorials" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="Quick-start-1"></a>
<h1 class="chapter">2 Quick start</h1>
<a name="index-quick-start"></a>
<p>In this chapter the PDFgui layout is briefly described, followed by a simple
tutorial example, spanning the GUI functionality and aimed at novice users.
Users familiar with the basics can proceed to <a href="#Examples-and-tutorials">Examples and tutorials</a>, or
use <a href="#PDFgui-reference-sheets">PDFgui reference sheets</a>. All the files used in examples are
available in the source distribution or can be downloaded from the DiffPy
website.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top"><a href="#PDFgui-layout">2.1 PDFgui layout</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top"><a href="#Simple-fit">2.2 Creating a simple fit using a preexisting structure file</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<a name="PDFgui-layout"></a>
<table class="header" cellpadding="1" cellspacing="1" border="0">
<tr><td valign="middle" align="left">[<a href="#Quick-start" title="Beginning of this chapter or previous chapter"> << </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Previous section in reading order"> < </a>]</td>
<td valign="middle" align="left">[<a href="#Quick-start" title="Up section"> Up </a>]</td>
<td valign="middle" align="left">[<a href="#Simple-fit" title="Next section in reading order"> > </a>]</td>
<td valign="middle" align="left">[<a href="#Examples-and-tutorials" title="Next chapter"> >> </a>]</td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left"> </td>
<td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
<td valign="middle" align="left">[<a href="#Index" title="Index">Index</a>]</td>
<td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
</tr></table>
<a name="PDFgui-layout-1"></a>
<h2 class="section">2.1 PDFgui layout</h2>
<a name="index-PDFgui-layout"></a>