Project

General

Profile

Appion Home » History » Version 11

Amber Herold, 03/31/2010 03:19 PM

1 1 Eric Hou
2 11 Amber Herold
h1. Complete Installation
3 6 Amber Herold
4
5 1 Eric Hou
6 11 Amber Herold
h2. Four Parts of Leginon System
7 1 Eric Hou
8 6 Amber Herold
9 11 Amber Herold
<graphic fileref="http://emg.nysbc.org/software/leginon/images/images/Leg_Proj_parts.png"
10
format="PNG"/>
11 1 Eric Hou
12 11 Amber Herold
Leginon as a system that we distribute can be divided into three parts:
13 6 Amber Herold
14
15 11 Amber Herold
h2. Processing Server (Python-side)
16 1 Eric Hou
17
18 11 Amber Herold
Python (and some c) scripts that handle instrument control, data acquisition, and
19
processing.
20 1 Eric Hou
21
22
23
24 11 Amber Herold
h2. Database Server (MySQL-side)
25 1 Eric Hou
26 11 Amber Herold
27
a MySQL server that handles the database
28
29
30
31
32
h2. Web Server (PHP-side)
33
34
35
This includes php and Java scripts at a webserver that we will create to retrieve image
36
and metadata from the database and file-storage system.
37
38
39
40
41
h2. File Server
42
43
44
This is up to you to set up to store lots of data coming out of Leginon system.
45
46
47
48
49
50
51
h2. What is in this chapter
52
53
54
55
Leginon runs under both the Linux and Microsoft Windows Operating systems. However, the
56
current php-mrctool can not be installed on Windows which means mrc images can not be viewed
57
on the web. See the section on Possible Computer Set-up Configurations for details.
58
59
60
The many components for the Leginon system are divided into packages and need to be
61
installed separately. It has been integrated with several third party software packages that
62
are necessary for its operation. The installation documentation will describe how to set-up
63
Leginon and give hints as to how to install and set-up the necessary third-party software.
64
This documentation is not intended to support the additional, but necessary third-party
65
software.
66
67
68
There has been interest in installing Leginon under Mac OS X. While this is possible in
69
theory, we have not been successful in installing a fully functional system. The two main
70
problems are (1) compilation of php-mrctool from the pre-installed php and (2) wxPython on Mac
71
is unable to hide bitmap objects which makes Leginon graphical user interface difficult to
72
use.
73
74
75
See <link linkend="InstT_install">Installation Troubleshooting</link> and "Leginon Bulletin Board":http://emg.nysbc.org/bb/viewforum.php?f=2 searching
76
for "install" if you run into problems.
77
78
79
80
81
h2.  Possible Computer Set-up Configurations
82
83
84
85
Computer(s) used for the whole Leginon system need to support five functions:
86
*  TEM/Camera control and data output (by python-side packages of Leginon
87
system)
88
89
90
*The computer attached to the microscope/camera is used for this function.
91
Therefore, it is on a Windows computer.
92
93
94
*  General Leginon operation such as target selection and image processing (processing
95
server of Leginon system)
96
97
98
*  Image data storage.
99
100
101
*  Other meta-data storage through MySQL database (by database server of Leginon
102
system)
103
104
105
*  Web server (using PHP-side of Leginon system).
106
107
108
*Important* The MRC module that is used to load mrc formatted files to the web
109
pages is not compiled on Windows. Therefore, this function must be on a linux box unless
110
you don't need to see the images***
111
112
113
114
115
116
The five functions can be distributed to five different computers on a network or all on
117
one single computer. However, since the latter minimal setup requires the use of the computer
118
attached to the microscope for all functions, it is not advisable.
119
120
121
Processing server of Leginion is a multi-platform software, meaning it can run on both
122
Microsoft Windows and Linux. It is also inherently designed to utilize distributed systems on
123
a network. MySQL used in the database server is also supported by multiple platforms. This is
124
not true for the Web server because the custom MRC module used in the web viewer only compiles
125
on linux machines. Therefore, one of the computer not part of the microscope must be a linux.
126
The following examples show several arrangements that take advantage of distributed system.
127
Other combinations are possible, but will basically be variations on one of the following
128
themes.
129
130
131
h2.  A: 1 Windows computer (attached to the Microscope) &amp; 1 Linux computer (for all
132
other functions, separate from the Microscope) (Good for single user and small-scale
133
acquisition)
134
135
136
137
138
139
*  Install the latest processing server side of Leginon release (and supporting
140
packages) on the Windows computer controlling the microscope and on the Linux computer
141
which is to run Leginon image acquisition and processing.
142
143
144
*  Install the additional modules needed for CCD camera and film interaction on the
145
Windows computer controlling the microscope.
146
147
148
*  Install MySQL, PHP, the Apache Web Server, and dbem tools only on the Linux
149
computer that will perform these functions, (i.e. NOT the computer controlling the
150
microscope).
151
152
153
154
155
156
157
158
159
h2.  B: 1 Windows computer (attached to the Microscope) &amp; 4 Linux computers (one for
160
each function) (Good for multiple microsopes, users and large-scale acquisition)
161
162
163
164
This is the set-up at NRAMM. It has the processing server side of Leginon installed on
165
the Windows computer attached to the microscope and on the Linux computer that is used for
166
running Leginon. A second Linux machine is dedicated to the database while the web-based
167
viewer is hosted by another server.
168
169
170
171
172
*  Install the python-side Leginon (and supporting packages) on the Windows computer
173
controlling the microscope and on the Linux computer that is to run Leginon. You can
174
make the latter installation accessable to any numbers of linux computers on your
175
network.
176
177
178
*  Install MySQL, PHP, the Apache Web Server, and dbem tools on the second Linux
179
computer that will serve as the database/web server/PHP host.
180
181
182
*  The computer hosting the data storage should be accessable by all linux
183
boxes.
184
185
186
187
188
189
190
191
192
h2.  C: 1 Windows computer (attached to the Microscope), 1 Windows computer running python-
193
and MySQL-side functions and 1 Linux computer as web server (Has been applied
194
successfully)
195
196
197
198
The data storage may be on one of these computers that is accessable by other
199
computers.
200
201
202
203
204
205
206
h2.  Ports that Leginon system uses:
207
208
209
210
This information is useful if you want to open specific ports between computers with a
211
firewall in between.
212
213
214
215
216
* MySQL normally uses port 3306 (but configurable in /etc/my.cnf)
217
218
219
* Leginon Client running on TEM host: port 55555
220
221
222
* Leginon main program on the processing server: dynamically assigned ports between
223
49152 and 65535
224
225
226
There is no strict port assignment since we could potentially have more than one
227
Leginon process running on the same linux host talking to different TEM hosts. It is
228
probably good enough if you only worry about opening up the first few of those ports in
229
your firewall (maybe 49152 through 49160, or something like that).
230
231
232
See more discussion at Leginon bulletin board thread on ""network problem, Leginon not seeing
233
tecnai host":http://emg.nysbc.org/bb/viewtopic.php?t=7"
234
235
236
237
238
239
240
241
242
h2. Where to Register and download Leginon system
243
244
245
246
"http://www.leginon.org/":http://www.leginon.org is the home. Please
247
register if you want to recieve support from Leginon team.
248
249
250
*  python-side Leginon packages
251
252
253
direct link: "http://emg.nysbc.org/software/leginon/":http://emg.nysbc.org/software/leginon/
254
255
256
*  mrctools: including the tools for reading mrc images on the web
257
258
259
direct link: "http://emg.nysbc.org/software/mrctools/":http://emg.nysbc.org/software/mrctools/
260
261
262
*  dbemtools: including the tools for administration and webviewing
263
264
265
direct link: "http://emg.nysbc.org/software/dbemtools/":http://emg.nysbc.org/software/dbemtools/
266
267
268
*  project tools (optional): For administration and webviewing of projects
269
270
271
direct link: "http://emg.nysbc.org/software/dbemtools/":http://emg.nysbc.org/software/dbemtools/
272
273
274
275
276
277
278
h2.  Processing server-side Leginon Installation
279
280
281
282
For the lack of better name, processing server-side Leginon refers to packages that
283
performs the general functions of image acquisition and processing. The instructions here are
284
for Linux. Refer to Windows Installation for Windows specific instructions.
285
286
287
h2. Download svn checkout script from Leginon website
288
289
290
291
"http://www.leginon.org/":http://www.leginon.org/ Download
292
svnget-1.6.sh to a convenient location such as your home directory.
293
294
295
296
297
h2. Check out SVN Source Files from the depository
298
299
300
301
run svnget-1.6.sh. It does the
302
following:<programlisting>mkdir Leginon-1.6-ALL
303
cd Leginon-1.6-ALL
304
svn co http://emg.nysbc.org/svn/leginon/branches/1.6 Leginon
305
svn co http://emg.nysbc.org/svn/pyami/branches/leg1.6 pyami
306
svn co http://emg.nysbc.org/svn/pyScope/branches/leg1.6 pyScope
307
svn co http://emg.nysbc.org/svn/sinedon/branches/leg1.6 sinedon
308
svn co http://emg.nysbc.org/svn/numextension/branches/leg1.6 numextension
309
svn co http://emg.nysbc.org/svn/libcv/branches/leg1.6 libcv
310
svn co http://emg.nysbc.org/svn/ImageViewer/branches/leg1.6 ImageViewer</pre>
311
312
313
If the process fails, you probably do not have svn client installed. Skip to "Install
314
the supporting packages first if missing:", then try this again.
315
316
317
318
319
h2.  Perform system check:
320
321
322
323
In addition to the downloads from our svn depository, there are several other
324
requirements that you will get either from your OS installation source, or from its
325
respective website. The system check in the Leginon package checks your system to see if you
326
already have these requirements
327
328
329
330
<pre>cd your_download_area/Leginon-1.6-ALL/Leginon
331
python syscheck.py</pre>
332
333
334
335
If python is not installed, this, of course will not run. If you see any lines like "***
336
Failed...", then you have something missing. Otherwise, everything should result in
337
"OK".
338
339
340
341
342
h2.  Install the supporting packages first if missing:
343
344
345
346
Follow the instruction for your specific Linux distribution.
347
348
349
For example, SUSE users can use YaST to install them; RedHat and CentOS users can use
350
yum.
351
352
353
*SciPy may not build properly on some versions of SuSE due to an incompatible LAPACK
354
package that comes with SuSE. You can get scipy as well as a compatible LAPACK etc. from
355
http://repos.opensuse.org/science (need to specify your SuSE version and machine
356
etc.)
357
358
359
360
361
h2.  Required supporting packages:
362
363
364
|_.Name:|_.Download site:|_.yum package name|_.SuSE rpm name|
365
|Python 2.4 or newer|"http://www.python.org":http://www.python.org|python|python-devel|
366
|wxPython 2.5.2.8 or newer|"http://www.wxpython.org":http://www.wxpython.org|wxPython|python-wxGTK|
367
|MySQL Python client 1.2 or newer|"http://sourceforge.net/projects/mysql-python":http://sourceforge.net/projects/mysql-python|MySQL-python|python-mysql|
368
|Python Imaging Library (PIL) 1.1.4 or newer|"http://www.pythonware.com/products/pil/":http://www.pythonware.com/products/pil/|python-imaging|python-imaging|
369
|Python XML module 0.8.3 or newer|"http://pyxml.sourceforge.net":http://pyxml.sourceforge.net
370
|PyXML|python-xml|
371
|NumPy 1.0.1 or newer|"http://www.scipy.org":http://www.scipy.org|numpy|numpy|
372
|SciPy 0.5.1 (tested, others may work)*|"http://www.scipy.org":http://www.scipy.org, "http://repos.opensuse.org/science":http://repos.opensuse.org/science*|scipy|python-scipy|
373
374
375
376
377
*SciPy may not build properly on some versions of SuSE due to an incompatible LAPACK
378
package that comes with SuSE. You can get scipy as well as a compatible LAPACK etc. from
379
http://repos.opensuse.org/science (need to specify your SuSE version and machine
380
etc.)
381
382
383
384
385
h2.  Optional supporting packages:
386
387
388
389
390
391
*  For using Matlab to explore holefinding algorithm (Matlab HoleFinder)
392
393
394
pymat: "http://sourceforge.net/projects/pymat":http://sourceforge.net/projects/pymat
395
396
397
398
399
400
401
402
403
h2. Install the packages you downloaded from svn depository
404
405
406
407
Here are the packages you need to install with python installer inside the
408
Leginon-1.6-ALL folder.
409
410
|_.Name:|_.Purpose:|
411
| Leginon|modular TEM image acquisition|
412
| pyami|general functions|
413
| pyScope|microscope control and monitoring|
414
| sinedon|Leginon/database interaction|
415
| numExtension|c extension for numerical processing|
416
| libCV|small c library of algorithm from computer vision field|
417
| ImageViewer|image viewing for tomography|
418
419
420
421
422
423
424
*  run syscheck.py again to make sure you have everything.
425
426
427
*  Install the package in <emphasis role="bold">each folder</emphasis> with commands
428
like
429
these<pre>cd /your_download_area/Leginon-1.6-ALL/Leginon
430
python setup.py install
431
432
cd ../pyami
433
python setup.py install
434
cd ../pyScope
435
python setup.py install
436
cd ../sinedon
437
python setup.py install
438
cd ../numextension
439
python setup.py install
440
cd ../libcv
441
python setup.py install
442
cd ../ImageViewer
443
python setup.py install</pre>
444
445
446
447
448
449
450
451
452
h2.  python-site-package-path: where the installed python
453
packages went:
454
455
456
Python installer put the packages you installed to its site-packages directory. This
457
enable all users on the same computer to access them. The easiest way to find where your
458
installed package is called by python is to load a module from the package using interactive
459
python command lines like this:
460
461
462
463
464
*  Start python command line from shell
465
466
467
468
<pre>> python</pre>
469
470
471
472
*  Import a module from the package. Let's try sinedon here. All packages installed
473
through the above setup.py script should go to the same place.
474
475
476
477
<pre>python> import sinedon</pre>
478
479
480
481
*  If the module is loaded successfully, call the module attribute __path__ (two
482
underscrolls before "path" and two underscrolls after) will return the location of the
483
module it is loaded from
484
485
486
487
<pre>python> sinedon.__path__
488
489
RETURNS, For example,
490
python> &lt;module 'sinedon' from '/usr/lib/python2.5/site-packages/sinedon/__init__.pyc'> </pre>
491
492
493
In this case, /usr/lib/python2.5/site-packages/ is your python-site-package-path.
494
If you go to that directory, you will find all the packages you just installed.
495
496
497
498
499
500
501
502
503
h2.  Configure leginon.cfg:
504
505
506
Leginon can be configured at three levels:
507
508
509
510
511
*  A skeleton (default) configuration file is available:
512
513
514
515
<pre> _<link linkend="package_path">[python-site-package-path]</link>_/Leginon/config/default.cfg</pre>
516
517
518
519
*  Configurations for all users
520
521
522
523
<pre> _<link linkend="package_path">[python-site-package-path]</link>_/Leginon/config/leginon.cfg</pre>
524
525
526
527
Example of the configuration that you should set: (Here we assume your leginon
528
database is named "dbemdata", and Leginon log into the database as a user named
529
"usr_object" with no password
530
set).<pre>[Images]
531
path: _your_storage_disk_path_/leginon
532
</pre>
533
534
535
*  Configurations for individual users that overrides the all-user configuration if
536
exists
537
538
539
540
<pre> ~/leginon.cfg</pre>
541
542
543
544
This configuration should include all the minimal configuration above and
545
additional configuration for individual user for
546
convenience<pre>[User]
547
Fullname: _your_name_  #The name you entered in the leginon administration web page. Note that it is case sensitive</pre>
548
549
550
551
552
553
554
555
556
h2.  Names used in the example installation
557
558
559
From this point on, you will need to enter database user names for different
560
configuration files and settings. These are NOT Leginon user names but what is required by
561
MySQL database interaction. Consistent names are essential. In the example shown here, the
562
leginon database is called "dbemdata", the project database is called "projectdata". The
563
MySQL user name are the same, "usr_object", and in this case without a password.
564
565
566
567
568
h2.  Configure sinedon.cfg:
569
570
571
Sinedon is designed to be able to interact with multiple databases. It can be
572
configured at global or user level.
573
574
575
576
577
*  An example configuration file is available at:
578
579
580
581
<pre>/your_download_area/Leginon-1.6-ALL/sinedon/examples/sinedon.cfg</pre>
582
583
584
585
*  Configurations for all users should be placed at the following path
586
587
588
589
<pre>  _<link linkend="package_path">[python-site-package-path]</link>_/sinedon/sinedon.cfg</pre>
590
591
592
593
*  Modify host,db,user,passwd to what is used. Note that the user here is MySQL user
594
Leginon uses to communicate with the database for all Leginon users. For Leginon that
595
uses Project database, set the following:
596
597
598
599
<pre>[global]
600
host: _your_database_host_
601
user: usr_object
602
passwd:
603
604
[projectdata]
605
db: projectdata
606
607
[leginondata]
608
db: dbemdata
609
</pre>
610
611
612
613
*  Add database configuration if you intend to use grid-inserting robot. The Robot2
614
module uses the database to communicate to the robot. Applications that carries the
615
name "Robot" requires this to be set. In general, using the same database as the
616
general leginon database is fine.
617
618
619
620
<pre>[robot2]
621
db: dbemdata</pre>
622
623
624
625
626
627
628
629
630
631
632
633
h2. Database Server-side Installation
634
635
636
637
The following is for the computer that hosts the databases. This involves installing MySQL
638
server and creation/configuration of the leginon and project databases.
639
640
641
642
|_.Name:|_.Download site:|
643
|MySQL-Server 5.0 or higher|"http://www.mysql.com":http://www.mysql.com|
644
|MySQL-Client 5.0 or higher|"http://www.mysql.com":http://www.mysql.com|
645
646
647
648
649
h2.  MySQL
650
651
652
653
654
655
*  Install MySQL-Server
656
657
658
659
660
*  Use your package installer (yum, zypper, YaST) if available.
661
662
663
OR
664
665
666
*  Download the latest MySQL-server RPM for Linux from "www.mysql.com":http://www.mysql.com
667
668
669
*  Install the MySQL-server rpm:
670
671
672
<pre> rpm -Uvh MySQL-server-5.0.xx-y.i386.rpm</pre>
673
(substitute correct version numbers)
674
675
676
677
678
679
680
*  Install MySQL-Client
681
682
683
684
685
*  Use your package installer (yum, zypper, YaST) if available.
686
687
688
OR
689
690
691
*  Download the latest MySQL-client RPM for Linux from "www.mysql.com":http://www.mysql.com
692
693
694
*  Install the MySQL-client rpm:
695
696
697
<pre> rpm -Uvh MySQL-client-5.0.xx-y.i386.rpm</pre>
698
(substitute correct version numbers)
699
700
701
702
703
704
705
*  MySQL configuration file is usually located in /usr/share/mysql. There are
706
several examples there:
707
708
709
710
<pre>&gt; ls /usr/share/mysql/my*
711
/usr/share/mysql/my-huge.cnf
712
/usr/share/mysql/my-innodb-heavy-4G.cnf
713
/usr/share/mysql/my-large.cnf
714
/usr/share/mysql/my-medium.cnf
715
/usr/share/mysql/my-small.cnf
716
&gt; </pre>
717
718
719
720
*  Configure my.cnf in /etc using my-huge.cnf as the template
721
722
723
724
725
* <pre>> cp /usr/share/mysql/my-huge.cnf /etc/my.cnf</pre>
726
727
728
729
*  Edit /etc/my.cnf to add or change query cache variables like these:
730
731
<pre>query_cache_type= 1
732
query_cache_size = 100M
733
query_cache_limit= 100M</pre>
734
735
736
737
738
739
740
741
*  start MySQL Server
742
743
<pre> &gt;/etc/init.d/mysqld start</pre>
744
745
on some installation,
746
747
<pre> &gt;/etc/init.d/mysql start</pre>
748
749
For future reference: start | stop | restart MySQL Server with similar
750
commands:
751
752
<pre> &gt;/etc/init.d/mysqld start
753
&gt;/etc/init.d/mysqld stop
754
&gt;/etc/init.d/mysqld restart</pre>
755
756
If you want to start MySQL automatically at boot on SuSE
757
758
<pre> SuSE &gt;chkconfig mysql on
759
</pre>
760
761
*  For future reference, the database location will be:
762
763
764
765
<pre>&gt; cd /var/lib/mysql
766
Directory: /var/lib/mysql
767
&gt; ls
768
yourdbserver.pid
769
ib_logfile0
770
mysql
771
mysql.sock
772
test
773
&gt; </pre>
774
775
776
777
*  Create leginon database, here we call <link linkend="db_example_names"
778
>dbemdata</link>
779
780
<pre> &gt;mysqladmin create dbemdata</pre>
781
782
783
784
*  Create project database, here we call <link linkend="db_example_names"
785
>projectdata</link> (optional)
786
787
<pre> &gt;mysqladmin create projectdata</pre>
788
789
790
791
*  Connect to mysql db
792
793
<pre>&gt;mysql mysql
794
795
mysql&gt; select user, password, host from user;
796
+------+----------+-----------+
797
| user | password | host      |
798
+------+----------+-----------+
799
| root |          | localhost |
800
| root |          | host1     |
801
|      |          | host1     |
802
|      |          | localhost |
803
+------+----------+-----------+
804
4 rows in set (0.00 sec)</pre>
805
806
807
808
*  Create and grant privileges to a user called <link linkend="db_example_names"
809
>usr_object</link> for the databases on both the localhost and other hosts involved.
810
For example, use wild card '%' for all hosts. You may also set specific privilege to
811
the user. See MySQL Reference Manual for details
812
813
<pre>mysql&gt; create user usr_object@'localhost';
814
mysql&gt; grant all privileges on dbemdata.* to usr_object@'localhost';
815
mysql&gt; grant all privileges on projectdata.* to usr_object@'localhost';</pre>
816
817
Similarly,
818
819
<pre>mysql&gt; create usr_object@'%';
820
mysql&gt; grant all privileges on dbemdata.* to usr_object@'%';
821
mysql&gt; grant all privileges on projectdata.* to usr_object@'%';
822
</pre>
823
824
*  Change Root passworld
825
826
<pre>mysql&gt; update user set password=password('_a passwd_') where user="root";
827
Query OK, 2 rows affected (0.01 sec)
828
Rows matched: 2  Changed: 2  Warnings: 0
829
830
mysql&gt;^D or exit;</pre>
831
From now on, you will need to specify the password to connect to the database as
832
root user like this:
833
834
<pre>>mysql -u root -p mysql</pre>
835
836
<emphasis role="bold">***If your password change does not take effect in your next
837
database connection, you will need to flush the mysql pivileges cache as mysql root
838
and connecting with you old password (or no password in the above
839
case):</emphasis>
840
841
<pre>>mysql -u root mysql</pre>
842
<pre>mysql&gt; flush privileges;
843
mysql&gt;^D or exit;</pre>
844
845
*  Check MySQL variables
846
847
<pre>&gt;mysql -u usr_object dbemdata
848
849
mysql&gt; SHOW VARIABLES LIKE 'query%';
850
+------------------------------+-----------+
851
| Variable_name                | Value     |
852
+------------------------------+-----------+
853
| ft_query_expansion_limit     | 20        |
854
| have_query_cache             | YES       |
855
| long_query_time              | 10        |
856
| query_alloc_block_size       | 8192      |
857
| query_cache_limit            | 104857600 | &lt;&lt;---This should correspond to your change
858
| query_cache_min_res_unit     | 4096      |
859
| query_cache_size             | 104857600 | &lt;&lt;---This should correspond to your change
860
| query_cache_type             | ON        | &lt;&lt;---This should correspond to your change
861
| query_cache_wlock_invalidate | OFF       |
862
| query_prealloc_size          | 8192      |
863
+------------------------------+-----------+
864
10 rows in set (0.00 sec)
865
866
mysql&gt; exit;</pre>
867
868
869
870
*  Make sure MySQL is running
871
872
<pre>prompt:~&gt; mysqlshow
873
+--------------+
874
| Databases    |
875
+--------------+
876
| mysql        |
877
| dbemdata     |
878
| projectdata  |
879
+--------------+</pre>
880
881
882
883
*  Or check with the following php script (if already installed)
884
885
<pre>&lt;?
886
mysql_connect('your_host.your_institute.edu', 'usr_object', '','dbemdata');
887
echo mysql_stat();
888
?&gt; </pre>
889
890
891
Output
892
893
<pre> Uptime: 1452562 Threads: 1 Questions: 618 Slow queries: 0 Opens: 117 Flush tables: 1 Open tables: 106 Queries per second avg: 0.000</pre>
894
895
896
897
898
899
900
901
902
903
h2.  Web server set up and Installation
904
905
906
907
The following applies to the computer that will host the web-accessable image viewers ( a
908
part of dbem tools) and project manager (a part of project tools).
909
910
911
h2. Differences between Linux flavors
912
913
914
915
Different Linux flavors often put web server and mysql-related files in different
916
locations. This can be confusing. From experience, we found the equivalent on CentOS vs
917
SuSE. Here we list them for reference. If your system use a different naming and you are
918
willing to share your experience, please send us the list. We will add it here:
919
920
|_.File or Command Head|_.CentOS|_.SuSE|
921
| php.ini|/etc/| /etc/php5/apache2/|
922
| httpd.conf|/etc/httpd/conf/|/etc/php5/apache2/|
923
| default document_root|/var/www/html/|/srv/www/htdocs/|
924
| apache start/stop/restart command head|/etc/init.d/httpd|/etc/init.d/apache2|
925
| mysql start/stop/restart command head|/etc/init.d/mysqld|/etc/init.d/mysql|
926
927
928
929
930
931
932
h2. Prerequisites for dbemtools, projecttools, and mrctools extension
933
934
935
936
The dbemtools are mostly php scripts that run at the web server. The followings are
937
required before installation of dbemtools and the mrc extension that handles mrc files to be
938
displayed. Some of these packages may be found on the SuSE Linux DVD or included in common
939
package repository. MySQL and the Apache Web Server can be downloaded from their respective
940
websites.
941
942
|_.Name:|_.Download site:|_.yum package name|_.SuSE rpm name|
943
| Apache|"www.apache.org":http://www.apache.org| httpd| apache2|
944
| php|"www.php.net":http://www.php.net| php| php|
945
| php-devel*|"rpmfind.net/linux/RPM/Development_Languages_PHP.html":http://rpmfind.net/linux/RPM/Development_Languages_PHP.html| php-devel| php-devel|
946
| php-gd (including GD library, its development libraries and header *)|"www.php.ned/gd":http://www.libgd.org (Use gd2)| php-gd, gd-devel| php-gd,gd-devel|
947
| fftw3 library (including development libraries and header *)|"www.fftw.org":http://www.fftw.org (Use fftw3.x)| fftw3-devel| fftw3-devel|
948
949
950
951
952
* mrctools are compiled and added to php extension with php-devel package. Mrctools use
953
GD and FFTW3 that need to be compiled from their development libraries while the extension
954
is compiled. If GD and FFTW3 sources were downloaded and compiled directly on your computer,
955
these development files are included. If (as in most cases) GD and FFTW3 are installed from
956
rpm, they are not included. An error message will appear when you attempt to compile
957
mrctools. In this case, you will need separate download and installation of GD-devel and
958
FFTW3-devel. Search "http://rpmfind.net/linux/rpm2html/":http://rpmfind.ned/linux/rpm2html/ for GD-devel and FFTW3-devel for the rpm
959
distribution needed for your system.
960
961
962
963
964
h2. Installation tools
965
966
967
968
Use the installation tools available for your linux distribution.
969
970
971
972
973
*  For example, Use yum utility to install.
974
975
976
*  For example, Use the SuSE Linux YaST2 utility or zypper (openSuSE 10.2 and above)
977
to install.
978
979
980
* "A list of required CENTOS
981
rpms and instruction":http://emg.nysbc.org/bb/viewtopic.php?t=238 can be found at dbemtools bulletin board at
982
leginon.org.
983
984
985
986
987
988
989
990
991
h2.  PHP, PHP-devel, gd, and fftw3
992
993
994
Install the packages using your installation tools if available. For example, to
995
install gd as php extension you may use
996
997
998
999
<programlisting>CentOS> yum install php-gd
1000
SuSE10.2 and above> zypper install php-gd</pre>
1001
1002
1003
1004
1005
1006
h2.  Configure php.ini
1007
1008
1009
1010
Edit the following two sections in php.ini (found as /etc/php.ini on CentOS and
1011
/etc/php5/apache2/php.ini on SuSE) so that they look like the following:
1012
1013
1014
1015
<pre>register_argc_argv = On</pre>
1016
1017
1018
1019
1020
<pre>short_open_tag = On</pre>
1021
1022
1023
1024
1025
<pre>max_execution_time = 300     ; Maximum execution time of each script, in seconds
1026
max_input_time = 300     ; Maximum amount of time each script may spend parsing request data
1027
memory_limit = 256M      ; Maximum amount of memory a script may consume (8MB)</pre>
1028
1029
1030
1031
You may want to increase max_input_time and memory_limit if the server is heavily used.
1032
At NRAMM, max_input_time=600 and memory_limit=4000M.
1033
1034
1035
1036
1037
h2.  Apache Web Server
1038
1039
1040
1041
1042
1043
*  Install the Apache Web Server with the YaST or yum utility.
1044
1045
1046
*  Find "httpd.conf".
1047
1048
1049
This is /etc/httpd/conf/httpd.conf on CentOS and /etc/php5/apache2/httpd.conf on
1050
SuSE
1051
1052
1053
*  Edit the "httpd.conf" configuration file to look like the following:
1054
1055
1056
1057
<pre>&lt;IfModule mod_dir.c&gt;
1058
DirectoryIndex index.htm index.shtm index.html index.shtml index.php
1059
&lt;/IfModule&gt;</pre>
1060
1061
1062
(Note: It may be possible to edit httpd.conf in YaST2 as well.)
1063
1064
1065
*  Restart the web server.
1066
1067
1068
1069
<pre>apachectl restart
1070
or
1071
/etc/init.d/httpd restart     (ON CentOS)
1072
or
1073
/etc/init.d/apache2 restart   (ON SuSE)</pre>
1074
1075
1076
1077
If you want to start the web server automatically at boot on SuSE
1078
1079
<pre> SuSE &gt;chkconfig apache2 on
1080
</pre>
1081
1082
1083
1084
1085
1086
1087
1088
h2. Check php information
1089
1090
1091
Create the following info.php in your web server document root directory (/var/www/html
1092
on CentOS. /srv/www/htdocs on SuSE. You can find its location in httpd.conf mentioned above
1093
under the line starting
1094
DocumentRoot).<pre>&lt;?php
1095
phpinfo();
1096
?&gt;</pre>
1097
1098
1099
Visit this page at http://yourhost/info.php
1100
1101
1102
You will see comprehensive tables of php and apache information, including the location
1103
of the addition .ini files, extension, include path, and what extension is enabled.
1104
1105
1106
Here is an example screen shot of the part of the info.php page that tells you where
1107
php.ini and other configuration files are.
1108
1109
1110
1111
<graphic fileref="http://emg.nysbc.org/software/leginon/images/images/phpini.png"
1112
format="PNG"/>
1113
1114
1115
1116
1117
1118
h2.  mrctools Installation
1119
1120
1121
1122
mrctools are installed as php extension and are required for displaying mrc files live
1123
on the web browser.
1124
1125
1126
h2.  Install php-devel packages on the web server if missing:
1127
1128
1129
You can check whether php-devel is installed by
1130
typing<pre> &gt;phpize</pre>
1131
1132
1133
Follow the instruction for your specific Linux distribution.
1134
1135
1136
For example, SUSE users can use YaST or zypper to install them
1137
1138
1139
1140
1141
h2.  php-GD/FFTW3-devel
1142
1143
1144
1145
Follow instructions from the download site. These may be included already. If not,
1146
mrctools installation will fail.
1147
1148
1149
1150
1151
h2.  mrctools Installation
1152
1153
1154
1155
mrctools are installed from php devel directory. This is usually /usr/include/php/ext
1156
where you will find other php extension source such as gd. After the installation, mrc.so
1157
should be placed in php's extension directory (Look for "extension_dir" in
1158
http://your_host/<link linkend="install_infophp">info.php</link>
1159
1160
1161
1162
1163
*  Download dbem tools from "http://emg.nysbc.org/software/mrctools":http://emg.nysbc.org/software/mrctools.
1164
1165
1166
*  Follow the instruction at "http://emg.nysbc.org/software/mrctools/mrc_so.php":http://emg.nysbc.org/software/mrctools/mrc_so.php for installation and
1167
testing. The next session about checking php information can also help debugging the
1168
installation
1169
1170
1171
1172
1173
1174
1175
1176
1177
h2.  Check php information
1178
1179
1180
1181
Visit or refresh http://yourhost/info.php <link linkend="install_infophp">which you
1182
created earlier</link>. It should have a section looking like this (The version should
1183
correspond to what you've just installed):
1184
1185
1186
1187
<graphic fileref="http://emg.nysbc.org/software/leginon/images/images/phpmrc.png"
1188
format="PNG"/>
1189
1190
1191
1192
If mrc is not listed, the extension did not get added at the right order.
1193
1194
1195
1196
1197
h2.  Alternative approach if mrc module does not show up in info.php output
1198
1199
1200
1201
* find in the <link linkend="install_infophp">info.php web page</link> the location
1202
of "additional .ini files parsed" in the first table (such as
1203
/etc/php.d/conf.d/*).
1204
1205
1206
*  Go to the directory and make a copy of any ini file to use as a template for
1207
mrc.ini
1208
1209
1210
1211
<pre>&gt;cd [additional_ini_directory]
1212
&gt;cp gd.ini mrc.ini</pre>
1213
1214
1215
1216
*  Edit mrc.ini to the following
1217
1218
1219
1220
<pre>; comment out next line to disable mrc extension in php
1221
extension=mrc.so</pre>
1222
1223
1224
1225
*  Comment out mrc extension from php.ini (found in /etc/php.ini/ on a typical PHP
1226
installation)
1227
1228
1229
1230
<pre>;extension=mrc.so</pre>
1231
1232
1233
1234
*  restart your webserver
1235
1236
1237
1238
<pre>&gt; /etc/init.d/httpd restart</pre>
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
h2.  Web Viewing Tools (dbemtools) Linux
1249
Installation
1250
1251
1252
1253
php and java scripts for viewing images and Leginon information through the web
1254
server.
1255
1256
1257
1258
1259
*  Download dbem tools from "http://emg.nysbc.org/software/dbemtools":http://emg.nysbc.org/software/dbemtools.
1260
1261
1262
*  Unpack the package in your [webdirectory]
1263
1264
1265
1266
<pre>&gt;cd [webdirectory]			#/var/www/html in this example
1267
[webdirectory&gt;tar zxvf dbem_1_5_1.tgz</pre>
1268
1269
1270
1271
*  Copy config.php.template to config.php and edit the latter by adding these MySQL
1272
parameters:
1273
1274
"config.php" should be located in /var/www/html/dbem_1_5_1/ on CentOS and
1275
/srv/www/htdocs/dbem_1_5_1/ on SuSE.
1276
1277
1278
1279
<pre>&lt;?
1280
// ---define dbem web tools base ---//
1281
define('BASE_URL',"/dbem_1_5_1/";
1282
// --- Leginon Viewer Configuration --- //
1283
1284
// --- Set your leginon MySQL database server parameters
1285
1286
$DB_HOST    = "[your database host]";
1287
$DB_USER    = "<link linkend="db_example_names">usr_object</link>";
1288
$DB_PASS    = "";
1289
$DB        = "<link linkend="db_example_names">dbemdata</link>";
1290
1291
// --- XML test dataset
1292
$XML_DATA = "test/viewerdata.xml";
1293
1294
// --- Project database config
1295
1296
$PROJECT_URL = "/project_1_2";
1297
$PROJECT_DB_HOST = "[your database host]";
1298
$PROJECT_DB_USER = "<link linkend="db_example_names">usr_object</link>";
1299
$PROJECT_DB_PASS = "";
1300
$PROJECT_DB = "<link linkend="db_example_names">projectdata</link>";
1301
</pre>
1302
1303
1304
1305
*  Test the set-up by visiting http://yourhost/dbem_1_5_1
1306
1307
1308
1309
1310
1311
1312
1313
1314
h2.  Project management tools Linux Installation
1315
1316
1317
1318
Leginon sessions can be catagorized into different projects. The projects are created
1319
and viewed trhough a set of web tools. To access them, install the tools on the web server.
1320
The same project management tools are also used to create and track appion processing
1321
databases. If you want to use our processing pipeline, Appion, in the future, you must
1322
install this.
1323
1324
1325
h2. Prerequisites for project tools
1326
1327
1328
1329
installed dbemtools and its prerequisites
1330
1331
1332
1333
1334
h2. project tools
1335
1336
1337
Current release: project 1.2.
1338
1339
1340
1341
1342
*  Download project tools from "http://emg.nysbc.org/software/dbemtools":http://emg.nysbc.org/software/dbemtools.
1343
1344
1345
*  Unpack the package in your [webdirectory]
1346
1347
1348
1349
<pre>&gt;cd [webdirectory]			#/var/www/html in this example
1350
[webdirectory]&gt;tar zxvf project_1_2.tgz</pre>
1351
1352
1353
1354
*  Go to the uncompressed directory
1355
project_1_2.<programlisting>> cd project_1_2</pre>
1356
1357
1358
* Copy config.php.template to <emphasis role="bold">config.php</emphasis>
1359
1360
1361
1362
<pre>> cp config.php.template to config.php</pre>
1363
1364
1365
1366
* Edit <emphasis role="bold">config.php</emphasis>: You need to insert these MySQL
1367
parameters in project tool's config.php
1368
1369
1370
1371
<pre>// --- Project Configuration --- //
1372
1373
// --- Leginon database config
1374
$DBEM_PATH="../dbem_1_5_1/";
1375
1376
$DB_HOST  = "[your database host]";
1377
$DB_USER  = "usr_object";
1378
$DB_PASS  = "";
1379
$DB   = "<link linkend="db_example_names">dbemdata</link>";
1380
1381
// --- Project database config
1382
$PROJECT_DB_HOST = "[your database host]";
1383
$PROJECT_DB_USER = "<link linkend="db_example_names">usr_object</link>";
1384
$PROJECT_DB_PASS = "";
1385
$PROJECT_DB = "<link linkend="db_example_names">projectdata</link>";
1386
</pre>
1387
1388
1389
1390
*  Test the set-up by visiting http://yourhost/project_1_2
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
h2.  Other Tools
1402
1403
1404
This section includes tools that may help with Leginon development.
1405
1406
1407
h2.  phpMyAdmin
1408
1409
1410
1411
1412
1413
*  Download phpMyAdmin from Yast2 or "www.phpmyadmin.net":http://www.phpmyadmin.net
1414
1415
1416
1417
1418
*  Download phpMyAdmin into the directory where the web server has been
1419
installed.
1420
1421
1422
1423
1424
1425
1426
*  Check phpMyAdmin installation:
1427
1428
1429
1430
<pre>&gt;rpm -qa |grep -i phpmyadmin </pre>
1431
1432
1433
1434
*  Install from tarball:
1435
1436
1437
1438
<pre>> cd [webdirectory]
1439
[webdirectory]&gt;tar zxvf phpMyAdmin-2.x.tar.gz</pre>
1440
1441
1442
1443
or Install with yum if availabe:
1444
1445
1446
1447
<pre>> yum install phpMyAdmin</pre>
1448
1449
1450
1451
*  Create phpMyAdmin configuration file called config.inc.php from a
1452
sample.
1453
1454
1455
1456
<pre>[webdirectory]&gt;cd phpMyAdmin
1457
(if you install with yum, the program directory is /usr/share/phpMyAdmin)
1458
1459
> cp config.sample.inc.php config.inc.php
1460
</pre>
1461
1462
1463
1464
*  Make sure these are set correctly in <emphasis role="bold"
1465
>config.inc.php</emphasis>. Note that these are for MySQL which we set earlier.
1466
You can set specific user, but it is safer just leave it blank.
1467
1468
1469
1470
<pre>
1471
$cfg['Servers'][$i]['host']            = '[your host]';
1472
$cfg['Servers'][$i]['port']            = '';
1473
$cfg['Servers'][$i]['socket']          = '';
1474
$cfg['Servers'][$i]['connect_type']    = 'tcp';
1475
$cfg['Servers'][$i]['extension']       = 'mysql';
1476
$cfg['Servers'][$i]['compress']        = FALSE;
1477
$cfg['Servers'][$i]['controluser']     = '';
1478
$cfg['Servers'][$i]['auth_type']     = 'http';
1479
$cfg['Servers'][$i]['user']          = '';
1480
$cfg['Servers'][$i]['password']      = '';
1481
</pre>
1482
1483
1484
1485
*  For additional security, you may restrict mysql root access
1486
1487
1488
1489
<pre>
1490
$cfg['Servers'][$i]['AllowRoot']     = FALSE;
1491
</pre>
1492
1493
1494
1495
*  If you want to access phpMyAdmin from another computer, you can add it to its
1496
web access configuration file found as /etc/httpd/conf.d/phpMyAdmin.conf in a
1497
typical installation
1498
1499
1500
1501
<pre>
1502
&lt;Directory /usr/share/phpMyAdmin/>
1503
order deny,allow
1504
deny from all
1505
allow from 127.0.0.1
1506
allow from YOUR_IP_ADDRESS
1507
&lt;/Directory>
1508
</pre>
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
h2.  Windows installation
1523
1524
1525
1526
h2.  Processing-side Leginon Windows Installation
1527
1528
1529
1530
h2.  Install Python and Support Packages (Note that python 2.5 must be used):
1531
1532
1533
1534
This list does not include pyton XML module because it is included in the python
1535
package for window.
1536
1537
|_.Name:|_.Download site:|
1538
|Python 2.5*|"http://www.python.org":http://www.python.org|
1539
|Python for Windows extension (pywin32) |"http://sourceforge.net/projects/pywin32/":http://sourceforge.net/projects/pywin32/|
1540
|wxPython 2.5.2.8 or newer|"http://www.wxpython.org":http://www.wxpython.org|
1541
|MySQL Python client 1.2 or newer|"http://sourceforge.net/projects/mysql-python":http://sourceforge.net/projects/mysql-python|
1542
|Python Imaging Library (PIL) 1.1.4 or newer|"http://www.pythonware.com/products/pil/":http://www.pythonware.com/products/pil/|
1543
|NumPy 1.0b5 (tested, others may work)|"http://www.scipy.org":http://www.scipy.org|
1544
|SciPy 0.5.1 or newer|"http://www.scipy.org":http://www.scipy.org|
1545
|Tortoise SVN client|"http://tortoisesvn.tigris.org":http://tortoisesvn.tigris.org|
1546
1547
1548
1549
1550
*Python 2.5 is the only python version that we have compiled numExtension. libCV and
1551
comarray in. Therefore no other python version works for now.
1552
1553
1554
Execute the installer file and follow the directions.
1555
1556
1557
1558
1559
h2. Packages required from NRAMM
1560
1561
1562
1563
Here are the packages you need to install with python installer
1564
1565
|_.Name:|_.Purpose:|
1566
| Leginon|modular TEM image acquisition|
1567
| pyami|general functions|
1568
| sinedon|Leginon/database interaction|
1569
| pyScope|microscope control and monitoring|
1570
| ImageViewer|image viewing for tomography|
1571
1572
1573
1574
1575
Because numextension and libCV requires extra compilers, we have created window
1576
installer for them for python 2.5 and made them available through "http://www.leginon.org/":http://www.leginon.org/
1577
1578
|_.Downloadfile Name|_.Installed Python Package File|_.Purpose:|
1579
|NumExtension-1.2.0.win32-py2.5.exe|numextension.pyd|c extension for numerical processing|
1580
|libCV-0.2.win32-py2.5.exe|libCV.pyd|small c library of algorithm from computer vision field|
1581
1582
1583
1584
1585
1586
1587
h2. Check out SVN Source Files from the depository
1588
1589
1590
1591
Use your mouse to do the following
1592
* Create Leginon-1.6-ALL directory somewhere at your convenience
1593
1594
1595
* Change directory into Leginon-1.6-ALL
1596
1597
1598
* Right-click the mouse botton in this directory window and select Tortoise svn
1599
Checkout in the menu:<graphic
1600
fileref="http://emg.nysbc.org/software/leginon/images/images/svnmenu.png"
1601
/>
1602
1603
1604
* Set up svn checkout window like this for <link linkend="windows_packages">EACH
1605
of the leginon packages</link>.<graphic
1606
fileref="http://emg.nysbc.org/software/leginon/images/images/svnco.png"/>
1607
1608
1609
1610
1611
1612
1613
1614
h2. Install the packages you downloaded from NRAMM svn depository
1615
1616
1617
1618
1619
1620
* Start a command line Window from Start Menu
1621
1622
1623
* Install the package in each folder with commands such as
1624
<pre>cd Your_Download_Place\Leginon-1.6-ALL\leginon
1625
c:\\python25\python.exe setup.py install</pre>
1626
1627
1628
1629
1630
1631
1632
1633
1634
h2. Download the two Window Installer Files from Leginon website
1635
1636
1637
1638
"http://www.leginon.org/":http://www.leginon.org/
1639
1640
1641
1642
1643
h2. Install individual packages
1644
1645
1646
1647
Excute the installer files and follow the instruction.
1648
1649
1650
1651
1652
h2.  Mapping Drives:
1653
1654
1655
1656
If you plan to run Leginon directly on the Windows machine, such as in <link
1657
linkend="config_C">configuration C</link>, and your data files are served through a
1658
Samba server on a Linux machine, you will need to map the network drive. For example, if
1659
your Samba server has a hostname your_smbserver, and you have set up a share called
1660
[your_share_point] which points to /your_data_path/ and leginon data will be saved under a
1661
folder in /your_data_path/leginon/
1662
1663
1664
1665
1666
*  Start, My Computer
1667
1668
1669
*  Tools menu, Map network drive
1670
1671
1672
*  Use an unmapped drive such as Z:
1673
1674
Enter shared path in Windows format
1675
as<programlisting>\\your_smbserver\your_share_point</pre>
1676
1677
1678
*  Add the drive and the Linux path to leginon.cfg on the Windows machine
1679
as<programlisting>[Drive Mapping]
1680
Z:/your_data_path</pre>
1681
1682
1683
*  Add image path to leginon.cfg on the Windows machine in Linux format
1684
as<programlisting>[Images]
1685
path:/your_data_path/leginon</pre>
1686
1687
1688
1689
1690
1691
1692
1693
1694
h2.  Configure leginon.cfg:
1695
1696
1697
Follow instruction in "<link linkend="leginon_cfg">Configure leginon.cfg</link>" in
1698
the section for Linux installation but note the location of the configuration files
1699
follows. In addition, if the storage disk is mapped onto the Windows PC as drive Z, this
1700
mapping should be included in leginon.cfg. See above.
1701
1702
1703
1704
1705
*  Configurations for all users
1706
1707
1708
1709
<pre> &lt;Python directory&gt;\Lib\site-packages\Leginon\config\leginon.cfg</pre>
1710
1711
1712
Example:
1713
<pre> C:\Python25\Lib\site-packages\Leginon\config\leginon.cfg</pre>
1714
1715
1716
*  Configurations for individual users
1717
1718
1719
1720
<pre> &lt;Home directory&gt;\leginon.cfg</pre>
1721
1722
1723
Example:
1724
<pre> C:\Documents and Settings\Leginon User\leginon.cfg </pre>
1725
1726
1727
*  A skeleton (default) configuration file is available:
1728
1729
1730
1731
<pre> C:\Python25\Lib\site-packages\Leginon\config\default.cfg</pre>
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
h2.  Configure sinedon.cfg:
1742
1743
1744
Sinedon is designed to be able to interact with multiple databases.
1745
1746
Follow instruction in "<link linkend="sinedon_cfg">Configure sinedon.cfg</link>" in
1747
the section for Linux installation but note the location of the configuration files
1748
follows.
1749
1750
1751
1752
1753
* For all users, put sinedon.cfg with the installed package
1754
as<pre>C:\Python25\Lib\site-packages\sinedon\sinedon.cfg</pre>
1755
1756
1757
*  Your home directory on
1758
Windows:<pre>C:\Documents and Settings\your_name&gt;</pre>
1759
1760
1761
* the skeleton sinedon configuration file
1762
is<pre>C:\Python25\Lib\site-packages\sinedon\examples\sinedon.cfg</pre>
1763
1764
1765
1766
1767
1768
1769
1770
1771
h2.  Create Leginon and Leginon Client shortcut in Start menu menu under Leginon
1772
1773
1774
1775
This instruction refers to Windows XP
1776
1777
1778
1779
1780
* Go to C:\Documents and Settings\All Users\Start Menu\Programs\ and create a new
1781
folder named Leginon.
1782
1783
1784
* In another window, go
1785
to<programlisting>C:\Python25\Lib\site-packages\Leginon</pre>
1786
1787
1788
* Create a shortcut from start-leginon.py as Leginon and a shortcut from
1789
launcher.py as Leginon Client.
1790
1791
1792
* Move the two shortcuts into
1793
<programlisting>C:\Documents and Settings\All Users\Start Menu\Programs\Leginon</pre>
1794
1795
1796
1797
1798
1799
1800
1801
1802
h2.  Additional Software (Optional):
1803
1804
1805
TightVNC (http://www.tightvnc.com)
1806
1807
1808
1809
1810
1811
1812
1813
1814
h2. Database server Windows Installation
1815
1816
1817
1818
h2. We do not do this at NRAMM. Please follow the instruction in Linux installation and
1819
modify it for Windows at your own risk.
1820
1821
1822
1823
For a good Windows specific instruction for general PHP configuration with MySQL for
1824
Apache 2 in Windows, try http://www.artfulsoftware.com/php_mysql_win.html.
1825
1826
1827
1828
1829
1830
1831
1832
1833
h2.  Additional installation on the microscope computer:
1834
1835
1836
1837
The full leginon and its supporting packages need to be installed on the Windows computer
1838
controlling the microscope. Additional programs are required for communication with the CCD
1839
and extra functions for Tecnai scripting not supported as default by FEI Tecnai
1840
microscopes
1841
1842
1843
h2.  Required supporting programs for the CCD camera from camera makers
1844
1845
1846
1847
Install and register the following programs for CCD cameras from the two makes:
1848
1849
|_.Camera Make:|_.File:|
1850
| Gatan|TecnaiCCD.dll|
1851
| Tietz|CAMC4.exe*|
1852
1853
1854
1855
1856
* We have experienced slowness of the CAMC4.exe comes with later version Tecnai TUI/TIA.
1857
Replacing it with an earlier version of CAMC4.exe resolved the problem.
1858
1859
1860
1861
1862
h2. Additional Package required from NRAMM for Gatan camera or camera that uses TIA
1863
1864
1865
1866
For Gatan Camera or FEI Eagle Camera that uses TIA, comarray package need to be install
1867
with python
1868
1869
|_.SVN Package Name|_.Installed Python Package Name|_.Reason for update:|
1870
|comarray|comarray|com module output conversion to array|
1871
1872
1873
1874
1875
1876
1877
* <link linkend="window_svn">Check out the comarray package</link> from svn
1878
depository with your SVN client
1879
1880
<programlisting>cd Leginon-1.6-ALL
1881
svn co http://emg.nysbc.org/svn/comarray/branches/leg1.6 comarray</pre>
1882
1883
* Start a command line Window from Start Menu
1884
1885
1886
* Install the package with commands such as
1887
<pre>cd Your_Download_Place\Leginon-1.6-ALL\comarray
1888
c:\\python25\python.exe setup.py install</pre>
1889
1890
1891
1892
1893
1894
1895
1896
1897
h2.  Supporting programs for film exposure
1898
1899
1900
1901
Install the following if you need film exposure on FEI Tecnai TEM through Leginon,
1902
available through FEI. Please contact Max Otten: <email>mto@feico.com</email> and request
1903
for adaexp.exe that works with your version of Tecnai user interface program.
1904
1905
|_.Name:|_.File:|
1906
| exposure adaptor|adaexp.exe|
1907
1908
1909
1910
1911
1912
1913
h2.  Register adaexep.exe
1914
1915
1916
1917
*  From the command prompt:
1918
1919
<pre>adaexp.exe /regserver</pre>
1920
1921
*  From the program start menu under pyScope or
1922
C:\Python25\Lib\site-packages\pyScope\
1923
1924
<pre>updatecom.py</pre>
1925
1926
1927
1928
1929
1930
1931
1932
h2. Modify instruments.cfg:
1933
1934
1935
1936
Sinedon now have full control of database interaction, therefore, the database
1937
configuration in leginon.cfg is no longer needed.
1938
1939
1940
1941
1942
* Modify the file instruments.cfg in the installed pyScope directory to that for
1943
your microscope and camera. For example, if your microscope uses Tecnai Scripting
1944
Interface and you have a Gatan camera that you interface through
1945
DigitalMicrograph:
1946
1947
1948
1949
<pre>[tem]
1950
class: tecnai.Tecnai
1951
[camera]
1952
class: gatan.Gatan</pre>
1953
1954
1955
1956
The file contains other examples of microscope and camera drivers that we
1957
distribute from NRAMM.
1958
1959
1960
1961
1962
1963
1964
1965
1966
h2. Run updatecom.py
1967
1968
1969
1970
From a command line window:
1971
1972
1973
1974
<pre>cd C:\python25\Lib\Site-Packages\pyScope
1975
C:\python25\python.exe updatecom.py</pre>
1976
1977
1978
1979
This should generate a few files, including tecnaicom.py, gatancom.py and tietzcom.py,
1980
in the same directory.
1981
1982
1983
1984
1985
h2. Additional setup on Tietz PXL camera (optional)
1986
1987
1988
1989
The actual Tietz PXL camera dimension is slightly larger than 2048 x 2048. If you'd like
1990
to take the images using the maximum of 2048 x 2048 pixels, you may modify the function that
1991
get camera dimension in tietz.py of pyScope package.
1992
1993
1994
*  Go to C:\Python25\Lib\site-packages\pyScope\
1995
1996
1997
*  Edit tietz.py with a plain text editor
1998
1999
2000
*  Find the lines:
2001
2002
2003
2004
<pre> def getCameraSize(self):
2005
# {'type': dict, 'values': {'x': {'type': int}, 'y': {'type': int}}}}
2006
x = self._getParameterValue('cpTotalDimensionX')
2007
y = self._getParameterValue('cpTotalDimensionY')
2008
return {'x': x, 'y': y}
2009
</pre>
2010
2011
2012
2013
*  Change the last line to:
2014
2015
2016
2017
<pre>    return {'x': 2048, 'y': 2048}</pre>
2018
2019
2020
2021
2022
2023
2024
2025
h2.  Additional Software (Optional):
2026
2027
2028
TightVNC (http://www.tightvnc.com) if you get tired of going into the microscope room
2029
just to open the column valves.
2030
2031
2032
2033
2034
2035
2036
2037
2038
h2.  What is next
2039
2040
2041
2042
h2.  Perform Administration Setup
2043
2044
2045
See Next chapter on <link linkend="addusers">Leginon Administration Tools</link>.
2046
2047
2048
2049
2050
2051
h2.  Create a test project
2052
2053
2054
See the chapter on <link linkend="project">Project Management Tools</link>.
2055
2056
2057
2058
2059
h2.  Perform Microscope Setup and Test run
2060
2061
2062
See the chapter on <link linkend="runleg_chapter">Start Leginon</link>.
2063
2064
2065
2066
2067
2068
2069
h2.  Backup Practices
2070
2071
2072
2073
h2.  Ideal setup:
2074
2075
2076
2077
h2.  Regular computer backup
2078
2079
2080
2081
To protect your program installation.
2082
2083
2084
2085
2086
h2.  Full backup of the databases every night
2087
2088
2089
2090
The database is the metadata generated by Leginon named "dbemdata" in the installation
2091
example.
2092
2093
2094
2095
2096
h2. Full/Incremental/differential backup of the images
2097
2098
2099
2100
The image files located in [your storage disk] should be backup in full at least once
2101
a month, and nightly in differential or incremental mode.
2102
2103
2104
2105
2106
2107
2108
h2.  Current NRAMM setup:
2109
2110
2111
2112
Because our tape backup system is not on-site and the data have to transfer over slow
2113
network to perform the task, we have not been able to backup in the ideal setting. Here is
2114
what we currently do:
2115
2116
2117
h2.  Regular computer backup
2118
2119
2120
2121
TSRI Research Computing provides regular back up service that does full backup of the
2122
computers every four weeks and incremental backup every night. The full backup expires in
2123
4 months and the incremental backup one month. We do this for the computers running
2124
Leginon main program, the database server, as well as the web server.
2125
2126
2127
2128
2129
h2.  Regular backup &amp; tar of the databases every night
2130
2131
2132
2133
On top of the TSRI backup, we also tar the database everynight and store it on the
2134
institutional tape library.
2135
2136
2137
2138
2139
h2.  rsync to a tape library of the image storage disk
2140
2141
2142
2143
As our image storage disks total 15T byte, we currently use rsync function to update a
2144
copy on our institutional tape library. It creates new files, updates old files, but does
2145
not remove old files on the tape if it is removed on the storage disk. We do not think
2146
this is the best solution since it is not possible to retrieve old files that have been
2147
modified on a later time.