#Please insert up references in the next lines (line starts with keyword UP)
UP	arb.hlp
UP	glossary.hlp

#Please insert subtopic references  (line starts with keyword SUB)

SUB	probeadmin.hlp
SUB	probematch.hlp
SUB	probedesign.hlp
SUB	multiprobe.hlp

# Hypertext links in helptext can be added like this: LINK{ref.hlp|http://add|bla@domain}

#************* Title of helpfile !! and start of real helpfile strunk ********
TITLE		PT_SERVER: What Why and How

OCCURRENCE	<ARB_NT/ETC/probe*>
		<ARB_EDIT/EDIT/align_sequence ..>

DESCRIPTION	Probe design, probe matching, and searching the nearest relatives require a
		lot of database searching.
		Simply scanning the whole database for a specific target
		takes several tens of seconds. Probe design and searching for
		nearest relatives start thousands of search
		operations. Waiting several weeks to get a result from the computer
		makes every user hate the program, so better algorithms have
		to be developed.

	The basic ARB SEARCH ALGORITHM:

	-	When any (calling) program wants to scan a database, it
		does not do the job itself but calls a special
		SEARCH_PATTERNS_IN_A_BIG_DATABASE_PROGRAM.

		We named this program PT_SERVER ('Prefix tree server' or
                synonymously 'Positional tree server').
		The PT_SERVER searches for patterns in special database files
		and sends all matches back to the calling program.

	-	Different databases have different PT_SERVERs.
		You must choose a PT_SERVER to match the database
                you wish to search. The file $ARBHOME/lib/arb_tcp.dat defines
                all possible choices.

	-	If there is no PT_SERVER running, one is automatically started.
		A PT_SERVER does not scan the database of the calling
		program, but the database in $ARBHOME/lib/pts/*.arb.

                  That means:

                    If you have just entered a new sequence this sequence
                    will not be found by the the nearest-relative search.

                         This is normally very useful, as you only want to use old
                         sequences as a reference in the aligning process.

                    For generating probes it isn't useful, because new sequences have to
                    be added to the PT_SERVER before designing or matching probes.
                    Remember: By adding 1 new sequence to the database, any previously validated
                    probe may become invalid.

                          Re-build your PT-server frequently and re-evaluate any probes
                          you've made before.


	Creating a new PT_SERVER template:

	-	Edit the file $ARBHOME/lib/arb_tcp.dat.
		<ARB_NTREE/Probes/PT_SERVER Admin/CREATE TEMPLATE>
		Note: Make a copy of your changes because a new
		ARB installation may reinstall $ARBHOME/lib/arb_tcp.dat.

	-	Restart arb

        Create a database for an existing template:

	-	Start ARB with the database you want to send to the PT_SERVER.
	-	Open the PT_SERVER ADMIN Window <ARB_NTREE/Probes/PT_SERVER Admin>.
	-	Select a template
	-	Press <BUILD SERVER>: ARB will save the DB into
                $ARBHOME/lib/pts/name.arb
	-	Wait (SUN Sparc 10: 10 minutes/megabyte_sequence_data)
                ARB generates an index file $ARBHOME/lib/pts/name.arb.pt

		If any '*.arb' file in $ARBHOME/lib/pts is newer than the
		corresponding '*.arb.pt' ( == prefix tree) file the
		'*.arb.pt' file will be updated as soon as the
		PT_SERVER is started.

        Updating a server:

                 see 'Create a database for an existing template'.

NOTES      Once started a PT_SERVER never stops. The only ways to stop a
           PT_SERVER are:

			- SOFT KILL (everybody) (only idle PT_SERVERS):

				- <ARB_NTREE/Probes/PT_SERVER Admin/KILL SERVER>

			- HARD KILL (supervisor) (all servers):

				- become superuser
				- enter 'ps -auxww |grep pt_server' at any shell
				- enter 'kill -9 PID'
				  ( to get help enter 'man kill' or 'man ps' )


           WHY DOESN'T ARB USE BLAST ?

		The basic idea of blast is to create a finite automaton for all
		search patterns and do the database search only once.
		If someone wants to start a fuzzy search ( allowing mismatches)
		the size of this automata increases exponentially.

			For example:
			Three mismatches in a 20-base pattern would yield
			about 100,000 states in the automaton per search
			pattern. If probe design creates 1000 search
			patterns, and every state needs 10 bytes of
			computer memory, the search operation will require
			1 gigabyte RAM.


	You will need a lot of swap space to run multiple PT_SERVER.

WARNINGS	Do not modify any databases in $ARBHOME/lib/pts/ except
		by the <PT_SERVER Admin> tools.
		The reason is to keep the write protections of those files
		consistent.

BUGS		Sometimes some bugs
