1 | #Please insert up references in the next lines (line starts with keyword UP) |
---|
2 | UP arb.hlp |
---|
3 | UP glossary.hlp |
---|
4 | |
---|
5 | #Please insert subtopic references (line starts with keyword SUB) |
---|
6 | |
---|
7 | SUB probeadmin.hlp |
---|
8 | SUB probematch.hlp |
---|
9 | SUB probedesign.hlp |
---|
10 | SUB multiprobe.hlp |
---|
11 | |
---|
12 | # Hypertext links in helptext can be added like this: LINK{ref.hlp|http://add|bla@domain} |
---|
13 | |
---|
14 | #************* Title of helpfile !! and start of real helpfile strunk ******** |
---|
15 | TITLE PT_SERVER: What Why and How |
---|
16 | |
---|
17 | OCCURRENCE <ARB_NT/ETC/probe*> |
---|
18 | <ARB_EDIT4/Edit/aligners> |
---|
19 | |
---|
20 | DESCRIPTION Probe design, probe matching, and searching the nearest relatives require a |
---|
21 | lot of database searching. |
---|
22 | Simply scanning the whole database for a specific target |
---|
23 | takes several tens of seconds. Probe design and searching for |
---|
24 | nearest relatives start thousands of search |
---|
25 | operations. Waiting several weeks to get a result from the computer |
---|
26 | makes every user hate the program, so better algorithms have |
---|
27 | to be developed. |
---|
28 | |
---|
29 | The basic ARB SEARCH ALGORITHM: |
---|
30 | |
---|
31 | - When any (calling) program wants to scan a database, it does not do the job itself |
---|
32 | but calls a special SEARCH_PATTERNS_IN_A_BIG_DATABASE_PROGRAM. |
---|
33 | |
---|
34 | We named this program PT_SERVER ('Prefix tree server' or |
---|
35 | synonymously 'Positional tree server'). The PT_SERVER searches for patterns |
---|
36 | in special database files and sends all matches back to the calling program. |
---|
37 | |
---|
38 | - Different databases have different PT_SERVERs. |
---|
39 | You must choose a PT_SERVER to match the database you wish to search. |
---|
40 | The file $ARBHOME/lib/arb_tcp.dat defines all possible choices. |
---|
41 | |
---|
42 | - If there is no PT_SERVER running, one is automatically started. |
---|
43 | A PT_SERVER does not scan the database of the calling program, but the database in $ARBHOME/lib/pts/*.arb. |
---|
44 | |
---|
45 | That means: |
---|
46 | |
---|
47 | If you have just entered a new sequence this sequence |
---|
48 | will not be found by the the nearest-relative search. |
---|
49 | |
---|
50 | This is normally very useful, as you only want to use old |
---|
51 | sequences as a reference in the aligning process. |
---|
52 | |
---|
53 | For generating probes it isn't useful, because new sequences have to |
---|
54 | be added to the PT_SERVER before designing or matching probes. |
---|
55 | Remember: By adding 1 new sequence to the database, any previously validated |
---|
56 | probe may become invalid. |
---|
57 | |
---|
58 | Re-build your PT-server frequently and re-evaluate any probes |
---|
59 | you've made before. |
---|
60 | |
---|
61 | |
---|
62 | Creating a new PT_SERVER template: |
---|
63 | |
---|
64 | - Edit the file $ARBHOME/lib/arb_tcp.dat using <ARB_NTREE/Probes/PT_SERVER Admin/CREATE TEMPLATE> |
---|
65 | |
---|
66 | Note: Make a copy of your changes because a new ARB installation may reinstall and overwrite your changed $ARBHOME/lib/arb_tcp.dat. |
---|
67 | |
---|
68 | - Restart arb |
---|
69 | |
---|
70 | Create a database for an existing template: |
---|
71 | |
---|
72 | - Start ARB with the database you want to send to the PT_SERVER. |
---|
73 | - Open the PT_SERVER ADMIN Window <ARB_NTREE/Probes/PT_SERVER Admin>. |
---|
74 | - Select a template |
---|
75 | - Press <BUILD SERVER>: ARB will save the DB into $ARBHOME/lib/pts/name.arb |
---|
76 | - Wait |
---|
77 | |
---|
78 | ARB generates an index file $ARBHOME/lib/pts/name.arb.pt |
---|
79 | |
---|
80 | If any '*.arb' file in $ARBHOME/lib/pts is newer than the |
---|
81 | corresponding '*.arb.pt' ( == prefix tree) file the |
---|
82 | '*.arb.pt' file will be updated as soon as the |
---|
83 | PT_SERVER is started. |
---|
84 | |
---|
85 | Updating a server: |
---|
86 | |
---|
87 | see 'Create a database for an existing template'. |
---|
88 | |
---|
89 | NOTES Once started a PT_SERVER never stops. The only ways to stop a |
---|
90 | PT_SERVER are: |
---|
91 | |
---|
92 | - SOFT KILL (everybody) (only idle PT_SERVERS): |
---|
93 | |
---|
94 | - <ARB_NTREE/Probes/PT_SERVER Admin/KILL SERVER> |
---|
95 | |
---|
96 | - HARD KILL (supervisor) (all servers): |
---|
97 | |
---|
98 | - become superuser |
---|
99 | - enter 'ps -auxww |grep pt_server' at any shell |
---|
100 | - enter 'kill -9 PID' |
---|
101 | ( to get help enter 'man kill' or 'man ps' ) |
---|
102 | |
---|
103 | |
---|
104 | WHY DOESN'T ARB USE BLAST? |
---|
105 | |
---|
106 | The basic idea of blast is to create a finite automaton for all |
---|
107 | search patterns and do the database search only once. |
---|
108 | If someone wants to start a fuzzy search ( allowing mismatches) |
---|
109 | the size of this automata increases exponentially. |
---|
110 | |
---|
111 | For example: |
---|
112 | Three mismatches in a 20-base pattern would yield |
---|
113 | about 100,000 states in the automaton per search |
---|
114 | pattern. If probe design creates 1000 search |
---|
115 | patterns, and every state needs 10 bytes of |
---|
116 | computer memory, the search operation will require |
---|
117 | 1 gigabyte RAM. |
---|
118 | |
---|
119 | |
---|
120 | You will need a lot of swap space to run multiple PT_SERVER. |
---|
121 | |
---|
122 | WARNINGS Do not modify any databases in $ARBHOME/lib/pts/ except |
---|
123 | by the <PT_SERVER Admin> tools. |
---|
124 | The reason is to keep the write protections of those files |
---|
125 | consistent. |
---|
126 | |
---|
127 | BUGS Sometimes some bugs |
---|