[med-svn] r316 - in trunk/packages/phylographer/trunk: . debian debian/patches

charles-guest at alioth.debian.org charles-guest at alioth.debian.org
Thu Jun 14 23:50:23 UTC 2007


Author: charles-guest
Date: 2007-06-14 23:50:23 +0000 (Thu, 14 Jun 2007)
New Revision: 316

Added:
   trunk/packages/phylographer/trunk/debian/
   trunk/packages/phylographer/trunk/debian/README.Debian
   trunk/packages/phylographer/trunk/debian/WARNING
   trunk/packages/phylographer/trunk/debian/changelog
   trunk/packages/phylographer/trunk/debian/compat
   trunk/packages/phylographer/trunk/debian/control
   trunk/packages/phylographer/trunk/debian/copyright
   trunk/packages/phylographer/trunk/debian/dirs
   trunk/packages/phylographer/trunk/debian/menu.ex
   trunk/packages/phylographer/trunk/debian/patches/
   trunk/packages/phylographer/trunk/debian/patches/fix-image-location
   trunk/packages/phylographer/trunk/debian/patches/fix-readme-location
   trunk/packages/phylographer/trunk/debian/patches/series
   trunk/packages/phylographer/trunk/debian/phylographer.doc-base.EX
   trunk/packages/phylographer/trunk/debian/rules
   trunk/packages/phylographer/trunk/debian/tcl_blast_parser_123_V038.tcl
   trunk/packages/phylographer/trunk/debian/watch.ex
Log:
[svn-inject] Applying Debian modifications to trunk

Added: trunk/packages/phylographer/trunk/debian/README.Debian
===================================================================
--- trunk/packages/phylographer/trunk/debian/README.Debian	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/README.Debian	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,6 @@
+phylographer for Debian
+-----------------------
+
+<possible notes regarding this package - if none, delete this file>
+
+ -- Charles Plessy <charles-debian-nospam at plessy.org>  Mon,  4 Jun 2007 17:22:02 +0900

Added: trunk/packages/phylographer/trunk/debian/WARNING
===================================================================
--- trunk/packages/phylographer/trunk/debian/WARNING	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/WARNING	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,4 @@
+This is just a draft and it is completely unsuitable for upload.
+
+-- 
+Charles

Added: trunk/packages/phylographer/trunk/debian/changelog
===================================================================
--- trunk/packages/phylographer/trunk/debian/changelog	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/changelog	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,6 @@
+phylographer (20030403-1) unstable; urgency=low
+
+  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>
+
+ -- Charles Plessy <charles-debian-nospam at plessy.org>  Mon,  4 Jun 2007 17:22:02 +0900
+

Added: trunk/packages/phylographer/trunk/debian/compat
===================================================================
--- trunk/packages/phylographer/trunk/debian/compat	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/compat	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1 @@
+5

Added: trunk/packages/phylographer/trunk/debian/control
===================================================================
--- trunk/packages/phylographer/trunk/debian/control	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/control	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,23 @@
+Source: phylographer
+Section: science
+Priority: optional
+Maintainer: Debian-Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
+Uploaders: Charles Plessy <charles-debian-nospam at plessy.org>
+Build-Depends: debhelper (>= 5), quilt
+Standards-Version: 3.7.2
+XS-Vcs-Browser: http://svn.debian.org/wsvn/debian-med/trunk/packages/amap-align/trunk/
+XS-Vcs-Svn: svn://svn.debian.org/svn/debian-med/trunk/packages/amap-align
+
+Package: phylographer
+Architecture: all
+Depends: tk8.4
+Description: Graph Visualization Tool
+ PhyloGrapher is a program designed to visualize and study evolutionary
+ relationships within families of homologous genes or proteins
+ (elements). PhyloGrapher is a drawing tool that generates custom graphs
+ for a given set of elements. In general, it is possible to use
+ PhyloGrapher to visualize any type of relations between elements.
+ Used in conjunction with tcl_blast_parser, PhyloGrapher can represent
+ the results of a BLAST search as a graph.
+ .
+  Homepage: http://www.atgc.org/PhyloGrapher/PhyloGrapher_Welcome.html

Added: trunk/packages/phylographer/trunk/debian/copyright
===================================================================
--- trunk/packages/phylographer/trunk/debian/copyright	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/copyright	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,36 @@
+This package was debianized by Charles Plessy <charles-debian-nospam at plessy.org> on
+Mon,  4 Jun 2007 17:22:02 +0900.
+
+Phylographer was downloaded from:
+	<http://www.atgc.org/PhyloGrapher/PhyloGrapher_Welcome.html>
+
+A more recent version of tcl_blast_parser was downloaded from:
+	<http://www.atgc.org/BlastParser/Blast_Parser_017.html>
+
+
+Upstream Author: Alexander Kozik <akozik at atgc.org>
+
+Copyright (C) 2001, 2002, 2003 	University of California at Davis
+				Alexander Kozik
+
+License:
+
+   This package is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+The Debian packaging is (C) 2007, Charles Plessy <charles-debian-nospam at plessy.org> and
+is licensed under the same terms as PhyloGrapher, see above.

Added: trunk/packages/phylographer/trunk/debian/dirs
===================================================================
--- trunk/packages/phylographer/trunk/debian/dirs	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/dirs	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,4 @@
+usr/bin
+usr/share/phylographer
+usr/share/phylographer/Images
+usr/share/applications

Added: trunk/packages/phylographer/trunk/debian/menu.ex
===================================================================
--- trunk/packages/phylographer/trunk/debian/menu.ex	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/menu.ex	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,2 @@
+?package(phylographer):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\
+  title="phylographer" command="/usr/bin/phylographer"

Added: trunk/packages/phylographer/trunk/debian/patches/fix-image-location
===================================================================
--- trunk/packages/phylographer/trunk/debian/patches/fix-image-location	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/patches/fix-image-location	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,23 @@
+Phylographer will complain if it does not find its logo.
+Index: phylographer-20030403/PhyloGrapher_April_03_2003_Linux.tcl
+===================================================================
+--- phylographer-20030403.orig/PhyloGrapher_April_03_2003_Linux.tcl	2007-06-04 20:33:16.000000000 +0900
++++ phylographer-20030403/PhyloGrapher_April_03_2003_Linux.tcl	2007-06-04 20:57:15.000000000 +0900
+@@ -197,7 +197,7 @@
+ ##########################
+ proc About_PhyloGrapher {} {
+ 
+-    set phylo_logo [image create photo -file ./Images/PhyloGrapherLogo.gif]
++    set phylo_logo [image create photo -file /usr/share/phylographer/Images/PhyloGrapherLogo.gif]
+     set phylo_text "PhyloGrapher (Graph Visualization Tool)
+ 
+ Copyright (C) 2001, 2002, 2003 University of California at Davis,
+@@ -3564,7 +3564,7 @@
+ global tcl_precision
+ set tcl_precision 4
+ 
+-set phylo_logo [image create photo -file ./Images/PhyloGrapherLogo.gif]
++set phylo_logo [image create photo -file /usr/share/phylographer/Images/PhyloGrapherLogo.gif]
+ label .phylo_logo -image $phylo_logo -bg black
+ place .phylo_logo -x 24 -y 12
+ 

Added: trunk/packages/phylographer/trunk/debian/patches/fix-readme-location
===================================================================
--- trunk/packages/phylographer/trunk/debian/patches/fix-readme-location	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/patches/fix-readme-location	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,14 @@
+README.txt is not in the same directory anymore.
+Index: phylographer-20030403/PhyloGrapher_April_03_2003_Linux.tcl
+===================================================================
+--- phylographer-20030403.orig/PhyloGrapher_April_03_2003_Linux.tcl	2007-06-04 20:59:47.000000000 +0900
++++ phylographer-20030403/PhyloGrapher_April_03_2003_Linux.tcl	2007-06-04 21:00:06.000000000 +0900
+@@ -242,7 +242,7 @@
+ 
+     destroy .fly
+     set t [Scrolled_Text .fly -width 70 -height 40]
+-    set in [open "README.txt" r]
++    set in [open "/usr/share/doc/phylographer/README.txt" r]
+     $t insert end [read $in]
+     close $in
+     wm title .fly "HowTo PhyloWebify"

Added: trunk/packages/phylographer/trunk/debian/patches/series
===================================================================
--- trunk/packages/phylographer/trunk/debian/patches/series	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/patches/series	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,2 @@
+fix-image-location
+fix-readme-location

Added: trunk/packages/phylographer/trunk/debian/phylographer.doc-base.EX
===================================================================
--- trunk/packages/phylographer/trunk/debian/phylographer.doc-base.EX	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/phylographer.doc-base.EX	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,22 @@
+Document: phylographer
+Title: Debian phylographer Manual
+Author: <insert document author here>
+Abstract: This manual describes what phylographer is
+ and how it can be used to
+ manage online manuals on Debian systems.
+Section: unknown
+
+Format: debiandoc-sgml
+Files: /usr/share/doc/phylographer/phylographer.sgml.gz
+
+Format: postscript
+Files: /usr/share/doc/phylographer/phylographer.ps.gz
+
+Format: text
+Files: /usr/share/doc/phylographer/phylographer.text.gz
+
+Format: HTML
+Index: /usr/share/doc/phylographer/html/index.html
+Files: /usr/share/doc/phylographer/html/*.html
+
+  

Added: trunk/packages/phylographer/trunk/debian/rules
===================================================================
--- trunk/packages/phylographer/trunk/debian/rules	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/rules	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,48 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+include /usr/share/quilt/quilt.make
+
+build: patch
+
+clean: unpatch
+	dh_testdir
+	dh_testroot
+	dh_clean 
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+	install debian/tcl_blast_parser_123_V038.tcl	debian/phylographer/usr/bin/tcl_blast_parser
+	install PhyloGrapher_April_03_2003_Linux.tcl	debian/phylographer/usr/bin/PhyloGrapher
+	install Images/PhyloGrapherLogo.gif	debian/phylographer/usr/share/phylographer/Images/PhyloGrapherLogo.gif
+	install Images/PhyloGrapherLogo.png     debian/phylographer/usr/share/phylographer/Images/PhyloGrapherLogo.png
+
+binary-indep: build install
+
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs 
+	dh_installdocs	README.txt QUICK_START.txt
+	dh_installexamples
+	dh_install
+#	dh_installmenu
+#	dh_desktop
+#	dh_installman
+#	dh_link
+	dh_strip
+	dh_compress -XREADME.txt
+	dh_fixperms
+#	dh_perl
+#	dh_makeshlibs
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure


Property changes on: trunk/packages/phylographer/trunk/debian/rules
___________________________________________________________________
Name: svn:executable
   + *

Added: trunk/packages/phylographer/trunk/debian/tcl_blast_parser_123_V038.tcl
===================================================================
--- trunk/packages/phylographer/trunk/debian/tcl_blast_parser_123_V038.tcl	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/tcl_blast_parser_123_V038.tcl	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,951 @@
+#!/usr/bin/tclsh
+
+##############################################################
+#                                                            #
+#               Tcl/Tk NCBI BLAST PARSER                     #
+#              COPYRIGHT, Alexander Kozik                    #
+#                                                            #
+##############################################################
+#                                                            #
+#  Detailed description of this parser usage you can find at #
+#                                                            #
+#   http://www.atgc.org/BlastParser/Blast_Parser_017.html    #
+#                                                            #
+##############################################################
+#                                                            #
+# FROM BLAST OUTPUT PARSER EXTRACTS:                         #
+#                                                            #
+#    1. Query ID                                             #
+#    2. First best hit ID                                    #
+#    3. Normalized Expectation: (-log(exp_value))            #
+#       if "exp" less than 1e-100 value 1e-100 assigned      #
+#    4. Identity(%)                                          #
+#    5. Hit number                                           #
+#           Data 1 - 5 are written into "best_hit" file      #
+#                                                            #
+#    6. Total number of hits                                 #
+#       Data 6 are written into separate "blast_stat" file   #
+#                                                            #
+#    7. Total list of all hits (primary and alternative      #
+#       alignments).                                         #
+#       Data 7 are written into separate "all_hits" file     #
+#                                                            #
+#    8. "Tho best hits" are written into "two_hits" file     #
+#       as well as info about their expectation difference   #
+#                                                            #
+#    9. List of all "genes" in BLAST output is written       #
+#       to "ID_list" file (we need it to create              #
+#       true "Matrix" file for GenomePixelizer or            #
+#       PhyloGrapher.                                        #
+#                                                            #
+#   10. Matrix file (matrix). Where third column is identity #
+#       value (in the range from 0 to 1) between pairs       #
+#       of genes (nodes), fourth column is expectation value #
+#       and fifth column is overlap size.                    #
+#                                                            #
+#   11. Graph groups (in the directory "subgroups"):         #
+#       Sets of genes (nodes) connected to each other        #
+#       based on identity cutoff value using DFS             #
+#       (Depth First Search) algorithm by analysis of        #
+#       the adjacency list file ("adj_list" extension)       #
+#                                                            #
+#   12. Group Degree Info file ("group_degree_info"          #
+#       extension) with info about every gene (node)         #
+#       belonging to distinct group, adjacency number,       #
+#       group complexity and group number (ID)               #
+#       based on graph analysis.                             #
+#                                                            #
+##############################################################
+#                                                            #
+#           DESCRIPTION LINE AND ALIGNMENT                   #
+#                      EXTRACTION                            #
+#                                                            #
+#  Current version 025 generates two additional "Info"       #
+#  files extracting description line from "subject".         #
+#  Info1 file contains information for the fist best hit     #
+#  only. Info2 file contains information for all primary     #
+#  hits found in the BLAST report. Expectation values are    #
+#  normalized between 0 and 1 because of database format     #
+#  (http://cgpdb.ucdavis.edu/)                               #
+#                                                            #
+#  Alignments generated by BLAST are written into *.align    #
+#  file in FASTA format. Each alignment separated by "===="  #
+#                                                            #
+##############################################################
+#                                                            #
+#  PROGRAM USAGE:                                            #
+#                                                            #
+# tcl_blast_parser_123.tcl [plus six arguments]              #
+#                                                            #
+#  ARGUMENTS:                                                #
+#                                                            #
+# 1. input (BLAST results)                                   #
+# 2. output (output file name)                               #
+# 3. expectation cutoff value                                #
+#    (hits only with this "exp" value or better will be used #
+#     to generate matrix file and in full graph analysis)    #
+# 4. identity cutoff value                                   #
+#    (hits only with this identity or better will be used    #
+#     to generate matrix file and in full graph analysis)    #
+# 5. overlap cutoff value                                    #
+#    (hits only with this overlap or better will be used     #
+#     to generate matrix file and in full graph analysis)    #
+# 6. MATRIX/GRAPH option to choose                           #
+#    where to stop BLAST file processing:                    #
+#       A. on matrix file                                    #
+#              or on                                         #
+#       B. full graph analysis                               #
+#    (graph analysis may work really long time with          #
+#    large set of genes (more than 10,000)                   #
+#                                                            #
+#  FOR EXAMPLE:                                              #
+#                                                            ########
+#                                                                   #
+# tcl_blast_parser_123.tcl my_blast.out my_results 20 40 100 GRAPH  #
+#                                                                   #
+# In this case program will read and analyse "my_blast.out"  ########
+# file and generate ten output files plus one additional     #
+# directory "subgroups" with list of groups of genes based   #
+# on clustering analysis.                                    ########
+#                                                                   #
+# tcl_blast_parser_123.tcl my_blast.out my_results 20 40 100 MATRIX #
+#                                                                   #
+# In this case program will read and analyse "my_blast.out"  ########
+# file and generate eight output files skipping detailed     #
+# graph analysis.                                            #
+#                                                            #
+##############################################################
+
+
+    #### FUNCTIONS ####
+
+    proc Blast_Parsing {argv} {
+
+	set f_in [open [lindex $argv 0] "r"]
+	set f_out1 [open [lindex $argv 1].best_hit "w"]
+	set f_out2 [open [lindex $argv 1].blast_stat "w"]
+	set f_out3 [open [lindex $argv 1].all_hits "w"]
+	set f_out4 [open [lindex $argv 1].two_hits "w"]
+	set f_out5 [open [lindex $argv 1].id_list "w"]
+	set f_out9 [open [lindex $argv 1].info1 "w"]
+	set f_out10 [open [lindex $argv 1].info2 "w"]
+	set f_out11 [open [lindex $argv 1].align "w"]
+
+	### "q" IS A COUNTER ###
+	### SET "q" COUNTER TO 1 ###
+	set q  1
+	### BLANK LINE COUNTER ###
+	set blank_line_counter 0
+	### TRICK WITH SUBJECT END ###
+	set query_end_find "NOT_YET"
+	set subject_end_find "NOT_YET"
+	set info_found "NOT_YET"
+	### THIRD ARGUMENT TO DISPLAY ALT ALIGNMENT ###
+	set display_alt_align "TRUE"
+	### CUTOFF VALUES ###
+	# set exp_cut 20 ; # RECOMMENDED DEFAULT
+	# set idn_cut 40 ; # RECOMMENDED DEFAULT
+	# set ovr_cut 100 ; # RECOMMENDED DEFAULT
+	set exp_cut [lindex $argv 2]
+	set idn_cut [lindex $argv 3]
+	set ovr_cut [lindex $argv 4]
+	set graph_analysis [lindex $argv 5]
+	puts "$exp_cut Expect Cutoff"
+	puts "$idn_cut Identity Cutoff"
+	puts "$ovr_cut Overlap Cutoff"
+	puts "Stop analysis at: $graph_analysis"
+	puts " Starting BLAST Parsing"
+	puts "======================="
+	after 1000
+
+	while {[gets $f_in t] >= 0} {
+
+	    if {$t == ""} {
+		incr blank_line_counter
+		# puts "$blank_line_counter\BLANK_LINE"
+	    }
+
+	    set query_match [string range $t 0 6]
+	    if {$query_match == "Query= "} {
+		### UNSET "query_id" FOR DEBUGGING PURPOSE ###
+		set query_id "WHATEVER"
+		### UNSET "subject_found" FOR DEBUGGING PURPOSE ###
+		set subject_found "NO"
+		### UNSET "e" (EXPECT) FOR DEBUGGING PURPOSE ###
+		set e "WHATEVER"
+		### UNSET QUERY AND SUBJECT LENGTH ###
+		set query_start_find "NOT_YET"
+		set subject_start_find "NOT_YET"
+		set query_end_find "NOT_YET"
+		set subject_end_find "NOT_YET"
+		### COUNT NUMBER OF HITS ###
+		### SET "hit_counter" TO "0" ###
+		set hit_counter 0
+		set two_hits_found "FALSE"
+		regsub {^Query= } $t "" qr
+		regsub {\(} $qr "" qr
+		regsub {\)} $qr "" qr
+		regsub {\,} $qr "" qr
+		set query_id $qr
+		regsub {^gi\|} $query_id "" query_id
+		regsub {\|.*} $query_id "" query_id
+		regsub { .*} $query_id "" query_id
+		puts "$query_id\t$q"
+		puts -nonewline $f_out2 "$q\t$query_id\t"
+		if {$q == 1} {
+		    ### LIST OF GENES IN BLAST OUTPUT INITIALIZATION ###
+		    set gene_list [lappend gene_list $query_id]
+		} else {
+		    set already_done [lsearch -exact $gene_list $query_id]
+		    if {$already_done < 0} {
+			set gene_list [lappend gene_list $query_id]
+		    }
+		}
+		incr q
+	    }
+
+	    set subject_match [string range $t 0 0]
+	    if {$subject_match == ">"} {
+		### UNSET ALT ALIGNMENT ###
+		set alt_align_count 0
+		###  INFO EXTRACTION  ###
+		set info_found "YES"
+		### SUBJECT EXTRACTION ###
+		regsub {^>} $t "" subj
+		regsub {^gi\|} $subj "" subj
+		regsub {\|.*} $subj "" subj
+		regsub { .*} $subj "" subj
+		set already_done [lsearch -exact $gene_list $subj]
+		if {$already_done < 0} {
+		    set gene_list [lappend gene_list $subj]
+		}
+		incr hit_counter
+		set subject_found "YES"
+		set full_info ""
+	    }
+
+	    set subject_len [string range $t 0 18]
+	    # puts $subject_len
+	    if {$subject_len == "          Length = "} {
+		regsub {          Length = } $t "" subject_len
+		set s_len $subject_len
+		# puts $subject_len
+	    }
+
+	    set query_len [regexp {         \([0-9]{1,24} letters\)} $t]
+	    if {$query_len == 1} {
+		regsub {         \(} $t "" q_len
+		regsub { .*} $q_len "" q_len
+		# puts $q_len
+		# puts $t
+	    }
+
+	    set info_match [string range $t 0 10]
+	    if { $info_match != "           " && $subject_match == " " } {
+		set info_found "DONE"
+	    }
+	    if { $info_found == "YES" } {
+		set info_line $t
+		regsub {^>} $t "" info_line
+		regsub {^gi\|} $info_line "" info_line
+		regsub $subj $info_line "" info_line
+		regsub {          } $info_line "" info_line
+		set full_info $full_info$info_line
+		set first_char [string range $full_info 0 0]
+		if { $first_char == " " } {
+		    regsub $first_char $full_info "" full_info
+		}
+		if { $first_char == "\|" } {
+		    regsub {\|} $full_info "" full_info
+		}
+	    }
+
+	    set score_match [string range $t 0 8]
+	    if {$score_match == " Score = "} {
+		### UNSET QUERY AND SUBJECT LENGTH ###
+		set query_start_find "NOT_YET"
+		set subject_start_find "NOT_YET"
+		set query_end_find "NOT_YET"
+		set subject_end_find "NOT_YET"
+		### ALIGNMENT SEQUENCES ###
+		set q_align ""
+		set s_align ""
+		### ALT ALIGN COUNTER ###
+		incr alt_align_count
+		if {$alt_align_count > 1} {
+		    puts "$query_id\t$subj\talt_alignment"
+		}
+		### TBLASTX CASE ###
+		regsub {.*Expect\([0-9]\) = } $t "" t
+		regsub {.*Expect\([0-9][0-9]\) = } $t "" t
+		regsub {.*Expect\([0-9][0-9][0-9]\) = } $t "" t
+		### REGULAR CASE ###
+		regsub {.*Expect = } $t "" t
+		if {[string range $t 0 0] == "e"} {
+		    regsub {e} $t "1e" t
+		}
+		if {$subject_found == "YES"} {
+		    set e $t
+		    if {$e == 0.0} {
+			set e 1e-254
+		    }
+		    set e [expr -(log10($e))]
+		    if {$e == "inf"} {
+			set e 100
+		    }
+		    if {$e > 100} {
+			set e 100
+		    }
+		    set e [expr ceil($e)]
+		    set e [expr int($e)]
+		    if {$hit_counter == 1 && $alt_align_count == 1} {
+			set first_hit_id $subj
+			set first_hit_exp $e
+		    }
+		    if {$hit_counter == 2 && $alt_align_count == 1} {
+			set second_hit_id $subj
+			set second_hit_exp $e
+			set two_hits_found "TRUE"
+		    }
+		}
+	    }
+
+	    set identity_match [string range $t 0 13]
+	    if {$identity_match == " Identities = "} {
+		set gap_info "NO_GAPS"
+		set gap_test [regexp {.*Gaps =.*} $t]
+		if { $gap_test == 1 } {
+		    set gap_info "GAPPED"
+		}
+		regsub {\, Gaps =.*} $t "" idn
+		regsub {\, Positives =.*} $idn "" idn
+		regsub {.*\(} $idn "" idn
+		regsub {\%\)} $idn "" idn
+		regsub { Identities = } $t "" frc
+		regsub { .*} $frc "" frc
+		regsub {\/} $frc "\t" frc
+
+		if {$hit_counter == 1 && $alt_align_count == 1} {
+		    set first_hit_idn $idn
+		    set first_hit_frc [lindex [split $frc] 1]
+		}
+		if {$hit_counter == 2 && $alt_align_count == 1} {
+		    set second_hit_idn $idn
+		    set second_hit_frc [lindex [split $frc] 1]
+		}
+
+		if {$subject_found == "YES"} {
+		    # set subject_found "NO"
+		    if {$alt_align_count == 1} {
+			puts -nonewline $f_out3 "$query_id\t$subj\t$e\t$idn\t$frc\t$hit_counter\t$alt_align_count\tPRM\t"
+			### norm_exp (normalized expectation) is normalized between 0 and 1 because of database setup ###
+			set norm_exp [expr $e/100.00]
+			puts -nonewline $f_out10 "$query_id\t$subj\t$full_info\t$norm_exp\t$idn\t$frc\t$hit_counter\t"
+		    }
+		    if {$alt_align_count > 1 && $display_alt_align == "TRUE"} {
+			puts -nonewline $f_out3 "$query_id\t$subj\t$e\t$idn\t$frc\t$hit_counter\t$alt_align_count\tALT\t"
+		    }
+		    if {$hit_counter == 1 && $alt_align_count == 1} {
+			puts $f_out1 "$query_id\t$subj\t$e\t$idn\t$frc\t$hit_counter"
+			### norm_exp (normalized expectation) is normalized between 0 and 1 because of database setup ###
+			set norm_exp [expr $e/100.00]
+			puts $f_out9 "$query_id\t$subj\t$full_info\t$norm_exp\t$idn\t$frc\t$hit_counter\t$q_len\t$s_len"
+		    }
+		}
+	    }
+
+	    set frame_match [string range $t 0 8]
+	    if {$frame_match == " Frame = "} {
+		regsub { Frame = } $t "" fr
+		regsub -all { } $fr "" fr
+		puts -nonewline $f_out3 "$fr\t"
+		if {$alt_align_count == 1} {
+		    puts -nonewline $f_out10 "$fr\t"
+		}
+	    }
+
+	    set strand_match [string range $t 0 9]
+	    if {$strand_match == " Strand = "} {
+		regsub { Strand = } $t "" str
+		regsub -all {Plus} $str "+" str
+		regsub -all {Minus} $str "-" str
+		regsub -all { } $str "" str
+		puts -nonewline $f_out3 "$str\t"
+		if {$alt_align_count == 1} {
+		    puts -nonewline $f_out10 "$str\t"
+		}
+	    }
+
+	    set query_start [string range $t 0 5]
+	    if {$query_start == "Query:" && $query_start_find == "NOT_YET"} {
+		regsub {^Query\: } $t "" qs
+		regsub { .*} $qs "" qs
+		# puts $qs
+		# set q_align $t
+		# regsub {^Query\: .*[0-9] } $q_align "" q_align
+		# regsub -all { } $q_align "" q_align
+		# regsub -all {[0-9]} $q_align "" q_align
+		set query_start_find "DONE"
+	    }
+
+	    set subject_start [string range $t 0 5]
+	    if {$subject_start == "Sbjct:" && $subject_start_find == "NOT_YET"} {
+		regsub {^Sbjct\: } $t "" ss
+		regsub { .*} $ss "" ss
+		# puts $ss
+		# set s_align $t
+		# regsub {^Sbjct\: .*[0-9] } $s_align "" s_align
+		# regsub -all { } $s_align "" s_align
+		# regsub -all {[0-9]} $s_align "" s_align
+		set subject_start_find "DONE"
+	    }
+
+	    set query_end [string range $t 0 5]
+	    if {$query_end == "Query:"} {
+		regsub {.* } $t "" qe
+		# puts $qe
+		set q_align $q_align$t
+		regsub {Query\: .*[0-9] } $q_align "" q_align
+		regsub -all { } $q_align "" q_align
+		regsub -all {[0-9]} $q_align "" q_align
+		set query_end_find "DONE"
+		set blank_line_counter 0
+	    }
+
+	    set subject_end [string range $t 0 5]
+	    if {$subject_end == "Sbjct:"} {
+		regsub {.* } $t "" se
+		# puts $se
+		set s_align $s_align$t
+		regsub {Sbjct\: .*[0-9] } $s_align "" s_align
+		regsub -all { } $s_align "" s_align
+		regsub -all {[0-9]} $s_align "" s_align
+		set subject_end_find "DONE"
+	    }
+
+	    if {$blank_line_counter == 2 && $query_end_find == "DONE" && $subject_end_find == "DONE"} {
+		# puts "$qe\t$se\tthis is the END!\tblank_line_counter"
+		#### COORDINATES #####
+		puts $f_out3 "$qs\t$qe\t$ss\t$se"
+		##### ALIGNMENTS #####
+		puts $f_out11 "============ HIT: $hit_counter ALT_ALN: $alt_align_count ============"
+		puts $f_out11 "\>$query_id \[$qs-$qe\] \n$q_align\n\>$subj \[$ss-$se\] \n$s_align"
+		######################
+		if {$alt_align_count == 1} {
+		    puts $f_out10 "$qs\t$qe\t$ss\t$se\t$q_len\/$s_len\t$gap_info"
+		}
+		set query_end_find "WRITTEN"
+		set subject_end_find "WRITTEN"
+	    }
+
+	    ### STAND ALONE BLAST ###
+	    set no_hits_match [string range $t 0 26]
+	    if {$no_hits_match == " ***** No hits found ******"} {
+		# set t "No hits found"
+		puts $f_out3  "$query_id\tno_hits_found\t0\t0"
+		puts $f_out1  "$query_id\tno_hits_found\t0\t0"
+		puts $f_out9  "$query_id\t\tno_hits_found\t0\t0"
+		puts $f_out10 "$query_id\t\tno_hits_found\t0\t0"
+	    }
+
+	    ### NCBI WEB BLAST ###
+	    set no_hits_match [string range $t 0 30]
+	    if {$no_hits_match == "No significant similarity found"} {
+		# set t "No hits found"
+		puts $f_out3  "$query_id\tno_hits_found\t0\t0"
+		puts $f_out1  "$query_id\tno_hits_found\t0\t0"
+		puts $f_out9  "$query_id\t\tno_hits_found\t0\t0"
+		puts $f_out10 "$query_id\t\tno_hits_found\t0\t0"
+	    }
+
+	    set end_of_blast [string range $t 0 32]
+	    if {$end_of_blast  == "  Number of sequences in database" && $hit_counter != 1} {
+		puts $f_out2 "$hit_counter"
+	    }
+	    if {$end_of_blast  == "  Number of sequences in database" && $hit_counter == 1 && $e >= 20} {
+		puts $f_out2 "$hit_counter\tSTRONG_SINGLE_HIT"
+	    }
+	    if {$end_of_blast  == "  Number of sequences in database" && $hit_counter == 1 && $e < 20} {
+		puts $f_out2 "$hit_counter\tWEAK_SINGLE_HIT"
+	    }
+	    if {$end_of_blast  == "  Number of sequences in database" && $two_hits_found == "TRUE"} {
+		set exp_diff [expr $first_hit_exp - $second_hit_exp]
+		set idn_diff [expr ($first_hit_idn*1.00) / ($second_hit_idn*1.00)]
+		set frc_diff [expr $first_hit_frc - $second_hit_frc]
+		set diff_quality "BAD_DIFF"
+
+		##########################################################################################
+		###                     PARAMETERS FOR "TWO_HITS" FILE                                 ###
+		###          MODIFY CUTOFF VALUES FOR YOUR OWN PARTICULAR PROJECT NEEDS                ###
+		###                                                                                    ###
+		### DEFAULT SETTINGS:                                                                  ###
+		###                                                                                    ###
+		### "exp_diff_cutoff" - SECOND HIT HAS EXPECTATION DIFF 1e-20 OR BETTER                ###
+		### "idn_diff_cutoff" - SECOND HIT HAS IDENTITY TWO TIMES LESS THAN FIRST HIT          ###
+		### "frc_diff_cutoff" - SECOND HIT HAS OVERLAP (ALIGNMENT) LENGTH LESS THAN FIRST HIT  ###
+		###                                                                                    ###
+		### IN THIS CASE SECOND HIT QUALIFIED AS A HIT WITH "GOOD_DIFF" IN "TWO_HITS FILE      ###
+		##########################################################################################
+
+		set exp_diff_cutoff 20 ; ## <- MODIFY EXPECTATION VALUE
+		set idn_diff_cutoff 2  ; ## <- MODIFY IDENTITY VALUE
+		set frc_diff_cutoff 0  ; ## <- MODIFY OVERLAP (ALIGNMENT) LENGTH VALUE
+
+		#### END OF MODIFICATIONS ####
+
+		if {$exp_diff >= $exp_diff_cutoff && $idn_diff >= $idn_diff_cutoff && $frc_diff >= $frc_diff_cutoff} {
+		    set diff_quality "GOOD_DIFF"
+		}
+		puts $f_out4 "$query_id\t$first_hit_id\t$first_hit_exp\t$first_hit_idn\t$first_hit_frc"
+		puts $f_out4 "$query_id\t$second_hit_id\t$second_hit_exp\t$second_hit_idn\t$second_hit_frc\t$exp_diff\t$idn_diff\t$frc_diff\t$diff_quality"
+	    }
+
+	}
+
+	# puts $gene_list
+	set gene_list [lsort $gene_list]
+	# puts $gene_list
+
+	set k 0
+
+	puts ""
+	foreach gene $gene_list {
+	    puts $f_out5 $gene
+	    set k_mod [expr fmod($k,10)]
+	    if {$k_mod == 0} {
+		puts -nonewline "."
+	    }
+	    incr k
+	}
+	puts ""
+
+	close $f_in
+	close $f_out1
+	close $f_out2
+	close $f_out3
+	close $f_out4
+	close $f_out5
+	close $f_out9
+	close $f_out10
+	close $f_out11
+
+	Redundant_Matrix $argv $exp_cut $idn_cut $ovr_cut $graph_analysis
+
+    }
+
+    proc Redundant_Matrix {argv exp_cut idn_cut ovr_cut graph_analysis} {
+
+	global matrix_array
+
+	set f_in2 [open [lindex $argv 1].all_hits "r"]
+	set f_out6 [open [lindex $argv 1].matrix.identity "w"]
+	set f_out6E [open [lindex $argv 1].matrix.expect "w"]
+
+	# puts [lindex $argv 1].all_hits
+	puts "Starting Matrix Extraction"
+	puts "=========================="
+	after 1000
+	puts ""
+	puts "Reading \"All Hits\" file"
+
+	set l 0
+
+	while {[gets $f_in2 current_line] >= 0}  {
+
+	    set current_line [split $current_line]
+
+	    set id_A [lindex $current_line 0]
+	    set id_B [lindex $current_line 1]
+	    set expt [lindex $current_line 2]
+	    set idnt [lindex $current_line 3]
+	    set ovrl [lindex $current_line 5]
+	    set algn [lindex $current_line 8]
+
+	    # puts "$id_A\t$id_B\t$expt\t$idnt\t$ovrl\t$algn"
+
+	    if {$id_A != $id_B && $algn == "PRM" && $expt >= $exp_cut && $idnt >= $idn_cut && $ovrl >= $ovr_cut} {
+
+		set matrix_array($id_A,$id_B) "$expt $idnt $ovrl"
+		set matrix_list [lappend matrix_list $matrix_array($id_A,$id_B)]
+		set pairs_list [lappend pairs_list "$id_A $id_B"]
+		set l_mod [expr fmod($l,100)]
+		if {$l_mod == 0} {
+		    puts -nonewline "."
+		}
+		incr l
+	    }
+	}
+
+	puts ""
+	puts "Processing Matrix"
+
+	foreach pair $pairs_list {
+	    set pair [split $pair]
+	    set id_A [lindex $pair 0]
+	    set id_B [lindex $pair 1]
+	    set query1 [info exists matrix_array($id_A,$id_B)]
+	    # puts $query1
+	    set query2 [info exists matrix_array($id_B,$id_A)]
+	    # puts $query2
+	    if {$query1 == 1} {
+		set matrix_values1 [split $matrix_array($id_A,$id_B)]
+		set exp_value1 [lindex $matrix_values1 0]
+		set idn_value1 [lindex $matrix_values1 1]
+		set ovr_value1 [lindex $matrix_values1 2]
+	    }
+	    if {$query2 == 1} {
+		set matrix_values2 [split $matrix_array($id_B,$id_A)]
+		set exp_value2 [lindex $matrix_values2 0]
+		set idn_value2 [lindex $matrix_values2 1]
+		set ovr_value2 [lindex $matrix_values2 2]
+	    }
+	    # puts "$id_A\t$id_B\t$exp_value1\t$idn_value1\t$ovr_value1"
+	    # puts "$id_B\t$id_A\t$exp_value2\t$idn_value2\t$ovr_value2"
+	    if {$query1 == 1 && $query2 == 0} {
+		### Identity value is normalized between 0 and 1 because ###
+		### of GenomePixelizer/PhyloGrapher input file format    ###
+		### Expectation value is normalized between 0 and 100    ###
+		set idn_value100 $idn_value1 
+		set idn_value1 [expr $idn_value1/100.00]
+		puts $f_out6 "$id_A\t$id_B\t$idn_value1\t$exp_value1\t$ovr_value1"
+		puts $f_out6E "$id_A\t$id_B\t[expr $exp_value1/100.00]\t$idn_value100\t$ovr_value1"
+		unset matrix_array($id_A,$id_B)
+	    }
+	    if {$query2 == 1 && $query1 == 0} {
+		### Identity value is normalized between 0 and 1 because ###
+		### of GenomePixelizer/PhyloGrapher input file format    ###
+		### Expectation value is normalized between 0 and 100    ###
+		set idn_value200 $idn_value2
+		set idn_value2 [expr $idn_value2/100.00]
+		puts $f_out6 "$id_A\t$id_B\t$idn_value2\t$exp_value2\t$ovr_value2\tERROR"
+		puts $f_out6E "$id_A\t$id_B\t[expr $exp_value2/100.00]\t$idn_value200\t$ovr_value2\tERROR"
+		puts "Something is wrong..."
+		after 2000
+		unset matrix_array($id_B,$id_A)
+	    }
+	    if {$query1 == 1 && $query2 == 1} {
+		if {$idn_value1 >= $idn_value2} {
+		    ### Identity value is normalized between 0 and 1 because ###
+		    ### of GenomePixelizer/PhyloGrapher input file format    ###
+		    ### Expectation value is normalized between 0 and 100    ###
+		    set idn_value100 $idn_value1
+		    set idn_value200 $idn_value2
+		    set idn_value1 [expr $idn_value1/100.00]
+		    set idn_value2 [expr $idn_value2/100.00]
+		    puts $f_out6 "$id_A\t$id_B\t$idn_value1\t$exp_value1\t$ovr_value1"
+		    puts $f_out6E "$id_A\t$id_B\t[expr $exp_value1/100.00]\t$idn_value100\t$ovr_value1"
+		}
+		if {$idn_value1 < $idn_value2} {
+		    ### Identity value is normalized between 0 and 1 because ###
+		    ### of GenomePixelizer/PhyloGrapher input file format    ###
+		    ### Expectation value is normalized between 0 and 100    ###
+		    set idn_value100 $idn_value1
+		    set idn_value200 $idn_value2
+		    set idn_value1 [expr $idn_value1/100.00]
+		    set idn_value2 [expr $idn_value2/100.00]
+		    puts $f_out6 "$id_A\t$id_B\t$idn_value2\t$exp_value2\t$ovr_value2"
+		    puts $f_out6E "$id_A\t$id_B\t[expr $exp_value2/100.00]\t$idn_value200\t$ovr_value1"
+		}
+		unset matrix_array($id_A,$id_B)
+		unset matrix_array($id_B,$id_A)
+	    }
+	    set l_mod [expr fmod($l,100)]
+	    if {$l_mod == 0} {
+		puts -nonewline "."
+	    }
+	    incr l
+	}
+
+	puts ""
+	puts "=========================="
+	puts "| Matrix Extraction Done |"
+	puts "=========================="
+	close $f_in2
+	close $f_out6
+	close $f_out6E
+
+	if {$graph_analysis == "GRAPH"} {
+	    Graph_Extraction $idn_cut $argv
+	} else {
+	    exit
+	}
+    }
+
+    proc Graph_Extraction {idn_cut argv} {
+
+	puts ""
+	puts "Group Extraction Begin"
+	puts ""
+
+	after 1000
+
+	global matrix_array
+
+	set f_in3 [open [lindex $argv 1].id_list "r"]
+	# set f_in4 [open [lindex $argv 1].matrix "r"]
+	set f_in4 [open [lindex $argv 1].matrix.identity "r"]
+
+	### CREATE LIST WITH NODE IDs ###
+	set k 1
+	while {[gets $f_in3 current_line] >= 0}  {
+	    set id_list [lappend id_list $current_line]
+	    puts $k\t$current_line
+	    incr k
+	}
+
+	### CREATE MATRIX ARRAY ###
+	puts "Reading Matrix File"
+	set l 1
+	while {[gets $f_in4 current_line] >= 0}  {
+	    set current_line [split $current_line]
+	    set id_A [lindex $current_line 0]
+	    set id_B [lindex $current_line 1]
+	    set idnt [lindex $current_line 2]
+	    set matrix_array($id_A,$id_B) $idnt
+	    set pair_list [lappend pair_list "$id_A $id_B"]
+	    set l_mod [expr fmod($l,100)]
+	    if {$l_mod == 0} {
+		puts -nonewline "."
+	    }
+	    incr l
+	}
+
+	puts ""
+
+	Adj_List_Extraction $idn_cut $argv $id_list $pair_list
+
+	puts ""
+	puts "End of Round 1 (Ajacency List)"
+	close $f_in3
+	close $f_in4
+	puts "Starting DFS Procedure"
+	after 1000
+	DFS_Algorithm $argv $id_list
+    }
+
+    proc Adj_List_Extraction {idn_cut argv id_list pair_list} {
+
+	global matrix_array
+	global adj_array
+
+	set f_out7 [open [lindex $argv 1].adj_list "w"]
+
+	set idn_cut [expr $idn_cut/100]
+
+	foreach id $id_list {
+	    puts $id
+	    if {[info exists adj_list] == 1} {
+		unset adj_list
+	    }
+	    set adj_list [lappend adj_list $id]
+	    foreach pair $pair_list {
+		set pair [split $pair]
+		set a [lindex $pair 0]
+		set b [lindex $pair 1]
+		set value $matrix_array($a,$b)
+		# puts $a\t$b\t$value
+		if {$id == $a && $value >= $idn_cut} {
+		    set adj_list [lappend adj_list $b]
+		}
+		if {$id == $b && $value >= $idn_cut} {
+		    set adj_list [lappend adj_list $a]
+		}
+		if {$id != $a && $id != $b} {
+		    continue
+		}
+	    }
+	    set adj_array($id) $adj_list
+	    puts $f_out7 $adj_list
+	}
+	close $f_out7
+    }
+
+    proc DFS_Algorithm {argv id_list} {
+
+	global adj_array
+	global used_nodes_list
+	global group_members_counter
+	global round_2_counter
+	global retarded_counter
+	global matrix_array
+	global sub_group_list
+	global group_array
+	global group_stat_array
+	global list_of_group_array
+
+	set round_2_counter 1
+
+	### CREATE DIRECTORY WITH SUBGROUPS ###
+	file delete -force "subgroups"
+	file mkdir "subgroups"
+
+	set m 0
+	foreach id $id_list {
+	    if {$m == 0} {
+		set used_nodes_list [lappend used_nodes_list ""]
+	    }
+	    set already_done [lsearch -exact $used_nodes_list $id]
+	    if {$already_done < 0} {
+		set sub_group_list ""
+		set used_nodes_list [lappend used_nodes_list "$id"]
+		incr m
+		set sub_group "subgroup_$m"
+		set sub_matrx "submatrix_$m"
+		set sub_group_open [open "subgroups\/$sub_group" "w"]
+		set sub_matrx_open [open "subgroups\/$sub_matrx" "w"]
+		set group_members_counter 1
+		set group_array($id) "$id\t$m\t*****"
+		set list_of_group_array [lappend list_of_group_array $group_array($id)]
+		puts $sub_group_open $id
+		set sub_group_list [lappend sub_group_list $id]
+		set retarded_counter 1
+		DFS_Procedure $id $m $sub_group_open $id_list
+		puts "$id\t$m\t$round_2_counter"
+		close $sub_group_open
+		set group_stat_array($m) "$group_members_counter"
+		#### CREATE SUB-MATRIX FILE ####
+		foreach sub_id1 $sub_group_list {
+		    set sub_len [llength $sub_group_list]
+		    if {$sub_len >= 2 && $sub_id1 != ""} {
+			while {$sub_len >= 0} {
+			    set sub_id2 [lindex $sub_group_list [expr $sub_len -1 ]]
+			    if {$sub_id1 != $sub_id2 && $sub_id2 != ""} {
+				# puts "$sub_id1\t$sub_id2"
+				#####
+				set query1 [info exists matrix_array($sub_id1,$sub_id2)]
+				set query2 [info exists matrix_array($sub_id2,$sub_id1)]
+				if {$query1 == 1} {
+				    set idnt $matrix_array($sub_id1,$sub_id2)
+				    puts $sub_matrx_open "$sub_id1\t$sub_id2\t$idnt"
+				    unset matrix_array($sub_id1,$sub_id2)
+				}
+				if {$query2 == 1} {
+				    set idnt $matrix_array($sub_id2,$sub_id1)
+				    puts $sub_matrx_open "$sub_id2\t$sub_id1\t$idnt"
+				    unset matrix_array($sub_id2,$sub_id1)
+				}
+				######
+			    }
+			    incr sub_len -1
+			}
+		    } 
+		}
+		close $sub_matrx_open
+		#### END OF SUB-MATRIX FILE ####
+		incr round_2_counter
+	    }
+	}
+	puts "  end of round 2 "
+	puts "=== DFS Done! ==="
+	puts ""
+	puts "Ready to generate final output files"
+	puts ""
+	after 1000
+	Finish_Dummy_Groups $argv
+    }
+
+    proc DFS_Procedure {first_id m sub_group_open id_list} {
+
+	global adj_array
+	global used_nodes_list
+	global group_members_counter
+	global round_2_counter
+	global retarded_counter
+	global sub_group_list
+	global group_array
+	global list_of_group_array
+
+	set l 1
+	set group_counter 1
+	foreach id $id_list {
+	    set current_adj_list [split $adj_array($id)]
+	    set perfect_match [lsearch -exact $current_adj_list $first_id]
+	    if {$perfect_match >= 0} {
+		set current_adj_line_length [llength [split $adj_array($id) " "]]
+		while {$current_adj_line_length >= 0} {
+		    set current_node_ID [lindex [split $adj_array($id) " "] [expr $current_adj_line_length -1 ]]
+		    set already_done [lsearch -exact $used_nodes_list $current_node_ID]
+		    if {$already_done < 0 && $current_node_ID != ""} {
+			set group_array($current_node_ID) "$current_node_ID\t$m"
+			set list_of_group_array [lappend list_of_group_array $group_array($current_node_ID)]
+			puts $sub_group_open "$current_node_ID"
+			set sub_group_list [lappend sub_group_list $current_node_ID]
+			puts "$current_node_ID\t$m\t$round_2_counter"
+			incr group_members_counter
+			incr round_2_counter
+			Already_Done $current_node_ID
+			DFS_Procedure $current_node_ID $m $sub_group_open $id_list
+			incr retarded_counter
+		    }
+		    incr current_adj_line_length -1
+		}
+	    }
+	incr l
+	}
+	puts "Escape from DFS ... $retarded_counter  times"
+    }
+
+    proc Already_Done {current_node_ID} {
+
+	global used_nodes_list
+
+        set already_done [lsearch -exact $used_nodes_list $current_node_ID]
+	if {$already_done < 0} {
+	    set used_nodes_list [lappend used_nodes_list "$current_node_ID"]
+	}
+	if {$already_done >= 0} {
+	    continue
+	}
+    }
+
+    proc Finish_Dummy_Groups {argv} {
+
+	global adj_array
+	global group_array
+	global group_stat_array
+	global list_of_group_array
+
+	set f_out8 [open [lindex $argv 1].group_degree_info "w"]
+
+	foreach line $list_of_group_array {
+	    set line [split $line]
+	    set id [lindex $line 0]
+	    set group [lindex $line 1]
+	    set degree $group_stat_array($group)
+	    set adjacent [expr [llength [split $adj_array($id)]] -1 ]
+	    set mark [lindex $line 2]
+	    puts $f_out8 "$id\t$adjacent\t$degree\t$group\t$mark"
+	}
+	close $f_out8
+
+	puts ""
+	puts "+---------------------------------+"
+	puts "|     THE END OF GRAPH SEARCH     |"
+	puts "+---------------------------------+"
+
+    }
+
+#### MAIN BODY #####
+
+puts "$argc arguments entered"
+
+if {$argc != 6} {
+
+    puts "Program usage:"
+    puts "tcl_blast_parser_123.tcl \[input\], \[output\], \[Exp(20)\], \[Idnt(40)\], \[Overlap(100)\], \[MATRIX/GRAPH option\]"
+
+} else {
+
+    puts $argv
+
+    if {[lindex $argv 5] != "MATRIX" && [lindex $argv 5] != "GRAPH"} {
+	puts ""
+	puts "LAST ARGUMENT MUST BE \"MATRIX\" OR \"GRAPH\""
+	puts ""
+	exit
+    } else {
+	Blast_Parsing $argv
+    }
+}
+
+####  THE END  ####

Added: trunk/packages/phylographer/trunk/debian/watch.ex
===================================================================
--- trunk/packages/phylographer/trunk/debian/watch.ex	                        (rev 0)
+++ trunk/packages/phylographer/trunk/debian/watch.ex	2007-06-14 23:50:23 UTC (rev 316)
@@ -0,0 +1,22 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+# Uncomment to examine a Webpage 
+# <Webpage URL> <string match>
+#http://www.example.com/downloads.php phylographer-(.*)\.tar\.gz
+
+# Uncomment to examine a Webserver directory
+#http://www.example.com/pub/phylographer-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/phylographer-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for debscripts >= 2.9
+# http://sf.net/phylographer/phylographer-(.*)\.tar\.gz
+
+




More information about the debian-med-commit mailing list