2006 version init
This commit is contained in:
commit
a25316aa9e
177 changed files with 60764 additions and 0 deletions
1
CORE/#lixoalan#
Normal file
1
CORE/#lixoalan#
Normal file
|
@ -0,0 +1 @@
|
|||
|
764
CORE/.GDEmenus
Normal file
764
CORE/.GDEmenus
Normal file
|
@ -0,0 +1,764 @@
|
|||
1menu:File
|
||||
|
||||
item:test cmask output
|
||||
itemmethod: kedit in1
|
||||
|
||||
in:in1
|
||||
informat:colormask
|
||||
|
||||
item:New sequence <meta N>
|
||||
itemmethod:echo "$Type$Name" > out1
|
||||
itemmeta:n
|
||||
itemhelp:new_sequence.help
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:New Sequence name?
|
||||
argtext:New
|
||||
|
||||
arg:Type
|
||||
argtype:choice_list
|
||||
arglabel:Type?
|
||||
argchoice:DNA/RNA:#
|
||||
argchoice:Amino Acid:%
|
||||
argchoice:Text:\"
|
||||
argchoice:Mask:@
|
||||
|
||||
out:out1
|
||||
outformat:flat
|
||||
|
||||
item:Import Foreign Format
|
||||
itemmethod:cp $INPUTFILE OUTFILE.tmp;readseq OUTFILE.tmp -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:INPUTFILE
|
||||
argtype:text
|
||||
arglabel:Name of foreign file?
|
||||
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:Export Foreign Format
|
||||
itemmethod:readseq INPUTFILE -a -f$FORMAT > $OUTPUTFILE
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:FORMAT
|
||||
argtype:choice_list
|
||||
argchoice:FASTA:8
|
||||
argchoice:NEXUS:17
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:IG/Stanford:1
|
||||
argchoice:GenBank:2
|
||||
argchoice:NBRF:3
|
||||
argchoice:EMBL:4
|
||||
argchoice:GCG:5
|
||||
argchoice:DNA Strider:6
|
||||
argchoice:Fitch:7
|
||||
argchoice:Pearson:8
|
||||
argchoice:Zuker:9
|
||||
argchoice:Olsen:10
|
||||
argchoice:Phylip v3.2:11
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:Plain text:13
|
||||
|
||||
arg:OUTPUTFILE
|
||||
argtype:text
|
||||
arglabel:Save as?
|
||||
|
||||
in:INPUTFILE
|
||||
informat:genbank
|
||||
|
||||
|
||||
item:Save Selection
|
||||
itemmethod: cat $SAVE_FUNC > $Name
|
||||
itemhelp:save_selection.help
|
||||
|
||||
arg:SAVE_FUNC
|
||||
argtype:chooser
|
||||
arglabel:File format
|
||||
argchoice:Flat:in1
|
||||
argchoice:Genbank:in2
|
||||
argchoice:GDE/HGL:in3
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:File name?
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
in:in2
|
||||
informat:genbank
|
||||
|
||||
in:in3
|
||||
informat:gde
|
||||
|
||||
item:Print Selection
|
||||
itemmethod:(PrintStrat in1 $SCALE > in1.tmp; $CMD -P$PRINTER in1.tmp; /bin/rm -f in1 in1.tmp)&
|
||||
itemhelp:print_alignment.help
|
||||
|
||||
arg:SCALE
|
||||
argtype:slider
|
||||
arglabel:Reduce printout by?
|
||||
argmin:1
|
||||
argmax:20
|
||||
argvalue:1
|
||||
|
||||
arg:CMD
|
||||
argtype:chooser
|
||||
argchoice:Lpr:lpr
|
||||
argchoice:Enscript Gaudy:enscript -G -q
|
||||
argchoice:Enscript Two column:enscript -2rG
|
||||
|
||||
arg:PRINTER
|
||||
argtype:text
|
||||
arglabel:Which printer?
|
||||
argtext:lp
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
menu:Edit
|
||||
|
||||
item:Sort
|
||||
itemmethod:(heapsortHGL in1 $PRIM_KEY $SEC_KEY > in1.tmp ; gde in1.tmp;/bin/rm -f in1*)&
|
||||
itemhelp:heapsortHGL.help
|
||||
|
||||
arg:PRIM_KEY
|
||||
argtype:choice_list
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Primary sort field?
|
||||
|
||||
arg:SEC_KEY
|
||||
argtype:choice_list
|
||||
argchoice:None:
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Secondary sort field?
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:extract
|
||||
itemmethod:(gde in1;/bin/rm -f in1)&
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
menu:DNA/RNA
|
||||
|
||||
item:Translate...
|
||||
itemmethod:Translate -tbl $TBL -frame $FRAME -min_frame $MNFRM $LTRCODE in1 > out1
|
||||
|
||||
arg:FRAME
|
||||
argtype:chooser
|
||||
arglabel:Which reading frame?
|
||||
argchoice:First:1
|
||||
argchoice:Second:2
|
||||
argchoice:Third:3
|
||||
argchoice:All six:6
|
||||
|
||||
arg:MNFRM
|
||||
arglabel:Minimum length of AA sequence to translate?
|
||||
argtype:slider
|
||||
argmin:0
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
arg:LTRCODE
|
||||
argtype:chooser
|
||||
arglabel:Translate to:
|
||||
argchoice:Single letter codes:
|
||||
argchoice:Triple letter codes:-3
|
||||
|
||||
arg:TBL
|
||||
arglabel:Codon table?
|
||||
argtype:chooser
|
||||
argchoice:universal:1
|
||||
argchoice:mycoplasma:2
|
||||
argchoice:yeast:3
|
||||
argchoice:Vert. mito.:4
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
item:Dot plot
|
||||
itemmethod:(DotPlotTool in1 ; /bin/rm -f in1)&
|
||||
itemhelp:DotPlotTool.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:Clustal alignment
|
||||
itemmethod:(tr '%#' '>'<in1>clus_in;clustalw -quicktree -output=PIR -infile=clus_in -align > in1.rpt;sed "s/>DL;/#/g" < clus_in.pir> in1;$REPORT gde in1;/bin/rm -f clus_in* in1* )&
|
||||
|
||||
itemhelp:clustal_help
|
||||
|
||||
arg:KTUP
|
||||
argtype:slider
|
||||
arglabel:K-tuple size for pairwise search
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:2
|
||||
|
||||
arg:WIN
|
||||
argtype:slider
|
||||
arglabel:Window size
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:4
|
||||
|
||||
arg:Trans
|
||||
argtype:chooser
|
||||
arglabel:Transitions weighted?
|
||||
argchoice:Yes:/TRANSIT
|
||||
argchoice:No:
|
||||
|
||||
arg:FIXED
|
||||
argtype:slider
|
||||
arglabel:Fixed gap penalty
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:FLOAT
|
||||
arglabel:Floating gap penalty
|
||||
argtype:slider
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:REPORT
|
||||
argtype:chooser
|
||||
arglabel:View assembly report?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit in1.rpt&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Variable Positions
|
||||
itemmethod:varpos $REV < in1 > out1
|
||||
|
||||
arg:REV
|
||||
argtype:chooser
|
||||
arglabel:Highlight (darken)
|
||||
argchoice:Conserved positions:
|
||||
argchoice:variable positions:-rev
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Phrap
|
||||
itemmethod:readseq in1 -a -f8 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp; phrap OUTPUTFILE; readseq -a -f2 OUTPUTFILE.contigs > out1;/bin/rm -rf OUTPUT*;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
|
||||
out:out1
|
||||
outformat:genbank
|
||||
|
||||
item:SNAP
|
||||
itemmethod: cat in1 > infile;/usr/local/bio/GDE/bin/fasta2snap.pl > outfile; /usr/bin/X11/xterm -e /home/tulio/bio/SNAP/SNAP.pl outfile; kedit backg*; kedit summ*; sheeltool /home/tulio/bio/codons-xyplot.pl codons.*; kedit codon.data; /bin/rm -rf back* codon* summ*;
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
out:out1
|
||||
outformat:text
|
||||
|
||||
|
||||
|
||||
|
||||
item:Find all <meta-f>
|
||||
itemmethod:findall $SEARCH $PRCNT $CASE $UT -match $MAT -mismatch $MIS < in1 > out1;
|
||||
itemhelp:findall.help
|
||||
itemmeta:f
|
||||
|
||||
arg:SEARCH
|
||||
argtype:text
|
||||
arglabel:Search String
|
||||
|
||||
arg:PRCNT
|
||||
argtype:slider
|
||||
arglabel:Percent mismatch
|
||||
argmin:0
|
||||
argmax:75
|
||||
argvalue:10
|
||||
|
||||
arg:CASE
|
||||
argtype:chooser
|
||||
arglabel:Case
|
||||
argchoice:Upper equals lower:
|
||||
argchoice:Upper not equal lower:-case
|
||||
|
||||
arg:UT
|
||||
argtype:chooser
|
||||
arglabel:U equal T?
|
||||
argchoice:Yes:-u=t
|
||||
argchoice:No:
|
||||
argvalue:0
|
||||
|
||||
arg:MAT
|
||||
arglabel:Match color
|
||||
argtype:choice_list
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:2
|
||||
|
||||
arg:MIS
|
||||
argtype:choice_list
|
||||
arglabel:Mismatch color
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:7
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Sequence Consensus
|
||||
itemmethod:(MakeCons in1 $METHOD $MASK > out1)
|
||||
itemhelp:MakeCons.help
|
||||
|
||||
arg:METHOD
|
||||
arglabel:Method
|
||||
argtype:chooser
|
||||
argchoice:IUPAC:-iupac
|
||||
argchoice:Majority:-majority $PERCENT
|
||||
|
||||
arg:MASK
|
||||
argtype:chooser
|
||||
arglabel:Create a new:
|
||||
argchoice:Sequence:
|
||||
argchoice:Selection Mask: | Consto01mask
|
||||
|
||||
arg:PERCENT
|
||||
arglabel:Minimum Percentage for Majority
|
||||
argtype:slider
|
||||
argmin:50
|
||||
argmax:100
|
||||
argvalue:75
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
|
||||
#Menu for DNA/RNA
|
||||
|
||||
item:blastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastn -d $BLASTDBDNA -i in1.f -W $WORDLEN -M $MATCH > in1.tmp; kedit in1.tmp; rm in1*)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV-1 Seq. Db.:/usr/local/bio/db/DNA/hiv17-08-01.fasta2
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:MATCH
|
||||
argtype:slider
|
||||
arglabel:Match Score
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:5
|
||||
|
||||
arg:MMSCORE
|
||||
argtype:slider
|
||||
arglabel:Mismatch Score
|
||||
argmin:-10
|
||||
argmax:-1
|
||||
argvalue:-5
|
||||
|
||||
item:blastx
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastx -d $BLASTDB -i in1.f -W $WORDLEN -M PAM30 > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1*)&
|
||||
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:genpept:$GDE_HELP_DIR/BLAST/genpept
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
item:------------------------
|
||||
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p F -o T; /usr/local/bio/GDE/bin/installBLASTDB.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: enter the file name
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: enter the name of the DB
|
||||
|
||||
|
||||
#Sequence dataset
|
||||
menu:seq. datasets
|
||||
|
||||
|
||||
item:-------------
|
||||
item:add a new dataset
|
||||
itemmethod:mkdir db; cp $file db/ ;xterm -e /usr/local/bio/GDE/newDATASET.pl $name $file
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the dataset name ?
|
||||
|
||||
arg:file
|
||||
argtype:text
|
||||
arglabel:Enter the dataset file (in FASTA) ?
|
||||
|
||||
|
||||
#Menu for Protein
|
||||
menu:protein
|
||||
item:blastp
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM30; /usr/local/bio/blast/blastall -p blastp -d $BLASTDBPROT -i in1.f -W $WORDLEN -M $Matrix > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1* PAM30)&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBPROT
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
|
||||
arg:Matrix
|
||||
barglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
item:tblastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM??? .; tblastn $BLASTDB in1.f W=$WORDLEN M=$Matrix C=$CODE > in1.tmp; kedit in1.tmp; rm in1* PAM???)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:genbank:$GDE_HELP_DIR/BLAST/genbank
|
||||
argchoice:genbank update:$GDE_HELP_DIR/BLAST/genupdate
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
|
||||
item:Map View
|
||||
itemmethod:(mapview in1 -pbl $PBL -npp $NPP; /bin/rm -f in1)&
|
||||
itemhelp:mapview.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
arg:PBL
|
||||
arglabel:Pixel Between Lines
|
||||
argtype:slider
|
||||
argvalue:10
|
||||
argmin:1
|
||||
argmax:15
|
||||
|
||||
arg:NPP
|
||||
arglabel:Nucleotides Per Pixel
|
||||
argtype:slider
|
||||
argvalue:1
|
||||
argmin:1
|
||||
argmax:20
|
||||
|
||||
arg:LWIDTH
|
||||
arglabel:Line Thickness
|
||||
argtype:slider
|
||||
argvalue:2
|
||||
argmin:1
|
||||
argmax:5
|
||||
|
||||
item:--------------------------
|
||||
item:Add a new Protein blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p T -o T; /usr/local/bio/GDE/bin/installBLASTDBPROT.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: Enter the file (in FASTA)
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: Enter the name of the DB
|
||||
|
||||
#Phylogenetic Menu
|
||||
|
||||
menu:Phylogeny
|
||||
|
||||
item:Phylip help
|
||||
itemmethod:(netscape /usr/local/bio/phylip/doc/$FILE)&
|
||||
|
||||
arg:FILE
|
||||
argtype:choice_list
|
||||
arglabel:Which program?
|
||||
argchoice:clique:clique.html
|
||||
argchoice:consense:consense.html
|
||||
argchoice:contchar:contchar.html
|
||||
argchoice:contml:contml.html
|
||||
argchoice:contrast:contrast.html
|
||||
argchoice:discrete:discrete.html
|
||||
argchoice:distance:distance.html
|
||||
argchoice:dnaboot:dnaboot.html
|
||||
argchoice:dnacomp:dnacomp.html
|
||||
argchoice:dnadist:dnadist.html
|
||||
argchoice:dnainvar:dnainvar.html
|
||||
argchoice:dnaml:dnaml.html
|
||||
argchoice:dnamlk:dnamlk.html
|
||||
argchoice:dnamove:dnamove.html
|
||||
argchoice:dnapars:dnapars.html
|
||||
argchoice:dnapenny:dnapenny.html
|
||||
argchoice:dollop:dollop.html
|
||||
argchoice:dolmove:dolmove.html
|
||||
argchoice:dolpenny:dolpenny.html
|
||||
argchoice:draw:draw.html
|
||||
argchoice:drawgram:drawgram.html
|
||||
argchoice:drawtree:drawtree.html
|
||||
argchoice:factor:factor.html
|
||||
argchoice:fitch:fitch.html
|
||||
argchoice:gendist:gendist.html
|
||||
argchoice:kitsch:kitsch.html
|
||||
argchoice:main:main.html
|
||||
argchoice:mix:mix.html
|
||||
argchoice:move:move.html
|
||||
argchoice:neighbor:neighbor.html
|
||||
argchoice:penny:penny.html
|
||||
argchoice:protpars:protpars.html
|
||||
argchoice:read.me.general:read.me.general.html
|
||||
argchoice:restml:restml.html
|
||||
argchoice:seqboot:seqboot.html
|
||||
argchoice:sequence:sequence.html
|
||||
|
||||
|
||||
|
||||
item:Phylip 3.5
|
||||
itemmethod:(rm -f outfile ; readseq -a -f12 in1 | sed "s/ YF//1" > infile;$PREEDIT /usr/bin/X11/xterm -e $PROGRAM;kedit outfile; treetool outtree; rm in1 )&
|
||||
|
||||
arg:PROGRAM
|
||||
argtype:choice_list
|
||||
arglabel:Which program to run?
|
||||
argchoice:DNAPARS:dnapars
|
||||
argchoice:DNABOOT:dnaboot
|
||||
argchoice:DNAPENNY:dnapenny
|
||||
argchoice:DNAML:dnaml
|
||||
argchoice:DNAMLK:dnamlk
|
||||
argchoice:DNACOMP:dnacomp
|
||||
argchoice:DNAMOVE:dnamove
|
||||
argchoice:DNAINVAR:dnainvar
|
||||
argchoice:PROTPARS:protpars
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
item:Phylip DNA Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 | sed "s/ YF//1" > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e dnadist;mv -f outfile infile; cp infile $DNA; /usr/bin/X11/xterm -e neighbor; cp outtree intree; cp outfile $NEI; $PROGRAM kedit outfile; cp outtree $TREE; treetool outtree; /bin/rm -f in1 infile outfile intree outtree)&
|
||||
|
||||
arg:EXPLAIN
|
||||
argtype:text
|
||||
arglabel:To produce a bootstraped tree choose DNADIST+NEIGHOR+CONSENSE
|
||||
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:DNADIST+NEIGHBOR:
|
||||
argchoice:DNADIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Run ?
|
||||
argtype:chooser
|
||||
argchoice:Run without Bootstrap:
|
||||
argchoice:Run with Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
|
||||
arg:DNA
|
||||
argtype:text
|
||||
arglabel:Name of DNADIST outfile?
|
||||
|
||||
arg:NEI
|
||||
argtype:text
|
||||
arglabel:Name of NEIGHBOR outfile?
|
||||
|
||||
arg:TREE
|
||||
argtype:text
|
||||
arglabel:Name of TREEFILE ?
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
item:Phylip PROTEIN Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e protdist;mv -f outfile infile; /usr/bin/X11/xterm -e neighbor; cp outtree intree; $PROGRAM kedit outfile;treetool outtree;/bin/rm -f in1 infile outfile)&
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:PROTDIST+NEIGHBOR:
|
||||
argchoice:PROTDIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
argchoice:No Bootstrap:
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
#Online menu
|
||||
menu:On-Line Res.
|
||||
|
||||
item:GDE for Linux resources at Bioafrica.net
|
||||
itemmethod:netscape http://www.bioafrica.net &
|
||||
|
||||
item:-------------------------
|
||||
item:add a new website
|
||||
itemmethod:xterm -e /usr/local/bio/GDE/newURL.pl $name $url
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the site name
|
||||
|
||||
arg:url
|
||||
argtype:text
|
||||
arglabel:Enter the URL (including http://)
|
761
CORE/.GDEmenus.bak
Normal file
761
CORE/.GDEmenus.bak
Normal file
|
@ -0,0 +1,761 @@
|
|||
1menu:File
|
||||
|
||||
item:test cmask output
|
||||
itemmethod: kedit in1
|
||||
|
||||
in:in1
|
||||
informat:colormask
|
||||
|
||||
item:New sequence <meta N>
|
||||
itemmethod:echo "$Type$Name" > out1
|
||||
itemmeta:n
|
||||
itemhelp:new_sequence.help
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:New Sequence name?
|
||||
argtext:New
|
||||
|
||||
arg:Type
|
||||
argtype:choice_list
|
||||
arglabel:Type?
|
||||
argchoice:DNA/RNA:#
|
||||
argchoice:Amino Acid:%
|
||||
argchoice:Text:\"
|
||||
argchoice:Mask:@
|
||||
|
||||
out:out1
|
||||
outformat:flat
|
||||
|
||||
item:Import Foreign Format
|
||||
itemmethod:cp $INPUTFILE OUTFILE.tmp;readseq OUTFILE.tmp -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:INPUTFILE
|
||||
argtype:text
|
||||
arglabel:Name of foreign file?
|
||||
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:Export Foreign Format
|
||||
itemmethod:readseq INPUTFILE -a -f$FORMAT > $OUTPUTFILE
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:FORMAT
|
||||
argtype:choice_list
|
||||
argchoice:FASTA:8
|
||||
argchoice:NEXUS:17
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:IG/Stanford:1
|
||||
argchoice:GenBank:2
|
||||
argchoice:NBRF:3
|
||||
argchoice:EMBL:4
|
||||
argchoice:GCG:5
|
||||
argchoice:DNA Strider:6
|
||||
argchoice:Fitch:7
|
||||
argchoice:Pearson:8
|
||||
argchoice:Zuker:9
|
||||
argchoice:Olsen:10
|
||||
argchoice:Phylip v3.2:11
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:Plain text:13
|
||||
|
||||
arg:OUTPUTFILE
|
||||
argtype:text
|
||||
arglabel:Save as?
|
||||
|
||||
in:INPUTFILE
|
||||
informat:genbank
|
||||
|
||||
|
||||
item:Save Selection
|
||||
itemmethod: cat $SAVE_FUNC > $Name
|
||||
itemhelp:save_selection.help
|
||||
|
||||
arg:SAVE_FUNC
|
||||
argtype:chooser
|
||||
arglabel:File format
|
||||
argchoice:Flat:in1
|
||||
argchoice:Genbank:in2
|
||||
argchoice:GDE/HGL:in3
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:File name?
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
in:in2
|
||||
informat:genbank
|
||||
|
||||
in:in3
|
||||
informat:gde
|
||||
|
||||
item:Print Selection
|
||||
itemmethod:(PrintStrat in1 $SCALE > in1.tmp; $CMD -P$PRINTER in1.tmp; /bin/rm -f in1 in1.tmp)&
|
||||
itemhelp:print_alignment.help
|
||||
|
||||
arg:SCALE
|
||||
argtype:slider
|
||||
arglabel:Reduce printout by?
|
||||
argmin:1
|
||||
argmax:20
|
||||
argvalue:1
|
||||
|
||||
arg:CMD
|
||||
argtype:chooser
|
||||
argchoice:Lpr:lpr
|
||||
argchoice:Enscript Gaudy:enscript -G -q
|
||||
argchoice:Enscript Two column:enscript -2rG
|
||||
|
||||
arg:PRINTER
|
||||
argtype:text
|
||||
arglabel:Which printer?
|
||||
argtext:lp
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
menu:Edit
|
||||
|
||||
item:Sort
|
||||
itemmethod:(heapsortHGL in1 $PRIM_KEY $SEC_KEY > in1.tmp ; gde in1.tmp;/bin/rm -f in1*)&
|
||||
itemhelp:heapsortHGL.help
|
||||
|
||||
arg:PRIM_KEY
|
||||
argtype:choice_list
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Primary sort field?
|
||||
|
||||
arg:SEC_KEY
|
||||
argtype:choice_list
|
||||
argchoice:None:
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Secondary sort field?
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:extract
|
||||
itemmethod:(gde in1;/bin/rm -f in1)&
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
menu:DNA/RNA
|
||||
|
||||
item:Translate...
|
||||
itemmethod:Translate -tbl $TBL -frame $FRAME -min_frame $MNFRM $LTRCODE in1 > out1
|
||||
|
||||
arg:FRAME
|
||||
argtype:chooser
|
||||
arglabel:Which reading frame?
|
||||
argchoice:First:1
|
||||
argchoice:Second:2
|
||||
argchoice:Third:3
|
||||
argchoice:All six:6
|
||||
|
||||
arg:MNFRM
|
||||
arglabel:Minimum length of AA sequence to translate?
|
||||
argtype:slider
|
||||
argmin:0
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
arg:LTRCODE
|
||||
argtype:chooser
|
||||
arglabel:Translate to:
|
||||
argchoice:Single letter codes:
|
||||
argchoice:Triple letter codes:-3
|
||||
|
||||
arg:TBL
|
||||
arglabel:Codon table?
|
||||
argtype:chooser
|
||||
argchoice:universal:1
|
||||
argchoice:mycoplasma:2
|
||||
argchoice:yeast:3
|
||||
argchoice:Vert. mito.:4
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
item:Dot plot
|
||||
itemmethod:(DotPlotTool in1 ; /bin/rm -f in1)&
|
||||
itemhelp:DotPlotTool.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:Clustal alignment
|
||||
itemmethod:(tr '%#' '>'<in1>clus_in;clustalw -quicktree -output=PIR -infile=clus_in -align > in1.rpt;sed "s/>DL;/#/g" < clus_in.pir> in1;$REPORT gde in1;/bin/rm -f clus_in* in1* )&
|
||||
|
||||
itemhelp:clustal_help
|
||||
|
||||
arg:KTUP
|
||||
argtype:slider
|
||||
arglabel:K-tuple size for pairwise search
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:2
|
||||
|
||||
arg:WIN
|
||||
argtype:slider
|
||||
arglabel:Window size
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:4
|
||||
|
||||
arg:Trans
|
||||
argtype:chooser
|
||||
arglabel:Transitions weighted?
|
||||
argchoice:Yes:/TRANSIT
|
||||
argchoice:No:
|
||||
|
||||
arg:FIXED
|
||||
argtype:slider
|
||||
arglabel:Fixed gap penalty
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:FLOAT
|
||||
arglabel:Floating gap penalty
|
||||
argtype:slider
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:REPORT
|
||||
argtype:chooser
|
||||
arglabel:View assembly report?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit in1.rpt&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Variable Positions
|
||||
itemmethod:varpos $REV < in1 > out1
|
||||
|
||||
arg:REV
|
||||
argtype:chooser
|
||||
arglabel:Highlight (darken)
|
||||
argchoice:Conserved positions:
|
||||
argchoice:variable positions:-rev
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Phrap
|
||||
itemmethod:readseq in1 -a -f8 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp; phrap OUTPUTFILE; readseq -a -f2 OUTPUTFILE.contigs > out1;/bin/rm -rf OUTPUT*;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
|
||||
out:out1
|
||||
outformat:genbank
|
||||
|
||||
item:SNAP
|
||||
itemmethod: cat in1 > infile;/usr/local/bio/GDE/bin/fasta2snap.pl > outfile; /usr/bin/X11/xterm -e /home/tulio/bio/SNAP/SNAP.pl outfile; kedit backg*; kedit summ*; sheeltool /home/tulio/bio/codons-xyplot.pl codons.*; kedit codon.data; /bin/rm -rf back* codon* summ*;
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
out:out1
|
||||
outformat:text
|
||||
|
||||
|
||||
|
||||
|
||||
item:Find all <meta-f>
|
||||
itemmethod:findall $SEARCH $PRCNT $CASE $UT -match $MAT -mismatch $MIS < in1 > out1;
|
||||
itemhelp:findall.help
|
||||
itemmeta:f
|
||||
|
||||
arg:SEARCH
|
||||
argtype:text
|
||||
arglabel:Search String
|
||||
|
||||
arg:PRCNT
|
||||
argtype:slider
|
||||
arglabel:Percent mismatch
|
||||
argmin:0
|
||||
argmax:75
|
||||
argvalue:10
|
||||
|
||||
arg:CASE
|
||||
argtype:chooser
|
||||
arglabel:Case
|
||||
argchoice:Upper equals lower:
|
||||
argchoice:Upper not equal lower:-case
|
||||
|
||||
arg:UT
|
||||
argtype:chooser
|
||||
arglabel:U equal T?
|
||||
argchoice:Yes:-u=t
|
||||
argchoice:No:
|
||||
argvalue:0
|
||||
|
||||
arg:MAT
|
||||
arglabel:Match color
|
||||
argtype:choice_list
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:2
|
||||
|
||||
arg:MIS
|
||||
argtype:choice_list
|
||||
arglabel:Mismatch color
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:7
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Sequence Consensus
|
||||
itemmethod:(MakeCons in1 $METHOD $MASK > out1)
|
||||
itemhelp:MakeCons.help
|
||||
|
||||
arg:METHOD
|
||||
arglabel:Method
|
||||
argtype:chooser
|
||||
argchoice:IUPAC:-iupac
|
||||
argchoice:Majority:-majority $PERCENT
|
||||
|
||||
arg:MASK
|
||||
argtype:chooser
|
||||
arglabel:Create a new:
|
||||
argchoice:Sequence:
|
||||
argchoice:Selection Mask: | Consto01mask
|
||||
|
||||
arg:PERCENT
|
||||
arglabel:Minimum Percentage for Majority
|
||||
argtype:slider
|
||||
argmin:50
|
||||
argmax:100
|
||||
argvalue:75
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
|
||||
#Menu for DNA/RNA
|
||||
|
||||
item:blastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastn -d $BLASTDBDNA -i in1.f -W $WORDLEN -M $MATCH > in1.tmp; kedit in1.tmp; rm in1*)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV-1 Seq. Db.:/usr/local/bio/db/DNA/hiv17-08-01.fasta2
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:MATCH
|
||||
argtype:slider
|
||||
arglabel:Match Score
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:5
|
||||
|
||||
arg:MMSCORE
|
||||
argtype:slider
|
||||
arglabel:Mismatch Score
|
||||
argmin:-10
|
||||
argmax:-1
|
||||
argvalue:-5
|
||||
|
||||
item:blastx
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastx -d $BLASTDB -i in1.f -W $WORDLEN -M PAM30 > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1*)&
|
||||
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:genpept:$GDE_HELP_DIR/BLAST/genpept
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
item:------------------------
|
||||
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p F -o T; /usr/local/bio/GDE/installBLASTDB.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: enter the file name
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: enter the name of the DB
|
||||
|
||||
menu:seq. datasets
|
||||
|
||||
item:-------------
|
||||
item:add a new dataset
|
||||
itemmethod:cp $file /usr/local/biotools/GDE/db/ ;xterm -e /usr/local/biotools/GDE/newDATASET.pl $name $file
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the dataset name ?
|
||||
|
||||
arg:file
|
||||
argtype:text
|
||||
arglabel:Enter the dataset file (in FASTA) ?
|
||||
|
||||
|
||||
#Menu for Protein
|
||||
menu:protein
|
||||
item:blastp
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM30; /usr/local/bio/blast/blastall -p blastp -d $BLASTDB -i in1.f -W $WORDLEN -M $Matrix > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1* PAM30)&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
|
||||
arg:Matrix
|
||||
barglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
item:tblastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM??? .; tblastn $BLASTDB in1.f W=$WORDLEN M=$Matrix C=$CODE > in1.tmp; kedit in1.tmp; rm in1* PAM???)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:genbank:$GDE_HELP_DIR/BLAST/genbank
|
||||
argchoice:genbank update:$GDE_HELP_DIR/BLAST/genupdate
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
|
||||
item:Map View
|
||||
itemmethod:(mapview in1 -pbl $PBL -npp $NPP; /bin/rm -f in1)&
|
||||
itemhelp:mapview.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
arg:PBL
|
||||
arglabel:Pixel Between Lines
|
||||
argtype:slider
|
||||
argvalue:10
|
||||
argmin:1
|
||||
argmax:15
|
||||
|
||||
arg:NPP
|
||||
arglabel:Nucleotides Per Pixel
|
||||
argtype:slider
|
||||
argvalue:1
|
||||
argmin:1
|
||||
argmax:20
|
||||
|
||||
arg:LWIDTH
|
||||
arglabel:Line Thickness
|
||||
argtype:slider
|
||||
argvalue:2
|
||||
argmin:1
|
||||
argmax:5
|
||||
|
||||
item:--------------------------
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p T -o T; /usr/local/bio/GDE/installBLASTDBPROT.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: Enter the file (in FASTA)
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: Enter the name of the DB
|
||||
|
||||
menu:Phylogeny
|
||||
|
||||
|
||||
item:Phylip help
|
||||
itemmethod:(netscape /usr/local/bio/phylip/doc/$FILE)&
|
||||
|
||||
arg:FILE
|
||||
argtype:choice_list
|
||||
arglabel:Which program?
|
||||
argchoice:clique:clique.html
|
||||
argchoice:consense:consense.html
|
||||
argchoice:contchar:contchar.html
|
||||
argchoice:contml:contml.html
|
||||
argchoice:contrast:contrast.html
|
||||
argchoice:discrete:discrete.html
|
||||
argchoice:distance:distance.html
|
||||
argchoice:dnaboot:dnaboot.html
|
||||
argchoice:dnacomp:dnacomp.html
|
||||
argchoice:dnadist:dnadist.html
|
||||
argchoice:dnainvar:dnainvar.html
|
||||
argchoice:dnaml:dnaml.html
|
||||
argchoice:dnamlk:dnamlk.html
|
||||
argchoice:dnamove:dnamove.html
|
||||
argchoice:dnapars:dnapars.html
|
||||
argchoice:dnapenny:dnapenny.html
|
||||
argchoice:dollop:dollop.html
|
||||
argchoice:dolmove:dolmove.html
|
||||
argchoice:dolpenny:dolpenny.html
|
||||
argchoice:draw:draw.html
|
||||
argchoice:drawgram:drawgram.html
|
||||
argchoice:drawtree:drawtree.html
|
||||
argchoice:factor:factor.html
|
||||
argchoice:fitch:fitch.html
|
||||
argchoice:gendist:gendist.html
|
||||
argchoice:kitsch:kitsch.html
|
||||
argchoice:main:main.html
|
||||
argchoice:mix:mix.html
|
||||
argchoice:move:move.html
|
||||
argchoice:neighbor:neighbor.html
|
||||
argchoice:penny:penny.html
|
||||
argchoice:protpars:protpars.html
|
||||
argchoice:read.me.general:read.me.general.html
|
||||
argchoice:restml:restml.html
|
||||
argchoice:seqboot:seqboot.html
|
||||
argchoice:sequence:sequence.html
|
||||
|
||||
|
||||
|
||||
item:Phylip 3.5
|
||||
itemmethod:(rm -f outfile ; readseq -a -f12 in1 | sed "s/ YF//1" > infile;$PREEDIT /usr/bin/X11/xterm -e $PROGRAM;kedit outfile; treetool outtree; rm in1 )&
|
||||
|
||||
arg:PROGRAM
|
||||
argtype:choice_list
|
||||
arglabel:Which program to run?
|
||||
argchoice:DNAPARS:dnapars
|
||||
argchoice:DNABOOT:dnaboot
|
||||
argchoice:DNAPENNY:dnapenny
|
||||
argchoice:DNAML:dnaml
|
||||
argchoice:DNAMLK:dnamlk
|
||||
argchoice:DNACOMP:dnacomp
|
||||
argchoice:DNAMOVE:dnamove
|
||||
argchoice:DNAINVAR:dnainvar
|
||||
argchoice:PROTPARS:protpars
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
item:Phylip DNA Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 | sed "s/ YF//1" > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e dnadist;mv -f outfile infile; cp infile $DNA; /usr/bin/X11/xterm -e neighbor; cp outtree intree; cp outfile $NEI; $PROGRAM kedit outfile; cp outtree $TREE; treetool outtree; /bin/rm -f in1 infile outfile intree outtree)&
|
||||
|
||||
arg:EXPLAIN
|
||||
argtype:text
|
||||
arglabel:To produce a bootstraped tree choose DNADIST+NEIGHOR+CONSENSE
|
||||
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:DNADIST+NEIGHBOR:
|
||||
argchoice:DNADIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Run ?
|
||||
argtype:chooser
|
||||
argchoice:Run without Bootstrap:
|
||||
argchoice:Run with Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
|
||||
arg:DNA
|
||||
argtype:text
|
||||
arglabel:Name of DNADIST outfile?
|
||||
|
||||
arg:NEI
|
||||
argtype:text
|
||||
arglabel:Name of NEIGHBOR outfile?
|
||||
|
||||
arg:TREE
|
||||
argtype:text
|
||||
arglabel:Name of TREEFILE ?
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
item:Phylip PROTEIN Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e protdist;mv -f outfile infile; /usr/bin/X11/xterm -e neighbor; cp outtree intree; $PROGRAM kedit outfile;treetool outtree;/bin/rm -f in1 infile outfile)&
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:PROTDIST+NEIGHBOR:
|
||||
argchoice:PROTDIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
argchoice:No Bootstrap:
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
menu:On-Line Res.
|
||||
|
||||
item:GDE for Linux resources at Bioafrica.net
|
||||
itemmethod:netscape http://www.bioafrica.net &
|
||||
|
||||
item:-------------------------
|
||||
item:add a new website
|
||||
itemmethod:xterm -e /usr/local/biotools/GDE/newURL.pl $name $url
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the site name
|
||||
|
||||
arg:url
|
||||
argtype:text
|
||||
arglabel:Enter the URL (including http://)
|
2049
CORE/.GDEmenus.copy
Executable file
2049
CORE/.GDEmenus.copy
Executable file
File diff suppressed because it is too large
Load diff
1461
CORE/.GDEmenus.noPAUP
Executable file
1461
CORE/.GDEmenus.noPAUP
Executable file
File diff suppressed because it is too large
Load diff
2029
CORE/.GDEmenus.safe
Executable file
2029
CORE/.GDEmenus.safe
Executable file
File diff suppressed because it is too large
Load diff
1340
CORE/.GDEmenus.safe2
Executable file
1340
CORE/.GDEmenus.safe2
Executable file
File diff suppressed because it is too large
Load diff
1383
CORE/.GDEmenus.safeCOOL
Executable file
1383
CORE/.GDEmenus.safeCOOL
Executable file
File diff suppressed because it is too large
Load diff
2029
CORE/.GDEmenus.tulio
Executable file
2029
CORE/.GDEmenus.tulio
Executable file
File diff suppressed because it is too large
Load diff
1016
CORE/.GDEmenus.web
Normal file
1016
CORE/.GDEmenus.web
Normal file
File diff suppressed because it is too large
Load diff
1339
CORE/.GDEmenus1
Executable file
1339
CORE/.GDEmenus1
Executable file
File diff suppressed because it is too large
Load diff
1415
CORE/.GDEmenusILOVED
Executable file
1415
CORE/.GDEmenusILOVED
Executable file
File diff suppressed because it is too large
Load diff
791
CORE/.GDEmenusNew
Normal file
791
CORE/.GDEmenusNew
Normal file
|
@ -0,0 +1,791 @@
|
|||
1menu:File
|
||||
|
||||
item:test cmask output
|
||||
itemmethod: kedit in1
|
||||
|
||||
in:in1
|
||||
informat:colormask
|
||||
|
||||
item:New sequence <meta N>
|
||||
itemmethod:echo "$Type$Name" > out1
|
||||
itemmeta:n
|
||||
itemhelp:new_sequence.help
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:New Sequence name?
|
||||
argtext:New
|
||||
|
||||
arg:Type
|
||||
argtype:choice_list
|
||||
arglabel:Type?
|
||||
argchoice:DNA/RNA:#
|
||||
argchoice:Amino Acid:%
|
||||
argchoice:Text:\"
|
||||
argchoice:Mask:@
|
||||
|
||||
out:out1
|
||||
outformat:flat
|
||||
|
||||
item:Import Foreign Format
|
||||
itemmethod:cp $INPUTFILE OUTFILE.tmp;readseq OUTFILE.tmp -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:INPUTFILE
|
||||
argtype:text
|
||||
arglabel:Name of foreign file?
|
||||
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:Export Foreign Format
|
||||
itemmethod:readseq INPUTFILE -a -f$FORMAT > $OUTPUTFILE
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:FORMAT
|
||||
argtype:choice_list
|
||||
argchoice:FASTA:8
|
||||
argchoice:NEXUS:17
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:IG/Stanford:1
|
||||
argchoice:GenBank:2
|
||||
argchoice:NBRF:3
|
||||
argchoice:EMBL:4
|
||||
argchoice:GCG:5
|
||||
argchoice:DNA Strider:6
|
||||
argchoice:Fitch:7
|
||||
argchoice:Pearson:8
|
||||
argchoice:Zuker:9
|
||||
argchoice:Olsen:10
|
||||
argchoice:Phylip v3.2:11
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:Plain text:13
|
||||
|
||||
arg:OUTPUTFILE
|
||||
argtype:text
|
||||
arglabel:Save as?
|
||||
|
||||
in:INPUTFILE
|
||||
informat:genbank
|
||||
|
||||
|
||||
item:Save Selection
|
||||
itemmethod: cat $SAVE_FUNC > $Name
|
||||
itemhelp:save_selection.help
|
||||
|
||||
arg:SAVE_FUNC
|
||||
argtype:chooser
|
||||
arglabel:File format
|
||||
argchoice:Flat:in1
|
||||
argchoice:Genbank:in2
|
||||
argchoice:GDE/HGL:in3
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:File name?
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
in:in2
|
||||
informat:genbank
|
||||
|
||||
in:in3
|
||||
informat:gde
|
||||
|
||||
item:Print Selection
|
||||
itemmethod:(PrintStrat in1 $SCALE > in1.tmp; $CMD -P$PRINTER in1.tmp; /bin/rm -f in1 in1.tmp)&
|
||||
itemhelp:print_alignment.help
|
||||
|
||||
arg:SCALE
|
||||
argtype:slider
|
||||
arglabel:Reduce printout by?
|
||||
argmin:1
|
||||
argmax:20
|
||||
argvalue:1
|
||||
|
||||
arg:CMD
|
||||
argtype:chooser
|
||||
argchoice:Lpr:lpr
|
||||
argchoice:Enscript Gaudy:enscript -G -q
|
||||
argchoice:Enscript Two column:enscript -2rG
|
||||
|
||||
arg:PRINTER
|
||||
argtype:text
|
||||
arglabel:Which printer?
|
||||
argtext:lp
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
menu:Edit
|
||||
|
||||
item:Sort
|
||||
itemmethod:(heapsortHGL in1 $PRIM_KEY $SEC_KEY > in1.tmp ; gde in1.tmp;/bin/rm -f in1*)&
|
||||
itemhelp:heapsortHGL.help
|
||||
|
||||
arg:PRIM_KEY
|
||||
argtype:choice_list
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Primary sort field?
|
||||
|
||||
arg:SEC_KEY
|
||||
argtype:choice_list
|
||||
argchoice:None:
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Secondary sort field?
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:extract
|
||||
itemmethod:(gde in1;/bin/rm -f in1)&
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
menu:DNA/RNA
|
||||
|
||||
item:Translate...
|
||||
itemmethod:Translate -tbl $TBL -frame $FRAME -min_frame $MNFRM $LTRCODE in1 > out1
|
||||
|
||||
arg:FRAME
|
||||
argtype:chooser
|
||||
arglabel:Which reading frame?
|
||||
argchoice:First:1
|
||||
argchoice:Second:2
|
||||
argchoice:Third:3
|
||||
argchoice:All six:6
|
||||
|
||||
arg:MNFRM
|
||||
arglabel:Minimum length of AA sequence to translate?
|
||||
argtype:slider
|
||||
argmin:0
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
arg:LTRCODE
|
||||
argtype:chooser
|
||||
arglabel:Translate to:
|
||||
argchoice:Single letter codes:
|
||||
argchoice:Triple letter codes:-3
|
||||
|
||||
arg:TBL
|
||||
arglabel:Codon table?
|
||||
argtype:chooser
|
||||
argchoice:universal:1
|
||||
argchoice:mycoplasma:2
|
||||
argchoice:yeast:3
|
||||
argchoice:Vert. mito.:4
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
item:Dot plot
|
||||
itemmethod:(DotPlotTool in1 ; /bin/rm -f in1)&
|
||||
itemhelp:DotPlotTool.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:Clustal alignment
|
||||
itemmethod:(tr '%#' '>'<in1>clus_in;clustalw -quicktree -output=PIR -infile=clus_in -align > in1.rpt;sed "s/>DL;/#/g" < clus_in.pir> in1;$REPORT gde in1;/bin/rm -f clus_in* in1* )&
|
||||
|
||||
itemhelp:clustal_help
|
||||
|
||||
arg:KTUP
|
||||
argtype:slider
|
||||
arglabel:K-tuple size for pairwise search
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:2
|
||||
|
||||
arg:WIN
|
||||
argtype:slider
|
||||
arglabel:Window size
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:4
|
||||
|
||||
arg:Trans
|
||||
argtype:chooser
|
||||
arglabel:Transitions weighted?
|
||||
argchoice:Yes:/TRANSIT
|
||||
argchoice:No:
|
||||
|
||||
arg:FIXED
|
||||
argtype:slider
|
||||
arglabel:Fixed gap penalty
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:FLOAT
|
||||
arglabel:Floating gap penalty
|
||||
argtype:slider
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:REPORT
|
||||
argtype:chooser
|
||||
arglabel:View assembly report?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit in1.rpt&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Variable Positions
|
||||
itemmethod:varpos $REV < in1 > out1
|
||||
|
||||
arg:REV
|
||||
argtype:chooser
|
||||
arglabel:Highlight (darken)
|
||||
argchoice:Conserved positions:
|
||||
argchoice:variable positions:-rev
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Phrap
|
||||
itemmethod:readseq in1 -a -f8 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp; phrap OUTPUTFILE; readseq -a -f2 OUTPUTFILE.contigs > out1;/bin/rm -rf OUTPUT*;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
|
||||
out:out1
|
||||
outformat:genbank
|
||||
|
||||
item:SNAP
|
||||
itemmethod: cat in1 > infile;/usr/local/biotools/GDE/bin/fasta2snap.pl > outfile; /usr/bin/X11/xterm -e /home/tulio/biotools/SNAP/SNAP.pl outfile; kedit backg*; kedit summ*; sheeltool /home/tulio/biotools/codons-xyplot.pl codons.*; kedit codon.data; /bin/rm -rf back* codon* summ*;
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
out:out1
|
||||
outformat:text
|
||||
|
||||
|
||||
|
||||
|
||||
item:Find all <meta-f>
|
||||
itemmethod:findall $SEARCH $PRCNT $CASE $UT -match $MAT -mismatch $MIS < in1 > out1;
|
||||
itemhelp:findall.help
|
||||
itemmeta:f
|
||||
|
||||
arg:SEARCH
|
||||
argtype:text
|
||||
arglabel:Search String
|
||||
|
||||
arg:PRCNT
|
||||
argtype:slider
|
||||
arglabel:Percent mismatch
|
||||
argmin:0
|
||||
argmax:75
|
||||
argvalue:10
|
||||
|
||||
arg:CASE
|
||||
argtype:chooser
|
||||
arglabel:Case
|
||||
argchoice:Upper equals lower:
|
||||
argchoice:Upper not equal lower:-case
|
||||
|
||||
arg:UT
|
||||
argtype:chooser
|
||||
arglabel:U equal T?
|
||||
argchoice:Yes:-u=t
|
||||
argchoice:No:
|
||||
argvalue:0
|
||||
|
||||
arg:MAT
|
||||
arglabel:Match color
|
||||
argtype:choice_list
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:2
|
||||
|
||||
arg:MIS
|
||||
argtype:choice_list
|
||||
arglabel:Mismatch color
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:7
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Sequence Consensus
|
||||
itemmethod:(MakeCons in1 $METHOD $MASK > out1)
|
||||
itemhelp:MakeCons.help
|
||||
|
||||
arg:METHOD
|
||||
arglabel:Method
|
||||
argtype:chooser
|
||||
argchoice:IUPAC:-iupac
|
||||
argchoice:Majority:-majority $PERCENT
|
||||
|
||||
arg:MASK
|
||||
argtype:chooser
|
||||
arglabel:Create a new:
|
||||
argchoice:Sequence:
|
||||
argchoice:Selection Mask: | Consto01mask
|
||||
|
||||
arg:PERCENT
|
||||
arglabel:Minimum Percentage for Majority
|
||||
argtype:slider
|
||||
argmin:50
|
||||
argmax:100
|
||||
argvalue:75
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
|
||||
#Menu for DNA/RNA
|
||||
|
||||
item:blastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/biotools/blast/blastall -p blastn -d $BLASTDBDNA -i in1.f -W $WORDLEN -M $MATCH > in1.tmp; kedit in1.tmp; rm in1*)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV-1 Seq. Db.:/usr/local/biotools/db/DNA/hiv17-08-01.fasta2
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:MATCH
|
||||
argtype:slider
|
||||
arglabel:Match Score
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:5
|
||||
|
||||
arg:MMSCORE
|
||||
argtype:slider
|
||||
arglabel:Mismatch Score
|
||||
argmin:-10
|
||||
argmax:-1
|
||||
argvalue:-5
|
||||
|
||||
item:blastx
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/biotools/blast/blastall -p blastx -d $BLASTDB -i in1.f -W $WORDLEN -M PAM30 > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1*)&
|
||||
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/biotools/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:genpept:$GDE_HELP_DIR/BLAST/genpept
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
item:------------------------
|
||||
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p F -o T; /usr/local/biotools/GDE/bin/installBLASTDB.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: enter the file name
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: enter the name of the DB
|
||||
|
||||
menu:seq. datasets
|
||||
item:tttt
|
||||
itemmethod:readseq /usr/local/biotools/GDE/db/ttttt -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:HIV1POLDNA.fasta
|
||||
itemmethod:readseq /usr/local/biotools/GDE/db/HIV1POLDNA.fasta -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:structure
|
||||
itemmethod:readseq /usr/local/biotools/GDE/db/structprot.fasta -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:-------------
|
||||
item:add a new dataset
|
||||
itemmethod:mkdir db; cp $file db/ ;xterm -e /usr/local/biotools/GDE/newDATASET.pl $name $file
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the dataset name ?
|
||||
|
||||
arg:file
|
||||
argtype:text
|
||||
arglabel:Enter the dataset file (in FASTA) ?
|
||||
|
||||
|
||||
#Menu for Protein
|
||||
menu:protein
|
||||
item:blastp
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/biotools/db/PAM30; /usr/local/biotools/blast/blastall -p blastp -d $BLASTDBPROT -i in1.f -W $WORDLEN -M $Matrix > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1* PAM30)&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBPROT
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/biotools/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:ttttt:/usr/local/biotools/db/tttt
|
||||
argchoice:tytuiphn:/usr/local/biotools/db/yejhuh[9hp
|
||||
argchoice:yyyy:/usr/local/biotools/db/test
|
||||
|
||||
arg:Matrix
|
||||
barglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
item:tblastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/biotools/db/PAM??? .; tblastn $BLASTDB in1.f W=$WORDLEN M=$Matrix C=$CODE > in1.tmp; kedit in1.tmp; rm in1* PAM???)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:genbank:$GDE_HELP_DIR/BLAST/genbank
|
||||
argchoice:genbank update:$GDE_HELP_DIR/BLAST/genupdate
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
|
||||
item:Map View
|
||||
itemmethod:(mapview in1 -pbl $PBL -npp $NPP; /bin/rm -f in1)&
|
||||
itemhelp:mapview.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
arg:PBL
|
||||
arglabel:Pixel Between Lines
|
||||
argtype:slider
|
||||
argvalue:10
|
||||
argmin:1
|
||||
argmax:15
|
||||
|
||||
arg:NPP
|
||||
arglabel:Nucleotides Per Pixel
|
||||
argtype:slider
|
||||
argvalue:1
|
||||
argmin:1
|
||||
argmax:20
|
||||
|
||||
arg:LWIDTH
|
||||
arglabel:Line Thickness
|
||||
argtype:slider
|
||||
argvalue:2
|
||||
argmin:1
|
||||
argmax:5
|
||||
|
||||
item:--------------------------
|
||||
item:Add a new Protein blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p T -o T; /usr/local/biotools/GDE/bin/installBLASTDBPROT.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: Enter the file (in FASTA)
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: Enter the name of the DB
|
||||
|
||||
menu:Phylogeny
|
||||
|
||||
|
||||
item:Phylip help
|
||||
itemmethod:(netscape /usr/local/biotools/phylip/doc/$FILE)&
|
||||
|
||||
arg:FILE
|
||||
argtype:choice_list
|
||||
arglabel:Which program?
|
||||
argchoice:clique:clique.html
|
||||
argchoice:consense:consense.html
|
||||
argchoice:contchar:contchar.html
|
||||
argchoice:contml:contml.html
|
||||
argchoice:contrast:contrast.html
|
||||
argchoice:discrete:discrete.html
|
||||
argchoice:distance:distance.html
|
||||
argchoice:dnaboot:dnaboot.html
|
||||
argchoice:dnacomp:dnacomp.html
|
||||
argchoice:dnadist:dnadist.html
|
||||
argchoice:dnainvar:dnainvar.html
|
||||
argchoice:dnaml:dnaml.html
|
||||
argchoice:dnamlk:dnamlk.html
|
||||
argchoice:dnamove:dnamove.html
|
||||
argchoice:dnapars:dnapars.html
|
||||
argchoice:dnapenny:dnapenny.html
|
||||
argchoice:dollop:dollop.html
|
||||
argchoice:dolmove:dolmove.html
|
||||
argchoice:dolpenny:dolpenny.html
|
||||
argchoice:draw:draw.html
|
||||
argchoice:drawgram:drawgram.html
|
||||
argchoice:drawtree:drawtree.html
|
||||
argchoice:factor:factor.html
|
||||
argchoice:fitch:fitch.html
|
||||
argchoice:gendist:gendist.html
|
||||
argchoice:kitsch:kitsch.html
|
||||
argchoice:main:main.html
|
||||
argchoice:mix:mix.html
|
||||
argchoice:move:move.html
|
||||
argchoice:neighbor:neighbor.html
|
||||
argchoice:penny:penny.html
|
||||
argchoice:protpars:protpars.html
|
||||
argchoice:read.me.general:read.me.general.html
|
||||
argchoice:restml:restml.html
|
||||
argchoice:seqboot:seqboot.html
|
||||
argchoice:sequence:sequence.html
|
||||
|
||||
|
||||
|
||||
item:Phylip 3.5
|
||||
itemmethod:(rm -f outfile ; readseq -a -f12 in1 | sed "s/ YF//1" > infile;$PREEDIT /usr/bin/X11/xterm -e $PROGRAM;kedit outfile; treetool outtree; rm in1 )&
|
||||
|
||||
arg:PROGRAM
|
||||
argtype:choice_list
|
||||
arglabel:Which program to run?
|
||||
argchoice:DNAPARS:dnapars
|
||||
argchoice:DNABOOT:dnaboot
|
||||
argchoice:DNAPENNY:dnapenny
|
||||
argchoice:DNAML:dnaml
|
||||
argchoice:DNAMLK:dnamlk
|
||||
argchoice:DNACOMP:dnacomp
|
||||
argchoice:DNAMOVE:dnamove
|
||||
argchoice:DNAINVAR:dnainvar
|
||||
argchoice:PROTPARS:protpars
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
item:Phylip DNA Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 | sed "s/ YF//1" > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e dnadist;mv -f outfile infile; cp infile $DNA; /usr/bin/X11/xterm -e neighbor; cp outtree intree; cp outfile $NEI; $PROGRAM kedit outfile; cp outtree $TREE; treetool outtree; /bin/rm -f in1 infile outfile intree outtree)&
|
||||
|
||||
arg:EXPLAIN
|
||||
argtype:text
|
||||
arglabel:To produce a bootstraped tree choose DNADIST+NEIGHOR+CONSENSE
|
||||
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:DNADIST+NEIGHBOR:
|
||||
argchoice:DNADIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Run ?
|
||||
argtype:chooser
|
||||
argchoice:Run without Bootstrap:
|
||||
argchoice:Run with Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
|
||||
arg:DNA
|
||||
argtype:text
|
||||
arglabel:Name of DNADIST outfile?
|
||||
|
||||
arg:NEI
|
||||
argtype:text
|
||||
arglabel:Name of NEIGHBOR outfile?
|
||||
|
||||
arg:TREE
|
||||
argtype:text
|
||||
arglabel:Name of TREEFILE ?
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
item:Phylip PROTEIN Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e protdist;mv -f outfile infile; /usr/bin/X11/xterm -e neighbor; cp outtree intree; $PROGRAM kedit outfile;treetool outtree;/bin/rm -f in1 infile outfile)&
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:PROTDIST+NEIGHBOR:
|
||||
argchoice:PROTDIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
argchoice:No Bootstrap:
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
menu:On-Line Res.
|
||||
item:tytyt
|
||||
itemmethod:netscape hnu[phoph &
|
||||
item:SANBI
|
||||
itemmethod:netscape again &
|
||||
item:PlasmoDB
|
||||
itemmethod:netscape http://www.plasmodb.org &
|
||||
item:NCBI
|
||||
itemmethod:netscape http://www.ncbi.nlm.nih.gov &
|
||||
item:sanbi
|
||||
itemmethod:netscape http://www.sanbi.ac.za &
|
||||
item:SANBI
|
||||
itemmethod:netscape http://www.sanbi.ac.za &
|
||||
|
||||
item:GDE for Linux resources at Bioafrica.net
|
||||
itemmethod:netscape http://www.bioafrica.net &
|
||||
|
||||
item:-------------------------
|
||||
item:add a new website
|
||||
itemmethod:xterm -e /usr/local/biotools/GDE/newURL.pl $name $url
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the site name
|
||||
|
||||
arg:url
|
||||
argtype:text
|
||||
arglabel:Enter the URL (including http://)
|
761
CORE/.GDEmenusthat
Normal file
761
CORE/.GDEmenusthat
Normal file
|
@ -0,0 +1,761 @@
|
|||
1menu:File
|
||||
|
||||
item:test cmask output
|
||||
itemmethod: kedit in1
|
||||
|
||||
in:in1
|
||||
informat:colormask
|
||||
|
||||
item:New sequence <meta N>
|
||||
itemmethod:echo "$Type$Name" > out1
|
||||
itemmeta:n
|
||||
itemhelp:new_sequence.help
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:New Sequence name?
|
||||
argtext:New
|
||||
|
||||
arg:Type
|
||||
argtype:choice_list
|
||||
arglabel:Type?
|
||||
argchoice:DNA/RNA:#
|
||||
argchoice:Amino Acid:%
|
||||
argchoice:Text:\"
|
||||
argchoice:Mask:@
|
||||
|
||||
out:out1
|
||||
outformat:flat
|
||||
|
||||
item:Import Foreign Format
|
||||
itemmethod:cp $INPUTFILE OUTFILE.tmp;readseq OUTFILE.tmp -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:INPUTFILE
|
||||
argtype:text
|
||||
arglabel:Name of foreign file?
|
||||
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:Export Foreign Format
|
||||
itemmethod:readseq INPUTFILE -a -f$FORMAT > $OUTPUTFILE
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:FORMAT
|
||||
argtype:choice_list
|
||||
argchoice:FASTA:8
|
||||
argchoice:NEXUS:17
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:IG/Stanford:1
|
||||
argchoice:GenBank:2
|
||||
argchoice:NBRF:3
|
||||
argchoice:EMBL:4
|
||||
argchoice:GCG:5
|
||||
argchoice:DNA Strider:6
|
||||
argchoice:Fitch:7
|
||||
argchoice:Pearson:8
|
||||
argchoice:Zuker:9
|
||||
argchoice:Olsen:10
|
||||
argchoice:Phylip v3.2:11
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:Plain text:13
|
||||
|
||||
arg:OUTPUTFILE
|
||||
argtype:text
|
||||
arglabel:Save as?
|
||||
|
||||
in:INPUTFILE
|
||||
informat:genbank
|
||||
|
||||
|
||||
item:Save Selection
|
||||
itemmethod: cat $SAVE_FUNC > $Name
|
||||
itemhelp:save_selection.help
|
||||
|
||||
arg:SAVE_FUNC
|
||||
argtype:chooser
|
||||
arglabel:File format
|
||||
argchoice:Flat:in1
|
||||
argchoice:Genbank:in2
|
||||
argchoice:GDE/HGL:in3
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:File name?
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
in:in2
|
||||
informat:genbank
|
||||
|
||||
in:in3
|
||||
informat:gde
|
||||
|
||||
item:Print Selection
|
||||
itemmethod:(PrintStrat in1 $SCALE > in1.tmp; $CMD -P$PRINTER in1.tmp; /bin/rm -f in1 in1.tmp)&
|
||||
itemhelp:print_alignment.help
|
||||
|
||||
arg:SCALE
|
||||
argtype:slider
|
||||
arglabel:Reduce printout by?
|
||||
argmin:1
|
||||
argmax:20
|
||||
argvalue:1
|
||||
|
||||
arg:CMD
|
||||
argtype:chooser
|
||||
argchoice:Lpr:lpr
|
||||
argchoice:Enscript Gaudy:enscript -G -q
|
||||
argchoice:Enscript Two column:enscript -2rG
|
||||
|
||||
arg:PRINTER
|
||||
argtype:text
|
||||
arglabel:Which printer?
|
||||
argtext:lp
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
menu:Edit
|
||||
|
||||
item:Sort
|
||||
itemmethod:(heapsortHGL in1 $PRIM_KEY $SEC_KEY > in1.tmp ; gde in1.tmp;/bin/rm -f in1*)&
|
||||
itemhelp:heapsortHGL.help
|
||||
|
||||
arg:PRIM_KEY
|
||||
argtype:choice_list
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Primary sort field?
|
||||
|
||||
arg:SEC_KEY
|
||||
argtype:choice_list
|
||||
argchoice:None:
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Secondary sort field?
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:extract
|
||||
itemmethod:(gde in1;/bin/rm -f in1)&
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
menu:DNA/RNA
|
||||
|
||||
item:Translate...
|
||||
itemmethod:Translate -tbl $TBL -frame $FRAME -min_frame $MNFRM $LTRCODE in1 > out1
|
||||
|
||||
arg:FRAME
|
||||
argtype:chooser
|
||||
arglabel:Which reading frame?
|
||||
argchoice:First:1
|
||||
argchoice:Second:2
|
||||
argchoice:Third:3
|
||||
argchoice:All six:6
|
||||
|
||||
arg:MNFRM
|
||||
arglabel:Minimum length of AA sequence to translate?
|
||||
argtype:slider
|
||||
argmin:0
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
arg:LTRCODE
|
||||
argtype:chooser
|
||||
arglabel:Translate to:
|
||||
argchoice:Single letter codes:
|
||||
argchoice:Triple letter codes:-3
|
||||
|
||||
arg:TBL
|
||||
arglabel:Codon table?
|
||||
argtype:chooser
|
||||
argchoice:universal:1
|
||||
argchoice:mycoplasma:2
|
||||
argchoice:yeast:3
|
||||
argchoice:Vert. mito.:4
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
item:Dot plot
|
||||
itemmethod:(DotPlotTool in1 ; /bin/rm -f in1)&
|
||||
itemhelp:DotPlotTool.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:Clustal alignment
|
||||
itemmethod:(tr '%#' '>'<in1>clus_in;clustalw -quicktree -output=PIR -infile=clus_in -align > in1.rpt;sed "s/>DL;/#/g" < clus_in.pir> in1;$REPORT gde in1;/bin/rm -f clus_in* in1* )&
|
||||
|
||||
itemhelp:clustal_help
|
||||
|
||||
arg:KTUP
|
||||
argtype:slider
|
||||
arglabel:K-tuple size for pairwise search
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:2
|
||||
|
||||
arg:WIN
|
||||
argtype:slider
|
||||
arglabel:Window size
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:4
|
||||
|
||||
arg:Trans
|
||||
argtype:chooser
|
||||
arglabel:Transitions weighted?
|
||||
argchoice:Yes:/TRANSIT
|
||||
argchoice:No:
|
||||
|
||||
arg:FIXED
|
||||
argtype:slider
|
||||
arglabel:Fixed gap penalty
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:FLOAT
|
||||
arglabel:Floating gap penalty
|
||||
argtype:slider
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:REPORT
|
||||
argtype:chooser
|
||||
arglabel:View assembly report?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit in1.rpt&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Variable Positions
|
||||
itemmethod:varpos $REV < in1 > out1
|
||||
|
||||
arg:REV
|
||||
argtype:chooser
|
||||
arglabel:Highlight (darken)
|
||||
argchoice:Conserved positions:
|
||||
argchoice:variable positions:-rev
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Phrap
|
||||
itemmethod:readseq in1 -a -f8 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp; phrap OUTPUTFILE; readseq -a -f2 OUTPUTFILE.contigs > out1;/bin/rm -rf OUTPUT*;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
|
||||
out:out1
|
||||
outformat:genbank
|
||||
|
||||
item:SNAP
|
||||
itemmethod: cat in1 > infile;/usr/local/bio/GDE/bin/fasta2snap.pl > outfile; /usr/bin/X11/xterm -e /home/tulio/bio/SNAP/SNAP.pl outfile; kedit backg*; kedit summ*; sheeltool /home/tulio/bio/codons-xyplot.pl codons.*; kedit codon.data; /bin/rm -rf back* codon* summ*;
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
out:out1
|
||||
outformat:text
|
||||
|
||||
|
||||
|
||||
|
||||
item:Find all <meta-f>
|
||||
itemmethod:findall $SEARCH $PRCNT $CASE $UT -match $MAT -mismatch $MIS < in1 > out1;
|
||||
itemhelp:findall.help
|
||||
itemmeta:f
|
||||
|
||||
arg:SEARCH
|
||||
argtype:text
|
||||
arglabel:Search String
|
||||
|
||||
arg:PRCNT
|
||||
argtype:slider
|
||||
arglabel:Percent mismatch
|
||||
argmin:0
|
||||
argmax:75
|
||||
argvalue:10
|
||||
|
||||
arg:CASE
|
||||
argtype:chooser
|
||||
arglabel:Case
|
||||
argchoice:Upper equals lower:
|
||||
argchoice:Upper not equal lower:-case
|
||||
|
||||
arg:UT
|
||||
argtype:chooser
|
||||
arglabel:U equal T?
|
||||
argchoice:Yes:-u=t
|
||||
argchoice:No:
|
||||
argvalue:0
|
||||
|
||||
arg:MAT
|
||||
arglabel:Match color
|
||||
argtype:choice_list
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:2
|
||||
|
||||
arg:MIS
|
||||
argtype:choice_list
|
||||
arglabel:Mismatch color
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:7
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Sequence Consensus
|
||||
itemmethod:(MakeCons in1 $METHOD $MASK > out1)
|
||||
itemhelp:MakeCons.help
|
||||
|
||||
arg:METHOD
|
||||
arglabel:Method
|
||||
argtype:chooser
|
||||
argchoice:IUPAC:-iupac
|
||||
argchoice:Majority:-majority $PERCENT
|
||||
|
||||
arg:MASK
|
||||
argtype:chooser
|
||||
arglabel:Create a new:
|
||||
argchoice:Sequence:
|
||||
argchoice:Selection Mask: | Consto01mask
|
||||
|
||||
arg:PERCENT
|
||||
arglabel:Minimum Percentage for Majority
|
||||
argtype:slider
|
||||
argmin:50
|
||||
argmax:100
|
||||
argvalue:75
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
|
||||
#Menu for DNA/RNA
|
||||
|
||||
item:blastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastn -d $BLASTDBDNA -i in1.f -W $WORDLEN -M $MATCH > in1.tmp; kedit in1.tmp; rm in1*)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV-1 Seq. Db.:/usr/local/bio/db/DNA/hiv17-08-01.fasta2
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:MATCH
|
||||
argtype:slider
|
||||
arglabel:Match Score
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:5
|
||||
|
||||
arg:MMSCORE
|
||||
argtype:slider
|
||||
arglabel:Mismatch Score
|
||||
argmin:-10
|
||||
argmax:-1
|
||||
argvalue:-5
|
||||
|
||||
item:blastx
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastx -d $BLASTDB -i in1.f -W $WORDLEN -M PAM30 > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1*)&
|
||||
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:genpept:$GDE_HELP_DIR/BLAST/genpept
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
item:------------------------
|
||||
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p F -o T; /usr/local/bio/GDE/installBLASTDB.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: enter the file name
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: enter the name of the DB
|
||||
|
||||
menu:seq. datasets
|
||||
|
||||
item:-------------
|
||||
item:add a new dataset
|
||||
itemmethod:cp $file /usr/local/biotools/GDE/db/ ;xterm -e /usr/local/biotools/GDE/newDATASET.pl $name $file
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the dataset name ?
|
||||
|
||||
arg:file
|
||||
argtype:text
|
||||
arglabel:Enter the dataset file (in FASTA) ?
|
||||
|
||||
|
||||
#Menu for Protein
|
||||
menu:protein
|
||||
item:blastp
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM30; /usr/local/bio/blast/blastall -p blastp -d $BLASTDB -i in1.f -W $WORDLEN -M $Matrix > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1* PAM30)&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
|
||||
arg:Matrix
|
||||
barglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
item:tblastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM??? .; tblastn $BLASTDB in1.f W=$WORDLEN M=$Matrix C=$CODE > in1.tmp; kedit in1.tmp; rm in1* PAM???)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:genbank:$GDE_HELP_DIR/BLAST/genbank
|
||||
argchoice:genbank update:$GDE_HELP_DIR/BLAST/genupdate
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
|
||||
item:Map View
|
||||
itemmethod:(mapview in1 -pbl $PBL -npp $NPP; /bin/rm -f in1)&
|
||||
itemhelp:mapview.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
arg:PBL
|
||||
arglabel:Pixel Between Lines
|
||||
argtype:slider
|
||||
argvalue:10
|
||||
argmin:1
|
||||
argmax:15
|
||||
|
||||
arg:NPP
|
||||
arglabel:Nucleotides Per Pixel
|
||||
argtype:slider
|
||||
argvalue:1
|
||||
argmin:1
|
||||
argmax:20
|
||||
|
||||
arg:LWIDTH
|
||||
arglabel:Line Thickness
|
||||
argtype:slider
|
||||
argvalue:2
|
||||
argmin:1
|
||||
argmax:5
|
||||
|
||||
item:--------------------------
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p T -o T; /usr/local/bio/GDE/installBLASTDBPROT.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: Enter the file (in FASTA)
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: Enter the name of the DB
|
||||
|
||||
menu:Phylogeny
|
||||
|
||||
|
||||
item:Phylip help
|
||||
itemmethod:(netscape /usr/local/bio/phylip/doc/$FILE)&
|
||||
|
||||
arg:FILE
|
||||
argtype:choice_list
|
||||
arglabel:Which program?
|
||||
argchoice:clique:clique.html
|
||||
argchoice:consense:consense.html
|
||||
argchoice:contchar:contchar.html
|
||||
argchoice:contml:contml.html
|
||||
argchoice:contrast:contrast.html
|
||||
argchoice:discrete:discrete.html
|
||||
argchoice:distance:distance.html
|
||||
argchoice:dnaboot:dnaboot.html
|
||||
argchoice:dnacomp:dnacomp.html
|
||||
argchoice:dnadist:dnadist.html
|
||||
argchoice:dnainvar:dnainvar.html
|
||||
argchoice:dnaml:dnaml.html
|
||||
argchoice:dnamlk:dnamlk.html
|
||||
argchoice:dnamove:dnamove.html
|
||||
argchoice:dnapars:dnapars.html
|
||||
argchoice:dnapenny:dnapenny.html
|
||||
argchoice:dollop:dollop.html
|
||||
argchoice:dolmove:dolmove.html
|
||||
argchoice:dolpenny:dolpenny.html
|
||||
argchoice:draw:draw.html
|
||||
argchoice:drawgram:drawgram.html
|
||||
argchoice:drawtree:drawtree.html
|
||||
argchoice:factor:factor.html
|
||||
argchoice:fitch:fitch.html
|
||||
argchoice:gendist:gendist.html
|
||||
argchoice:kitsch:kitsch.html
|
||||
argchoice:main:main.html
|
||||
argchoice:mix:mix.html
|
||||
argchoice:move:move.html
|
||||
argchoice:neighbor:neighbor.html
|
||||
argchoice:penny:penny.html
|
||||
argchoice:protpars:protpars.html
|
||||
argchoice:read.me.general:read.me.general.html
|
||||
argchoice:restml:restml.html
|
||||
argchoice:seqboot:seqboot.html
|
||||
argchoice:sequence:sequence.html
|
||||
|
||||
|
||||
|
||||
item:Phylip 3.5
|
||||
itemmethod:(rm -f outfile ; readseq -a -f12 in1 | sed "s/ YF//1" > infile;$PREEDIT /usr/bin/X11/xterm -e $PROGRAM;kedit outfile; treetool outtree; rm in1 )&
|
||||
|
||||
arg:PROGRAM
|
||||
argtype:choice_list
|
||||
arglabel:Which program to run?
|
||||
argchoice:DNAPARS:dnapars
|
||||
argchoice:DNABOOT:dnaboot
|
||||
argchoice:DNAPENNY:dnapenny
|
||||
argchoice:DNAML:dnaml
|
||||
argchoice:DNAMLK:dnamlk
|
||||
argchoice:DNACOMP:dnacomp
|
||||
argchoice:DNAMOVE:dnamove
|
||||
argchoice:DNAINVAR:dnainvar
|
||||
argchoice:PROTPARS:protpars
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
item:Phylip DNA Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 | sed "s/ YF//1" > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e dnadist;mv -f outfile infile; cp infile $DNA; /usr/bin/X11/xterm -e neighbor; cp outtree intree; cp outfile $NEI; $PROGRAM kedit outfile; cp outtree $TREE; treetool outtree; /bin/rm -f in1 infile outfile intree outtree)&
|
||||
|
||||
arg:EXPLAIN
|
||||
argtype:text
|
||||
arglabel:To produce a bootstraped tree choose DNADIST+NEIGHOR+CONSENSE
|
||||
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:DNADIST+NEIGHBOR:
|
||||
argchoice:DNADIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Run ?
|
||||
argtype:chooser
|
||||
argchoice:Run without Bootstrap:
|
||||
argchoice:Run with Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
|
||||
arg:DNA
|
||||
argtype:text
|
||||
arglabel:Name of DNADIST outfile?
|
||||
|
||||
arg:NEI
|
||||
argtype:text
|
||||
arglabel:Name of NEIGHBOR outfile?
|
||||
|
||||
arg:TREE
|
||||
argtype:text
|
||||
arglabel:Name of TREEFILE ?
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
item:Phylip PROTEIN Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e protdist;mv -f outfile infile; /usr/bin/X11/xterm -e neighbor; cp outtree intree; $PROGRAM kedit outfile;treetool outtree;/bin/rm -f in1 infile outfile)&
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:PROTDIST+NEIGHBOR:
|
||||
argchoice:PROTDIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
argchoice:No Bootstrap:
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
menu:On-Line Res.
|
||||
|
||||
item:GDE for Linux resources at Bioafrica.net
|
||||
itemmethod:netscape http://www.bioafrica.net &
|
||||
|
||||
item:-------------------------
|
||||
item:add a new website
|
||||
itemmethod:xterm -e /usr/local/biotools/GDE/newURL.pl $name $url
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the site name
|
||||
|
||||
arg:url
|
||||
argtype:text
|
||||
arglabel:Enter the URL (including http://)
|
761
CORE/.GDEmenusthat~
Normal file
761
CORE/.GDEmenusthat~
Normal file
|
@ -0,0 +1,761 @@
|
|||
1menu:File
|
||||
|
||||
item:test cmask output
|
||||
itemmethod: kedit in1
|
||||
|
||||
in:in1
|
||||
informat:colormask
|
||||
|
||||
item:New sequence <meta N>
|
||||
itemmethod:echo "$Type$Name" > out1
|
||||
itemmeta:n
|
||||
itemhelp:new_sequence.help
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:New Sequence name?
|
||||
argtext:New
|
||||
|
||||
arg:Type
|
||||
argtype:choice_list
|
||||
arglabel:Type?
|
||||
argchoice:DNA/RNA:#
|
||||
argchoice:Amino Acid:%
|
||||
argchoice:Text:\"
|
||||
argchoice:Mask:@
|
||||
|
||||
out:out1
|
||||
outformat:flat
|
||||
|
||||
item:Import Foreign Format
|
||||
itemmethod:cp $INPUTFILE OUTFILE.tmp;readseq OUTFILE.tmp -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:INPUTFILE
|
||||
argtype:text
|
||||
arglabel:Name of foreign file?
|
||||
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:Export Foreign Format
|
||||
itemmethod:readseq INPUTFILE -a -f$FORMAT > $OUTPUTFILE
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:FORMAT
|
||||
argtype:choice_list
|
||||
argchoice:FASTA:8
|
||||
argchoice:NEXUS:17
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:IG/Stanford:1
|
||||
argchoice:GenBank:2
|
||||
argchoice:NBRF:3
|
||||
argchoice:EMBL:4
|
||||
argchoice:GCG:5
|
||||
argchoice:DNA Strider:6
|
||||
argchoice:Fitch:7
|
||||
argchoice:Pearson:8
|
||||
argchoice:Zuker:9
|
||||
argchoice:Olsen:10
|
||||
argchoice:Phylip v3.2:11
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:Plain text:13
|
||||
|
||||
arg:OUTPUTFILE
|
||||
argtype:text
|
||||
arglabel:Save as?
|
||||
|
||||
in:INPUTFILE
|
||||
informat:genbank
|
||||
|
||||
|
||||
item:Save Selection
|
||||
itemmethod: cat $SAVE_FUNC > $Name
|
||||
itemhelp:save_selection.help
|
||||
|
||||
arg:SAVE_FUNC
|
||||
argtype:chooser
|
||||
arglabel:File format
|
||||
argchoice:Flat:in1
|
||||
argchoice:Genbank:in2
|
||||
argchoice:GDE/HGL:in3
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:File name?
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
in:in2
|
||||
informat:genbank
|
||||
|
||||
in:in3
|
||||
informat:gde
|
||||
|
||||
item:Print Selection
|
||||
itemmethod:(PrintStrat in1 $SCALE > in1.tmp; $CMD -P$PRINTER in1.tmp; /bin/rm -f in1 in1.tmp)&
|
||||
itemhelp:print_alignment.help
|
||||
|
||||
arg:SCALE
|
||||
argtype:slider
|
||||
arglabel:Reduce printout by?
|
||||
argmin:1
|
||||
argmax:20
|
||||
argvalue:1
|
||||
|
||||
arg:CMD
|
||||
argtype:chooser
|
||||
argchoice:Lpr:lpr
|
||||
argchoice:Enscript Gaudy:enscript -G -q
|
||||
argchoice:Enscript Two column:enscript -2rG
|
||||
|
||||
arg:PRINTER
|
||||
argtype:text
|
||||
arglabel:Which printer?
|
||||
argtext:lp
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
menu:Edit
|
||||
|
||||
item:Sort
|
||||
itemmethod:(heapsortHGL in1 $PRIM_KEY $SEC_KEY > in1.tmp ; gde in1.tmp;/bin/rm -f in1*)&
|
||||
itemhelp:heapsortHGL.help
|
||||
|
||||
arg:PRIM_KEY
|
||||
argtype:choice_list
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Primary sort field?
|
||||
|
||||
arg:SEC_KEY
|
||||
argtype:choice_list
|
||||
argchoice:None:
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Secondary sort field?
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:extract
|
||||
itemmethod:(gde in1;/bin/rm -f in1)&
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
menu:DNA/RNA
|
||||
|
||||
item:Translate...
|
||||
itemmethod:Translate -tbl $TBL -frame $FRAME -min_frame $MNFRM $LTRCODE in1 > out1
|
||||
|
||||
arg:FRAME
|
||||
argtype:chooser
|
||||
arglabel:Which reading frame?
|
||||
argchoice:First:1
|
||||
argchoice:Second:2
|
||||
argchoice:Third:3
|
||||
argchoice:All six:6
|
||||
|
||||
arg:MNFRM
|
||||
arglabel:Minimum length of AA sequence to translate?
|
||||
argtype:slider
|
||||
argmin:0
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
arg:LTRCODE
|
||||
argtype:chooser
|
||||
arglabel:Translate to:
|
||||
argchoice:Single letter codes:
|
||||
argchoice:Triple letter codes:-3
|
||||
|
||||
arg:TBL
|
||||
arglabel:Codon table?
|
||||
argtype:chooser
|
||||
argchoice:universal:1
|
||||
argchoice:mycoplasma:2
|
||||
argchoice:yeast:3
|
||||
argchoice:Vert. mito.:4
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
item:Dot plot
|
||||
itemmethod:(DotPlotTool in1 ; /bin/rm -f in1)&
|
||||
itemhelp:DotPlotTool.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:Clustal alignment
|
||||
itemmethod:(tr '%#' '>'<in1>clus_in;clustalw -quicktree -output=PIR -infile=clus_in -align > in1.rpt;sed "s/>DL;/#/g" < clus_in.pir> in1;$REPORT gde in1;/bin/rm -f clus_in* in1* )&
|
||||
|
||||
itemhelp:clustal_help
|
||||
|
||||
arg:KTUP
|
||||
argtype:slider
|
||||
arglabel:K-tuple size for pairwise search
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:2
|
||||
|
||||
arg:WIN
|
||||
argtype:slider
|
||||
arglabel:Window size
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:4
|
||||
|
||||
arg:Trans
|
||||
argtype:chooser
|
||||
arglabel:Transitions weighted?
|
||||
argchoice:Yes:/TRANSIT
|
||||
argchoice:No:
|
||||
|
||||
arg:FIXED
|
||||
argtype:slider
|
||||
arglabel:Fixed gap penalty
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:FLOAT
|
||||
arglabel:Floating gap penalty
|
||||
argtype:slider
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:REPORT
|
||||
argtype:chooser
|
||||
arglabel:View assembly report?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit in1.rpt&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Variable Positions
|
||||
itemmethod:varpos $REV < in1 > out1
|
||||
|
||||
arg:REV
|
||||
argtype:chooser
|
||||
arglabel:Highlight (darken)
|
||||
argchoice:Conserved positions:
|
||||
argchoice:variable positions:-rev
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Phrap
|
||||
itemmethod:readseq in1 -a -f8 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp; phrap OUTPUTFILE; readseq -a -f2 OUTPUTFILE.contigs > out1;/bin/rm -rf OUTPUT*;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
|
||||
out:out1
|
||||
outformat:genbank
|
||||
|
||||
item:SNAP
|
||||
itemmethod: cat in1 > infile;/usr/local/bio/GDE/bin/fasta2snap.pl > outfile; /usr/bin/X11/xterm -e /home/tulio/bio/SNAP/SNAP.pl outfile; kedit backg*; kedit summ*; sheeltool /home/tulio/bio/codons-xyplot.pl codons.*; kedit codon.data; /bin/rm -rf back* codon* summ*;
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
out:out1
|
||||
outformat:text
|
||||
|
||||
|
||||
|
||||
|
||||
item:Find all <meta-f>
|
||||
itemmethod:findall $SEARCH $PRCNT $CASE $UT -match $MAT -mismatch $MIS < in1 > out1;
|
||||
itemhelp:findall.help
|
||||
itemmeta:f
|
||||
|
||||
arg:SEARCH
|
||||
argtype:text
|
||||
arglabel:Search String
|
||||
|
||||
arg:PRCNT
|
||||
argtype:slider
|
||||
arglabel:Percent mismatch
|
||||
argmin:0
|
||||
argmax:75
|
||||
argvalue:10
|
||||
|
||||
arg:CASE
|
||||
argtype:chooser
|
||||
arglabel:Case
|
||||
argchoice:Upper equals lower:
|
||||
argchoice:Upper not equal lower:-case
|
||||
|
||||
arg:UT
|
||||
argtype:chooser
|
||||
arglabel:U equal T?
|
||||
argchoice:Yes:-u=t
|
||||
argchoice:No:
|
||||
argvalue:0
|
||||
|
||||
arg:MAT
|
||||
arglabel:Match color
|
||||
argtype:choice_list
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:2
|
||||
|
||||
arg:MIS
|
||||
argtype:choice_list
|
||||
arglabel:Mismatch color
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:7
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Sequence Consensus
|
||||
itemmethod:(MakeCons in1 $METHOD $MASK > out1)
|
||||
itemhelp:MakeCons.help
|
||||
|
||||
arg:METHOD
|
||||
arglabel:Method
|
||||
argtype:chooser
|
||||
argchoice:IUPAC:-iupac
|
||||
argchoice:Majority:-majority $PERCENT
|
||||
|
||||
arg:MASK
|
||||
argtype:chooser
|
||||
arglabel:Create a new:
|
||||
argchoice:Sequence:
|
||||
argchoice:Selection Mask: | Consto01mask
|
||||
|
||||
arg:PERCENT
|
||||
arglabel:Minimum Percentage for Majority
|
||||
argtype:slider
|
||||
argmin:50
|
||||
argmax:100
|
||||
argvalue:75
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
|
||||
#Menu for DNA/RNA
|
||||
|
||||
item:blastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastn -d $BLASTDBDNA -i in1.f -W $WORDLEN -M $MATCH > in1.tmp; kedit in1.tmp; rm in1*)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV-1 Seq. Db.:/usr/local/bio/db/DNA/hiv17-08-01.fasta2
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:MATCH
|
||||
argtype:slider
|
||||
arglabel:Match Score
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:5
|
||||
|
||||
arg:MMSCORE
|
||||
argtype:slider
|
||||
arglabel:Mismatch Score
|
||||
argmin:-10
|
||||
argmax:-1
|
||||
argvalue:-5
|
||||
|
||||
item:blastx
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/bio/blast/blastall -p blastx -d $BLASTDB -i in1.f -W $WORDLEN -M PAM30 > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1*)&
|
||||
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:genpept:$GDE_HELP_DIR/BLAST/genpept
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
item:------------------------
|
||||
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p F -o T; /usr/local/bio/GDE/installBLASTDB.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: enter the file name
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: enter the name of the DB
|
||||
|
||||
menu:seq. datasets
|
||||
|
||||
item:-------------
|
||||
item:add a new dataset
|
||||
itemmethod:cp $file /usr/local/bio/GDE/db/ ;xterm -e /usr/local/bio/GDE/newDATASET.pl $name $file
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the dataset name ?
|
||||
|
||||
arg:file
|
||||
argtype:text
|
||||
arglabel:Enter the dataset file (in FASTA) ?
|
||||
|
||||
|
||||
#Menu for Protein
|
||||
menu:protein
|
||||
item:blastp
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM30; /usr/local/bio/blast/blastall -p blastp -d $BLASTDB -i in1.f -W $WORDLEN -M $Matrix > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1* PAM30)&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/bio/db/hiv17-08-01.PROT.fasta
|
||||
|
||||
arg:Matrix
|
||||
barglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
item:tblastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/bio/db/PAM??? .; tblastn $BLASTDB in1.f W=$WORDLEN M=$Matrix C=$CODE > in1.tmp; kedit in1.tmp; rm in1* PAM???)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:genbank:$GDE_HELP_DIR/BLAST/genbank
|
||||
argchoice:genbank update:$GDE_HELP_DIR/BLAST/genupdate
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
|
||||
item:Map View
|
||||
itemmethod:(mapview in1 -pbl $PBL -npp $NPP; /bin/rm -f in1)&
|
||||
itemhelp:mapview.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
arg:PBL
|
||||
arglabel:Pixel Between Lines
|
||||
argtype:slider
|
||||
argvalue:10
|
||||
argmin:1
|
||||
argmax:15
|
||||
|
||||
arg:NPP
|
||||
arglabel:Nucleotides Per Pixel
|
||||
argtype:slider
|
||||
argvalue:1
|
||||
argmin:1
|
||||
argmax:20
|
||||
|
||||
arg:LWIDTH
|
||||
arglabel:Line Thickness
|
||||
argtype:slider
|
||||
argvalue:2
|
||||
argmin:1
|
||||
argmax:5
|
||||
|
||||
item:--------------------------
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p T -o T; /usr/local/bio/GDE/installBLASTDBPROT.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: Enter the file (in FASTA)
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: Enter the name of the DB
|
||||
|
||||
menu:Phylogeny
|
||||
|
||||
|
||||
item:Phylip help
|
||||
itemmethod:(netscape /usr/local/bio/phylip/doc/$FILE)&
|
||||
|
||||
arg:FILE
|
||||
argtype:choice_list
|
||||
arglabel:Which program?
|
||||
argchoice:clique:clique.html
|
||||
argchoice:consense:consense.html
|
||||
argchoice:contchar:contchar.html
|
||||
argchoice:contml:contml.html
|
||||
argchoice:contrast:contrast.html
|
||||
argchoice:discrete:discrete.html
|
||||
argchoice:distance:distance.html
|
||||
argchoice:dnaboot:dnaboot.html
|
||||
argchoice:dnacomp:dnacomp.html
|
||||
argchoice:dnadist:dnadist.html
|
||||
argchoice:dnainvar:dnainvar.html
|
||||
argchoice:dnaml:dnaml.html
|
||||
argchoice:dnamlk:dnamlk.html
|
||||
argchoice:dnamove:dnamove.html
|
||||
argchoice:dnapars:dnapars.html
|
||||
argchoice:dnapenny:dnapenny.html
|
||||
argchoice:dollop:dollop.html
|
||||
argchoice:dolmove:dolmove.html
|
||||
argchoice:dolpenny:dolpenny.html
|
||||
argchoice:draw:draw.html
|
||||
argchoice:drawgram:drawgram.html
|
||||
argchoice:drawtree:drawtree.html
|
||||
argchoice:factor:factor.html
|
||||
argchoice:fitch:fitch.html
|
||||
argchoice:gendist:gendist.html
|
||||
argchoice:kitsch:kitsch.html
|
||||
argchoice:main:main.html
|
||||
argchoice:mix:mix.html
|
||||
argchoice:move:move.html
|
||||
argchoice:neighbor:neighbor.html
|
||||
argchoice:penny:penny.html
|
||||
argchoice:protpars:protpars.html
|
||||
argchoice:read.me.general:read.me.general.html
|
||||
argchoice:restml:restml.html
|
||||
argchoice:seqboot:seqboot.html
|
||||
argchoice:sequence:sequence.html
|
||||
|
||||
|
||||
|
||||
item:Phylip 3.5
|
||||
itemmethod:(rm -f outfile ; readseq -a -f12 in1 | sed "s/ YF//1" > infile;$PREEDIT /usr/bin/X11/xterm -e $PROGRAM;kedit outfile; treetool outtree; rm in1 )&
|
||||
|
||||
arg:PROGRAM
|
||||
argtype:choice_list
|
||||
arglabel:Which program to run?
|
||||
argchoice:DNAPARS:dnapars
|
||||
argchoice:DNABOOT:dnaboot
|
||||
argchoice:DNAPENNY:dnapenny
|
||||
argchoice:DNAML:dnaml
|
||||
argchoice:DNAMLK:dnamlk
|
||||
argchoice:DNACOMP:dnacomp
|
||||
argchoice:DNAMOVE:dnamove
|
||||
argchoice:DNAINVAR:dnainvar
|
||||
argchoice:PROTPARS:protpars
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
item:Phylip DNA Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 | sed "s/ YF//1" > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e dnadist;mv -f outfile infile; cp infile $DNA; /usr/bin/X11/xterm -e neighbor; cp outtree intree; cp outfile $NEI; $PROGRAM kedit outfile; cp outtree $TREE; treetool outtree; /bin/rm -f in1 infile outfile intree outtree)&
|
||||
|
||||
arg:EXPLAIN
|
||||
argtype:text
|
||||
arglabel:To produce a bootstraped tree choose DNADIST+NEIGHOR+CONSENSE
|
||||
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:DNADIST+NEIGHBOR:
|
||||
argchoice:DNADIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Run ?
|
||||
argtype:chooser
|
||||
argchoice:Run without Bootstrap:
|
||||
argchoice:Run with Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
|
||||
arg:DNA
|
||||
argtype:text
|
||||
arglabel:Name of DNADIST outfile?
|
||||
|
||||
arg:NEI
|
||||
argtype:text
|
||||
arglabel:Name of NEIGHBOR outfile?
|
||||
|
||||
arg:TREE
|
||||
argtype:text
|
||||
arglabel:Name of TREEFILE ?
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
item:Phylip PROTEIN Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e protdist;mv -f outfile infile; /usr/bin/X11/xterm -e neighbor; cp outtree intree; $PROGRAM kedit outfile;treetool outtree;/bin/rm -f in1 infile outfile)&
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:PROTDIST+NEIGHBOR:
|
||||
argchoice:PROTDIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
argchoice:No Bootstrap:
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
menu:On-Line Res.
|
||||
|
||||
item:GDE for Linux resources at Bioafrica.net
|
||||
itemmethod:netscape http://www.bioafrica.net &
|
||||
|
||||
item:-------------------------
|
||||
item:add a new website
|
||||
itemmethod:xterm -e /usr/local/bio/GDE/newURL.pl $name $url
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the site name
|
||||
|
||||
arg:url
|
||||
argtype:text
|
||||
arglabel:Enter the URL (including http://)
|
791
CORE/.GDEmenus~
Normal file
791
CORE/.GDEmenus~
Normal file
|
@ -0,0 +1,791 @@
|
|||
1menu:File
|
||||
|
||||
item:test cmask output
|
||||
itemmethod: kedit in1
|
||||
|
||||
in:in1
|
||||
informat:colormask
|
||||
|
||||
item:New sequence <meta N>
|
||||
itemmethod:echo "$Type$Name" > out1
|
||||
itemmeta:n
|
||||
itemhelp:new_sequence.help
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:New Sequence name?
|
||||
argtext:New
|
||||
|
||||
arg:Type
|
||||
argtype:choice_list
|
||||
arglabel:Type?
|
||||
argchoice:DNA/RNA:#
|
||||
argchoice:Amino Acid:%
|
||||
argchoice:Text:\"
|
||||
argchoice:Mask:@
|
||||
|
||||
out:out1
|
||||
outformat:flat
|
||||
|
||||
item:Import Foreign Format
|
||||
itemmethod:cp $INPUTFILE OUTFILE.tmp;readseq OUTFILE.tmp -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:INPUTFILE
|
||||
argtype:text
|
||||
arglabel:Name of foreign file?
|
||||
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:Export Foreign Format
|
||||
itemmethod:readseq INPUTFILE -a -f$FORMAT > $OUTPUTFILE
|
||||
itemhelp:readseq.help
|
||||
|
||||
arg:FORMAT
|
||||
argtype:choice_list
|
||||
argchoice:FASTA:8
|
||||
argchoice:NEXUS:17
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:IG/Stanford:1
|
||||
argchoice:GenBank:2
|
||||
argchoice:NBRF:3
|
||||
argchoice:EMBL:4
|
||||
argchoice:GCG:5
|
||||
argchoice:DNA Strider:6
|
||||
argchoice:Fitch:7
|
||||
argchoice:Pearson:8
|
||||
argchoice:Zuker:9
|
||||
argchoice:Olsen:10
|
||||
argchoice:Phylip v3.2:11
|
||||
argchoice:Phylip v3.3:12
|
||||
argchoice:Plain text:13
|
||||
|
||||
arg:OUTPUTFILE
|
||||
argtype:text
|
||||
arglabel:Save as?
|
||||
|
||||
in:INPUTFILE
|
||||
informat:genbank
|
||||
|
||||
|
||||
item:Save Selection
|
||||
itemmethod: cat $SAVE_FUNC > $Name
|
||||
itemhelp:save_selection.help
|
||||
|
||||
arg:SAVE_FUNC
|
||||
argtype:chooser
|
||||
arglabel:File format
|
||||
argchoice:Flat:in1
|
||||
argchoice:Genbank:in2
|
||||
argchoice:GDE/HGL:in3
|
||||
|
||||
arg:Name
|
||||
argtype:text
|
||||
arglabel:File name?
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
in:in2
|
||||
informat:genbank
|
||||
|
||||
in:in3
|
||||
informat:gde
|
||||
|
||||
item:Print Selection
|
||||
itemmethod:(PrintStrat in1 $SCALE > in1.tmp; $CMD -P$PRINTER in1.tmp; /bin/rm -f in1 in1.tmp)&
|
||||
itemhelp:print_alignment.help
|
||||
|
||||
arg:SCALE
|
||||
argtype:slider
|
||||
arglabel:Reduce printout by?
|
||||
argmin:1
|
||||
argmax:20
|
||||
argvalue:1
|
||||
|
||||
arg:CMD
|
||||
argtype:chooser
|
||||
argchoice:Lpr:lpr
|
||||
argchoice:Enscript Gaudy:enscript -G -q
|
||||
argchoice:Enscript Two column:enscript -2rG
|
||||
|
||||
arg:PRINTER
|
||||
argtype:text
|
||||
arglabel:Which printer?
|
||||
argtext:lp
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
menu:Edit
|
||||
|
||||
item:Sort
|
||||
itemmethod:(heapsortHGL in1 $PRIM_KEY $SEC_KEY > in1.tmp ; gde in1.tmp;/bin/rm -f in1*)&
|
||||
itemhelp:heapsortHGL.help
|
||||
|
||||
arg:PRIM_KEY
|
||||
argtype:choice_list
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Primary sort field?
|
||||
|
||||
arg:SEC_KEY
|
||||
argtype:choice_list
|
||||
argchoice:None:
|
||||
argchoice:Group:group-ID
|
||||
argchoice:type:type
|
||||
argchoice:name:name
|
||||
argchoice:Sequence ID:sequence-ID
|
||||
argchoice:creator:creator
|
||||
argchoice:offset:offset
|
||||
arglabel:Secondary sort field?
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:extract
|
||||
itemmethod:(gde in1;/bin/rm -f in1)&
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
menu:DNA/RNA
|
||||
|
||||
item:Translate...
|
||||
itemmethod:Translate -tbl $TBL -frame $FRAME -min_frame $MNFRM $LTRCODE in1 > out1
|
||||
|
||||
arg:FRAME
|
||||
argtype:chooser
|
||||
arglabel:Which reading frame?
|
||||
argchoice:First:1
|
||||
argchoice:Second:2
|
||||
argchoice:Third:3
|
||||
argchoice:All six:6
|
||||
|
||||
arg:MNFRM
|
||||
arglabel:Minimum length of AA sequence to translate?
|
||||
argtype:slider
|
||||
argmin:0
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
arg:LTRCODE
|
||||
argtype:chooser
|
||||
arglabel:Translate to:
|
||||
argchoice:Single letter codes:
|
||||
argchoice:Triple letter codes:-3
|
||||
|
||||
arg:TBL
|
||||
arglabel:Codon table?
|
||||
argtype:chooser
|
||||
argchoice:universal:1
|
||||
argchoice:mycoplasma:2
|
||||
argchoice:yeast:3
|
||||
argchoice:Vert. mito.:4
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
item:Dot plot
|
||||
itemmethod:(DotPlotTool in1 ; /bin/rm -f in1)&
|
||||
itemhelp:DotPlotTool.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
item:Clustal alignment
|
||||
itemmethod:(tr '%#' '>'<in1>clus_in;clustalw -quicktree -output=PIR -infile=clus_in -align > in1.rpt;sed "s/>DL;/#/g" < clus_in.pir> in1;$REPORT gde in1;/bin/rm -f clus_in* in1* )&
|
||||
|
||||
itemhelp:clustal_help
|
||||
|
||||
arg:KTUP
|
||||
argtype:slider
|
||||
arglabel:K-tuple size for pairwise search
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:2
|
||||
|
||||
arg:WIN
|
||||
argtype:slider
|
||||
arglabel:Window size
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:4
|
||||
|
||||
arg:Trans
|
||||
argtype:chooser
|
||||
arglabel:Transitions weighted?
|
||||
argchoice:Yes:/TRANSIT
|
||||
argchoice:No:
|
||||
|
||||
arg:FIXED
|
||||
argtype:slider
|
||||
arglabel:Fixed gap penalty
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:FLOAT
|
||||
arglabel:Floating gap penalty
|
||||
argtype:slider
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:10
|
||||
|
||||
arg:REPORT
|
||||
argtype:chooser
|
||||
arglabel:View assembly report?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit in1.rpt&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Variable Positions
|
||||
itemmethod:varpos $REV < in1 > out1
|
||||
|
||||
arg:REV
|
||||
argtype:chooser
|
||||
arglabel:Highlight (darken)
|
||||
argchoice:Conserved positions:
|
||||
argchoice:variable positions:-rev
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Phrap
|
||||
itemmethod:readseq in1 -a -f8 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp; phrap OUTPUTFILE; readseq -a -f2 OUTPUTFILE.contigs > out1;/bin/rm -rf OUTPUT*;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
|
||||
out:out1
|
||||
outformat:genbank
|
||||
|
||||
item:SNAP
|
||||
itemmethod: cat in1 > infile;/usr/local/biotools/GDE/bin/fasta2snap.pl > outfile; /usr/bin/X11/xterm -e /home/tulio/biotools/SNAP/SNAP.pl outfile; kedit backg*; kedit summ*; sheeltool /home/tulio/biotools/codons-xyplot.pl codons.*; kedit codon.data; /bin/rm -rf back* codon* summ*;
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
out:out1
|
||||
outformat:text
|
||||
|
||||
|
||||
|
||||
|
||||
item:Find all <meta-f>
|
||||
itemmethod:findall $SEARCH $PRCNT $CASE $UT -match $MAT -mismatch $MIS < in1 > out1;
|
||||
itemhelp:findall.help
|
||||
itemmeta:f
|
||||
|
||||
arg:SEARCH
|
||||
argtype:text
|
||||
arglabel:Search String
|
||||
|
||||
arg:PRCNT
|
||||
argtype:slider
|
||||
arglabel:Percent mismatch
|
||||
argmin:0
|
||||
argmax:75
|
||||
argvalue:10
|
||||
|
||||
arg:CASE
|
||||
argtype:chooser
|
||||
arglabel:Case
|
||||
argchoice:Upper equals lower:
|
||||
argchoice:Upper not equal lower:-case
|
||||
|
||||
arg:UT
|
||||
argtype:chooser
|
||||
arglabel:U equal T?
|
||||
argchoice:Yes:-u=t
|
||||
argchoice:No:
|
||||
argvalue:0
|
||||
|
||||
arg:MAT
|
||||
arglabel:Match color
|
||||
argtype:choice_list
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:2
|
||||
|
||||
arg:MIS
|
||||
argtype:choice_list
|
||||
arglabel:Mismatch color
|
||||
argchoice:yellow:1
|
||||
argchoice:violet:2
|
||||
argchoice:red:3
|
||||
argchoice:aqua:4
|
||||
argchoice:green:5
|
||||
argchoice:blue:6
|
||||
argchoice:grey:11
|
||||
argchoice:black:8
|
||||
argvalue:7
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
|
||||
out:out1
|
||||
outformat:colormask
|
||||
|
||||
item:Sequence Consensus
|
||||
itemmethod:(MakeCons in1 $METHOD $MASK > out1)
|
||||
itemhelp:MakeCons.help
|
||||
|
||||
arg:METHOD
|
||||
arglabel:Method
|
||||
argtype:chooser
|
||||
argchoice:IUPAC:-iupac
|
||||
argchoice:Majority:-majority $PERCENT
|
||||
|
||||
arg:MASK
|
||||
argtype:chooser
|
||||
arglabel:Create a new:
|
||||
argchoice:Sequence:
|
||||
argchoice:Selection Mask: | Consto01mask
|
||||
|
||||
arg:PERCENT
|
||||
arglabel:Minimum Percentage for Majority
|
||||
argtype:slider
|
||||
argmin:50
|
||||
argmax:100
|
||||
argvalue:75
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
|
||||
out:out1
|
||||
outformat:gde
|
||||
|
||||
|
||||
#Menu for DNA/RNA
|
||||
|
||||
item:blastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/biotools/blast/blastall -p blastn -d $BLASTDBDNA -i in1.f -W $WORDLEN -M $MATCH > in1.tmp; kedit in1.tmp; rm in1*)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV-1 Seq. Db.:/usr/local/biotools/db/DNA/hiv17-08-01.fasta2
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:MATCH
|
||||
argtype:slider
|
||||
arglabel:Match Score
|
||||
argmin:1
|
||||
argmax:10
|
||||
argvalue:5
|
||||
|
||||
arg:MMSCORE
|
||||
argtype:slider
|
||||
arglabel:Mismatch Score
|
||||
argmin:-10
|
||||
argmax:-1
|
||||
argvalue:-5
|
||||
|
||||
item:blastx
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; /usr/local/biotools/blast/blastall -p blastx -d $BLASTDB -i in1.f -W $WORDLEN -M PAM30 > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1*)&
|
||||
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBDNA
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/biotools/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:genpept:$GDE_HELP_DIR/BLAST/genpept
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
item:------------------------
|
||||
|
||||
item:Add a new DNA blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p F -o T; /usr/local/biotools/GDE/bin/installBLASTDB.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: enter the file name
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: enter the name of the DB
|
||||
|
||||
menu:seq. datasets
|
||||
item:tttt
|
||||
itemmethod:readseq /usr/local/biotools/GDE/db/ttttt -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:HIV1POLDNA.fasta
|
||||
itemmethod:readseq /usr/local/biotools/GDE/db/HIV1POLDNA.fasta -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:structure
|
||||
itemmethod:readseq /usr/local/biotools/GDE/db/structprot.fasta -a -f2 > OUTPUTFILE;/bin/rm -f OUTFILE.tmp
|
||||
out:OUTPUTFILE
|
||||
outformat:genbank
|
||||
|
||||
item:-------------
|
||||
item:add a new dataset
|
||||
itemmethod:mkdir db; cp $file db/ ;xterm -e /usr/local/biotools/GDE/newDATASET.pl $name $file
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the dataset name ?
|
||||
|
||||
arg:file
|
||||
argtype:text
|
||||
arglabel:Enter the dataset file (in FASTA) ?
|
||||
|
||||
|
||||
#Menu for Protein
|
||||
menu:protein
|
||||
item:blastp
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/biotools/db/PAM30; /usr/local/biotools/blast/blastall -p blastp -d $BLASTDBPROT -i in1.f -W $WORDLEN -M $Matrix > in1.tmp; /usr/openwin/bin/kedit in1.tmp; rm in1* PAM30)&
|
||||
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDBPROT
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:HIV Proteins:/usr/local/biotools/db/hiv17-08-01.PROT.fasta
|
||||
argchoice:ttttt:/usr/local/biotools/db/tttt
|
||||
argchoice:tytuiphn:/usr/local/biotools/db/yejhuh[9hp
|
||||
argchoice:yyyy:/usr/local/biotools/db/test
|
||||
|
||||
arg:Matrix
|
||||
barglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:1
|
||||
argmax:5
|
||||
argvalue:3
|
||||
|
||||
item:tblastn
|
||||
itemmethod:(sed "s/[#%]/>/" <in1 > in1.f; cp /usr/local/biotools/db/PAM??? .; tblastn $BLASTDB in1.f W=$WORDLEN M=$Matrix C=$CODE > in1.tmp; kedit in1.tmp; rm in1* PAM???)&
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
arg:BLASTDB
|
||||
argtype:choice_list
|
||||
arglabel:Which Database
|
||||
argchoice:genbank:$GDE_HELP_DIR/BLAST/genbank
|
||||
argchoice:genbank update:$GDE_HELP_DIR/BLAST/genupdate
|
||||
|
||||
arg:Matrix
|
||||
arglabel:Substitution Matrix:
|
||||
argtype:choice_list
|
||||
argchoice:PAM30:PAM30
|
||||
argchoice:PAM70:PAM70
|
||||
|
||||
arg:WORDLEN
|
||||
argtype:slider
|
||||
arglabel:Word Size
|
||||
argmin:4
|
||||
argmax:18
|
||||
argvalue:12
|
||||
|
||||
arg:CODE
|
||||
argtype:choice_list
|
||||
arglabel:Genetic Code
|
||||
argchoice:Standard or Universal:0
|
||||
argchoice:Vertebrate Mitochondrial:1
|
||||
argchoice:Yeast Mitochondrial:2
|
||||
argchoice:Mold Mitochondrial and Mycoplasma:3
|
||||
argchoice:Invertebrate Mitochondrial:4
|
||||
argchoice:Ciliate Macronuclear:5
|
||||
argchoice:Protozoan Mitochondrial:6
|
||||
argchoice:Plant Mitochondrial:7
|
||||
argchoice:Echinodermate Mitochondrial:8
|
||||
|
||||
|
||||
item:Map View
|
||||
itemmethod:(mapview in1 -pbl $PBL -npp $NPP; /bin/rm -f in1)&
|
||||
itemhelp:mapview.help
|
||||
|
||||
in:in1
|
||||
informat:gde
|
||||
insave:
|
||||
|
||||
arg:PBL
|
||||
arglabel:Pixel Between Lines
|
||||
argtype:slider
|
||||
argvalue:10
|
||||
argmin:1
|
||||
argmax:15
|
||||
|
||||
arg:NPP
|
||||
arglabel:Nucleotides Per Pixel
|
||||
argtype:slider
|
||||
argvalue:1
|
||||
argmin:1
|
||||
argmax:20
|
||||
|
||||
arg:LWIDTH
|
||||
arglabel:Line Thickness
|
||||
argtype:slider
|
||||
argvalue:2
|
||||
argmin:1
|
||||
argmax:5
|
||||
|
||||
item:--------------------------
|
||||
item:Add a new Protein blast db
|
||||
itemmethod:xterm -e formatdb -i $sourcefile -p T -o T; /usr/local/biotools/GDE/bin/installBLASTDBPROT.pl $sourcefile $menuname;
|
||||
|
||||
arg:sourcefile
|
||||
argtype:text
|
||||
arglabel: Enter the file (in FASTA)
|
||||
|
||||
arg:menuname
|
||||
argtype:text
|
||||
arglabel: Enter the name of the DB
|
||||
|
||||
menu:Phylogeny
|
||||
|
||||
|
||||
item:Phylip help
|
||||
itemmethod:(netscape /usr/local/biotools/phylip/doc/$FILE)&
|
||||
|
||||
arg:FILE
|
||||
argtype:choice_list
|
||||
arglabel:Which program?
|
||||
argchoice:clique:clique.html
|
||||
argchoice:consense:consense.html
|
||||
argchoice:contchar:contchar.html
|
||||
argchoice:contml:contml.html
|
||||
argchoice:contrast:contrast.html
|
||||
argchoice:discrete:discrete.html
|
||||
argchoice:distance:distance.html
|
||||
argchoice:dnaboot:dnaboot.html
|
||||
argchoice:dnacomp:dnacomp.html
|
||||
argchoice:dnadist:dnadist.html
|
||||
argchoice:dnainvar:dnainvar.html
|
||||
argchoice:dnaml:dnaml.html
|
||||
argchoice:dnamlk:dnamlk.html
|
||||
argchoice:dnamove:dnamove.html
|
||||
argchoice:dnapars:dnapars.html
|
||||
argchoice:dnapenny:dnapenny.html
|
||||
argchoice:dollop:dollop.html
|
||||
argchoice:dolmove:dolmove.html
|
||||
argchoice:dolpenny:dolpenny.html
|
||||
argchoice:draw:draw.html
|
||||
argchoice:drawgram:drawgram.html
|
||||
argchoice:drawtree:drawtree.html
|
||||
argchoice:factor:factor.html
|
||||
argchoice:fitch:fitch.html
|
||||
argchoice:gendist:gendist.html
|
||||
argchoice:kitsch:kitsch.html
|
||||
argchoice:main:main.html
|
||||
argchoice:mix:mix.html
|
||||
argchoice:move:move.html
|
||||
argchoice:neighbor:neighbor.html
|
||||
argchoice:penny:penny.html
|
||||
argchoice:protpars:protpars.html
|
||||
argchoice:read.me.general:read.me.general.html
|
||||
argchoice:restml:restml.html
|
||||
argchoice:seqboot:seqboot.html
|
||||
argchoice:sequence:sequence.html
|
||||
|
||||
|
||||
|
||||
item:Phylip 3.5
|
||||
itemmethod:(rm -f outfile ; readseq -a -f12 in1 | sed "s/ YF//1" > infile;$PREEDIT /usr/bin/X11/xterm -e $PROGRAM;kedit outfile; treetool outtree; rm in1 )&
|
||||
|
||||
arg:PROGRAM
|
||||
argtype:choice_list
|
||||
arglabel:Which program to run?
|
||||
argchoice:DNAPARS:dnapars
|
||||
argchoice:DNABOOT:dnaboot
|
||||
argchoice:DNAPENNY:dnapenny
|
||||
argchoice:DNAML:dnaml
|
||||
argchoice:DNAMLK:dnamlk
|
||||
argchoice:DNACOMP:dnacomp
|
||||
argchoice:DNAMOVE:dnamove
|
||||
argchoice:DNAINVAR:dnainvar
|
||||
argchoice:PROTPARS:protpars
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
item:Phylip DNA Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 | sed "s/ YF//1" > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e dnadist;mv -f outfile infile; cp infile $DNA; /usr/bin/X11/xterm -e neighbor; cp outtree intree; cp outfile $NEI; $PROGRAM kedit outfile; cp outtree $TREE; treetool outtree; /bin/rm -f in1 infile outfile intree outtree)&
|
||||
|
||||
arg:EXPLAIN
|
||||
argtype:text
|
||||
arglabel:To produce a bootstraped tree choose DNADIST+NEIGHOR+CONSENSE
|
||||
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:DNADIST+NEIGHBOR:
|
||||
argchoice:DNADIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Run ?
|
||||
argtype:chooser
|
||||
argchoice:Run without Bootstrap:
|
||||
argchoice:Run with Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
|
||||
arg:DNA
|
||||
argtype:text
|
||||
arglabel:Name of DNADIST outfile?
|
||||
|
||||
arg:NEI
|
||||
argtype:text
|
||||
arglabel:Name of NEIGHBOR outfile?
|
||||
|
||||
arg:TREE
|
||||
argtype:text
|
||||
arglabel:Name of TREEFILE ?
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
item:Phylip PROTEIN Distance methods
|
||||
itemmethod:(readseq -a -f12 in1 > infile ;$PROG mv -f outfile infile; /usr/bin/X11/xterm -e protdist;mv -f outfile infile; /usr/bin/X11/xterm -e neighbor; cp outtree intree; $PROGRAM kedit outfile;treetool outtree;/bin/rm -f in1 infile outfile)&
|
||||
|
||||
arg:PROGRAM
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:PROTDIST+NEIGHBOR:
|
||||
argchoice:PROTDIST+NEIGHOR+CONSENSE: /usr/bin/X11/xterm -e consense;
|
||||
|
||||
arg:PROG
|
||||
arglabel:Which method?
|
||||
argtype:chooser
|
||||
argchoice:Bootstrap: /usr/bin/X11/xterm -e seqboot;
|
||||
argchoice:No Bootstrap:
|
||||
|
||||
arg:PREEDIT
|
||||
argtype:chooser
|
||||
arglabel:Edit input before running?
|
||||
argchoice:No:
|
||||
argchoice:Yes:kedit infile;
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
inmask:
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
menu:On-Line Res.
|
||||
item:tytyt
|
||||
itemmethod:netscape hnu[phoph &
|
||||
item:SANBI
|
||||
itemmethod:netscape again &
|
||||
item:PlasmoDB
|
||||
itemmethod:netscape http://www.plasmodb.org &
|
||||
item:NCBI
|
||||
itemmethod:netscape http://www.ncbi.nlm.nih.gov &
|
||||
item:sanbi
|
||||
itemmethod:netscape http://www.sanbi.ac.za &
|
||||
item:SANBI
|
||||
itemmethod:netscape http://www.sanbi.ac.za &
|
||||
|
||||
item:GDE for Linux resources at Bioafrica.net
|
||||
itemmethod:netscape http://www.bioafrica.net &
|
||||
|
||||
item:-------------------------
|
||||
item:add a new website
|
||||
itemmethod:xterm -e /usr/local/biotools/GDE/newURL.pl $name $url
|
||||
|
||||
arg:name
|
||||
argtype:text
|
||||
arglabel:Enter the site name
|
||||
|
||||
arg:url
|
||||
argtype:text
|
||||
arglabel:Enter the URL (including http://)
|
890
CORE/BasicDisplay.c
Executable file
890
CORE/BasicDisplay.c
Executable file
|
@ -0,0 +1,890 @@
|
|||
#include <malloc.h>
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/scrollbar.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/font.h>
|
||||
#include <xview/xv_xrect.h>
|
||||
#include <xview/cms.h>
|
||||
#include <xview/notice.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
|
||||
Panel menubar = (Panel)NULL;
|
||||
|
||||
/*
|
||||
BasicDisplay():
|
||||
Set up menus and primary display.
|
||||
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
Panel BasicDisplay(DataSet)
|
||||
NA_Alignment *DataSet;
|
||||
{
|
||||
int i,j,k;
|
||||
extern Panel menubar;
|
||||
extern int DisplayType;
|
||||
extern Gmenu menu[];
|
||||
extern Frame frame;
|
||||
extern int num_menus;
|
||||
|
||||
if(menubar == (Panel) NULL)
|
||||
{
|
||||
menubar = xv_create(frame,PANEL,
|
||||
0);
|
||||
/*
|
||||
* For all menus defined in the .GDEmenu file, create a corresponding
|
||||
* menu on the menu bar, and tie its XView object to the internal
|
||||
* menu structure.
|
||||
*/
|
||||
for(j=0;j<num_menus ;j++)
|
||||
{
|
||||
menu[j].button=xv_create(menubar,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,menu[j].label,
|
||||
PANEL_ITEM_MENU, menu[j].X,
|
||||
0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine which type of display should be generated based on the
|
||||
* current view of the data set.
|
||||
*/
|
||||
MakeNAADisplay();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#ifdef SGI /* for exit button */
|
||||
void bailout()
|
||||
{
|
||||
if (xv_destroy_safe(frame) == XV_OK) {
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* exit by button on front panel
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
static void quit_main_proc(item, event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
bailout();
|
||||
}
|
||||
#endif /* sgi */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
GenMenu():
|
||||
Generate the menus described in the .GDEmenu file. Link menu items
|
||||
to their corresponding XView objects.
|
||||
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
GenMenu(type)
|
||||
int type;
|
||||
{
|
||||
int i,j,k;
|
||||
int curmenu,curitem,curarg,curinput,curoutput,curchoice;
|
||||
extern Gmenu menu[];
|
||||
extern Frame frame;
|
||||
extern int num_menus;
|
||||
Gmenu *thismenu;
|
||||
GmenuItem *thisitem;
|
||||
/*
|
||||
* For all menus...
|
||||
*/
|
||||
for(curmenu = 0;curmenu<num_menus;curmenu++)
|
||||
{
|
||||
thismenu = &(menu[curmenu]);
|
||||
thismenu->X = xv_create((Cms/* ??? rtm 18.III.98*/)NULL,MENU,0);
|
||||
if(strcmp(thismenu->label,"File")==0)
|
||||
{
|
||||
xv_set(thismenu->X,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Open...",
|
||||
MENU_NOTIFY_PROC,Open,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Save as...",
|
||||
MENU_NOTIFY_PROC,SaveAs,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Properties...",
|
||||
MENU_NOTIFY_PROC,ChangeDisplay,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Protections...<meta p>",
|
||||
MENU_NOTIFY_PROC,SetProtection,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Get info... <meta i>",
|
||||
MENU_NOTIFY_PROC,ModAttr,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
else if(strcmp(thismenu->label,"Edit")==0)
|
||||
{
|
||||
xv_set(thismenu->X,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Select All",
|
||||
MENU_NOTIFY_PROC,SelectAll,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Select by name...",
|
||||
MENU_NOTIFY_PROC,SelectBy,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Cut",
|
||||
MENU_NOTIFY_PROC,EditCut,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Copy",
|
||||
MENU_NOTIFY_PROC,EditCopy,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Paste",
|
||||
MENU_NOTIFY_PROC,EditPaste,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Group <meta g>",
|
||||
MENU_NOTIFY_PROC,Group,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Ungroup <meta u>",
|
||||
MENU_NOTIFY_PROC,Ungroup,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Compress",
|
||||
MENU_NOTIFY_PROC,CompressAlign,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Reverse",
|
||||
MENU_NOTIFY_PROC,RevSeqs,
|
||||
0,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Change case",
|
||||
MENU_NOTIFY_PROC,CaseChange,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
else if(strcmp(thismenu->label,"DNA/RNA")==0)
|
||||
{
|
||||
|
||||
xv_set(thismenu->X,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Complement",
|
||||
MENU_NOTIFY_PROC,CompSeqs,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
|
||||
/*
|
||||
* For all menu items of the current menu...
|
||||
*/
|
||||
for(curitem = 0;curitem<thismenu->numitems;curitem++)
|
||||
{
|
||||
thisitem = &(thismenu->item[curitem]);
|
||||
xv_set(thismenu->X,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,thismenu->item[curitem].label,
|
||||
MENU_NOTIFY_PROC,HandleMenus,
|
||||
0,
|
||||
0);
|
||||
}
|
||||
/*
|
||||
* Make the menu "pin"able
|
||||
*/
|
||||
xv_set(thismenu->X,
|
||||
MENU_GEN_PIN_WINDOW,frame,thismenu->label,
|
||||
0);
|
||||
}
|
||||
xv_set(menu[0].X,
|
||||
MENU_ITEM,
|
||||
MENU_STRING,"Quit",
|
||||
MENU_NOTIFY_PROC,QuitGDE,
|
||||
0,
|
||||
0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
MakeNAADisplay():
|
||||
Set up the generic display rectangle to be a DNA/RNA display.
|
||||
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
MakeNAADisplay()
|
||||
{
|
||||
extern Panel menubar;
|
||||
extern Canvas EditNameCan;
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan;
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Xv_singlecolor Default_Colors[];
|
||||
Scrollbar hscroll,vscroll;
|
||||
|
||||
GC gc;
|
||||
Cms colmap;
|
||||
XGCValues gcv;
|
||||
Display *dpy;
|
||||
Xv_font font;
|
||||
int j,fnt_siz,fnt_style,depth;
|
||||
|
||||
extern unsigned char *greys[];
|
||||
extern Pixmap grey_pm[];
|
||||
/*
|
||||
* The window will be scrollable in both X and Y
|
||||
*/
|
||||
xv_set(menubar,WIN_FIT_HEIGHT,0,0);
|
||||
/*
|
||||
* set up a window for the organism names on the left side of
|
||||
* the screen.
|
||||
*/
|
||||
|
||||
|
||||
EditNameCan = xv_create(frame,CANVAS,
|
||||
WIN_BELOW,menubar,
|
||||
WIN_WIDTH,150,
|
||||
CANVAS_AUTO_EXPAND,TRUE,
|
||||
CANVAS_AUTO_SHRINK,TRUE,
|
||||
CANVAS_RETAINED,FALSE,
|
||||
CANVAS_X_PAINT_WINDOW,TRUE,
|
||||
OPENWIN_ADJUST_FOR_HORIZONTAL_SCROLLBAR,TRUE,
|
||||
CANVAS_AUTO_CLEAR,FALSE,
|
||||
CANVAS_REPAINT_PROC,DummyRepaint,
|
||||
CANVAS_MIN_PAINT_WIDTH,150,
|
||||
#ifndef SGI
|
||||
WIN_INHERIT_COLORS,TRUE,
|
||||
#endif
|
||||
0);
|
||||
|
||||
(void)xv_set(canvas_paint_window(EditNameCan),
|
||||
WIN_EVENT_PROC,NANameEvents,
|
||||
WIN_CONSUME_EVENTS,
|
||||
WIN_MOUSE_BUTTONS,
|
||||
/*
|
||||
LOC_DRAG,
|
||||
*/
|
||||
LOC_WINENTER,
|
||||
WIN_ASCII_EVENTS,
|
||||
WIN_META_EVENTS,
|
||||
0,
|
||||
0);
|
||||
|
||||
|
||||
/*
|
||||
* Set up a window to hold the NA sequences.
|
||||
*/
|
||||
|
||||
EditCan=xv_create(frame,CANVAS,
|
||||
WIN_RIGHT_OF,EditNameCan,
|
||||
CANVAS_AUTO_SHRINK,TRUE,
|
||||
CANVAS_AUTO_EXPAND,TRUE,
|
||||
/*
|
||||
CANVAS_CMS_REPAINT,TRUE,
|
||||
*/
|
||||
CANVAS_X_PAINT_WINDOW,TRUE,
|
||||
CANVAS_AUTO_CLEAR,FALSE,
|
||||
CANVAS_RETAINED,FALSE,
|
||||
CANVAS_MIN_PAINT_WIDTH,150,
|
||||
OPENWIN_SPLIT,
|
||||
OPENWIN_SPLIT_INIT_PROC,InitEditSplit,
|
||||
OPENWIN_SPLIT_DESTROY_PROC,DestroySplit,
|
||||
NULL,
|
||||
WIN_INHERIT_COLORS,FALSE,
|
||||
WIN_BELOW,menubar,
|
||||
CANVAS_REPAINT_PROC,RepaintNACan,
|
||||
0);
|
||||
|
||||
/*
|
||||
* This causes resize events to occur even if the screen shrinks
|
||||
* in size.
|
||||
*/
|
||||
xv_set(canvas_paint_window(EditCan),
|
||||
WIN_BIT_GRAVITY,ForgetGravity,
|
||||
0);
|
||||
|
||||
|
||||
hscroll = xv_create(EditCan,SCROLLBAR,
|
||||
SCROLLBAR_DIRECTION,SCROLLBAR_HORIZONTAL,
|
||||
SCROLLBAR_SPLITTABLE,TRUE,
|
||||
SCROLLBAR_OVERSCROLL,0,
|
||||
0);
|
||||
|
||||
vscroll = xv_create(EditCan,SCROLLBAR,
|
||||
SCROLLBAR_DIRECTION,SCROLLBAR_VERTICAL,
|
||||
SCROLLBAR_SPLITTABLE,FALSE,
|
||||
SCROLLBAR_OVERSCROLL,0,
|
||||
0);
|
||||
|
||||
notify_interpose_event_func(
|
||||
xv_get(hscroll,SCROLLBAR_NOTIFY_CLIENT),
|
||||
EditCanScroll,NOTIFY_SAFE);
|
||||
|
||||
dpy = (Display *)xv_get(EditNameCan, XV_DISPLAY);
|
||||
|
||||
gc = DefaultGC(dpy,DefaultScreen(dpy));
|
||||
depth = xv_get(frame,WIN_DEPTH);
|
||||
if(depth>3)
|
||||
{
|
||||
colmap = (Cms)xv_find(frame,CMS,
|
||||
CMS_NAME,"GDE Palette",
|
||||
XV_AUTO_CREATE,FALSE,
|
||||
0);
|
||||
|
||||
|
||||
if(colmap == (Cms) NULL)
|
||||
colmap = (Cms)xv_create((Cms)NULL,CMS,
|
||||
CMS_TYPE,XV_STATIC_CMS,
|
||||
CMS_SIZE,16,
|
||||
CMS_COLORS,Default_Colors,
|
||||
#ifdef SGI /* a hack to try and keep the frame colored in split canvas */
|
||||
CMS_FRAME_CMS,TRUE,
|
||||
#endif
|
||||
|
||||
0);
|
||||
|
||||
xv_set(EditCan,
|
||||
WIN_CMS_NAME,"GDE Palette",
|
||||
WIN_CMS, colmap,
|
||||
WIN_FOREGROUND_COLOR,8,
|
||||
WIN_BACKGROUND_COLOR,15,
|
||||
#ifndef SGI
|
||||
WIN_INHERIT_COLORS,FALSE,
|
||||
#endif
|
||||
0);
|
||||
}
|
||||
|
||||
(void)xv_set(canvas_paint_window(EditCan),
|
||||
WIN_EVENT_PROC,NAEvents,
|
||||
WIN_CONSUME_EVENTS,
|
||||
WIN_MOUSE_BUTTONS,
|
||||
LOC_WINENTER,
|
||||
WIN_ASCII_EVENTS,
|
||||
WIN_META_EVENTS,
|
||||
0,
|
||||
0);
|
||||
|
||||
font = (Xv_font)xv_get(frame,XV_FONT);
|
||||
fnt_siz = (int)xv_get(font,FONT_SIZE);
|
||||
fnt_style = (int)xv_get(font,FONT_STYLE);
|
||||
font = (Xv_font)xv_find(frame,FONT,
|
||||
FONT_FAMILY,FONT_FAMILY_DEFAULT_FIXEDWIDTH,
|
||||
FONT_STYLE,fnt_style,
|
||||
FONT_SIZE,fnt_siz,
|
||||
0);
|
||||
|
||||
xv_set(frame,XV_FONT,font,0);
|
||||
|
||||
gcv.font = (Font)xv_get(font,XV_XID);
|
||||
|
||||
if(gcv.font != (Font)NULL)
|
||||
XChangeGC(dpy,gc,GCFont,&gcv);
|
||||
|
||||
for(j=0;j<16;j++)
|
||||
{
|
||||
grey_pm[j] = XCreatePixmapFromBitmapData(dpy,
|
||||
DefaultRootWindow(dpy), greys[j], grey_width,
|
||||
grey_height, 1, 0, 1);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
SetNADData()
|
||||
Fills in the display data structure for an initial monochrome display.
|
||||
All settings are simple defaults, and will need to be modified externally
|
||||
if otherwise. This routine passes back a new NA_DisplayData structure, which
|
||||
can be destroyed after use with a call to cfree().
|
||||
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
NA_DisplayData *SetNADData(aln,Can,NamCan)
|
||||
NA_Alignment *aln;
|
||||
Canvas Can,NamCan;
|
||||
{
|
||||
NA_DisplayData *ddata;
|
||||
Scrollbar hscroll,vscroll;
|
||||
Xv_window view;
|
||||
int j;
|
||||
|
||||
extern Frame frame;
|
||||
extern int Default_Color_LKUP[];
|
||||
extern DisplayAttr;
|
||||
|
||||
int reset_all;
|
||||
|
||||
if(aln->na_ddata == NULL)
|
||||
{
|
||||
ddata = (NA_DisplayData*)Calloc(1,sizeof(NA_DisplayData));
|
||||
reset_all = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
ddata =(NA_DisplayData*)(aln->na_ddata);
|
||||
reset_all = FALSE;
|
||||
}
|
||||
|
||||
ddata -> font = (Xv_font)xv_get(frame,XV_FONT);
|
||||
ddata -> font_dx = xv_get(ddata->font,FONT_DEFAULT_CHAR_WIDTH);
|
||||
ddata -> font_dy = xv_get(ddata->font,FONT_DEFAULT_CHAR_HEIGHT);
|
||||
if(reset_all)
|
||||
{
|
||||
ddata -> wid = 0;
|
||||
ddata -> ht = 0;
|
||||
ddata -> position = 0;
|
||||
ddata -> depth = xv_get(frame,WIN_DEPTH);
|
||||
if(ddata -> depth >= 4)
|
||||
{
|
||||
ddata -> color_type = COLOR_LOOKUP;
|
||||
ddata -> num_colors = 16;
|
||||
ddata -> white = 15;
|
||||
ddata -> black = 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
ddata -> color_type = COLOR_MONO;;
|
||||
ddata -> num_colors = 2;
|
||||
ddata -> white = 0;
|
||||
ddata -> black = 1;
|
||||
}
|
||||
ddata -> jtsize = 0;
|
||||
ddata -> aln = aln;
|
||||
ddata -> seq_x = xv_get(Can,XV_XID);
|
||||
ddata -> nam_x = xv_get(NamCan, XV_XID);
|
||||
ddata -> use_repeat = TRUE;
|
||||
}
|
||||
ddata -> seq_can = Can;
|
||||
ddata -> nam_can = NamCan;
|
||||
|
||||
for(j=0;j<xv_get(Can,OPENWIN_NVIEWS);j++)
|
||||
{
|
||||
view = (Xv_window)xv_get(Can,OPENWIN_NTH_VIEW,j,0);
|
||||
|
||||
hscroll = (Scrollbar)xv_get(Can,
|
||||
OPENWIN_HORIZONTAL_SCROLLBAR,view);
|
||||
vscroll = (Scrollbar)xv_get(Can,
|
||||
OPENWIN_VERTICAL_SCROLLBAR,view);
|
||||
|
||||
if(hscroll && vscroll)
|
||||
{
|
||||
xv_set(hscroll,SCROLLBAR_PIXELS_PER_UNIT,
|
||||
ddata->font_dx,0);
|
||||
xv_set(vscroll,SCROLLBAR_PIXELS_PER_UNIT,
|
||||
ddata->font_dy,0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the length and height of the alignment
|
||||
*/
|
||||
xv_set(hscroll,SCROLLBAR_OBJECT_LENGTH,aln->maxlen,0);
|
||||
xv_set(vscroll,SCROLLBAR_OBJECT_LENGTH,aln->numelements,0);
|
||||
|
||||
scrollbar_paint(vscroll);
|
||||
scrollbar_paint(hscroll);
|
||||
}
|
||||
|
||||
if(aln->numelements !=0)
|
||||
{
|
||||
xv_set(Can,
|
||||
WIN_HEIGHT,MIN(MAX_STARTUP_CANVAS_HEIGHT,
|
||||
ddata->font_dy * (aln->numelements+2)),
|
||||
CANVAS_RETAINED,FALSE,
|
||||
0);
|
||||
|
||||
xv_set(NamCan,
|
||||
WIN_HEIGHT,MIN(MAX_STARTUP_CANVAS_HEIGHT,
|
||||
ddata->font_dy * (aln->numelements+2)),
|
||||
0);
|
||||
}
|
||||
|
||||
(void)window_fit(NamCan);
|
||||
(void)window_fit(Can);
|
||||
(void)window_fit(frame);
|
||||
|
||||
return (ddata);
|
||||
}
|
||||
|
||||
|
||||
DummyRepaint(can,win,dpy,xwin,area)
|
||||
Canvas can;
|
||||
Xv_window win;
|
||||
Display *dpy;
|
||||
Window xwin;
|
||||
Xv_xrectlist *area;
|
||||
{
|
||||
DrawNANames(dpy,xwin);
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
DrawNANames(dpy,xwin)
|
||||
Display *dpy;
|
||||
Window xwin;
|
||||
{
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
NA_DisplayData *NAdd;
|
||||
NA_Alignment *aln;
|
||||
NA_Sequence *element;
|
||||
int maxseq,minseq,maxnoseq,i,j;
|
||||
unsigned long *pixels;
|
||||
char buffer[GBUFSIZ];
|
||||
int scrn = DefaultScreen(dpy);
|
||||
GC gc;
|
||||
|
||||
aln = DataSet;
|
||||
if(DataSet == NULL)
|
||||
return XV_OK;
|
||||
NAdd = (NA_DisplayData*)(DataSet)->na_ddata;
|
||||
gc = DefaultGC(dpy,DefaultScreen(dpy));
|
||||
|
||||
pixels = (unsigned long*)xv_get(EditCan,WIN_X_COLOR_INDICES);
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
XSetForeground(dpy,gc,BlackPixel(dpy,scrn));
|
||||
|
||||
minseq = NAdd->top_seq;
|
||||
maxseq = minseq + NAdd->ht;
|
||||
maxseq = MIN(maxseq+1,aln->numelements);
|
||||
|
||||
for(j=minseq;j<maxseq;j++)
|
||||
{
|
||||
element = &(aln->element[j]);
|
||||
if(element->groupid != 0)
|
||||
sprintf(buffer,"%d %s ",
|
||||
element->groupid,element->short_name);
|
||||
else
|
||||
sprintf(buffer,"%s ",
|
||||
element->short_name);
|
||||
|
||||
if(aln->element[j].selected)
|
||||
{
|
||||
XSetForeground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
XSetBackground(dpy,gc,BlackPixel(dpy,scrn));
|
||||
}
|
||||
|
||||
XDrawImageString(dpy,xwin,gc,5,
|
||||
NAdd->font_dy*(j-minseq+1),buffer,40);
|
||||
|
||||
if(aln->element[j].selected)
|
||||
{
|
||||
XSetForeground(dpy,gc,BlackPixel(dpy,scrn));
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
maxnoseq = xv_get(EditNameCan,XV_HEIGHT)/NAdd->font_dy;
|
||||
for(j=maxseq;j<maxnoseq;j++)
|
||||
XDrawImageString(dpy,xwin,gc,5,
|
||||
NAdd->font_dy*(j-minseq+1),
|
||||
" ",40);
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
|
||||
RepaintNACan(can,win,dpy,xwin,area)
|
||||
Canvas can;
|
||||
Xv_window win;
|
||||
Display *dpy;
|
||||
Window xwin;
|
||||
Xv_xrectlist *area;
|
||||
{
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Frame frame; /* rtm 18.III.98 */
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern int SCALE;
|
||||
Scrollbar hscroll,vscroll;
|
||||
NA_DisplayData *NAdd;
|
||||
Xv_window view;
|
||||
int maxseq,minseq,i,j,lpos,rpos,nviews;
|
||||
int start,end,top,bottom;
|
||||
GC gc;
|
||||
|
||||
int scrn = DefaultScreen(dpy);
|
||||
gc = DefaultGC(dpy,scrn);
|
||||
|
||||
if(DataSet == (NA_Alignment *) NULL || can == (Canvas) NULL)
|
||||
return XV_OK;
|
||||
|
||||
NAdd = (NA_DisplayData*)(DataSet)->na_ddata;
|
||||
if(NAdd == NULL)
|
||||
return XV_OK;
|
||||
for(;xv_get(can,CANVAS_RETAINED)==TRUE;)
|
||||
xv_set(can,CANVAS_RETAINED,FALSE,0);
|
||||
|
||||
XSetForeground(dpy,gc,BlackPixel(dpy,scrn));
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
|
||||
nviews = (int)xv_get(EditCan,OPENWIN_NVIEWS);
|
||||
for(j=0;j<nviews;j++)
|
||||
{
|
||||
view = (Xv_window)xv_get(EditCan,OPENWIN_NTH_VIEW,j);
|
||||
if(view)
|
||||
if(xv_get(view,CANVAS_VIEW_PAINT_WINDOW) == win)
|
||||
j=nviews;
|
||||
}
|
||||
|
||||
/*
|
||||
added to remove warnings on split screen
|
||||
*/
|
||||
hscroll = (Scrollbar)xv_get(EditCan,OPENWIN_HORIZONTAL_SCROLLBAR,view);
|
||||
vscroll = (Scrollbar)xv_get(EditCan,OPENWIN_VERTICAL_SCROLLBAR,view);
|
||||
|
||||
if(vscroll)
|
||||
{
|
||||
xv_set(vscroll,SCROLLBAR_OBJECT_LENGTH,
|
||||
(DataSet)-> numelements,0);
|
||||
minseq = (int)xv_get(vscroll,SCROLLBAR_VIEW_START);
|
||||
maxseq = (int)xv_get(vscroll,SCROLLBAR_VIEW_LENGTH);
|
||||
|
||||
if( NAdd->top_seq != minseq || NAdd->ht != maxseq)
|
||||
{
|
||||
NAdd->top_seq = minseq;
|
||||
NAdd->ht = maxseq;
|
||||
DrawNANames(dpy,xv_get(canvas_paint_window(EditNameCan),
|
||||
XV_XID));
|
||||
}
|
||||
|
||||
maxseq += minseq;
|
||||
maxseq = MIN(maxseq+1,DataSet->numelements);
|
||||
|
||||
top =(int)xv_get(vscroll,SCROLLBAR_VIEW_START);
|
||||
bottom = top +(int)xv_get(vscroll,SCROLLBAR_VIEW_LENGTH);
|
||||
for(;bottom-top>MAX_NA_DISPLAY_HEIGHT;)
|
||||
{
|
||||
top =(int)xv_get(vscroll,SCROLLBAR_VIEW_START);
|
||||
bottom= top +(int)xv_get(vscroll,SCROLLBAR_VIEW_LENGTH);
|
||||
}
|
||||
}
|
||||
|
||||
if(hscroll)
|
||||
{
|
||||
xv_set(hscroll,SCROLLBAR_OBJECT_LENGTH, (DataSet)->maxlen,0);
|
||||
start =(int)xv_get(hscroll,SCROLLBAR_VIEW_START);
|
||||
end = start +(int)xv_get(hscroll,SCROLLBAR_VIEW_LENGTH);
|
||||
for(;end-start>MAX_NA_DISPLAY_WIDTH;)
|
||||
{
|
||||
start =(int)xv_get(hscroll,SCROLLBAR_VIEW_START);
|
||||
end = start +(int)xv_get(hscroll,SCROLLBAR_VIEW_LENGTH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for(i=0;(i<area->count) && hscroll && vscroll;i++)
|
||||
{
|
||||
lpos = start+((int)area->rect_array[i].x/NAdd->font_dx)*SCALE;
|
||||
rpos = (((int)area->rect_array[i].width/NAdd->font_dx)*SCALE +
|
||||
lpos);
|
||||
|
||||
/*
|
||||
rpos = MIN(NAdd->aln->maxlen,rpos + 1);
|
||||
*/
|
||||
rpos += 1;
|
||||
|
||||
minseq = top+(int)area->rect_array[i].y/NAdd->font_dy;
|
||||
maxseq = (int)area->rect_array[i].height/NAdd->font_dy+minseq;
|
||||
maxseq = MIN(DataSet->numelements-1,maxseq+1);
|
||||
|
||||
/*
|
||||
for(;rpos-lpos>MAX_NA_DISPLAY_WIDTH;)
|
||||
{
|
||||
lpos =(int)xv_get(hscroll,SCROLLBAR_VIEW_START)/SCALE;
|
||||
rpos = lpos+(int)xv_get(hscroll,SCROLLBAR_VIEW_LENGTH)*SCALE;
|
||||
}
|
||||
*/
|
||||
|
||||
for(j=minseq;j<=maxseq;j++)
|
||||
DrawNAColor(can,NAdd,xwin,start,top,j,lpos,rpos,dpy,gc,
|
||||
NAdd->color_type,FALSE);
|
||||
}
|
||||
SetNACursor(NAdd,can,win,xwin,dpy,gc);
|
||||
(void)window_fit(EditCan);
|
||||
(void)window_fit(EditNameCan);
|
||||
(void)window_fit(frame);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
SetNACursor(NAdd,can,win,xwin,dpy,gc)
|
||||
NA_DisplayData *NAdd;
|
||||
Canvas can;
|
||||
Xv_window win;
|
||||
Window xwin;
|
||||
Display *dpy;
|
||||
GC gc;
|
||||
{
|
||||
extern int repeat_cnt,EditMode,SCALE;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern Frame frame;
|
||||
extern NA_Alignment *DataSet;
|
||||
|
||||
Scrollbar hscroll,vscroll;
|
||||
NA_Sequence *this_elem;
|
||||
|
||||
int xx,yy,j,dir=0,SubSel = FALSE;
|
||||
Xv_window view;
|
||||
|
||||
char buffer[GBUFSIZ];
|
||||
int x = ((NA_DisplayData*)(DataSet)->
|
||||
na_ddata)->cursor_x;
|
||||
int y = ((NA_DisplayData*)(DataSet)->
|
||||
na_ddata)->cursor_y;
|
||||
int position = ((NA_DisplayData*)(DataSet)->
|
||||
na_ddata)->position;
|
||||
|
||||
this_elem = &(DataSet->element[y]);
|
||||
dir = OrigDir(this_elem);
|
||||
|
||||
if(repeat_cnt > 0)
|
||||
sprintf(buffer,"[%s] pos:%d col:%d %s %s (repeat:%d)",
|
||||
EditMode==0?"Insert": "Check", position,((NA_DisplayData*)(
|
||||
DataSet)->na_ddata)->cursor_x+1+DataSet->rel_offset,(DataSet)->
|
||||
element[y].short_name,(dir == 1)?" -->":
|
||||
(dir == -1)?" <--":" ",MAX(repeat_cnt,1));
|
||||
else
|
||||
sprintf(buffer,"[%s] pos:%d col:%d %s %s",
|
||||
EditMode==0?"Insert": "Check",position,((NA_DisplayData*)(
|
||||
DataSet)->na_ddata)->cursor_x+1+DataSet->rel_offset,(DataSet)->
|
||||
element[y].short_name,(dir == 1)?" -->":
|
||||
(dir == -1)?" <--":" ");
|
||||
|
||||
xv_set(frame,FRAME_LEFT_FOOTER,buffer,0);
|
||||
xv_set(left_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].subselected)
|
||||
SubSel = TRUE;
|
||||
|
||||
for(j=0;j<xv_get(can,OPENWIN_NVIEWS) && !SubSel;j++)
|
||||
{
|
||||
view = xv_get(can,OPENWIN_NTH_VIEW,j);
|
||||
hscroll=(Scrollbar)xv_get(can,OPENWIN_HORIZONTAL_SCROLLBAR,view);
|
||||
vscroll=(Scrollbar)xv_get(can,OPENWIN_VERTICAL_SCROLLBAR,view);
|
||||
if(hscroll && vscroll)
|
||||
{
|
||||
yy = xv_get(vscroll,SCROLLBAR_VIEW_START);
|
||||
xx = xv_get(hscroll,SCROLLBAR_VIEW_START);
|
||||
xwin = (Window)xv_get
|
||||
(xv_get(view,CANVAS_VIEW_PAINT_WINDOW), XV_XID);
|
||||
DrawNAColor(can,NAdd,xwin,xx,yy,y,x,x,dpy,gc,COLOR_MONO,
|
||||
TRUE);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
UnsetNACursor(NAdd,can,win,xwin,dpy,gc)
|
||||
NA_DisplayData *NAdd;
|
||||
Canvas can;
|
||||
Xv_window win;
|
||||
Window xwin;
|
||||
Display *dpy;
|
||||
GC gc;
|
||||
{
|
||||
NA_DisplayData *ddata;
|
||||
NA_Alignment *aln;
|
||||
extern NA_Alignment *DataSet; /* rtm 18.III.98 */
|
||||
Scrollbar vscroll=(Scrollbar)NULL,hscroll=(Scrollbar)NULL;
|
||||
Xv_window view;
|
||||
extern int SCALE;
|
||||
int x,y,xx,yy,j;
|
||||
|
||||
if(DataSet == NULL)
|
||||
return;
|
||||
|
||||
aln = DataSet;
|
||||
x = ((NA_DisplayData*)(DataSet)->na_ddata)->cursor_x;
|
||||
y = ((NA_DisplayData*)(DataSet)->na_ddata)->cursor_y;
|
||||
|
||||
for(j=0;j<xv_get(can,OPENWIN_NVIEWS);j++)
|
||||
{
|
||||
view = xv_get(can,OPENWIN_NTH_VIEW,j);
|
||||
hscroll=(Scrollbar)xv_get(can,
|
||||
OPENWIN_HORIZONTAL_SCROLLBAR,view);
|
||||
vscroll=(Scrollbar)xv_get(can,
|
||||
OPENWIN_VERTICAL_SCROLLBAR,view);
|
||||
|
||||
yy = xv_get(vscroll,SCROLLBAR_VIEW_START);
|
||||
xx = xv_get(hscroll,SCROLLBAR_VIEW_START);
|
||||
xwin = (Window)xv_get(xv_get(view,CANVAS_VIEW_PAINT_WINDOW)
|
||||
,XV_XID);
|
||||
|
||||
DrawNAColor(can,NAdd,xwin,xx,yy,y,x,x,dpy,gc,NAdd->color_type,
|
||||
FALSE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
ResizeNACan(canvas,wd,ht)
|
||||
Canvas canvas;
|
||||
int wd,ht;
|
||||
{
|
||||
extern NA_Alignment *DataSet; /* rtm 18.III.98 */
|
||||
int dy;
|
||||
if(DataSet == NULL)
|
||||
return(XV_OK);
|
||||
if(DataSet->na_ddata == NULL)
|
||||
return(XV_OK);
|
||||
|
||||
dy = (int)((NA_DisplayData*)(DataSet->na_ddata))->font_dy;
|
||||
if(ht > dy * (DataSet->numelements+2))
|
||||
{
|
||||
xv_set(canvas,XV_HEIGHT,dy * (DataSet->numelements+2),0);
|
||||
}
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
QuitGDE()
|
||||
{
|
||||
extern Frame frame;
|
||||
if( notice_prompt(frame,NULL,NOTICE_MESSAGE_STRINGS,
|
||||
"Are you sure you want to Quit?",NULL,
|
||||
NOTICE_BUTTON,"Confirm",1,
|
||||
NOTICE_BUTTON,"Cancel",2,
|
||||
0) == 1)
|
||||
{
|
||||
xv_destroy_safe(frame);
|
||||
exit(0);
|
||||
}
|
||||
else
|
||||
return(XV_OK);
|
||||
}
|
BIN
CORE/BasicDisplay.o
Normal file
BIN
CORE/BasicDisplay.o
Normal file
Binary file not shown.
2283
CORE/BuiltIn.c
Executable file
2283
CORE/BuiltIn.c
Executable file
File diff suppressed because it is too large
Load diff
BIN
CORE/BuiltIn.o
Normal file
BIN
CORE/BuiltIn.o
Normal file
Binary file not shown.
658
CORE/ChooseFile.c
Executable file
658
CORE/ChooseFile.c
Executable file
|
@ -0,0 +1,658 @@
|
|||
/*
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Michael Maciukenas at the Center for Prokaryote
|
||||
Genome Analysis. Design and implementation guidance by Steven Smith, Carl
|
||||
Woese.
|
||||
*/
|
||||
/* File picker by Mike Maciukenas
|
||||
** Allows the user to search up and down the directory tree, and choose a
|
||||
** file.
|
||||
** "Open" descends down into a directory, or chooses a file (depending ** on what is selected). The user may also press return after choosing
|
||||
** a file or directory, to do the same thing.
|
||||
** "Up Dir" ascends to the parent directory.
|
||||
** "Cancel" cancels the operation.
|
||||
** The user may also type a directory into the "Directory:" field. When the
|
||||
** user presses return (or tab, or newline), the contents of the new directory
|
||||
** will be shown.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <xview/textsw.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/canvas.h>
|
||||
#include <xview/scrollbar.h>
|
||||
#include <xview/rectlist.h>
|
||||
#include <xview/notice.h>
|
||||
#include <xview/font.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
||||
#define GBUFSIZ 1024 /* buffer size, remove when adding to Steve's code */
|
||||
|
||||
#define FL_VIEW_H 15 /* # of files to show in one page, originally */
|
||||
|
||||
|
||||
/* structure for a linked list that allows sorting of filenames */
|
||||
typedef struct namedata {char *FileN; /* file name */
|
||||
int type; /* flag: 1 if directory '/'
|
||||
** 2 if executable '*'
|
||||
** 3 if symbolic link '@'
|
||||
** 4 if socket '='
|
||||
** 0 if normal */
|
||||
struct namedata *Next; /* next in list */
|
||||
} NameData;
|
||||
|
||||
Frame fl_getframe = XV_NULL; /* frame, is set to XV_NULL by free_mem(),
|
||||
** load_file() checks this to see if it should
|
||||
** destroy an existing frame */
|
||||
Scrollbar fl_scroll; /* the scrollbar for the file list canvas */
|
||||
Canvas fl_FileList; /* the file list canvas */
|
||||
Panel_item fl_DirText; /* the text item that displays the directory */
|
||||
Panel fl_Getpanel; /* the panel, contains buttons, and DirText */
|
||||
GC fl_gc; /* gc to use for drawing file names, just the default GC with
|
||||
** the frame's font copied in. */
|
||||
int fl_current_picked, fl_current_len; /* the current item picked in the file
|
||||
** list, and the current number of items
|
||||
** in the file list */
|
||||
int fl_cell_h, fl_width, fl_ascent; /* the height of the font, the width of the
|
||||
** canvas, and the default ascent of the
|
||||
** font, all used for drawing into the file
|
||||
** list canvas */
|
||||
Xv_opaque data;
|
||||
|
||||
|
||||
|
||||
NameData *fl_start; /* the root node for the linked list of filenames */
|
||||
|
||||
Frame load_file(Parentframe, x, y, passdata)
|
||||
/* pick a file for loading. */
|
||||
Frame Parentframe;
|
||||
int x, y;
|
||||
Xv_opaque passdata;
|
||||
{
|
||||
|
||||
/* callback procedures */
|
||||
int fl_open_btn_lf(), fl_up_dir_btn(), lf_cancel_btn();
|
||||
void fl_show_list_lf();
|
||||
void fl_list_select_lf();
|
||||
Panel_setting fl_dir_typed();
|
||||
/* interposed destroy function */
|
||||
Notify_value fl_free_mem();
|
||||
|
||||
char dirname[GBUFSIZ];
|
||||
Display *display;
|
||||
Xv_screen screen;
|
||||
int screen_no;
|
||||
Xv_Font font;
|
||||
XFontStruct *font_data;
|
||||
|
||||
data=passdata;
|
||||
|
||||
/* create the frame */
|
||||
fl_getframe = xv_create(Parentframe, FRAME_CMD,
|
||||
FRAME_CMD_PUSHPIN_IN,TRUE,
|
||||
FRAME_LABEL, "Choose File",
|
||||
FRAME_SHOW_RESIZE_CORNER, FALSE,
|
||||
XV_X, x,
|
||||
XV_Y, y,
|
||||
NULL);
|
||||
notify_interpose_destroy_func(fl_getframe, fl_free_mem);
|
||||
|
||||
/* get font characteristics */
|
||||
font = xv_get(fl_getframe, XV_FONT);
|
||||
fl_cell_h = xv_get(font, FONT_DEFAULT_CHAR_HEIGHT);
|
||||
fl_width = 50*xv_get(font, FONT_DEFAULT_CHAR_WIDTH);
|
||||
font_data = (XFontStruct *)xv_get(font, FONT_INFO);
|
||||
fl_ascent = font_data->ascent;
|
||||
|
||||
/* create the panel and panel buttons */
|
||||
/*
|
||||
fl_Getpanel = xv_create(fl_getframe, PANEL,
|
||||
NULL);
|
||||
*/
|
||||
fl_Getpanel = xv_get(fl_getframe, FRAME_CMD_PANEL);
|
||||
(void) xv_create(fl_Getpanel, PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING, "Open",
|
||||
PANEL_NOTIFY_PROC, fl_open_btn_lf,
|
||||
NULL);
|
||||
(void) xv_create(fl_Getpanel, PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING, "Up Dir",
|
||||
PANEL_NOTIFY_PROC, fl_up_dir_btn,
|
||||
NULL);
|
||||
(void) xv_create(fl_Getpanel, PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING, "Cancel",
|
||||
PANEL_NOTIFY_PROC, lf_cancel_btn,
|
||||
NULL);
|
||||
/* create the "Directory:" field, initialized to the current working dir */
|
||||
getcwd(dirname, GBUFSIZ);
|
||||
fl_DirText = xv_create(fl_Getpanel, PANEL_TEXT,
|
||||
PANEL_LABEL_STRING,"Directory:",
|
||||
XV_X, xv_col(fl_Getpanel, 0),
|
||||
XV_Y, xv_row(fl_Getpanel, 1),
|
||||
PANEL_VALUE_STORED_LENGTH, GBUFSIZ,
|
||||
PANEL_VALUE_DISPLAY_LENGTH, 30,
|
||||
PANEL_VALUE, dirname,
|
||||
PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
|
||||
PANEL_NOTIFY_STRING, "\n\r\t",
|
||||
PANEL_NOTIFY_PROC, fl_dir_typed,
|
||||
NULL);
|
||||
|
||||
window_fit(fl_Getpanel);
|
||||
|
||||
/* create the file list canvas, below the above panel */
|
||||
fl_FileList = xv_create(fl_getframe, CANVAS,
|
||||
XV_X, 0,
|
||||
WIN_BELOW, fl_Getpanel,
|
||||
XV_WIDTH, fl_width,
|
||||
XV_HEIGHT, FL_VIEW_H*fl_cell_h+7,
|
||||
CANVAS_REPAINT_PROC, fl_show_list_lf,
|
||||
CANVAS_AUTO_EXPAND, FALSE,
|
||||
CANVAS_AUTO_SHRINK, FALSE,
|
||||
CANVAS_WIDTH, fl_width,
|
||||
CANVAS_HEIGHT, fl_cell_h,
|
||||
CANVAS_RETAINED, FALSE,
|
||||
OPENWIN_AUTO_CLEAR, FALSE,
|
||||
NULL);
|
||||
fl_scroll = xv_create(fl_FileList, SCROLLBAR,
|
||||
SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL,
|
||||
SCROLLBAR_PIXELS_PER_UNIT, fl_cell_h,
|
||||
SCROLLBAR_VIEW_LENGTH, fl_view_h(),
|
||||
SCROLLBAR_PAGE_LENGTH, fl_view_h(),
|
||||
NULL);
|
||||
xv_set(canvas_paint_window(fl_FileList),
|
||||
WIN_EVENT_PROC, fl_list_select_lf,
|
||||
WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, WIN_ASCII_EVENTS, NULL,
|
||||
NULL);
|
||||
xv_set(fl_Getpanel, XV_WIDTH, xv_get(fl_FileList, XV_WIDTH), NULL);
|
||||
|
||||
/* set up the gc for drawing into the file list */
|
||||
display = (Display *)xv_get(fl_getframe, XV_DISPLAY);
|
||||
screen = (Xv_screen)xv_get(fl_getframe, XV_SCREEN);
|
||||
screen_no = (int)xv_get(screen, SCREEN_NUMBER);
|
||||
fl_gc = XCreateGC(display, RootWindow(display, screen_no),
|
||||
0, NULL);
|
||||
XCopyGC(display, DefaultGC(display, DefaultScreen(display)),
|
||||
0xFFFFFFFF, fl_gc);
|
||||
XSetFont(display, fl_gc, xv_get(font, XV_XID));
|
||||
/*
|
||||
* Added S.Smith 2/5/91
|
||||
*/
|
||||
XSetForeground(display,fl_gc,BlackPixel(display,DefaultScreen(display)));
|
||||
XSetBackground(display,fl_gc,WhitePixel(display,DefaultScreen(display)));
|
||||
|
||||
|
||||
/* set up the extra trailing node for the linked list, makes insertion
|
||||
** into the list easier */
|
||||
fl_start = (NameData *)calloc(1,1+sizeof(NameData));
|
||||
fl_start->FileN = (char *)NULL;
|
||||
fl_start->Next = NULL;
|
||||
|
||||
/* make the list, showing files in the application`s current directory
|
||||
*/
|
||||
(void) fl_make_list();
|
||||
|
||||
window_fit(fl_getframe);
|
||||
xv_set(fl_getframe, XV_SHOW, TRUE, NULL);
|
||||
return(fl_getframe);
|
||||
}
|
||||
|
||||
|
||||
int fl_open_btn_lf(item, event)
|
||||
/* callback procedure for the open button. If it's a directory, switch to
|
||||
** the new directory, otherwise return the filename
|
||||
*/
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
int i, end;
|
||||
char namebuf[GBUFSIZ], thestr[GBUFSIZ];
|
||||
NameData *current;
|
||||
|
||||
if(fl_current_picked != -1) /* then an item is selected. Work with it */
|
||||
{
|
||||
/* find item in list */
|
||||
current = fl_start;
|
||||
for(i=0; i<fl_current_picked; i++)
|
||||
current = current->Next;
|
||||
strcpy(namebuf, current->FileN);
|
||||
if(current->type == 1) /* then it's a directory, so switch to it */
|
||||
{
|
||||
if(fl_checkdir(namebuf))
|
||||
{
|
||||
chdir(namebuf);
|
||||
(void) fl_make_list();
|
||||
fl_set_dirtext(fl_DirText);
|
||||
return XV_OK;
|
||||
}
|
||||
}
|
||||
else /* it's a file name, so return it */
|
||||
{
|
||||
if(fl_checkdir(xv_get(fl_DirText, PANEL_VALUE))) /* then valid dir */
|
||||
{
|
||||
if(current->type != 0) /* then it's not a regular file, so strip off
|
||||
** the extra type character: *, =, /, or @ */
|
||||
namebuf[strlen(namebuf)-1]='\0';
|
||||
/* create the file string (with full directory path) */
|
||||
getcwd(thestr, GBUFSIZ);
|
||||
if(thestr[strlen(thestr)-1] != '/')
|
||||
strcat(thestr, "/");
|
||||
strcat(thestr, namebuf);
|
||||
act_on_it_lf(thestr, data); /* give filename to application */
|
||||
xv_destroy_safe(fl_getframe);
|
||||
return XV_OK;
|
||||
}
|
||||
else
|
||||
{ /* invalid directory, so show notice*/
|
||||
int result;
|
||||
Panel panel = (Panel)xv_get(fl_FileList, PANEL_PARENT_PANEL);
|
||||
|
||||
result = notice_prompt(panel, NULL,
|
||||
NOTICE_MESSAGE_STRINGS, "Invalid Directory specified.", NULL,
|
||||
NOTICE_FOCUS_XY, event_x(event), event_y(event),
|
||||
NOTICE_BUTTON_YES, "Change Directory",
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int fl_up_dir_btn(item, event)
|
||||
/* go up one directory */
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
char dirname[GBUFSIZ];
|
||||
|
||||
/* pretty simple, just go up, show it, and change the "Directory:" field */
|
||||
(void) chdir("..");
|
||||
(void) fl_make_list();
|
||||
fl_set_dirtext(fl_DirText);
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
Panel_setting fl_dir_typed(item, event)
|
||||
/* handle when user types return, newline, or tab in the "Directory:" field.
|
||||
** if it's a valid directory, it moves to it, otherwise, display a notice
|
||||
*/
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
int error;
|
||||
char dirname[GBUFSIZ];
|
||||
|
||||
switch (event_action(event))
|
||||
{
|
||||
case '\n':
|
||||
case '\r':
|
||||
case '\t':
|
||||
{
|
||||
if(fl_checkdir(xv_get(fl_DirText, PANEL_VALUE)))
|
||||
{ /* valid directory, chdir to it and show it */
|
||||
chdir(xv_get(fl_DirText, PANEL_VALUE));
|
||||
fl_make_list();
|
||||
fl_set_dirtext(fl_DirText);
|
||||
}
|
||||
else
|
||||
{ /* invalid directory, so show notice */
|
||||
int result;
|
||||
Panel panel = (Panel)xv_get(fl_FileList, PANEL_PARENT_PANEL);
|
||||
|
||||
result = notice_prompt(panel, NULL,
|
||||
NOTICE_MESSAGE_STRINGS, "Invalid Directory specified.", NULL,
|
||||
NOTICE_FOCUS_XY, event_x(event), event_y(event),
|
||||
NOTICE_BUTTON_YES, "Change Directory",
|
||||
NULL);
|
||||
}
|
||||
return PANEL_NONE;
|
||||
};
|
||||
/* if it wasn't \n, \t, or \r, pass event on to standard
|
||||
** panel_text handler
|
||||
*/
|
||||
default:
|
||||
return(panel_text_notify(item, event));
|
||||
}
|
||||
}
|
||||
|
||||
int lf_cancel_btn(item, event)
|
||||
/* handle the cancel button. Just destroys the frame and returns
|
||||
*/
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
|
||||
act_on_it_lf(NULL);
|
||||
xv_destroy_safe(fl_getframe);
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
fl_readln(file, buf)
|
||||
FILE *file;
|
||||
char *buf;
|
||||
{
|
||||
int ic;
|
||||
int i = 0;
|
||||
|
||||
while (((ic=getc(file)) != EOF) && ((char)ic != '\n'))
|
||||
buf[i++]= (char)ic;
|
||||
buf[i] = '\0';
|
||||
}
|
||||
|
||||
int fl_make_list()
|
||||
/* Creates a list of files, out of the current working directory. It then
|
||||
** tells the file list canvas to refresh itself. The list sits attached to
|
||||
** fl_start, for reading by the show_list() routine.
|
||||
*/
|
||||
{
|
||||
FILE *dirp; /* for directory data */
|
||||
int i, list_len, cur_pos;
|
||||
char dirname[GBUFSIZ], tempbuf[GBUFSIZ];
|
||||
NameData *current, *temp; /* structures for reading
|
||||
** and sorting file names */
|
||||
int notdone;
|
||||
struct stat statbuf; /* for checking if a file
|
||||
** name is a directory */
|
||||
int pid = getpid(); /* for creation of temp
|
||||
** file for directory list */
|
||||
char tmpcmd[GBUFSIZ]; /* for holding ls command */
|
||||
char tmpname[GBUFSIZ]; /* for holding file names */
|
||||
|
||||
|
||||
getcwd(dirname, GBUFSIZ);
|
||||
sprintf(tmpcmd, "cd %s;ls -F > /usr/tmp/.svlffil%d", dirname, pid);
|
||||
sprintf(tmpname, "/usr/tmp/.svlffil%d", pid);
|
||||
system(tmpcmd);
|
||||
dirp = fopen(tmpname, "r");
|
||||
if (dirp == NULL) /* just a check to make sure */
|
||||
{
|
||||
fprintf(stderr, "fl_make_list was passed bad directory name\n");
|
||||
return(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* free up the old list, to build a new one */
|
||||
for(current = fl_start; current->FileN != (char *)NULL; i++)
|
||||
{
|
||||
temp = current;
|
||||
current = current->Next;
|
||||
free(temp->FileN);
|
||||
free(temp);
|
||||
};
|
||||
/* set up the linked list for sorting */
|
||||
fl_start = (NameData *)calloc(1, sizeof(NameData)+1);
|
||||
fl_start->FileN = (char *)NULL;
|
||||
fl_start->Next = NULL;
|
||||
/* read through the directory entries */
|
||||
list_len = 0;
|
||||
for(fl_readln(dirp, tempbuf); tempbuf[0] != '\0'; fl_readln(dirp, tempbuf))
|
||||
{
|
||||
/* don't include "." and ".." in the list */
|
||||
if((strcmp(tempbuf,"./")!=0)&&
|
||||
(strcmp(tempbuf,"../")!=0))
|
||||
{
|
||||
/* find the right spot in the list to insert the new name */
|
||||
current = fl_start;
|
||||
notdone = 1;
|
||||
while(notdone)
|
||||
if(current->FileN == NULL)
|
||||
notdone = 0;
|
||||
else if(strcmp(tempbuf, current->FileN)>0)
|
||||
current = current->Next;
|
||||
else
|
||||
notdone = 0;
|
||||
/* insert the new name */
|
||||
temp = (NameData *)calloc(1, sizeof(NameData)+1);
|
||||
temp->FileN = current->FileN;
|
||||
temp->type = current->type;
|
||||
temp->Next = current->Next;
|
||||
++list_len;
|
||||
current->Next = temp;
|
||||
/* set flag for file type */
|
||||
switch(tempbuf[strlen(tempbuf)-1])
|
||||
{
|
||||
case '/': /* directory */
|
||||
{
|
||||
current->type = 1;
|
||||
break;
|
||||
}
|
||||
case '@': /* symbolic link */
|
||||
{
|
||||
current->type = 3;
|
||||
break;
|
||||
}
|
||||
case '=': /* socket */
|
||||
{
|
||||
current->type = 4;
|
||||
break;
|
||||
}
|
||||
case '*': /* executable */
|
||||
{
|
||||
current->type = 2;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
current->type = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
current->FileN = (char *)calloc(1, 1+strlen(tempbuf));
|
||||
strcpy(current->FileN,tempbuf);
|
||||
};
|
||||
}
|
||||
fclose(dirp);
|
||||
sprintf(tmpcmd, "rm %s", tmpname);
|
||||
system(tmpcmd);
|
||||
|
||||
/* adjust the Canvas size, and refresh it */
|
||||
fl_current_len = list_len;
|
||||
cur_pos = xv_get(fl_scroll, SCROLLBAR_VIEW_START);
|
||||
xv_set(fl_FileList, CANVAS_HEIGHT,
|
||||
(list_len+fl_view_h()+1)*fl_cell_h,
|
||||
NULL);
|
||||
/* scrollbars bomb with zero-length objects */
|
||||
if(list_len == 0) ++list_len;
|
||||
/* reset scrollbar */
|
||||
xv_set(fl_scroll, SCROLLBAR_VIEW_START, 0,
|
||||
SCROLLBAR_OBJECT_LENGTH, list_len,
|
||||
NULL);
|
||||
/* refresh canvas */
|
||||
wmgr_refreshwindow(canvas_paint_window(fl_FileList));
|
||||
fl_current_picked = -1;
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
fl_set_dirtext(fl_DirText)
|
||||
/* sets the "Directory:" field according to the current directory
|
||||
** fl_DirText is the Xview pointer to the fl_DirText Panel Item
|
||||
*/
|
||||
Panel_item fl_DirText;
|
||||
{
|
||||
char dirbuf[GBUFSIZ];
|
||||
|
||||
getcwd(dirbuf, GBUFSIZ);
|
||||
xv_set(fl_DirText, PANEL_VALUE, dirbuf, NULL);
|
||||
|
||||
}
|
||||
|
||||
int fl_checkdir(dirname)
|
||||
/* check if a directory can be opened. directory can be specified by
|
||||
** full root name or by current name. returns true if it can be opened.
|
||||
*/
|
||||
char *dirname;
|
||||
{
|
||||
DIR *dirp;
|
||||
|
||||
dirp = opendir(dirname);
|
||||
if(dirp == NULL) /* not available, user cannot enter */
|
||||
return(0);
|
||||
else
|
||||
{
|
||||
closedir(dirp); /* must close it */
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
|
||||
void fl_show_list_lf(canvas, paint_window, repaint_area)
|
||||
/* repaint procedure for the file list canvas. Repaints all file names in
|
||||
** the damaged area */
|
||||
Canvas canvas;
|
||||
Xv_Window paint_window;
|
||||
Rectlist *repaint_area;
|
||||
{
|
||||
NameData *current;
|
||||
int i;
|
||||
int start_draw, end_draw;
|
||||
Display *dpy;
|
||||
Window xwin;
|
||||
|
||||
|
||||
/* make sure AUTO_CLEAR is off, this routine will do it itself */
|
||||
while(xv_get(fl_FileList, OPENWIN_AUTO_CLEAR)!=FALSE)
|
||||
{
|
||||
fprintf(stderr, "lf:found bug--OPENWIN_AUTO_CLEAR still TRUE");
|
||||
xv_set(fl_FileList, OPENWIN_AUTO_CLEAR, FALSE, NULL);
|
||||
}
|
||||
/* make sure RETAINED is off, this routine will repaint itself */
|
||||
while(xv_get(fl_FileList, CANVAS_RETAINED)!=FALSE)
|
||||
{
|
||||
fprintf(stderr, "lf:found bug--CANVAS_RETAINED still TRUE");
|
||||
xv_set(fl_FileList, CANVAS_RETAINED, FALSE, NULL);
|
||||
}
|
||||
/* get display and window */
|
||||
dpy = (Display *)xv_get(paint_window, XV_DISPLAY);
|
||||
xwin = (Window)xv_get(paint_window, XV_XID);
|
||||
|
||||
/* clear the area given us by Xview, for simplicity, we clear the
|
||||
** smallest rectangle that encloses all of the destroyed areas, the
|
||||
** rl_bound rectangle */
|
||||
XClearArea(dpy, xwin,
|
||||
repaint_area->rl_bound.r_left,
|
||||
repaint_area->rl_bound.r_top,
|
||||
repaint_area->rl_bound.r_width,
|
||||
repaint_area->rl_bound.r_height,
|
||||
0);
|
||||
/* the next 3 lines calculate which file names must be drawn, by where the
|
||||
** top and bottom of the rl_bound rectangle lie */
|
||||
start_draw = repaint_area->rl_bound.r_top;
|
||||
end_draw = (repaint_area->rl_bound.r_height + start_draw - 1) / fl_cell_h;
|
||||
start_draw = (start_draw - 1) / fl_cell_h;
|
||||
|
||||
/* find the first element to draw in the list */
|
||||
current = fl_start;
|
||||
for(i = 0; (i<start_draw) && (current->Next != NULL); i++)
|
||||
current = current->Next;
|
||||
/* now start drawing them */
|
||||
for(; (i<=end_draw) && (current->Next != NULL); i++)
|
||||
{
|
||||
XDrawString(dpy, xwin, fl_gc, 5, i*fl_cell_h+fl_ascent, current->FileN,
|
||||
strlen(current->FileN));
|
||||
/* add a box if we are drawing the currently picked one */
|
||||
if(i==fl_current_picked)
|
||||
{
|
||||
XDrawRectangle(dpy, xwin, fl_gc,
|
||||
2, i*fl_cell_h,
|
||||
xv_get(canvas, XV_WIDTH)-11-xv_get(fl_scroll, XV_WIDTH),
|
||||
fl_cell_h);
|
||||
}
|
||||
current = current->Next;
|
||||
}
|
||||
}
|
||||
|
||||
void fl_list_select_lf(paint_window, event)
|
||||
/* callback procedure for events that happen in the file list canvas. Checks
|
||||
** mouse button press or drag, and for when the user types return */
|
||||
Xv_window paint_window;
|
||||
Event *event;
|
||||
{
|
||||
int picked, cur_pos;
|
||||
Window xwin = (Window)xv_get(paint_window, XV_XID);
|
||||
Display *dpy;
|
||||
|
||||
dpy = (Display *)xv_get(paint_window, XV_DISPLAY);
|
||||
/* get the current position of the scrollbar for future reference */
|
||||
cur_pos = xv_get(fl_scroll, SCROLLBAR_VIEW_START);
|
||||
|
||||
/* first, check for user picking a file name */
|
||||
if((event_action(event) == ACTION_SELECT)||
|
||||
(event_action(event) == LOC_DRAG))
|
||||
{
|
||||
picked = (event_y(event) - 1) / fl_cell_h;
|
||||
/* make sure the file picked is on screen. if it is not,
|
||||
** we just ignore it. this avoids wierd stuff, like being
|
||||
** able to pick files that aren't shown on screen */
|
||||
if((picked >= cur_pos)&&
|
||||
(picked < cur_pos+fl_view_h())&&
|
||||
(picked < fl_current_len))
|
||||
{
|
||||
/* efficiency: ignore if it is already picked */
|
||||
if(picked != fl_current_picked)
|
||||
{
|
||||
#ifdef SGI /* added refresh to get rid of old boxes*/
|
||||
wmgr_refreshwindow(canvas_paint_window(fl_FileList));
|
||||
#endif /sgi */
|
||||
|
||||
XSetFunction(dpy, fl_gc, GXclear);
|
||||
XDrawRectangle(dpy, xwin, fl_gc,
|
||||
2, fl_current_picked*fl_cell_h,
|
||||
xv_get(fl_FileList, XV_WIDTH)-11-
|
||||
xv_get(fl_scroll, XV_WIDTH),
|
||||
fl_cell_h);
|
||||
XSetFunction(dpy, fl_gc, GXcopy);
|
||||
XDrawRectangle(dpy, xwin, fl_gc,
|
||||
2, picked*fl_cell_h,
|
||||
xv_get(fl_FileList, XV_WIDTH)-11-
|
||||
xv_get(fl_scroll, XV_WIDTH),
|
||||
fl_cell_h);
|
||||
fl_current_picked = picked;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* user may have pressed return, then just call the open button
|
||||
** callback procedure. PANEL_FIRST_ITEM gets the pointer to the
|
||||
** open button itself, since it happens to be the first item on
|
||||
** the panel. fl_open_btn doesn't really use this parameter, but
|
||||
** just in case it ever does, we include it. */
|
||||
else if((event_is_ascii(event))&&(event_action(event) == '\r'))
|
||||
fl_open_btn_lf(xv_get(fl_Getpanel, PANEL_FIRST_ITEM), event);
|
||||
else
|
||||
return;
|
||||
}
|
||||
int fl_view_h()
|
||||
/* returns the current height (in # of file names displayed) of the file list */
|
||||
{
|
||||
return (((int)xv_get(fl_FileList, XV_HEIGHT))/fl_cell_h);
|
||||
}
|
||||
|
||||
Notify_value
|
||||
fl_free_mem(client, status)
|
||||
/* clean up when the frame is destroyed. Frees up the memory used in the
|
||||
** linked list of file names, and sets the Frame variable (getframe) to null */
|
||||
Notify_client client;
|
||||
Destroy_status status;
|
||||
{
|
||||
NameData *current, *temp;
|
||||
int i;
|
||||
|
||||
switch (status)
|
||||
{
|
||||
case DESTROY_CHECKING:
|
||||
return NOTIFY_DONE;
|
||||
case DESTROY_CLEANUP:
|
||||
{
|
||||
for(current = fl_start; current->FileN != (char *)NULL; i++)
|
||||
{
|
||||
temp = current;
|
||||
current = current->Next;
|
||||
free(temp->FileN);
|
||||
free(temp);
|
||||
};
|
||||
fl_getframe = XV_NULL;
|
||||
return notify_next_destroy_func(client, status);
|
||||
}
|
||||
default:
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
}
|
BIN
CORE/ChooseFile.o
Normal file
BIN
CORE/ChooseFile.o
Normal file
Binary file not shown.
667
CORE/CutCopyPaste.c
Executable file
667
CORE/CutCopyPaste.c
Executable file
|
@ -0,0 +1,667 @@
|
|||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
#include <strings.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/scrollbar.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/window.h>
|
||||
#include <xview/notice.h>
|
||||
#include <xview/textsw.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
/*
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
EditCut(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern NA_Alignment *DataSet,*Clipboard;
|
||||
char buffer[80];
|
||||
|
||||
int j,numselected=0,numshifted = 0;
|
||||
|
||||
if(TestSelection() == SELECT_REGION)
|
||||
return(EditSubCut(item,event));
|
||||
|
||||
for(j=0;j<Clipboard->numelements;j++)
|
||||
{
|
||||
FreeNASeq(Clipboard->element[j]);
|
||||
InitNASeq(&(Clipboard->element[j]),TEXT);
|
||||
}
|
||||
Clipboard->numelements = 0;
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].selected)
|
||||
{
|
||||
if(numselected >= Clipboard->maxnumelements-1)
|
||||
{
|
||||
Clipboard->maxnumelements += 10;
|
||||
Clipboard->element = (NA_Sequence*)Realloc
|
||||
(Clipboard->element,
|
||||
Clipboard->maxnumelements*sizeof(NA_Sequence));
|
||||
}
|
||||
Clipboard->element[(Clipboard->numelements)] =
|
||||
DataSet->element[j];
|
||||
/*
|
||||
* Map sequences back into their global positions, as we will
|
||||
* normailze the alignment after they are copied out.
|
||||
*/
|
||||
Clipboard->element[(Clipboard->numelements)++].offset+=
|
||||
DataSet->rel_offset;
|
||||
|
||||
numselected++;
|
||||
}
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].selected)
|
||||
numshifted++;
|
||||
else
|
||||
DataSet->element[j-numshifted] =
|
||||
DataSet->element[j];
|
||||
|
||||
DataSet->numelements -= numshifted;
|
||||
|
||||
NormalizeOffset(DataSet);
|
||||
|
||||
SetNADData(DataSet,EditCan,EditNameCan);
|
||||
|
||||
Regroup(DataSet);
|
||||
|
||||
RepaintAll(TRUE);
|
||||
sprintf(buffer,"%d sequence in Sequence Clipboard",numselected);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
EditCopy(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern NA_Alignment *DataSet,*Clipboard;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
char buffer[80];
|
||||
|
||||
int i,j,numselected=0,numshifted = 0,this;
|
||||
|
||||
if(TestSelection() == SELECT_REGION)
|
||||
return(EditSubCopy(item,event));
|
||||
|
||||
for(j=0;j<Clipboard->numelements;j++)
|
||||
{
|
||||
FreeNASeq(Clipboard->element[j]);
|
||||
InitNASeq(&(Clipboard->element[j]),TEXT);
|
||||
}
|
||||
Clipboard->numelements = 0;
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].selected)
|
||||
{
|
||||
this = Clipboard->numelements;
|
||||
if(numselected >= Clipboard->maxnumelements-1)
|
||||
{
|
||||
Clipboard->maxnumelements += 10;
|
||||
Clipboard->element = (NA_Sequence*)Realloc
|
||||
(Clipboard->element,
|
||||
Clipboard->maxnumelements*sizeof(NA_Sequence));
|
||||
InitNASeq(&(Clipboard->element
|
||||
[this]),
|
||||
DataSet->element[j].elementtype);
|
||||
}
|
||||
Clipboard->element[this] = DataSet->element[j];
|
||||
/*
|
||||
* Handle comments
|
||||
*/
|
||||
if(DataSet->element[j].comments)
|
||||
{
|
||||
Clipboard->element[this].comments = (char*)
|
||||
strdup(DataSet->element[j].comments);
|
||||
Clipboard->element[this].comments_maxlen =
|
||||
Clipboard->element[this].comments_len;
|
||||
}
|
||||
/*
|
||||
* And baggage
|
||||
*/
|
||||
if(DataSet->element[j].baggage)
|
||||
{
|
||||
Clipboard->element[this].baggage = (char*)
|
||||
strdup(DataSet->element[j].baggage);
|
||||
Clipboard->element[this].baggage_maxlen =
|
||||
Clipboard->element[this].baggage_len;
|
||||
}
|
||||
|
||||
Clipboard->element[this].cmask = NULL;
|
||||
Clipboard->element[this].sequence
|
||||
= (NA_Base*)Calloc(DataSet->element[j].seqmaxlen,
|
||||
sizeof(NA_Base));
|
||||
for(i=0;i<DataSet->element[j].seqlen;i++)
|
||||
Clipboard->element[Clipboard->numelements].
|
||||
sequence[i] = DataSet->element[j].sequence[i];
|
||||
|
||||
/*
|
||||
putelem(&(Clipboard->element[Clipboard->
|
||||
numelements]),i,
|
||||
getelem(&(DataSet->element[j]),i));
|
||||
*/
|
||||
/*
|
||||
* Map sequences back into their global positions, as we will
|
||||
* normailze the alignment after they are copied out.
|
||||
*/
|
||||
Clipboard->element[(Clipboard->numelements)].offset +=
|
||||
DataSet->rel_offset;
|
||||
|
||||
(Clipboard->numelements)++;
|
||||
numselected++;
|
||||
}
|
||||
sprintf(buffer,"%d sequence in Clipboard",numselected);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
EditPaste(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern NA_Alignment *DataSet,*Clipboard;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern TextClipSize;
|
||||
int j,last = -1;
|
||||
|
||||
if(TextClipSize != 0)
|
||||
{
|
||||
if(Clipboard->numelements == 0)
|
||||
return(EditSubPaste(item,event));
|
||||
else if(notice_prompt(frame,NULL,NOTICE_MESSAGE_STRINGS,
|
||||
"You have data in both clipboards, do you",
|
||||
"wish to paste from the...",
|
||||
NULL,
|
||||
NOTICE_BUTTON,"Sequence clipboard",1,
|
||||
NOTICE_BUTTON,"Text clipboard",2,
|
||||
0) == 2)
|
||||
return(EditSubPaste(item,event));
|
||||
}
|
||||
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].selected)
|
||||
last = j;
|
||||
|
||||
if(DataSet->maxnumelements <= DataSet->numelements+
|
||||
Clipboard->numelements)
|
||||
{
|
||||
DataSet->maxnumelements+=Clipboard->numelements;
|
||||
DataSet->element =(NA_Sequence*)Realloc(DataSet->element,
|
||||
DataSet->maxnumelements*sizeof(NA_Sequence));
|
||||
}
|
||||
|
||||
for(j=DataSet->numelements-1;j>=last+1;j--)
|
||||
DataSet->element[j+Clipboard->numelements] =
|
||||
DataSet->element[j];
|
||||
|
||||
for(j=0;j<Clipboard->numelements;j++)
|
||||
{
|
||||
DataSet->element[last+1+j] = Clipboard->element[j];
|
||||
/*
|
||||
* be sure to bring them back into alignment with the rest
|
||||
*/
|
||||
DataSet->element[last+1+j].offset -= DataSet->rel_offset;
|
||||
}
|
||||
DataSet->numelements += Clipboard->numelements;
|
||||
|
||||
/*
|
||||
for(j=0;j<Clipboard->numelements;j++)
|
||||
{
|
||||
FreeNASeq(Clipboard->element[j]);
|
||||
InitNASeq(&(Clipboard->element[j]),TEXT);
|
||||
}
|
||||
*/
|
||||
Clipboard->numelements = 0;
|
||||
|
||||
NormalizeOffset(DataSet);
|
||||
|
||||
SetNADData(DataSet,EditCan,EditNameCan);
|
||||
|
||||
Regroup(DataSet);
|
||||
|
||||
RepaintAll(TRUE);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,"Clipboard empty",0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,"Clipboard empty",0);
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
|
||||
Regroup(alignment)
|
||||
NA_Alignment *alignment;
|
||||
{
|
||||
|
||||
int j,group,last;
|
||||
|
||||
for(j=0;j<alignment->numelements;j++)
|
||||
{
|
||||
alignment->element[j].groupf = NULL;
|
||||
alignment->element[j].groupb = NULL;
|
||||
}
|
||||
|
||||
for(group = 1;group <= alignment->numgroups;group++)
|
||||
{
|
||||
last = -1;
|
||||
for(j=0;j<alignment->numelements;j++)
|
||||
if(alignment->element[j].groupid == group)
|
||||
{
|
||||
if(last != -1)
|
||||
{
|
||||
alignment->element[j].groupb =
|
||||
&(alignment->element[last]);
|
||||
alignment->element[last].groupf =
|
||||
&(alignment->element[j]);
|
||||
}
|
||||
last = j;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
EditSubCut(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern NA_Alignment *DataSet,*Clipboard;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern char **TextClip;
|
||||
extern int TextClipSize,TextClipLength;
|
||||
int blank_space = 0;
|
||||
|
||||
NA_Sequence *this_elem;
|
||||
char buffer[80];
|
||||
|
||||
int j,i,k,numselected=0,numshifted = 0,columns=0;
|
||||
|
||||
/*
|
||||
* Check how many columns selected
|
||||
*/
|
||||
|
||||
if(DataSet->selection_mask == NULL)
|
||||
return;
|
||||
|
||||
for(j=0;j<DataSet->maxlen;j++)
|
||||
if(DataSet->selection_mask[j] == '1')
|
||||
columns++;
|
||||
|
||||
if(columns == 0)
|
||||
return;
|
||||
/*
|
||||
* Free old Text clipboard
|
||||
*/
|
||||
if(SubCutViolate())
|
||||
{
|
||||
Warning("Cut violates current protections");
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
for(j=0;j<TextClipSize;j++)
|
||||
Cfree(TextClip[j]);
|
||||
TextClipSize = 0;
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].subselected)
|
||||
TextClipSize++;
|
||||
|
||||
if(TextClipSize == 0)
|
||||
return;
|
||||
|
||||
TextClip = (char**)Calloc(TextClipSize,sizeof(char*));
|
||||
|
||||
for(j=0;j<TextClipSize;j++)
|
||||
TextClip[j] = (char *)Calloc(columns,sizeof(char));
|
||||
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].subselected)
|
||||
{
|
||||
this_elem = &(DataSet->element[j]);
|
||||
/*
|
||||
* Need to check protections
|
||||
*/
|
||||
|
||||
for(i=0,blank_space = 0;i<this_elem->offset;i++)
|
||||
if(DataSet->selection_mask[i] == '1')
|
||||
TextClip[numselected][blank_space++] =
|
||||
(char)getelem(this_elem,i);
|
||||
|
||||
|
||||
for(i=0,k=0;i<this_elem->seqlen;i++)
|
||||
{
|
||||
if(DataSet->selection_mask[i+this_elem->offset]
|
||||
== '1')
|
||||
{
|
||||
if(this_elem->tmatrix)
|
||||
TextClip[numselected][k++] =
|
||||
this_elem->tmatrix[
|
||||
(char)getelem(this_elem,
|
||||
i+this_elem->offset)];
|
||||
else
|
||||
TextClip[numselected][k++] =
|
||||
(char)getelem(this_elem,
|
||||
i+this_elem->offset);
|
||||
}
|
||||
|
||||
if((k!=0) && (i<this_elem->seqlen-1))
|
||||
{
|
||||
this_elem->sequence[1+i-k] =
|
||||
this_elem->sequence[1+i];
|
||||
if(this_elem->cmask)
|
||||
{
|
||||
this_elem->cmask[1+i-k] =
|
||||
this_elem->cmask[1+i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
numselected++;
|
||||
this_elem->seqlen -= k;
|
||||
this_elem->offset -= blank_space;
|
||||
/*
|
||||
* This might cause problems later on if the selection mask is
|
||||
* not cleaned...Make sure you test for subselected, not just
|
||||
* for a non-0 mask.
|
||||
*/
|
||||
this_elem->subselected = FALSE;
|
||||
}
|
||||
|
||||
TextClipLength = columns;
|
||||
NormalizeOffset(DataSet);
|
||||
|
||||
SetNADData(DataSet,EditCan,EditNameCan);
|
||||
|
||||
Regroup(DataSet);
|
||||
|
||||
RepaintAll(TRUE);
|
||||
|
||||
sprintf(buffer,"%d bytes in Text Clipboard",numselected*columns);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SubCutViolate()
|
||||
{
|
||||
int i,j;
|
||||
NA_Sequence *this_elem;
|
||||
extern NA_Alignment *DataSet;
|
||||
char base,tbase;
|
||||
int GAP=FALSE,UNAMB=FALSE,AMB=FALSE,prot;
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
{
|
||||
this_elem = &(DataSet->element[j]);
|
||||
prot = this_elem->protect;
|
||||
if((this_elem->subselected)&& (this_elem->elementtype!=TEXT))
|
||||
{
|
||||
for(i=0;i<DataSet->maxlen;i++)
|
||||
if(DataSet->selection_mask[i] == '1')
|
||||
{
|
||||
base = (char)getelem(this_elem,i);
|
||||
if(this_elem->tmatrix)
|
||||
tbase = (this_elem->tmatrix[base])|32;
|
||||
switch(this_elem->elementtype)
|
||||
{
|
||||
case DNA:
|
||||
case RNA:
|
||||
if((base&15) == 0)
|
||||
GAP=TRUE;
|
||||
else if(tbase == 'n')
|
||||
AMB=TRUE;
|
||||
else
|
||||
UNAMB = TRUE;
|
||||
break;
|
||||
case PROTEIN:
|
||||
if(base == '-' ||
|
||||
base == '~' ||
|
||||
base == ' ')
|
||||
GAP=TRUE;
|
||||
else if(base == 'X' ||
|
||||
base == 'x')
|
||||
AMB=TRUE;
|
||||
else
|
||||
UNAMB = TRUE;
|
||||
break;
|
||||
case MASK:
|
||||
if(base == '0')
|
||||
GAP = TRUE;
|
||||
else
|
||||
UNAMB = TRUE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if(((prot & PROT_WHITE_SPACE)==0) && GAP)
|
||||
return(TRUE);
|
||||
else if(((prot & PROT_GREY_SPACE)==0) && AMB)
|
||||
return(TRUE);
|
||||
else if(((prot & PROT_BASE_CHANGES)==0) &&
|
||||
UNAMB)
|
||||
return(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
EditSubPaste(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern NA_Alignment *DataSet,*Clipboard;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern char **TextClip;
|
||||
extern int TextClipSize,TextClipLength;
|
||||
int *temp_cmask,cursorx,cursory;
|
||||
|
||||
NA_Sequence *this_elem;
|
||||
char buffer[80];
|
||||
|
||||
int j,i,k,violate = FALSE;
|
||||
|
||||
if(DataSet->selection_mask == NULL)
|
||||
return(XV_OK);
|
||||
|
||||
if(TextClipSize == 0 || TextClipLength==0)
|
||||
return(XV_OK);
|
||||
|
||||
cursorx = ((NA_DisplayData*)(DataSet->na_ddata))->cursor_x;
|
||||
cursory = ((NA_DisplayData*)(DataSet->na_ddata))->cursor_y;
|
||||
|
||||
if(cursory + TextClipSize > DataSet->numelements)
|
||||
{
|
||||
Warning("Can't paste a block there.");
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
for(j=0;j<TextClipSize;j++)
|
||||
{
|
||||
this_elem = &(DataSet->element[j+cursory]);
|
||||
violate |= InsertViolate(DataSet,this_elem,
|
||||
TextClip[j],cursorx,TextClipLength);
|
||||
}
|
||||
if(violate == FALSE)
|
||||
{
|
||||
for(j=0;j<TextClipSize;j++)
|
||||
{
|
||||
this_elem = &(DataSet->element[j+cursory]);
|
||||
InsertNA(this_elem,TextClip[j],TextClipLength,cursorx);
|
||||
}
|
||||
}
|
||||
|
||||
RepaintAll(TRUE);
|
||||
sprintf(buffer,"%d bytes in Text Clipboard",TextClipLength *
|
||||
TextClipSize);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
EditSubCopy(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern Frame frame;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
extern NA_Alignment *DataSet,*Clipboard;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern char **TextClip;
|
||||
extern int TextClipSize,TextClipLength;
|
||||
int blank_space = 0;
|
||||
|
||||
NA_Sequence *this_elem;
|
||||
char buffer[80];
|
||||
|
||||
int j,i,k,numselected=0,numshifted = 0,columns=0;
|
||||
|
||||
/*
|
||||
* Check how many columns selected
|
||||
*/
|
||||
|
||||
if(DataSet->selection_mask == NULL)
|
||||
return;
|
||||
|
||||
for(j=0;j<DataSet->maxlen;j++)
|
||||
if(DataSet->selection_mask[j] == '1')
|
||||
columns++;
|
||||
|
||||
if(columns == 0)
|
||||
return;
|
||||
/*
|
||||
* Free old Text clipboard
|
||||
*/
|
||||
for(j=0;j<TextClipSize;j++)
|
||||
Cfree(TextClip[j]);
|
||||
TextClipSize = 0;
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].subselected)
|
||||
TextClipSize++;
|
||||
|
||||
if(TextClipSize == 0)
|
||||
return;
|
||||
|
||||
TextClip = (char**)Calloc(TextClipSize,sizeof(char*));
|
||||
|
||||
for(j=0;j<TextClipSize;j++)
|
||||
TextClip[j] = (char *)Calloc(columns,sizeof(char));
|
||||
|
||||
|
||||
for(j=0;j<DataSet->numelements;j++)
|
||||
if(DataSet->element[j].subselected)
|
||||
{
|
||||
this_elem = &(DataSet->element[j]);
|
||||
/*
|
||||
* Need to check protections
|
||||
*/
|
||||
|
||||
for(i=0,blank_space = 0;i<this_elem->offset;i++)
|
||||
if(DataSet->selection_mask[i] == '1')
|
||||
TextClip[numselected][blank_space++] =
|
||||
(char)getelem(this_elem,i);
|
||||
|
||||
|
||||
for(i=0,k=0;i<this_elem->seqlen;i++)
|
||||
{
|
||||
if(DataSet->selection_mask[i+this_elem->offset]
|
||||
== '1')
|
||||
{
|
||||
if(this_elem->tmatrix)
|
||||
TextClip[numselected][k++] =
|
||||
this_elem->tmatrix[
|
||||
(char)getelem(this_elem,
|
||||
i+this_elem->offset)];
|
||||
else
|
||||
TextClip[numselected][k++] =
|
||||
(char)getelem(this_elem,
|
||||
i+this_elem->offset);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
numselected++;
|
||||
this_elem->subselected = FALSE;
|
||||
}
|
||||
|
||||
TextClipLength = columns;
|
||||
|
||||
SetNADData(DataSet,EditCan,EditNameCan);
|
||||
|
||||
RepaintAll(TRUE);
|
||||
|
||||
sprintf(buffer,"%d bytes in Text Clipboard",numselected*columns);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
int TestSelection()
|
||||
{
|
||||
int j,select_mode = 0,selected = 0,subselected = 0;
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Frame frame;
|
||||
|
||||
for(j=0;j<((NA_Alignment*)DataSet)->numelements;j++)
|
||||
{
|
||||
selected|=((NA_Alignment*)DataSet)->element[j].selected;
|
||||
subselected|=((NA_Alignment*)DataSet)->element[j].subselected;
|
||||
}
|
||||
|
||||
if (!(selected || subselected))
|
||||
Warning("Warning, no sequences selected");
|
||||
|
||||
if(selected && !subselected)
|
||||
select_mode = SELECTED;
|
||||
|
||||
if(!selected && subselected)
|
||||
select_mode = SELECT_REGION;
|
||||
|
||||
if(selected && subselected)
|
||||
select_mode = notice_prompt(frame,NULL,NOTICE_MESSAGE_STRINGS,
|
||||
"Do you want to use the...",NULL,
|
||||
NOTICE_BUTTON,"Selected sequences",SELECTED,
|
||||
NOTICE_BUTTON,"Selected regions",SELECT_REGION,
|
||||
NULL);
|
||||
/*
|
||||
for(j=0;j<((NA_Alignment*)DataSet)->numelements;j++)
|
||||
{
|
||||
if(select_mode == SELECT_REGION)
|
||||
((NA_Alignment*)DataSet)->element[j].selected = FALSE;
|
||||
else
|
||||
((NA_Alignment*)DataSet)->element[j].subselected = FALSE;
|
||||
}
|
||||
*/
|
||||
|
||||
return(select_mode);
|
||||
}
|
||||
|
BIN
CORE/CutCopyPaste.o
Normal file
BIN
CORE/CutCopyPaste.o
Normal file
Binary file not shown.
356
CORE/DrawNA.c
Executable file
356
CORE/DrawNA.c
Executable file
|
@ -0,0 +1,356 @@
|
|||
#include <malloc.h>
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/font.h>
|
||||
#include <xview/xv_xrect.h>
|
||||
#include <xview/cms.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
|
||||
/*
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
|
||||
DrawNAColor(can,NAdd,xwin,left,top,indx,lpos,rpos,dpy,gc,mode,inverted)
|
||||
Canvas can;
|
||||
NA_DisplayData *NAdd;
|
||||
Window xwin;
|
||||
Display *dpy;
|
||||
int left,top,indx,lpos,rpos,mode,inverted;
|
||||
GC gc;
|
||||
{
|
||||
char buffer[MAX_NA_DISPLAY_WIDTH],map_chr;
|
||||
register int j,i,next_color,invrt = FALSE;
|
||||
int unselected_inverted = FALSE,dir;
|
||||
int pmin,wid,x,y,*tmat,fdx,fdy,pmax,first,used;
|
||||
register int seqposindx;
|
||||
register unsigned long *pixels;
|
||||
extern int SCALE, DisplayAttr;
|
||||
extern Pixmap grey_pm[];
|
||||
|
||||
int *color_mask,*colors,color,start_col,offset;
|
||||
int maxlen = 0,global_offset = 0;
|
||||
NA_Base base;
|
||||
NA_Sequence *elem;
|
||||
NA_Alignment *aln = NAdd->aln;
|
||||
int scrn = DefaultScreen(dpy);
|
||||
int dithered = FALSE;
|
||||
|
||||
colors = aln->element[indx].col_lut;
|
||||
/*
|
||||
* Just in case no characters need to be drawn...
|
||||
*/
|
||||
next_color = 13;
|
||||
XSetForeground(dpy,gc,BlackPixel(dpy,scrn));
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
|
||||
|
||||
pixels = (unsigned long*)xv_get(can,WIN_X_COLOR_INDICES);
|
||||
fdx = NAdd -> font_dx;
|
||||
fdy = NAdd -> font_dy;
|
||||
y=fdy * (indx+1-top);
|
||||
|
||||
elem = &(NAdd->aln->element[indx]);
|
||||
tmat = aln->element[indx].tmatrix;
|
||||
#ifdef HGL
|
||||
dir = OrigDir(elem);
|
||||
#else
|
||||
dir = (elem->attr & IS_PRIMARY)?1:
|
||||
(elem->attr & IS_SECONDARY)?-1:0;
|
||||
#endif
|
||||
|
||||
map_chr = (dir == 0)?'+':(dir == -1)?'<':'>';
|
||||
|
||||
wid = (rpos-lpos)/SCALE+1;
|
||||
|
||||
seqposindx=lpos;
|
||||
pmax = MIN(lpos+wid*SCALE,aln->element[indx].seqlen+
|
||||
aln->element[indx].offset);
|
||||
/*
|
||||
pmax = lpos+wid*SCALE;
|
||||
*/
|
||||
if(aln->element[indx].elementtype == TEXT)
|
||||
mode = COLOR_MONO;
|
||||
|
||||
if((inverted && ((DisplayAttr & INVERTED)==0)) ||
|
||||
((inverted==FALSE) && (DisplayAttr & INVERTED)))
|
||||
unselected_inverted = TRUE;
|
||||
else
|
||||
unselected_inverted = FALSE;
|
||||
if(NAdd->num_colors <16 && mode != COLOR_MONO )
|
||||
dithered = TRUE;
|
||||
|
||||
if(mode == COLOR_SEQ_MASK)
|
||||
{
|
||||
color_mask = elem->cmask;
|
||||
if(color_mask == NULL)
|
||||
mode = COLOR_LOOKUP;
|
||||
}
|
||||
if(mode == COLOR_ALN_MASK)
|
||||
{
|
||||
color_mask = NAdd->aln->cmask;
|
||||
global_offset = aln->cmask_offset - aln->rel_offset;
|
||||
maxlen = aln->maxlen;
|
||||
if(color_mask == NULL)
|
||||
mode = COLOR_LOOKUP;
|
||||
}
|
||||
if(mode == COLOR_LOOKUP && colors == NULL)
|
||||
mode = COLOR_MONO;
|
||||
|
||||
color = 9999;
|
||||
for(j=0;seqposindx<pmax;j++,seqposindx+=SCALE)
|
||||
{
|
||||
base = getelem(elem,seqposindx);
|
||||
offset = elem->offset;
|
||||
|
||||
switch(mode)
|
||||
{
|
||||
case COLOR_SEQ_MASK:
|
||||
next_color = ((seqposindx >= offset) &&
|
||||
(seqposindx<offset+elem->seqlen))?
|
||||
color_mask[seqposindx-offset]:13;
|
||||
break;
|
||||
case COLOR_LOOKUP:
|
||||
next_color = colors[base];
|
||||
break;
|
||||
case COLOR_ALN_MASK:
|
||||
next_color = ((seqposindx >= global_offset) &&
|
||||
(seqposindx-global_offset < aln->cmask_len))?
|
||||
color_mask[seqposindx-global_offset]:13;
|
||||
break;
|
||||
case COLOR_STRAND:
|
||||
if(((tmat?tmat[base]:base) == '-') ||
|
||||
((tmat?tmat[base]:base) == '~'))
|
||||
next_color = 13;
|
||||
#ifdef HGL
|
||||
else if(elem->attr & IS_ORIG_PRIMARY)
|
||||
next_color = 3;
|
||||
else if(elem->attr & IS_ORIG_SECONDARY)
|
||||
next_color = 6;
|
||||
#else
|
||||
else if(elem->attr & IS_PRIMARY)
|
||||
next_color = 3;
|
||||
else if(elem->attr & IS_SECONDARY)
|
||||
next_color = 6;
|
||||
#endif
|
||||
else
|
||||
next_color = NAdd->black;
|
||||
break;
|
||||
case COLOR_MONO:
|
||||
default:
|
||||
next_color = NAdd->black;
|
||||
break;
|
||||
}
|
||||
|
||||
if(elem->subselected)
|
||||
if(aln->selection_mask[seqposindx] == '1')
|
||||
next_color = 1000 + NAdd->black;
|
||||
/*
|
||||
Adding 1000 to a color signals that it is selected/inverted
|
||||
*/
|
||||
if( next_color == color)
|
||||
{
|
||||
buffer[j] = tmat?
|
||||
tmat[base]:base;
|
||||
/*
|
||||
* If in map view, set character to '>' '<' '+' or ' '
|
||||
*/
|
||||
if(SCALE > 1)
|
||||
{
|
||||
if(buffer[j] != '-' && buffer[j] != '~')
|
||||
buffer[j] = map_chr;
|
||||
else
|
||||
buffer[j] = ' ';
|
||||
}
|
||||
}
|
||||
|
||||
else if (color == 9999)
|
||||
{
|
||||
buffer[j] = tmat? tmat[base]:base;
|
||||
/*
|
||||
* If in map view, set character to '>' '<' '+' or ' '
|
||||
*/
|
||||
if(SCALE > 1)
|
||||
{
|
||||
if(buffer[j] != '-' && buffer[j] != '~')
|
||||
buffer[j] = map_chr;
|
||||
else
|
||||
buffer[j] = ' ';
|
||||
}
|
||||
color = next_color;
|
||||
start_col = (seqposindx - left)/SCALE * fdx;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(color > 999)
|
||||
{
|
||||
invrt = (unselected_inverted)?FALSE:TRUE;
|
||||
color -= 1000;
|
||||
}
|
||||
else
|
||||
invrt = unselected_inverted;
|
||||
if(invrt)
|
||||
{
|
||||
if(dithered)
|
||||
{
|
||||
XSetStipple(dpy,gc,grey_pm[15-color]);
|
||||
}
|
||||
else
|
||||
{
|
||||
XSetBackground(dpy,gc,pixels[color]);
|
||||
XSetForeground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(dithered)
|
||||
{
|
||||
XSetStipple(dpy,gc,grey_pm[color]);
|
||||
}
|
||||
else
|
||||
{
|
||||
XSetForeground(dpy,gc,pixels[color]);
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
if(dithered == FALSE)
|
||||
XDrawImageString(dpy,xwin,gc,
|
||||
start_col, y, buffer,j);
|
||||
else
|
||||
{
|
||||
XSetFillStyle(dpy,gc,FillOpaqueStippled);
|
||||
XFillRectangle(dpy,xwin,gc,start_col,y-fdy,
|
||||
j * fdx,fdy);
|
||||
XSetFillStyle(dpy,gc,FillSolid);
|
||||
XDrawString(dpy,xwin,gc,
|
||||
start_col, y, buffer,j);
|
||||
}
|
||||
|
||||
wid -= j;
|
||||
j=0;
|
||||
buffer[j] = tmat?
|
||||
tmat[base]:base;
|
||||
/*
|
||||
* If in map view, set character to '>' '<' '+' or ' '
|
||||
*/
|
||||
if(SCALE > 1)
|
||||
{
|
||||
if(buffer[j] != '-' && buffer[j] != '~')
|
||||
buffer[j] = map_chr;
|
||||
else
|
||||
buffer[j] = ' ';
|
||||
}
|
||||
color = next_color;
|
||||
start_col = (seqposindx - left)/SCALE * fdx;
|
||||
}
|
||||
}
|
||||
|
||||
if(color == 9999)
|
||||
color = 13;
|
||||
|
||||
if(color > 999)
|
||||
{
|
||||
invrt = (unselected_inverted)?FALSE:TRUE;
|
||||
color -= 1000;
|
||||
}
|
||||
else
|
||||
invrt = unselected_inverted;
|
||||
if(invrt)
|
||||
{
|
||||
if(dithered)
|
||||
XSetStipple(dpy,gc,grey_pm[15-color]);
|
||||
else
|
||||
{
|
||||
XSetBackground(dpy,gc,pixels[color]);
|
||||
XSetForeground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(dithered)
|
||||
XSetStipple(dpy,gc,grey_pm[color]);
|
||||
else
|
||||
{
|
||||
XSetForeground(dpy,gc,pixels[color]);
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
|
||||
if(dithered == FALSE)
|
||||
XDrawImageString(dpy,xwin,gc, start_col,y, buffer,j);
|
||||
else
|
||||
{
|
||||
XSetFillStyle(dpy,gc,FillOpaqueStippled);
|
||||
XFillRectangle(dpy,xwin,gc,start_col,y-fdy,
|
||||
j * fdx,fdy);
|
||||
XSetFillStyle(dpy,gc,FillSolid);
|
||||
XDrawString(dpy,xwin,gc, start_col,y, buffer,j);
|
||||
}
|
||||
|
||||
wid -= j;
|
||||
start_col = (seqposindx - left)/SCALE * fdx;
|
||||
for(j=0;j<wid;j++)
|
||||
{
|
||||
if(SCALE == 1 && elem->elementtype != TEXT)
|
||||
buffer[j] = '~';
|
||||
else
|
||||
buffer[j] = ' ';
|
||||
}
|
||||
invrt = unselected_inverted;
|
||||
|
||||
buffer[j] = '\0';
|
||||
switch(mode)
|
||||
{
|
||||
case COLOR_MONO:
|
||||
color = NAdd ->black;
|
||||
break;
|
||||
case COLOR_SEQ_MASK:
|
||||
case COLOR_ALN_MASK:
|
||||
case COLOR_LOOKUP:
|
||||
default:
|
||||
color = 13;
|
||||
break;
|
||||
}
|
||||
if(invrt)
|
||||
{
|
||||
if(dithered)
|
||||
XSetStipple(dpy,gc,grey_pm[15-color]);
|
||||
else
|
||||
{
|
||||
XSetBackground(dpy,gc,pixels[color]);
|
||||
XSetForeground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(dithered)
|
||||
XSetStipple(dpy,gc,grey_pm[color]);
|
||||
else
|
||||
{
|
||||
XSetForeground(dpy,gc,pixels[color]);
|
||||
XSetBackground(dpy,gc,WhitePixel(dpy,scrn));
|
||||
}
|
||||
}
|
||||
|
||||
if(dithered == FALSE)
|
||||
XDrawImageString(dpy,xwin,gc,start_col,y, buffer,j);
|
||||
else
|
||||
{
|
||||
XSetFillStyle(dpy,gc,FillOpaqueStippled);
|
||||
XFillRectangle(dpy,xwin,gc,start_col,y-fdy, j*fdx,fdy);
|
||||
XSetFillStyle(dpy,gc,FillSolid);
|
||||
XDrawString(dpy,xwin,gc,start_col,y, buffer,j);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
BIN
CORE/DrawNA.o
Normal file
BIN
CORE/DrawNA.o
Normal file
Binary file not shown.
1312
CORE/Edit.c
Executable file
1312
CORE/Edit.c
Executable file
File diff suppressed because it is too large
Load diff
BIN
CORE/Edit.o
Normal file
BIN
CORE/Edit.o
Normal file
Binary file not shown.
981
CORE/EventHandler.c
Executable file
981
CORE/EventHandler.c
Executable file
|
@ -0,0 +1,981 @@
|
|||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
#include <strings.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/window.h>
|
||||
#include <xview/textsw.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
|
||||
/*
|
||||
HandleMenus():
|
||||
Callback routine for the menus. Determine what function was called,
|
||||
and perform the desired operation.
|
||||
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
void HandleMenus(m,mi)
|
||||
Menu m;
|
||||
Menu_item mi;
|
||||
{
|
||||
extern Gmenu menu[];
|
||||
extern GmenuItem *current_item;
|
||||
extern Frame frame,pframe;
|
||||
extern Panel popup;
|
||||
extern int num_menus,BlockInput;
|
||||
|
||||
int i,j,k,curmenu,curitem;
|
||||
Gmenu *thismenu;
|
||||
GmenuItem *thisitem;
|
||||
Panel choice;
|
||||
char *label1;
|
||||
|
||||
|
||||
/*
|
||||
* Find menu, and menu item by searching menu[] and menu[].item[]
|
||||
* for the called menu item.
|
||||
*/
|
||||
if(xv_get(pframe,WIN_SHOW))
|
||||
{
|
||||
/*
|
||||
* By returning after destroying the dialog box, a potential
|
||||
* problem with syncronization is avoided. To demonstrate, compile
|
||||
* without the following "return", and click on a menu item several
|
||||
* times quickly. The current solution is annoying in that if one
|
||||
* decides to change menu items without hitting <cancel>, they must
|
||||
* hit the menu button twice.
|
||||
*/
|
||||
DONT();
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Locate menu chosen...
|
||||
*/
|
||||
BlockInput = TRUE;
|
||||
for(j=0;j<num_menus;j++)
|
||||
if(menu[j].X == m)
|
||||
curmenu = j;
|
||||
|
||||
thismenu = &(menu[curmenu]);
|
||||
label1 = (char*)xv_get(mi,MENU_STRING);
|
||||
|
||||
/*
|
||||
* and menu item chosen.
|
||||
*/
|
||||
for(j=0;j<menu[curmenu].numitems;j++)
|
||||
if(strcmp(label1,thismenu->item[j].label) == 0)
|
||||
curitem = j;
|
||||
|
||||
thisitem = &(thismenu->item[curitem]);
|
||||
xv_set(popup,PANEL_LAYOUT,PANEL_VERTICAL,0);
|
||||
|
||||
|
||||
/*
|
||||
* Create a temporary dialog popup, and set all of the calling
|
||||
* arguements by dialog box returned values.
|
||||
*/
|
||||
|
||||
/*
|
||||
* For all needed arguments...
|
||||
*/
|
||||
for(j=0;j<thisitem->numargs;j++)
|
||||
{
|
||||
/*
|
||||
* Create a prompt for the argument
|
||||
*/
|
||||
switch (thisitem->arg[j].type)
|
||||
{
|
||||
case SLIDER:
|
||||
thisitem->arg[j].X=xv_create(popup,PANEL_SLIDER,
|
||||
PANEL_LAYOUT,PANEL_VERTICAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_MIN_VALUE,thisitem->arg[j].min,
|
||||
PANEL_MAX_VALUE,thisitem->arg[j].max,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
0);
|
||||
break;
|
||||
|
||||
case TEXTFIELD:
|
||||
thisitem->arg[j].X = xv_create(popup,PANEL_TEXT,
|
||||
PANEL_LAYOUT,PANEL_VERTICAL,
|
||||
PANEL_VALUE_DISPLAY_LENGTH,32,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_VALUE,thisitem->arg[j].textvalue,
|
||||
PANEL_NOTIFY_LEVEL,PANEL_ALL,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
0);
|
||||
break;
|
||||
|
||||
case CHOOSER:
|
||||
thisitem->arg[j].X=xv_create(popup,
|
||||
PANEL_CHOICE,
|
||||
PANEL_LAYOUT,PANEL_HORIZONTAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
PANEL_CHOICE_STRING,
|
||||
0,thisitem->arg[j].choice[0].label,
|
||||
0);
|
||||
for(i=1;i<thisitem->arg[j].numchoices;i++)
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_CHOICE_STRING, i,
|
||||
thisitem->arg[j].choice[i].label,
|
||||
0);
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
0);
|
||||
break;
|
||||
case CHOICE_LIST:
|
||||
thisitem->arg[j].X=xv_create(popup,
|
||||
PANEL_LIST,
|
||||
PANEL_LAYOUT, PANEL_VERTICAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_DISPLAY_ROWS,3,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
PANEL_LIST_STRING,
|
||||
0,thisitem->arg[j].choice[0].label,
|
||||
0);
|
||||
for(i=1;i<thisitem->arg[j].numchoices;i++)
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_LIST_STRING, i,
|
||||
thisitem->arg[j].choice[i].label,
|
||||
0);
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
0);
|
||||
break;
|
||||
case CHOICE_MENU:
|
||||
thisitem->arg[j].X=xv_create(popup,
|
||||
PANEL_CHOICE_STACK,
|
||||
PANEL_LAYOUT,PANEL_HORIZONTAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
PANEL_CHOICE_STRING,
|
||||
0,thisitem->arg[j].choice[0].label,
|
||||
0);
|
||||
for(i=1;i<thisitem->arg[j].numchoices;i++)
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_CHOICE_STRING, i,
|
||||
thisitem->arg[j].choice[i].label,
|
||||
0);
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
0);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
xv_set(pframe,FRAME_LABEL,thisitem->label,
|
||||
WIN_DESIRED_HEIGHT,1000,
|
||||
WIN_DESIRED_WIDTH,1000,
|
||||
/*
|
||||
I worry about this one, but a true dialog should not
|
||||
allow you to do anything other than respond to it.
|
||||
*/
|
||||
|
||||
WIN_GRAB_ALL_INPUT,TRUE,
|
||||
0);
|
||||
|
||||
current_item = thisitem;
|
||||
|
||||
/*
|
||||
* Fit it, and show it
|
||||
*/
|
||||
window_fit(popup);
|
||||
window_fit(pframe);
|
||||
if((thisitem->numargs >0) || (thisitem->help !=NULL))
|
||||
xv_set(pframe,WIN_SHOW,TRUE,0);
|
||||
else
|
||||
DO();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
HandleMenuItem():
|
||||
Callback routine for buttons etc. in the dialog box. Store the
|
||||
values returned from the dialog box so that they can be used for calling
|
||||
the external function.
|
||||
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
HandleMenuItem(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
int i,j,thisarg;
|
||||
extern GmenuItem *current_item;
|
||||
|
||||
Panel_setting ps;
|
||||
/*
|
||||
* Find which value was modified...
|
||||
*/
|
||||
for(j=0;j<current_item->numargs;j++)
|
||||
if(item == current_item->arg[j].X)
|
||||
thisarg = j;
|
||||
/*
|
||||
* and store the new value.
|
||||
*/
|
||||
switch(current_item->arg[thisarg].type)
|
||||
{
|
||||
case CHOICE_LIST:
|
||||
for(j=0;j < (int)xv_get(item,PANEL_LIST_NROWS);j++)
|
||||
{
|
||||
if((int)xv_get(item, PANEL_LIST_SELECTED, j) )
|
||||
current_item->arg[thisarg].value = j;
|
||||
}
|
||||
break;
|
||||
case CHOICE_MENU:
|
||||
current_item->arg[thisarg].value =
|
||||
(int)xv_get(item,PANEL_VALUE);
|
||||
break;
|
||||
case CHOOSER:
|
||||
current_item->arg[thisarg].value =
|
||||
(int)xv_get(item,PANEL_VALUE);
|
||||
break;
|
||||
case SLIDER:
|
||||
current_item->arg[thisarg].value =
|
||||
(int)xv_get(item,PANEL_VALUE);
|
||||
break;
|
||||
case TEXTFIELD:
|
||||
ps = panel_text_notify(item,event);
|
||||
strcpy(current_item->arg[thisarg].textvalue,
|
||||
(char*)xv_get(item,PANEL_VALUE));
|
||||
return(ps);
|
||||
break;
|
||||
default:
|
||||
Error("Menu argument type invalid");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
DO():
|
||||
Call external function.
|
||||
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
DO()
|
||||
{
|
||||
extern GmenuItem *current_item; /* rtm 18.III.98 */
|
||||
extern int BlockInput; /* rtm 18.III.98 */
|
||||
extern Frame pframe,frame;
|
||||
extern Panel popup;
|
||||
extern NA_Alignment *DataSet;
|
||||
extern char current_dir[];
|
||||
extern int OVERWRITE;
|
||||
|
||||
int i,j,k,flag,select_mode;
|
||||
static int fileindx = 0;
|
||||
char *Action,buffer[GBUFSIZ],temp[80];
|
||||
|
||||
|
||||
/*
|
||||
* Remove dialog.....
|
||||
*/
|
||||
flag = FALSE;
|
||||
for(j=0;j<current_item->numinputs;j++)
|
||||
if(current_item->input[j].format != STATUS_FILE)
|
||||
flag = TRUE;
|
||||
|
||||
if(flag && DataSet)
|
||||
select_mode = TestSelection();
|
||||
|
||||
/*
|
||||
Make sure that we are still in a writeable directory
|
||||
*/
|
||||
(void)chdir(current_dir);
|
||||
for(j=0;j<current_item->numinputs;j++)
|
||||
{
|
||||
sprintf(buffer,"gde%d_%d",getpid(),fileindx++);
|
||||
current_item->input[j].name = String(buffer);
|
||||
switch(current_item->input[j].format)
|
||||
{
|
||||
case COLORMASK:
|
||||
WriteCMask(DataSet,buffer,select_mode,
|
||||
current_item->input[j].maskable);
|
||||
break;
|
||||
case GENBANK:
|
||||
WriteGen(DataSet,buffer,select_mode,
|
||||
current_item->input[j].maskable);
|
||||
break;
|
||||
case NA_FLAT:
|
||||
WriteNA_Flat(DataSet,buffer,select_mode,
|
||||
current_item->input[j].maskable);
|
||||
break;
|
||||
case STATUS_FILE:
|
||||
WriteStatus(DataSet,buffer,select_mode);
|
||||
break;
|
||||
case GDE:
|
||||
WriteGDE(DataSet,buffer,select_mode,
|
||||
current_item->input[j].maskable);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for(j=0;j<current_item->numoutputs;j++)
|
||||
{
|
||||
sprintf(buffer,"gde%d_%d",getpid(),fileindx++);
|
||||
current_item->output[j].name = String(buffer);
|
||||
}
|
||||
|
||||
xv_destroy_safe(pframe);
|
||||
pframe = xv_create(frame,FRAME_CMD,
|
||||
FRAME_CMD_PUSHPIN_IN,TRUE,
|
||||
FRAME_DONE_PROC,FrameDone,
|
||||
FRAME_SHOW_RESIZE_CORNER,FALSE,
|
||||
WIN_DESIRED_HEIGHT,100,
|
||||
WIN_DESIRED_WIDTH,300,
|
||||
XV_X,300,
|
||||
XV_Y,150,
|
||||
WIN_SHOW,FALSE,
|
||||
0);
|
||||
|
||||
/*
|
||||
* Reset dialog for next call...
|
||||
*/
|
||||
|
||||
popup = xv_get(pframe,FRAME_CMD_PANEL);
|
||||
|
||||
xv_create (popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"HELP",
|
||||
PANEL_NOTIFY_PROC,HELP,
|
||||
0);
|
||||
|
||||
xv_create (popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"OK",
|
||||
PANEL_NOTIFY_PROC,DO,
|
||||
0);
|
||||
|
||||
xv_create(popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"Cancel",
|
||||
PANEL_NOTIFY_PROC,DONT,
|
||||
0);
|
||||
|
||||
/*
|
||||
* Create the command line for external the function call
|
||||
*/
|
||||
Action = (char*)strdup(current_item->method);
|
||||
if(Action == NULL)
|
||||
Error("DO(): Error in duplicating method string");
|
||||
for(j=0;j<current_item->numargs;j++)
|
||||
Action = ReplaceArgs(Action,current_item->arg[j]);
|
||||
|
||||
for(j=0;j<current_item->numinputs;j++)
|
||||
Action = ReplaceFile(Action,current_item->input[j]);
|
||||
|
||||
for(j=0;j<current_item->numoutputs;j++)
|
||||
Action = ReplaceFile(Action,current_item->output[j]);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* call and go...
|
||||
*/
|
||||
|
||||
xv_set(pframe,FRAME_BUSY,TRUE,0);
|
||||
xv_set(frame,FRAME_BUSY,TRUE,0);
|
||||
system(Action);
|
||||
cfree(Action);
|
||||
xv_set(pframe,FRAME_BUSY,FALSE,0);
|
||||
xv_set(frame,FRAME_BUSY,FALSE,0);
|
||||
BlockInput = FALSE;
|
||||
|
||||
for(j=0;j<current_item->numoutputs;j++)
|
||||
{
|
||||
if(current_item->output[j].overwrite)
|
||||
{
|
||||
if(current_item->output[j].format == GDE)
|
||||
OVERWRITE = TRUE;
|
||||
else
|
||||
Warning("Overwrite mode only available for GDE format");
|
||||
}
|
||||
switch(current_item->output[j].format)
|
||||
{
|
||||
/*
|
||||
* The LoadData routine must be reworked so that
|
||||
* OpenFileName uses it, and so I can remove the
|
||||
* major kluge in OpenFileName().
|
||||
*/
|
||||
case GENBANK:
|
||||
case NA_FLAT:
|
||||
case GDE:
|
||||
OpenFileName(current_item->output[j].name,NULL);
|
||||
break;
|
||||
case COLORMASK:
|
||||
ReadCMask(current_item->output[j].name);
|
||||
break;
|
||||
case STATUS_FILE:
|
||||
ReadStatus(current_item->output[j].name);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
OVERWRITE = FALSE;
|
||||
}
|
||||
for(j=0;j<current_item->numoutputs;j++)
|
||||
{
|
||||
if(!current_item->output[j].save)
|
||||
{
|
||||
sprintf(buffer,"/bin/rm -f %s",
|
||||
current_item->output[j].name);
|
||||
system(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
for(j=0;j<current_item->numinputs;j++)
|
||||
{
|
||||
if(!current_item->input[j].save)
|
||||
{
|
||||
sprintf(buffer,"/bin/rm -f %s",
|
||||
current_item->input[j].name);
|
||||
system(buffer);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
ReplaceArgs():
|
||||
Replace all command line arguements with the appropriate values
|
||||
stored for the chosen menu item.
|
||||
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
char *ReplaceFile(Action,file)
|
||||
char *Action;
|
||||
GfileFormat file;
|
||||
{
|
||||
char *symbol,*method,*temp;
|
||||
int i,j,newlen;
|
||||
symbol = file.symbol;
|
||||
method = file.name;
|
||||
|
||||
for(; (i=Find2(Action,symbol)) != -1;)
|
||||
{
|
||||
newlen = strlen(Action)-strlen(symbol) + strlen(method)+1;
|
||||
temp = calloc(newlen,1);
|
||||
if (temp == NULL)
|
||||
Error("ReplaceFile():Error in calloc");
|
||||
strncat(temp,Action,i);
|
||||
strncat(temp,method,strlen(method));
|
||||
strcat( temp,&(Action[i+strlen(symbol)]) );
|
||||
cfree(Action);
|
||||
Action = temp;
|
||||
}
|
||||
return(Action);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
char *ReplaceArgs(Action,arg)
|
||||
char *Action;
|
||||
GmenuItemArg arg;
|
||||
{
|
||||
/*
|
||||
* The basic idea is to replace all of the symbols in the method
|
||||
* string with the values picked in the dialog box. The method
|
||||
* is the general command line structure. All arguements have three
|
||||
* parts, a label, a method, and a value. The method never changes, and
|
||||
* is used to represent '-flag's for a given function. Values are the
|
||||
* associated arguements that some flags require. All symbols that
|
||||
* require argvalue replacement should have a '$' infront of the symbol
|
||||
* name in the itemmethod definition. All symbols without the '$' will
|
||||
* be replaced by their argmethod. There is currently no way to do a label
|
||||
* replacement, as the label is considered to be for use in the dialog
|
||||
* box only. An example command line replacement would be:
|
||||
*
|
||||
* itemmethod=> "lpr arg1 $arg1 $arg2"
|
||||
*
|
||||
* arglabel arg1=> "To printer?"
|
||||
* argmethod arg1=> "-P"
|
||||
* argvalue arg1=> "lw"
|
||||
*
|
||||
* arglabel arg2=> "File name?"
|
||||
* argvalue arg2=> "foobar"
|
||||
* argmethod arg2=> ""
|
||||
*
|
||||
* final command line:
|
||||
*
|
||||
* lpr -P lw foobar
|
||||
*
|
||||
* At this point, the chooser dialog type only supports the arglabel and
|
||||
* argmethod field. So if an argument is of type chooser, and
|
||||
* its symbol is "this", then "$this" has no real meaning in the
|
||||
* itemmethod definition. Its format in the .GDEmenu file is slighty
|
||||
* different as well. A choice from a chooser field looks like:
|
||||
*
|
||||
* argchoice:Argument_label:Argument_method
|
||||
*
|
||||
*
|
||||
*/
|
||||
char *symbol,*method,*textvalue,buf1[GBUFSIZ],buf2[GBUFSIZ],*temp;
|
||||
int i,j,newlen,type;
|
||||
symbol = arg.symbol;
|
||||
method = arg.method;
|
||||
textvalue = arg.textvalue;
|
||||
type = arg.type;
|
||||
if(type == SLIDER)
|
||||
{
|
||||
textvalue = buf2;
|
||||
sprintf(buf2,"%d",arg.value);
|
||||
}
|
||||
else if((type == CHOOSER) || (type == CHOICE_MENU) || (type == CHOICE_LIST))
|
||||
{
|
||||
method = arg.choice[arg.value].method;
|
||||
textvalue = arg.choice[arg.value].method;
|
||||
}
|
||||
|
||||
if(textvalue == NULL)
|
||||
textvalue="";
|
||||
|
||||
if(method == NULL)
|
||||
method="";
|
||||
|
||||
if(symbol == NULL)
|
||||
symbol="";
|
||||
|
||||
for(; (i=Find2(Action,symbol)) != -1;)
|
||||
{
|
||||
if(i>0 && Action[i-1] =='$' )
|
||||
{
|
||||
newlen = strlen(Action)-strlen(symbol)
|
||||
+strlen(textvalue);
|
||||
temp = calloc(newlen,1);
|
||||
if (temp == NULL)
|
||||
Error("ReplaceArgs():Error in calloc");
|
||||
strncat(temp,Action,i-1);
|
||||
strncat(temp,textvalue,strlen(textvalue));
|
||||
strcat( temp,&(Action[i+strlen(symbol)]) );
|
||||
cfree(Action);
|
||||
Action = temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
newlen = strlen(Action)-strlen(symbol)
|
||||
+strlen(method)+1;
|
||||
temp = calloc(newlen,1);
|
||||
if (temp == NULL)
|
||||
Error("ReplaceArgs():Error in calloc");
|
||||
strncat(temp,Action,i);
|
||||
strncat(temp,method,strlen(method));
|
||||
strcat( temp,&(Action[i+strlen(symbol)]) );
|
||||
cfree(Action);
|
||||
Action = temp;
|
||||
}
|
||||
}
|
||||
return(Action);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
DONT():
|
||||
Dont execute the command associated with the current dialog box.
|
||||
This function corresponds to the <cancel> button on the dialog box.
|
||||
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
DONT(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern Frame pframe,frame;
|
||||
extern Panel popup;
|
||||
extern int BlockInput;
|
||||
int i,j,k;
|
||||
|
||||
/*
|
||||
* Reset the dialog box, andf remove it.
|
||||
*/
|
||||
xv_destroy_safe(pframe);
|
||||
pframe = xv_create(frame,FRAME_CMD,
|
||||
FRAME_CMD_PUSHPIN_IN,TRUE,
|
||||
FRAME_DONE_PROC,FrameDone,
|
||||
FRAME_SHOW_RESIZE_CORNER,FALSE,
|
||||
WIN_DESIRED_HEIGHT,100,
|
||||
WIN_DESIRED_WIDTH,300,
|
||||
XV_X,300,
|
||||
XV_Y,150,
|
||||
WIN_SHOW,FALSE,
|
||||
0);
|
||||
|
||||
popup = xv_get(pframe,FRAME_CMD_PANEL);
|
||||
/*
|
||||
popup = xv_create(pframe,PANEL,
|
||||
PANEL_LAYOUT,PANEL_HORIZONTAL,
|
||||
0);
|
||||
*/
|
||||
|
||||
xv_create (popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"HELP",
|
||||
PANEL_NOTIFY_PROC,HELP,
|
||||
0);
|
||||
|
||||
xv_create (popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"OK",
|
||||
PANEL_NOTIFY_PROC,DO,
|
||||
0);
|
||||
|
||||
xv_create(popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"Cancel",
|
||||
PANEL_NOTIFY_PROC,DONT,
|
||||
0);
|
||||
|
||||
BlockInput = FALSE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
FrameDone(this_frame)
|
||||
Frame this_frame;
|
||||
{
|
||||
extern Frame pframe;
|
||||
if(this_frame == pframe)
|
||||
DONT(NULL,NULL);
|
||||
|
||||
return(XV_OK);
|
||||
}
|
||||
NANameEvents(win,event,arg)
|
||||
Xv_window win;
|
||||
Event *event;
|
||||
Notify_arg arg;
|
||||
{
|
||||
extern int EditMode;
|
||||
extern NA_Alignment *DataSet;
|
||||
NA_DisplayData *ddata;
|
||||
NA_Alignment *aln;
|
||||
NA_Sequence *this_seq;
|
||||
extern int first_select,BlockInput;
|
||||
int i,j,x,y,redraw = FALSE;
|
||||
|
||||
if(DataSet == NULL || BlockInput)
|
||||
return;
|
||||
|
||||
aln = (NA_Alignment*)DataSet;
|
||||
ddata = (NA_DisplayData*)(aln->na_ddata);
|
||||
|
||||
if(ddata == NULL)
|
||||
return;
|
||||
|
||||
x=event_x(event)/ddata->font_dx;
|
||||
y=event_y(event)/ddata->font_dy +
|
||||
ddata->top_seq;
|
||||
|
||||
y=MIN(y,aln->numelements - 1);
|
||||
y=MAX(y,0);
|
||||
|
||||
this_seq = &(aln->element[y]);
|
||||
|
||||
if (event_id(event) == LOC_WINENTER)
|
||||
win_set_kbd_focus(win,(Window)xv_get(win,XV_XID));
|
||||
else if(event_is_down(event) && event_is_ascii(event) &&
|
||||
event_meta_is_down(event))
|
||||
DoMeta(event_id(event));
|
||||
|
||||
else if(!event_is_up(event))
|
||||
{
|
||||
switch (event_action(event))
|
||||
{
|
||||
case ACTION_SELECT:
|
||||
if(!event_shift_is_down(event))
|
||||
{
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
aln->element[j].
|
||||
selected = FALSE;
|
||||
redraw = TRUE;
|
||||
}
|
||||
|
||||
if(x<=strlen(this_seq->short_name))
|
||||
{
|
||||
redraw = TRUE;
|
||||
first_select = y;
|
||||
}
|
||||
else
|
||||
first_select = -1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(first_select != -1)
|
||||
switch (event_action(event))
|
||||
{
|
||||
case ACTION_SELECT:
|
||||
if(!event_shift_is_down(event))
|
||||
{
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
aln->element[j].selected
|
||||
= FALSE;
|
||||
}
|
||||
if(x<=strlen(this_seq->short_name))
|
||||
{
|
||||
for(j=MIN(first_select,y);
|
||||
j<=MAX(first_select,y);j++)
|
||||
aln->element[j].selected =
|
||||
aln->element[j].selected ?
|
||||
FALSE:TRUE;
|
||||
redraw = TRUE;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(redraw)
|
||||
DrawNANames(xv_get(win,XV_DISPLAY),xv_get(win,XV_XID));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
DoMeta(Code)
|
||||
int Code;
|
||||
{
|
||||
|
||||
int k,j;
|
||||
extern int num_menus;
|
||||
extern Gmenu menu[];
|
||||
|
||||
for(j=0;j<num_menus;j++)
|
||||
for(k=0;k<menu[j].numitems;k++)
|
||||
{
|
||||
if(((menu[j].item[k].meta|32) ==(char)(Code|32)) &&
|
||||
(char)Code !='\0')
|
||||
{
|
||||
HandleMeta(j,k);
|
||||
k=menu[j].numitems;
|
||||
j=num_menus;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
HandleMeta():
|
||||
Callback routine for the menus. Determine what function was called,
|
||||
and perform the desired operation.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
HandleMeta(curmenu,curitem)
|
||||
int curitem,curmenu;
|
||||
{
|
||||
extern Gmenu menu[];
|
||||
extern GmenuItem *current_item;
|
||||
extern Frame frame,pframe;
|
||||
extern Panel popup;
|
||||
extern int num_menus;
|
||||
|
||||
int i,j,k;
|
||||
Gmenu *thismenu;
|
||||
GmenuItem *thisitem;
|
||||
Panel choice;
|
||||
char *label1;
|
||||
|
||||
if(xv_get(pframe,WIN_SHOW))
|
||||
{
|
||||
DONT();
|
||||
return;
|
||||
}
|
||||
|
||||
thismenu = &(menu[curmenu]);
|
||||
thisitem = &(thismenu->item[curitem]);
|
||||
xv_set(popup,PANEL_LAYOUT,PANEL_VERTICAL,0);
|
||||
|
||||
for(j=0;j<thisitem->numargs;j++)
|
||||
{
|
||||
/*
|
||||
* Create a prompt for the argument
|
||||
*/
|
||||
switch (thisitem->arg[j].type)
|
||||
{
|
||||
case SLIDER:
|
||||
thisitem->arg[j].X=xv_create(popup,PANEL_SLIDER,
|
||||
PANEL_LAYOUT,PANEL_VERTICAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_MIN_VALUE,thisitem->arg[j].min,
|
||||
PANEL_MAX_VALUE,thisitem->arg[j].max,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
PANEL_TICKS,10,
|
||||
0);
|
||||
break;
|
||||
|
||||
case TEXTFIELD:
|
||||
thisitem->arg[j].X = xv_create(popup,PANEL_TEXT,
|
||||
PANEL_LAYOUT,PANEL_VERTICAL,
|
||||
PANEL_VALUE_DISPLAY_LENGTH,32,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_VALUE,thisitem->arg[j].textvalue,
|
||||
PANEL_NOTIFY_LEVEL,PANEL_ALL,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
0);
|
||||
break;
|
||||
|
||||
case CHOOSER:
|
||||
thisitem->arg[j].X=xv_create(popup,
|
||||
PANEL_CHOICE,
|
||||
PANEL_LAYOUT,PANEL_HORIZONTAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
PANEL_CHOICE_STRING,
|
||||
0,thisitem->arg[j].choice[0].label,
|
||||
0);
|
||||
for(i=1;i<thisitem->arg[j].numchoices;i++)
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_CHOICE_STRING, i,
|
||||
thisitem->arg[j].choice[i].label,
|
||||
0);
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
0);
|
||||
break;
|
||||
case CHOICE_MENU:
|
||||
thisitem->arg[j].X=xv_create(popup,
|
||||
PANEL_CHOICE_STACK,
|
||||
PANEL_LAYOUT,PANEL_VERTICAL,
|
||||
PANEL_LABEL_STRING,thisitem->arg[j].label,
|
||||
PANEL_NOTIFY_PROC, HandleMenuItem,
|
||||
PANEL_CHOICE_STRING,
|
||||
0,thisitem->arg[j].choice[0].label,
|
||||
0);
|
||||
for(i=1;i<thisitem->arg[j].numchoices;i++)
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_CHOICE_STRING, i,
|
||||
thisitem->arg[j].choice[i].label,
|
||||
0);
|
||||
xv_set(thisitem->arg[j].X,
|
||||
PANEL_VALUE,thisitem->arg[j].value,
|
||||
0);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
xv_set(pframe,FRAME_LABEL,thisitem->label,
|
||||
WIN_DESIRED_HEIGHT,1000,
|
||||
WIN_DESIRED_WIDTH,1000,
|
||||
WIN_GRAB_ALL_INPUT,TRUE,
|
||||
0);
|
||||
|
||||
current_item = thisitem;
|
||||
|
||||
/*
|
||||
* Fit it, and show it
|
||||
*/
|
||||
window_fit(popup);
|
||||
window_fit(pframe);
|
||||
if(thisitem->numargs >0)
|
||||
xv_set(pframe,WIN_SHOW,TRUE,0);
|
||||
else
|
||||
DO();
|
||||
return;
|
||||
}
|
||||
|
||||
HELP(item,event)
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
extern GmenuItem *current_item;
|
||||
extern Frame pframe;
|
||||
extern Panel popup;
|
||||
FILE *file;
|
||||
char help_file[1024];
|
||||
|
||||
if(current_item->help == NULL)
|
||||
{
|
||||
Warning("Cannot open help file");
|
||||
return;
|
||||
}
|
||||
strncpy(help_file,current_item->help,1023);
|
||||
file = fopen(help_file,"r");
|
||||
if((file == NULL) && (getenv("GDE_HELP_DIR") != NULL))
|
||||
{
|
||||
strncpy(help_file,getenv("GDE_HELP_DIR"),1023);
|
||||
strncat(help_file,"/",1023 - strlen(help_file));
|
||||
strncat(help_file,current_item->help,1023 - strlen(help_file));
|
||||
}
|
||||
|
||||
file = fopen(help_file,"r");
|
||||
|
||||
if(file == NULL)
|
||||
{
|
||||
Warning("Cannot find help file");
|
||||
return;
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
window_fit( xv_create(pframe,TEXTSW,
|
||||
WIN_INHERIT_COLORS,TRUE,
|
||||
WIN_BELOW,popup,
|
||||
TEXTSW_READ_ONLY,TRUE,
|
||||
XV_HEIGHT,180,
|
||||
XV_WIDTH,80*8,
|
||||
TEXTSW_FILE,help_file,
|
||||
0)
|
||||
);
|
||||
window_fit(pframe);
|
||||
xv_set(item,PANEL_INACTIVE,TRUE,0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
BIN
CORE/EventHandler.o
Normal file
BIN
CORE/EventHandler.o
Normal file
Binary file not shown.
1056
CORE/FileIO.c
Executable file
1056
CORE/FileIO.c
Executable file
File diff suppressed because it is too large
Load diff
1056
CORE/FileIO.c~
Executable file
1056
CORE/FileIO.c~
Executable file
File diff suppressed because it is too large
Load diff
BIN
CORE/FileIO.o
Normal file
BIN
CORE/FileIO.o
Normal file
Binary file not shown.
76
CORE/Free.c
Executable file
76
CORE/Free.c
Executable file
|
@ -0,0 +1,76 @@
|
|||
#include <stdio.h>
|
||||
#include <xview/defaults.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/window.h>
|
||||
#include <xview/icon.h>
|
||||
#include <pixrect/pixrect.h>
|
||||
#include <malloc.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
/*
|
||||
FreeNASeq():
|
||||
Destroy a nucleic acid sequence structure, and free its memory usage.
|
||||
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
FreeNASeq(seq)
|
||||
NA_Sequence *seq;
|
||||
{
|
||||
if(seq->sequence)
|
||||
Cfree(seq->sequence);
|
||||
if(seq->mask)
|
||||
Cfree(seq->mask);
|
||||
if(seq->cmask)
|
||||
Cfree(seq->cmask);
|
||||
if(seq->baggage)
|
||||
Cfree(seq->baggage);
|
||||
if(seq->comments)
|
||||
Cfree(seq->comments);
|
||||
|
||||
if(seq->groupf != NULL && seq->groupb != NULL)
|
||||
{
|
||||
((NA_Sequence*)(seq->groupf))->groupb = seq->groupb;
|
||||
((NA_Sequence*)(seq->groupb))->groupf = seq->groupf;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
FreeNAAln(aln)
|
||||
NA_Alignment*aln;
|
||||
{
|
||||
Cfree(aln->id);
|
||||
Cfree(aln->description);
|
||||
Cfree(aln->authority);
|
||||
Cfree(aln->cmask);
|
||||
Cfree(aln->mask);
|
||||
if(aln->na_ddata != NULL)
|
||||
{
|
||||
((NA_DisplayData *)(aln->na_ddata))->aln = NULL;
|
||||
FreeNADD(aln->na_ddata);
|
||||
}
|
||||
Cfree(aln);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
FreeNADD(nadd)
|
||||
NA_DisplayData *nadd;
|
||||
{
|
||||
Cfree(nadd->jumptbl);
|
||||
Cfree(nadd);
|
||||
|
||||
return;
|
||||
}
|
BIN
CORE/Free.o
Normal file
BIN
CORE/Free.o
Normal file
Binary file not shown.
465
CORE/Genbank.c
Executable file
465
CORE/Genbank.c
Executable file
|
@ -0,0 +1,465 @@
|
|||
#include <sys/time.h>
|
||||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
/*
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
all rights reserved.
|
||||
|
||||
Copyright (c) 1993, Steven Smith, all rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
ReadGen(filename,dataset,type)
|
||||
char *filename;
|
||||
NA_Alignment *dataset;
|
||||
int type;
|
||||
{
|
||||
register int done = FALSE,len = 0, j=0;
|
||||
int count,IS_REALLY_AA = FALSE;
|
||||
char Inline[GBUFSIZ],c;
|
||||
char *buffer,*gencomments = NULL,fields[8][GBUFSIZ];
|
||||
int buflen = 0,genclen = 0,curelem = 0,n = 0,flag = 0;
|
||||
int start_col = -1;
|
||||
|
||||
NA_Sequence *this_elem;
|
||||
FILE *file;
|
||||
extern int Default_DNA_Trans[], Default_RNA_Trans[];
|
||||
extern int Default_NA_RTrans[];
|
||||
extern int Default_PROColor_LKUP[],Default_NAColor_LKUP[];
|
||||
|
||||
ErrorOut("No such file",file = fopen(filename,"r"));
|
||||
|
||||
for(;fgets(Inline,GBUFSIZ,file) != 0;)
|
||||
{
|
||||
if(Inline[strlen(Inline)-1] == '\n')
|
||||
Inline[strlen(Inline)-1] = '\0';
|
||||
if(Find(Inline,"LOCUS"))
|
||||
{
|
||||
curelem = dataset->numelements++;
|
||||
if(curelem == 0)
|
||||
{
|
||||
dataset->element=(NA_Sequence*)
|
||||
Calloc(5,sizeof(NA_Sequence));
|
||||
dataset->maxnumelements = 5;
|
||||
}
|
||||
else if (curelem==dataset->maxnumelements)
|
||||
{
|
||||
(dataset->maxnumelements) *= 2;
|
||||
dataset->element =(NA_Sequence*)
|
||||
Realloc(dataset->element,
|
||||
dataset->maxnumelements * sizeof(NA_Sequence));
|
||||
}
|
||||
this_elem = &(dataset->element[curelem]);
|
||||
n = sscanf(Inline,"%s %s %s %s %s %s %s %s",
|
||||
fields[0],fields[1],fields[2],fields[3],fields[4],
|
||||
fields[5],fields[6],fields[7]);
|
||||
if(IS_REALLY_AA)
|
||||
{
|
||||
InitNASeq(this_elem,PROTEIN);
|
||||
}
|
||||
else if(Find(Inline,"DNA"))
|
||||
{
|
||||
InitNASeq(this_elem,DNA);
|
||||
}
|
||||
else if(Find(Inline,"RNA"))
|
||||
{
|
||||
InitNASeq(this_elem,RNA);
|
||||
}
|
||||
else if(Find(Inline,"MASK"))
|
||||
{
|
||||
InitNASeq(this_elem,MASK);
|
||||
}
|
||||
else if(Find(Inline,"TEXT"))
|
||||
{
|
||||
InitNASeq(this_elem,TEXT);
|
||||
}
|
||||
else if(Find(Inline,"PROT"))
|
||||
{
|
||||
InitNASeq(this_elem,PROTEIN);
|
||||
}
|
||||
else
|
||||
InitNASeq(this_elem,DNA);
|
||||
|
||||
strncpy(this_elem->short_name,fields[1],31);
|
||||
AsciiTime(&(this_elem->t_stamp.origin),fields[n-1]);
|
||||
this_elem->attr = DEFAULT_X_ATTR;
|
||||
|
||||
if( Find(Inline, "Circular") )
|
||||
this_elem->attr |= IS_CIRCULAR;
|
||||
|
||||
gencomments = NULL;
|
||||
genclen = 0;
|
||||
}
|
||||
else if(Find(Inline,"DEFINITION"))
|
||||
strncpy(this_elem->description,&(Inline[12]),79);
|
||||
|
||||
else if(Find(Inline,"AUTHOR"))
|
||||
strncpy(this_elem->authority,&(Inline[12]),79);
|
||||
|
||||
else if(Find(Inline," ORGANISM"))
|
||||
strncpy(this_elem->seq_name,&(Inline[12]),79);
|
||||
|
||||
else if(Find(Inline,"ACCESSION"))
|
||||
strncpy(this_elem->id,&(Inline[12]),79);
|
||||
|
||||
else if(Find(Inline,"ORIGIN"))
|
||||
{
|
||||
done = FALSE;
|
||||
len = 0;
|
||||
for(;done == FALSE && fgets(Inline,GBUFSIZ,file) != 0;)
|
||||
{
|
||||
if(Inline[0] != '/')
|
||||
{
|
||||
if(buflen == 0)
|
||||
{
|
||||
buflen = GBUFSIZ;
|
||||
buffer = Calloc(sizeof(char) ,
|
||||
buflen);
|
||||
}
|
||||
|
||||
else if (len+strlen(Inline) >= buflen)
|
||||
{
|
||||
buflen += GBUFSIZ;
|
||||
buffer = Realloc(buffer,
|
||||
sizeof(char)*buflen);
|
||||
for(j=buflen-GBUFSIZ
|
||||
;j<buflen;j++)
|
||||
buffer[j] = '\0';
|
||||
}
|
||||
/*
|
||||
* Search for the fist column of data (whitespace-number-whitespace)data
|
||||
*/
|
||||
if(start_col == -1)
|
||||
{
|
||||
for(start_col=0; Inline[start_col] == ' ' ||
|
||||
Inline[start_col] == '\t';start_col++);
|
||||
|
||||
for(start_col++;strchr("1234567890",
|
||||
Inline[start_col]) != NULL;start_col++);
|
||||
|
||||
for(start_col++; Inline[start_col] == ' ' ||
|
||||
Inline[start_col] == '\t';start_col++);
|
||||
|
||||
}
|
||||
for(j=start_col;(c = Inline[j]) != '\0';j++)
|
||||
{
|
||||
if((c != '\n') &&
|
||||
((j-start_col + 1) % 11 !=0))
|
||||
buffer[len++] = c;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AppendNA(buffer,len,&(dataset->
|
||||
element[curelem]));
|
||||
for(j=0;j<len;j++)
|
||||
buffer[j] = '\0';
|
||||
len = 0;
|
||||
done = TRUE;
|
||||
dataset->element[curelem].comments
|
||||
= gencomments;
|
||||
dataset->element[curelem].comments_len=
|
||||
genclen - 1;
|
||||
dataset->element[curelem].
|
||||
comments_maxlen = genclen;
|
||||
|
||||
gencomments = NULL;
|
||||
genclen = 0;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Test if sequence should be converted by the translation table
|
||||
* If it looks like a protein...
|
||||
*/
|
||||
if(dataset->element[curelem].rmatrix &&
|
||||
IS_REALLY_AA == FALSE)
|
||||
{
|
||||
IS_REALLY_AA = CheckType(dataset->element[curelem].
|
||||
sequence,dataset->element[curelem].seqlen);
|
||||
|
||||
if(IS_REALLY_AA == FALSE)
|
||||
Ascii2NA(dataset->element[curelem].sequence,
|
||||
dataset->element[curelem].seqlen,
|
||||
dataset->element[curelem].rmatrix);
|
||||
else
|
||||
/*
|
||||
* Force the sequence to be AA
|
||||
*/
|
||||
{
|
||||
dataset->element[curelem].elementtype = PROTEIN;
|
||||
dataset->element[curelem].rmatrix = NULL;
|
||||
dataset->element[curelem].tmatrix = NULL;
|
||||
dataset->element[curelem].col_lut =
|
||||
Default_PROColor_LKUP;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Find(Inline,"ZZZZZ"))
|
||||
{
|
||||
Cfree(gencomments);
|
||||
genclen = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gencomments == NULL)
|
||||
{
|
||||
gencomments = String(Inline);
|
||||
genclen = strlen(gencomments)+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
genclen += strlen(Inline)+1;
|
||||
gencomments = Realloc(gencomments,genclen *
|
||||
sizeof(char));
|
||||
strncat(gencomments,Inline,GBUFSIZ);
|
||||
strncat(gencomments,"\n",GBUFSIZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
Cfree(buffer);
|
||||
fclose(file);
|
||||
for(j=0;j<dataset->numelements;j++)
|
||||
dataset->maxlen = MAX(dataset->maxlen,
|
||||
dataset->element[j].seqlen+dataset->element[j].offset);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
typedef struct mya {
|
||||
int yy;
|
||||
int mm;
|
||||
int dd;
|
||||
int hr;
|
||||
int mn;
|
||||
int sc;
|
||||
} sA;
|
||||
|
||||
AsciiTime(sA *a,char *asciitime)
|
||||
{
|
||||
int j;
|
||||
char temp[GBUFSIZ];
|
||||
extern char month[12][6];
|
||||
|
||||
a->dd = 0;
|
||||
a->yy = 0;
|
||||
a->mm = 0;
|
||||
sscanf(asciitime,"%d%5c%d",&(a->dd),temp,&(a->yy));
|
||||
temp[5] = '\0';
|
||||
for(j=0;j<12;j++)
|
||||
if(strcmp(temp,month[j]) == 0)
|
||||
a->mm = j+1;
|
||||
if(a->dd <0 || a->dd > 31 || a->yy < 0 || a->mm > 11)
|
||||
SetTime(a);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
WriteGen(aln,filename,method,maskable)
|
||||
NA_Alignment *aln;
|
||||
char *filename;
|
||||
int method,maskable;
|
||||
{
|
||||
int i,j,k,mask = -1;
|
||||
FILE *file;
|
||||
NA_Sequence *this_elem;
|
||||
extern char month[12][6];
|
||||
char c;
|
||||
if(aln == NULL)
|
||||
return;
|
||||
if(aln->na_ddata == NULL)
|
||||
return;
|
||||
|
||||
file = fopen(filename,"w");
|
||||
if(file == NULL)
|
||||
{
|
||||
Warning("Cannot open file for output");
|
||||
return(1);
|
||||
}
|
||||
|
||||
if(maskable && method != SELECT_REGION)
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
if(aln->element[j].elementtype == MASK &&
|
||||
aln->element[j].selected)
|
||||
mask = j;
|
||||
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
{
|
||||
if((aln->element[j].selected && j!=mask && method != SELECT_REGION)
|
||||
||(aln->element[j].subselected && method == SELECT_REGION)
|
||||
|| (method == ALL))
|
||||
{
|
||||
this_elem = &(aln->element[j]);
|
||||
fprintf(file,
|
||||
"LOCUS %10s%8d bp %4s %10s %2d%5s%4d\n",
|
||||
this_elem->short_name,this_elem->seqlen+this_elem->offset,
|
||||
(this_elem->elementtype == DNA) ? "DNA":
|
||||
(this_elem->elementtype ==RNA)?"RNA":
|
||||
(this_elem->elementtype == MASK)?"MASK":
|
||||
(this_elem->elementtype == PROTEIN)?"PROT":"TEXT",
|
||||
this_elem->attr & IS_CIRCULAR?"Circular":"",
|
||||
this_elem->t_stamp.origin.dd,
|
||||
month[this_elem->t_stamp.origin.mm-1],
|
||||
this_elem->t_stamp.origin.yy>1900?this_elem->t_stamp.origin.yy:
|
||||
this_elem->t_stamp.origin.yy+1900);
|
||||
if(this_elem->description[0])
|
||||
fprintf(file,"DEFINITION %s\n",this_elem->description);
|
||||
if(this_elem->seq_name[0])
|
||||
fprintf(file," ORGANISM %s\n",this_elem->seq_name);
|
||||
if(this_elem->id[0])
|
||||
fprintf(file," ACCESSION %s\n",this_elem->id);
|
||||
if(this_elem->authority[0])
|
||||
fprintf(file," AUTHORS %s\n",this_elem->authority);
|
||||
if(this_elem->comments)
|
||||
fprintf(file,"%s\n",this_elem->comments);
|
||||
fprintf(file,"ORIGIN");
|
||||
if(this_elem->tmatrix)
|
||||
{
|
||||
if(mask == -1)
|
||||
{
|
||||
for(i=0,k=0;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
{
|
||||
if(method == SELECT_REGION)
|
||||
{
|
||||
if(aln->selection_mask[k] == '1')
|
||||
{
|
||||
if(i%60 == 0)
|
||||
fprintf(file,"\n%9d",i+1);
|
||||
if(i%10 == 0)
|
||||
fprintf(file," ");
|
||||
fprintf(file,"%c",this_elem->tmatrix
|
||||
[getelem(this_elem,k)]);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(i%60 == 0)
|
||||
fprintf(file,"\n%9d",i+1);
|
||||
if(i%10 == 0)
|
||||
fprintf(file," ");
|
||||
fprintf(file,"%c",this_elem->tmatrix
|
||||
[getelem(this_elem,k)]);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(k=0;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
{
|
||||
c =(char)getelem(&(aln->element[mask]),k);
|
||||
if(c != '0' && c!= '-')
|
||||
{
|
||||
if(k%60 == 0)
|
||||
fprintf(file,"\n%9d",k+1);
|
||||
if(k%10 == 0)
|
||||
fprintf(file," ");
|
||||
fprintf(file,"%c",this_elem->tmatrix
|
||||
[getelem(this_elem,k)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(mask == -1)
|
||||
{
|
||||
for(i=0,k=0;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
{
|
||||
if(method == SELECT_REGION)
|
||||
{
|
||||
if(aln->selection_mask[k] == '1')
|
||||
{
|
||||
if(i%60 == 0)
|
||||
fprintf(file,"\n%9d",i+1);
|
||||
if(i%10 == 0)
|
||||
fprintf(file," ");
|
||||
fprintf(file,"%c", getelem(this_elem,k));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(i%60 == 0)
|
||||
fprintf(file,"\n%9d",i+1);
|
||||
if(i%10 == 0)
|
||||
fprintf(file," ");
|
||||
fprintf(file,"%c",getelem(this_elem,k));
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(k=0;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
{
|
||||
c =(char)getelem(&(aln->element[mask]),k);
|
||||
if(c != '0' && c!= '-')
|
||||
{
|
||||
if(k%60 == 0)
|
||||
fprintf(file,"\n%9d",k+1);
|
||||
if(k%10 == 0)
|
||||
fprintf(file," ");
|
||||
fprintf(file,"%c",getelem(this_elem,k));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fprintf(file,"\n//\n");
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
SetTime(sA *a)
|
||||
{
|
||||
struct tm *tim,*localtime();
|
||||
long clock;
|
||||
|
||||
clock = time(0);
|
||||
tim = localtime(&clock);
|
||||
|
||||
a->yy = tim->tm_year;
|
||||
a->mm = tim->tm_mon+1;
|
||||
a->dd = tim->tm_mday;
|
||||
a->hr = tim->tm_hour;
|
||||
a->mn = tim->tm_min;
|
||||
a->sc = tim->tm_sec;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* CheckType: Check base composition to see if the sequence
|
||||
* appears to be an amino acid sequence. If it is, pass back
|
||||
* TRUE, else FALSE.
|
||||
*/
|
||||
CheckType(seq,len)
|
||||
char *seq;
|
||||
int len;
|
||||
{
|
||||
|
||||
int j,count1 = 0,count2 = 0;
|
||||
|
||||
for(j=0;j<len;j++)
|
||||
if(((seq[j]|32) < 'z') && ((seq[j]|32) > 'a'))
|
||||
{
|
||||
count1++;
|
||||
if(index("ACGTUNacgtun",seq[j]) == NULL)
|
||||
count2++;
|
||||
}
|
||||
|
||||
return( (count2 > count1/4)?TRUE:FALSE);
|
||||
}
|
BIN
CORE/Genbank.o
Normal file
BIN
CORE/Genbank.o
Normal file
Binary file not shown.
799
CORE/HGLfile.c
Executable file
799
CORE/HGLfile.c
Executable file
|
@ -0,0 +1,799 @@
|
|||
#include <sys/time.h>
|
||||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
/*
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
ReadGDE(filename,dataset,type)
|
||||
char *filename;
|
||||
NA_Alignment *dataset;
|
||||
int type;
|
||||
{
|
||||
register int done = FALSE,len = 0, j=0;
|
||||
int success,count,temp = 0;
|
||||
char Inline[GBUFSIZ],c;
|
||||
char *buffer,*line,*gencomments = NULL,fields[8][GBUFSIZ];
|
||||
int buflen = GBUFSIZ,genclen = 0,curelem = 0,n = 0,flag = 0;
|
||||
NA_Sequence *this_elem = NULL,temp_elem;
|
||||
FILE *file;
|
||||
extern int Default_DNA_Trans[], Default_RNA_Trans[];
|
||||
extern int OVERWRITE,Default_NA_RTrans[], Default_PROColor_LKUP[];
|
||||
|
||||
ErrorOut("No such file",file = fopen(filename,"r"));
|
||||
|
||||
for(;fgets(Inline,GBUFSIZ,file) != 0;)
|
||||
{
|
||||
for(line = Inline;line[0]==' ' || line[0] == '\t';line++);
|
||||
|
||||
if(Find2(line,"{")==0)
|
||||
{
|
||||
this_elem = &temp_elem;
|
||||
InitNASeq(this_elem,DNA);
|
||||
this_elem->offset = -(dataset->rel_offset);
|
||||
}
|
||||
else if(Find2(line,"type")==0)
|
||||
{
|
||||
if(Find(line,"DNA"))
|
||||
{
|
||||
this_elem->elementtype = DNA;
|
||||
this_elem->tmatrix = Default_DNA_Trans;
|
||||
this_elem->rmatrix = Default_NA_RTrans;
|
||||
}
|
||||
else if(Find(line,"RNA"))
|
||||
{
|
||||
this_elem->elementtype = RNA;
|
||||
this_elem->tmatrix = Default_RNA_Trans;
|
||||
this_elem->rmatrix = Default_NA_RTrans;
|
||||
}
|
||||
else if(Find(line,"MASK"))
|
||||
{
|
||||
this_elem->elementtype = MASK;
|
||||
this_elem->rmatrix = NULL;
|
||||
this_elem->tmatrix = NULL;
|
||||
this_elem->col_lut = NULL;
|
||||
}
|
||||
else if(Find(line,"TEXT"))
|
||||
{
|
||||
this_elem->elementtype = TEXT;
|
||||
this_elem->rmatrix = NULL;
|
||||
this_elem->tmatrix = NULL;
|
||||
this_elem->col_lut = NULL;
|
||||
}
|
||||
else if(Find(line,"PROT"))
|
||||
{
|
||||
this_elem->elementtype = PROTEIN;
|
||||
this_elem->rmatrix = NULL;
|
||||
this_elem->tmatrix = NULL;
|
||||
this_elem->col_lut = Default_PROColor_LKUP;
|
||||
}
|
||||
/*
|
||||
this_elem->attr = DEFAULT_X_ATTR;
|
||||
*/
|
||||
}
|
||||
else if(Find2(line,"circular")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&temp);
|
||||
if(temp == 1)
|
||||
{
|
||||
this_elem->attr |= IS_CIRCULAR;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_elem->attr &= ~IS_CIRCULAR;
|
||||
}
|
||||
}
|
||||
else if(Find2(line,"orig_direction")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&temp);
|
||||
if(temp == 1)
|
||||
{
|
||||
this_elem->attr |= IS_ORIG_5_TO_3;
|
||||
this_elem->attr &= ~IS_ORIG_3_TO_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_elem->attr |= IS_ORIG_3_TO_5;
|
||||
this_elem->attr &= ~IS_ORIG_5_TO_3;
|
||||
}
|
||||
}
|
||||
else if(Find2(line,"direction")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&temp);
|
||||
if(temp == 1)
|
||||
{
|
||||
this_elem->attr |= IS_5_TO_3;
|
||||
this_elem->attr &= ~IS_3_TO_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_elem->attr |= IS_3_TO_5;
|
||||
this_elem->attr &= ~IS_5_TO_3;
|
||||
}
|
||||
}
|
||||
else if(Find2(line,"orig_strand")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&temp);
|
||||
if(temp == 1)
|
||||
{
|
||||
this_elem->attr |= IS_ORIG_PRIMARY;
|
||||
this_elem->attr &= ~IS_ORIG_SECONDARY;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_elem->attr |= IS_ORIG_SECONDARY;
|
||||
this_elem->attr &= ~IS_ORIG_PRIMARY;
|
||||
}
|
||||
}
|
||||
else if(Find2(line,"strandedness")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&temp);
|
||||
if(temp == 1)
|
||||
{
|
||||
this_elem->attr |= IS_PRIMARY;
|
||||
this_elem->attr &= ~IS_SECONDARY;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_elem->attr |= IS_SECONDARY;
|
||||
this_elem->attr &= ~IS_PRIMARY;
|
||||
}
|
||||
}
|
||||
else if(Find2(line,"creator")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->authority);
|
||||
RemoveQuotes(this_elem->authority);
|
||||
}
|
||||
else if(Find2(line,"longname")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->seq_name);
|
||||
RemoveQuotes(this_elem->seq_name);
|
||||
}
|
||||
else if(Find2(line,"descrip")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->description);
|
||||
RemoveQuotes(this_elem->description);
|
||||
}
|
||||
else if(Find2(line,"name")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->short_name);
|
||||
RemoveQuotes(this_elem->short_name);
|
||||
}
|
||||
else if(Find2(line,"group-ID")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&(this_elem->groupid));
|
||||
dataset->numgroups =
|
||||
MAX(this_elem->groupid, dataset->numgroups);
|
||||
}
|
||||
else if(Find2(line,"sequence-ID")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->id);
|
||||
RemoveQuotes(this_elem->id);
|
||||
}
|
||||
else if(Find2(line,"barcode")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->barcode);
|
||||
RemoveQuotes(this_elem->barcode);
|
||||
}
|
||||
else if(Find2(line,"membrane")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->membrane);
|
||||
RemoveQuotes(this_elem->membrane);
|
||||
}
|
||||
else if(Find2(line,"contig")==0)
|
||||
{
|
||||
sscanf(line,"%*s %[^\n]",this_elem->contig);
|
||||
RemoveQuotes(this_elem->contig);
|
||||
}
|
||||
else if(Find2(line,"creation-date")==0)
|
||||
{
|
||||
sscanf(line,"%*s %2d%*c%2d%*c%2d%*c%2d%*c%2d%*c%2d\n",
|
||||
&(this_elem->t_stamp.origin.mm),
|
||||
&(this_elem->t_stamp.origin.dd),
|
||||
&(this_elem->t_stamp.origin.yy),
|
||||
&(this_elem->t_stamp.origin.hr),
|
||||
&(this_elem->t_stamp.origin.mn),
|
||||
&(this_elem->t_stamp.origin.sc));
|
||||
}
|
||||
else if(Find2(line,"offset")==0)
|
||||
{
|
||||
sscanf(line,"%*s %d",&(this_elem->offset));
|
||||
this_elem->offset -= dataset->rel_offset;
|
||||
}
|
||||
else if(Find2(line,"comments")==0)
|
||||
{
|
||||
if(this_elem->comments_maxlen ==0)
|
||||
buflen = 2048;
|
||||
else
|
||||
buflen = this_elem->comments_maxlen;
|
||||
|
||||
done = FALSE;
|
||||
len = this_elem->comments_len;
|
||||
|
||||
for(;line[0] != '"';line++)
|
||||
if(line[0] == '\0')
|
||||
ErrorOut(0,"Error in input file");
|
||||
line++;
|
||||
buffer = Calloc(buflen,sizeof(char));
|
||||
for(;!done;)
|
||||
{
|
||||
for(j=0;j<strlen(line);j++)
|
||||
{
|
||||
if(len+strlen(line) >= buflen)
|
||||
{
|
||||
buflen *=2;
|
||||
buffer = Realloc(buffer,
|
||||
buflen*sizeof(char));
|
||||
}
|
||||
if(line[j] == '"') done = TRUE;
|
||||
|
||||
else
|
||||
buffer[len++] = line[j];
|
||||
}
|
||||
/*
|
||||
* Check pad with null
|
||||
*/
|
||||
buffer[len] = '\0';
|
||||
if(!done)
|
||||
{
|
||||
if(fgets(Inline,GBUFSIZ,file) == 0)
|
||||
done = TRUE;
|
||||
line = Inline;
|
||||
}
|
||||
}
|
||||
this_elem->comments = buffer;
|
||||
this_elem->comments_len = strlen(buffer);
|
||||
this_elem->comments_maxlen = buflen;
|
||||
RemoveQuotes(this_elem->comments);
|
||||
}
|
||||
else if(Find2(line,"sequence")==0)
|
||||
{
|
||||
buflen = GBUFSIZ;
|
||||
done = FALSE;
|
||||
len = 0;
|
||||
|
||||
buffer = Calloc(buflen,sizeof(char));
|
||||
for(;line[0] != '"';line++)
|
||||
if(line[0] == '\0')
|
||||
ErrorOut(0,"Error in input file");
|
||||
|
||||
line++;
|
||||
for(;!done;)
|
||||
{
|
||||
for(j=0;j<strlen(line);j++)
|
||||
{
|
||||
if(len+strlen(line) >= buflen)
|
||||
{
|
||||
buflen *=2;
|
||||
buffer = Realloc(buffer,
|
||||
buflen*sizeof(char));
|
||||
}
|
||||
if(line[j] == '"') done = TRUE;
|
||||
|
||||
else
|
||||
{
|
||||
/*
|
||||
* If not text, ignore spaces...
|
||||
*/
|
||||
if(this_elem->elementtype !=TEXT)
|
||||
{
|
||||
if(line[j]!=' ' && line[j] !=
|
||||
'\t' && line[j] != '\n')
|
||||
buffer[len++] = line[j];
|
||||
}
|
||||
else
|
||||
if(line[j] != '\t' && line[j] != '\n')
|
||||
buffer[len++] = line[j];
|
||||
}
|
||||
}
|
||||
if(!done)
|
||||
{
|
||||
if(fgets(Inline,GBUFSIZ,file) == 0)
|
||||
done = TRUE;
|
||||
line = Inline;
|
||||
}
|
||||
}
|
||||
if(this_elem->rmatrix)
|
||||
for(j=0;j<len;j++)
|
||||
buffer[j]=this_elem->rmatrix[buffer[j]];
|
||||
this_elem->sequence =(NA_Base*)buffer;
|
||||
this_elem->seqlen = len;
|
||||
this_elem->seqmaxlen = buflen;
|
||||
}
|
||||
|
||||
else if (Find2(line,"}")==0)
|
||||
{
|
||||
if(this_elem->id[0] == '\0')
|
||||
strncpy(this_elem->id,uniqueID(),79);
|
||||
if(this_elem->short_name[0] == '\0')
|
||||
strncpy(this_elem->short_name,this_elem->id,79);
|
||||
if(this_elem->seqlen == 0)
|
||||
this_elem->protect=
|
||||
PROT_BASE_CHANGES+
|
||||
PROT_GREY_SPACE+
|
||||
PROT_WHITE_SPACE+
|
||||
PROT_TRANSLATION;
|
||||
genclen = 0;
|
||||
/*
|
||||
* Make a new sequence entry...
|
||||
*/
|
||||
|
||||
success = -1;
|
||||
if(OVERWRITE)
|
||||
success = OverWrite(this_elem,dataset);
|
||||
|
||||
if(success == -1)
|
||||
{
|
||||
curelem = dataset->numelements++;
|
||||
if(curelem == 0)
|
||||
{
|
||||
dataset->element=(NA_Sequence*)
|
||||
Calloc(5,sizeof(NA_Sequence));
|
||||
dataset->maxnumelements = 5;
|
||||
}
|
||||
else if (curelem==dataset->maxnumelements)
|
||||
{
|
||||
(dataset->maxnumelements) *= 2;
|
||||
dataset->element =(NA_Sequence*)
|
||||
Realloc(dataset->element,
|
||||
dataset->maxnumelements * sizeof(NA_Sequence));
|
||||
}
|
||||
dataset->element[curelem] = *this_elem;
|
||||
}
|
||||
}
|
||||
else if(this_elem != NULL)
|
||||
{
|
||||
if (this_elem->baggage == NULL)
|
||||
{
|
||||
this_elem->baggage = String(line);
|
||||
this_elem->baggage_maxlen =
|
||||
this_elem->baggage_len =
|
||||
strlen(this_elem->baggage)+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_elem->baggage_len += strlen(line)+1;
|
||||
this_elem->baggage = Realloc(
|
||||
this_elem->baggage,this_elem->baggage_len *
|
||||
sizeof(char));
|
||||
this_elem->baggage_maxlen =
|
||||
this_elem->baggage_len;
|
||||
|
||||
strncat(this_elem->baggage,line,GBUFSIZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
NormalizeOffset(dataset);
|
||||
Regroup(dataset);
|
||||
AdjustGroups(dataset);
|
||||
return;
|
||||
}
|
||||
|
||||
WriteGDE(aln,filename,method,maskable)
|
||||
NA_Alignment *aln;
|
||||
char *filename;
|
||||
int method,maskable;
|
||||
{
|
||||
int i,j,k,mask = -1;
|
||||
FILE *file;
|
||||
NA_Sequence *this_elem;
|
||||
extern char month[12][6];
|
||||
|
||||
if(aln == NULL)
|
||||
return;
|
||||
if(aln->na_ddata == NULL)
|
||||
return;
|
||||
|
||||
file = fopen(filename,"w");
|
||||
if(file == NULL)
|
||||
{
|
||||
Warning("Cannot open file for output");
|
||||
return(1);
|
||||
}
|
||||
|
||||
if(maskable && method != SELECT_REGION)
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
if(aln->element[j].elementtype == MASK &&
|
||||
aln->element[j].selected)
|
||||
mask = j;
|
||||
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
{
|
||||
if((aln->element[j].selected && j!=mask && method!=SELECT_REGION)
|
||||
|| (method == ALL)
|
||||
|| (aln->element[j].subselected && method == SELECT_REGION))
|
||||
{
|
||||
this_elem = &(aln->element[j]);
|
||||
SeqNorm(this_elem);
|
||||
fprintf(file,"{\n");
|
||||
if(this_elem->short_name[0])
|
||||
fprintf(file,"name \"%s\"\n",this_elem->short_name);
|
||||
switch(this_elem->elementtype)
|
||||
{
|
||||
case DNA:
|
||||
fprintf(file,"type \"DNA\"\n");
|
||||
break;
|
||||
case RNA:
|
||||
fprintf(file,"type \"RNA\"\n");
|
||||
break;
|
||||
case PROTEIN:
|
||||
fprintf(file,"type \"PROTEIN\"\n");
|
||||
break;
|
||||
case MASK:
|
||||
fprintf(file,"type \"MASK\"\n");
|
||||
break;
|
||||
case TEXT:
|
||||
fprintf(file,"type \"TEXT\"\n");
|
||||
break;
|
||||
}
|
||||
if(this_elem->seq_name[0])
|
||||
fprintf(file,"longname %s\n",this_elem->seq_name);
|
||||
|
||||
if(this_elem->id[0])
|
||||
fprintf(file,"sequence-ID \"%s\"\n",this_elem->id);
|
||||
RemoveQuotes(this_elem->barcode);
|
||||
RemoveQuotes(this_elem->contig);
|
||||
|
||||
if(this_elem->barcode[0])
|
||||
fprintf(file,"barcode \"%s\"\n",this_elem->barcode);
|
||||
if(this_elem->membrane[0])
|
||||
fprintf(file,"membrane \"%s\"\n",this_elem->membrane);
|
||||
if(this_elem->contig[0])
|
||||
fprintf(file,"contig \"%s\"\n",this_elem->contig);
|
||||
if(this_elem->description[0])
|
||||
fprintf(file,"descrip \"%s\"\n",this_elem->description);
|
||||
if(this_elem->authority[0])
|
||||
fprintf(file,"creator \"%s\"\n",this_elem->authority);
|
||||
if(this_elem->groupid)
|
||||
fprintf(file,"group-ID %d\n",
|
||||
this_elem->groupid);
|
||||
if(this_elem->offset+aln->rel_offset && method!=SELECT_REGION)
|
||||
fprintf(file,"offset %d\n",this_elem->offset+aln->rel_offset);
|
||||
if(method == SELECT_REGION)
|
||||
{
|
||||
/*
|
||||
* If selecting a region, the offset should be moved to the first
|
||||
* non-'0' space in the mask.
|
||||
*/
|
||||
for(k=this_elem->offset;k<aln->selection_mask_len &&
|
||||
aln->selection_mask[k] == '0';k++);
|
||||
fprintf(file,"offset %d\n", aln->rel_offset+k);
|
||||
}
|
||||
if(this_elem->t_stamp.origin.mm != 0)
|
||||
fprintf(file,
|
||||
"creation-date %2d/%2d/%2d %2d:%2d:%2d\n",
|
||||
this_elem->t_stamp.origin.mm,
|
||||
this_elem->t_stamp.origin.dd,
|
||||
(this_elem->t_stamp.origin.yy)>1900?
|
||||
(this_elem->t_stamp.origin.yy-1900):
|
||||
(this_elem->t_stamp.origin.yy),
|
||||
this_elem->t_stamp.origin.hr,
|
||||
this_elem->t_stamp.origin.mn,
|
||||
this_elem->t_stamp.origin.sc);
|
||||
if((this_elem->attr & IS_ORIG_5_TO_3) &&
|
||||
((this_elem->attr & IS_ORIG_3_TO_5) == 0))
|
||||
fprintf(file,"orig_direction 1\n");
|
||||
|
||||
if((this_elem->attr & IS_CIRCULAR) )
|
||||
fprintf(file,"circular 1\n");
|
||||
|
||||
if((this_elem->attr & IS_5_TO_3) &&
|
||||
((this_elem->attr & IS_3_TO_5) == 0))
|
||||
fprintf(file,"direction 1\n");
|
||||
|
||||
if((this_elem->attr & IS_ORIG_3_TO_5) &&
|
||||
((this_elem->attr & IS_ORIG_5_TO_3) == 0))
|
||||
fprintf(file,"orig_direction -1\n");
|
||||
|
||||
if((this_elem->attr & IS_3_TO_5) &&
|
||||
((this_elem->attr & IS_5_TO_3) == 0))
|
||||
fprintf(file,"direction -1\n");
|
||||
|
||||
if((this_elem->attr & IS_ORIG_PRIMARY) &&
|
||||
((this_elem->attr & IS_ORIG_SECONDARY) == 0))
|
||||
fprintf(file,"orig_strand 1\n");
|
||||
|
||||
if((this_elem->attr & IS_PRIMARY) &&
|
||||
((this_elem->attr & IS_SECONDARY) == 0))
|
||||
fprintf(file,"strandedness 1\n");
|
||||
|
||||
if(((this_elem->attr & IS_ORIG_PRIMARY) == 0) &&
|
||||
(this_elem->attr & IS_ORIG_SECONDARY))
|
||||
fprintf(file,"orig_strand 2\n");
|
||||
|
||||
if(((this_elem->attr & IS_PRIMARY) == 0) &&
|
||||
(this_elem->attr & IS_SECONDARY))
|
||||
fprintf(file,"strandedness 2\n");
|
||||
|
||||
if(this_elem->comments != NULL)
|
||||
{
|
||||
StripSpecial(this_elem->comments);
|
||||
fprintf(file,"comments \"%s\"\n",this_elem->comments);
|
||||
}
|
||||
if(this_elem->baggage != NULL)
|
||||
{
|
||||
if(this_elem->
|
||||
baggage[strlen(this_elem->baggage)-1] == '\n')
|
||||
fprintf(file,"%s",this_elem->baggage);
|
||||
else
|
||||
fprintf(file,"%s\n",this_elem->baggage);
|
||||
}
|
||||
fprintf(file,"sequence \"");
|
||||
if(this_elem->tmatrix)
|
||||
{
|
||||
if(mask == -1)
|
||||
{
|
||||
for(k=this_elem->offset;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
{
|
||||
if(k%60 == 0)
|
||||
putc('\n',file);
|
||||
if(method == SELECT_REGION)
|
||||
{
|
||||
if(aln->selection_mask[k] == '1')
|
||||
putc(this_elem->tmatrix[getelem(this_elem,k)],
|
||||
file);
|
||||
}
|
||||
else
|
||||
putc(this_elem->tmatrix[getelem(this_elem,k)],
|
||||
file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i=0,k=this_elem->offset;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
if(aln->element[mask].seqlen+this_elem->offset>k)
|
||||
if((char)getelem(&(aln->element[mask]),k) != '0'
|
||||
&& ((char)getelem(&(aln->element[mask]),k) != '-'))
|
||||
{
|
||||
if(i%60 == 0)
|
||||
putc('\n',file);
|
||||
putc(this_elem->tmatrix[getelem(this_elem,k)],
|
||||
file);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
fprintf(file,"\"\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(mask == -1)
|
||||
{
|
||||
for(k=this_elem->offset;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
{
|
||||
if(k%60 == 0)
|
||||
putc('\n',file);
|
||||
if(method == SELECT_REGION)
|
||||
{
|
||||
if(aln->selection_mask[k] == '1')
|
||||
putc(getelem(this_elem,k),file);
|
||||
}
|
||||
else
|
||||
putc(getelem(this_elem,k),file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i=0,k=this_elem->offset;k<this_elem->seqlen+this_elem->offset;k++)
|
||||
if(((aln->element[mask].seqlen)+(aln->element[mask].
|
||||
offset)) > k)
|
||||
if((char)getelem(&(aln->element[mask]),k) == '1')
|
||||
{
|
||||
if(i%60 == 0)
|
||||
putc('\n',file);
|
||||
putc(getelem(this_elem,k),file);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
fprintf(file,"\"\n");
|
||||
}
|
||||
fprintf(file,"}\n");
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
StripSpecial(string)
|
||||
char *string;
|
||||
{
|
||||
register int i,j,len;
|
||||
|
||||
len = strlen(string);
|
||||
for(j=0;j<len;j++)
|
||||
{
|
||||
if(string[j] == '"')
|
||||
string[j] = '`';
|
||||
else if(string[j] == '{')
|
||||
string[j] = '(';
|
||||
else if(string[j] == '}')
|
||||
string[j] = ')';
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
RemoveQuotes(string)
|
||||
char *string;
|
||||
{
|
||||
register int i,j,len;
|
||||
|
||||
len = strlen(string);
|
||||
for(j=0;j<len;j++)
|
||||
if(string[j] == '"')
|
||||
string[j] = ' ';
|
||||
|
||||
for(j=0;string[j]==' ' && j<strlen(string);j++);
|
||||
|
||||
len = strlen(string);
|
||||
for(i=0;i<len - j;i++)
|
||||
string[i] = string[i+j];
|
||||
|
||||
for(j=strlen(string)-1;j>=0 && (string[j]=='\n'||string[j]==' '); j--)
|
||||
string[j] = '\0';
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Normalize seq (remove leading indels in the sequence;
|
||||
*/
|
||||
void SeqNorm(seq)
|
||||
NA_Sequence *seq;
|
||||
{
|
||||
int len,j,shift_width,trailer;
|
||||
char *sequence;
|
||||
len = seq->seqlen;
|
||||
|
||||
sequence =(char*)seq->sequence;
|
||||
|
||||
if(len == 0) return;
|
||||
|
||||
if(seq->tmatrix)
|
||||
for(shift_width=0; (shift_width<len) &&
|
||||
((sequence[shift_width]&15) == '\0'); shift_width++);
|
||||
else
|
||||
for(shift_width=0; (shift_width<len) &&
|
||||
(sequence[shift_width] == '-'); shift_width++);
|
||||
|
||||
for(j=0;j<len-shift_width;j++)
|
||||
sequence[j] = sequence[j+shift_width];
|
||||
|
||||
seq->seqlen -= shift_width;
|
||||
seq->offset += shift_width;
|
||||
for(trailer=seq->seqlen-1;(sequence[trailer] =='-' ||
|
||||
sequence[trailer] == '\0') && trailer>=0;
|
||||
trailer--)
|
||||
sequence[trailer] = '\0';
|
||||
seq->seqlen = trailer+1;
|
||||
return;
|
||||
}
|
||||
|
||||
/* ALWAYS COPY the result from uniqueID() to a char[32],
|
||||
* (strlen(hostname)+1+10). Memory is lost when the function
|
||||
* is finished.
|
||||
*/
|
||||
char vname[32];
|
||||
char *uniqueID()
|
||||
{
|
||||
char hname[32]; /* ,vname[32]; rtm 18.III.98 */
|
||||
int hnamelen = 32;
|
||||
time_t *tp;
|
||||
static cnt = 0;
|
||||
|
||||
tp = (time_t *)Calloc(1, sizeof(time_t));
|
||||
|
||||
if(gethostname(hname, 10) == -1)
|
||||
{
|
||||
fprintf(stderr, "UniqueID(): Failed to get host name.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
time(tp);
|
||||
sprintf(vname, "%s:%d:%ld", hname, cnt, *tp);
|
||||
cnt++;
|
||||
Cfree(tp);
|
||||
return(vname);
|
||||
}
|
||||
|
||||
/*
|
||||
* OverWrite(), overwrite all non-default data from a sequence entry
|
||||
* onto any entry with the same ID or short name.
|
||||
*/
|
||||
OverWrite(this,aln)
|
||||
NA_Sequence *this;
|
||||
NA_Alignment *aln;
|
||||
{
|
||||
int j,indx = -1;
|
||||
NA_Sequence *that;
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
{
|
||||
if(Find2(this->id,aln->element[j].id) != -1)
|
||||
if(Find2(aln->element[j].id,this->id) != -1)
|
||||
indx = j;
|
||||
}
|
||||
if(indx == -1)
|
||||
for(j=0;j<aln->numelements;j++)
|
||||
{
|
||||
if(Find2(this->short_name,aln->element[j].short_name)!= -1)
|
||||
if(Find2(aln->element[j].short_name,this->short_name)!= -1)
|
||||
indx = j;
|
||||
}
|
||||
if(indx != -1)
|
||||
{
|
||||
that = &(aln->element[indx]);
|
||||
if(this->seq_name[0])
|
||||
strcpy(that->seq_name,this->seq_name);
|
||||
if(this->barcode[0])
|
||||
strcpy(that->barcode,this->barcode);
|
||||
if(this->contig[0])
|
||||
strcpy(that->contig,this->contig);
|
||||
if(this->membrane[0])
|
||||
strcpy(that->membrane,this->membrane);
|
||||
if(this->authority[0])
|
||||
strcpy(that->authority,this->authority);
|
||||
if(this->short_name[0])
|
||||
strcpy(that->short_name,this->short_name);
|
||||
if(this->description[0])
|
||||
strcpy(that->description,this->description);
|
||||
if(this->sequence)
|
||||
{
|
||||
cfree(that->sequence);
|
||||
that->sequence = this->sequence;
|
||||
that->seqlen = this->seqlen;
|
||||
that->seqmaxlen = this->seqmaxlen;
|
||||
}
|
||||
if(this->baggage)
|
||||
{
|
||||
that->baggage_len += this->baggage_len;
|
||||
that->baggage_maxlen += this->baggage_maxlen;
|
||||
if(that->baggage)
|
||||
that->baggage =
|
||||
Realloc(that->baggage,that->baggage_maxlen*sizeof(char));
|
||||
else
|
||||
that->baggage = Calloc(that->baggage_maxlen,sizeof(char));
|
||||
strncat(that->baggage,this->baggage,that->baggage_maxlen);
|
||||
}
|
||||
if(this->comments)
|
||||
{
|
||||
that->comments_len += this->comments_len;
|
||||
that->comments_maxlen += this->comments_maxlen;
|
||||
if(that->comments)
|
||||
that->comments =
|
||||
Realloc(that->comments,that->comments_maxlen*sizeof(char));
|
||||
else
|
||||
that->comments = Calloc(that->comments_maxlen,sizeof(char));
|
||||
strncat(that->comments,this->comments,that->comments_maxlen);
|
||||
}
|
||||
if(this->cmask)
|
||||
{
|
||||
cfree(that->cmask);
|
||||
that->cmask = this->cmask;
|
||||
}
|
||||
if(this->offset != that->offset)
|
||||
that->offset = this->offset;
|
||||
if(this->attr != 0)
|
||||
that->attr = this->attr;
|
||||
if(this->groupid != 0)
|
||||
{
|
||||
that->groupid = this->groupid;
|
||||
}
|
||||
that->groupb = NULL;
|
||||
that->groupf = NULL;
|
||||
}
|
||||
/*
|
||||
NormalizeOffset(aln);
|
||||
Regroup(aln);
|
||||
AdjustGroups(aln);
|
||||
*/
|
||||
return(indx);
|
||||
}
|
BIN
CORE/HGLfile.o
Normal file
BIN
CORE/HGLfile.o
Normal file
Binary file not shown.
60
CORE/Makefile
Executable file
60
CORE/Makefile
Executable file
|
@ -0,0 +1,60 @@
|
|||
OBJS= ParseMenu.o main.o BasicDisplay.o EventHandler.o FileIO.o \
|
||||
DrawNA.o Free.o BuiltIn.o Edit.o Genbank.o Scroll.o ChooseFile.o \
|
||||
CutCopyPaste.o HGLfile.o
|
||||
SRCS= ParseMenu.c main.c BasicDisplay.c EventHandler.c FileIO.c \
|
||||
DrawNA.c Free.c BuiltIn.c Edit.c Genbank.c Scroll.c ChooseFile.c \
|
||||
CutCopyPaste.c HGLfile.c
|
||||
|
||||
LIBS= -lm -lxview -lolgx -lX11
|
||||
CFLAGS= -g -L/usr/openwin/lib -I/usr/openwin/include
|
||||
CC = cc
|
||||
# Possible defines, SUN4 SGI DEC HGL
|
||||
DEFINES = -DLINUX
|
||||
|
||||
GLOBAL_DEPENDS= defines.h menudefs.h
|
||||
|
||||
gde: $(OBJS)
|
||||
$(CC) -o $@ $(OBJS) $(LIBS) $(CFLAGS) $(DEFINES)
|
||||
|
||||
ParseMenu.o: ParseMenu.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c ParseMenu.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
main.o: main.c $(GLOBAL_DEPENDS) globals.h
|
||||
$(CC) -c main.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
BasicDisplay.o: BasicDisplay.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c BasicDisplay.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
EventHandler.o: EventHandler.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c EventHandler.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
FileIO.o: FileIO.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c FileIO.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
DrawNA.o: DrawNA.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c DrawNA.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
Edit.o: Edit.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c Edit.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
Free.o: Free.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c Free.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
BuiltIn.o: BuiltIn.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c BuiltIn.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
Genbank.o: Genbank.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c Genbank.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
Scroll.o: Scroll.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c Scroll.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
ChooseFile.o: ChooseFile.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c ChooseFile.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
CutCopyPaste.o: CutCopyPaste.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c CutCopyPaste.c $(CFLAGS) $(DEFINES)
|
||||
|
||||
HGLfile.o: HGLfile.c $(GLOBAL_DEPENDS)
|
||||
$(CC) -c HGLfile.c $(CFLAGS) $(DEFINES)
|
||||
|
566
CORE/ParseMenu.c
Executable file
566
CORE/ParseMenu.c
Executable file
|
@ -0,0 +1,566 @@
|
|||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
/*
|
||||
ParseMenus(): Read in the menu config file, and generate the internal
|
||||
menu structures used by the window system.
|
||||
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
extern Gmenu menu[];
|
||||
int num_menus;
|
||||
|
||||
ParseMenu()
|
||||
{
|
||||
int j,curmenu = -1,curitem = 0;
|
||||
int curchoice = 0 ,curarg = 0,curinput = 0, curoutput = 0;
|
||||
char Inline[GBUFSIZ],temp[GBUFSIZ],head[GBUFSIZ];
|
||||
char tail[GBUFSIZ],*home;
|
||||
Gmenu *thismenu;
|
||||
GmenuItem *thisitem;
|
||||
GmenuItemArg *thisarg;
|
||||
GfileFormat *thisinput,*thisoutput;
|
||||
FILE *file;
|
||||
char *resize;
|
||||
|
||||
/*
|
||||
* Open the menu configuration file ".GDEmenus"
|
||||
* First search the local directory, then the home directory.
|
||||
*/
|
||||
file=fopen(".GDEmenus","r");
|
||||
if(file == NULL)
|
||||
{
|
||||
home = (char*)getenv("HOME");
|
||||
strcpy(temp,home);
|
||||
strcat(temp,"/.GDEmenus");
|
||||
|
||||
file=fopen(temp,"r");
|
||||
if(file == NULL)
|
||||
{
|
||||
home = (char*)getenv("GDE_HELP_DIR");
|
||||
if(home != NULL)
|
||||
{
|
||||
strcpy(temp,home);
|
||||
strcat(temp,"/.GDEmenus");
|
||||
file=fopen(temp,"r");
|
||||
}
|
||||
if(file == NULL)
|
||||
Error(
|
||||
".GDEmenus file not in the home, local, or $GDE_HELP_DIR directory");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Read the .GDEmenus file, and assemble an internal representation
|
||||
* of the menu/menu-item hierarchy.
|
||||
*/
|
||||
|
||||
for(;getline(file,Inline) != EOF;)
|
||||
{
|
||||
/*
|
||||
* menu: chooses menu to use
|
||||
*/
|
||||
if(Inline[0] == '#');
|
||||
else if(Find(Inline,"menu:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
curmenu = -1;
|
||||
for(j=0;j<num_menus;j++)
|
||||
if(Find(temp,menu[j].label))
|
||||
curmenu=j;
|
||||
/*
|
||||
* If menu not found, make a new one
|
||||
*/
|
||||
if(curmenu == -1)
|
||||
{
|
||||
curmenu = num_menus++;
|
||||
thismenu = &menu[curmenu];
|
||||
thismenu->label =
|
||||
(char*)calloc(strlen(temp)+1,sizeof(char));
|
||||
|
||||
if(thismenu->label == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thismenu->label,temp);
|
||||
thismenu->numitems = 0;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* item: chooses menu item to use
|
||||
*/
|
||||
else if(Find(Inline,"item:"))
|
||||
{
|
||||
curarg = -1;
|
||||
curinput = -1;
|
||||
curoutput = -1;
|
||||
crop(Inline,head,temp);
|
||||
curitem = thismenu->numitems++;
|
||||
/*
|
||||
* Resize the item list for this menu (add one item);
|
||||
*/
|
||||
if(curitem == 0)
|
||||
resize = (char*)calloc(1,sizeof(GmenuItem));
|
||||
else
|
||||
resize = realloc(thismenu->item,
|
||||
thismenu -> numitems*sizeof(GmenuItem) );
|
||||
|
||||
if(resize == NULL)
|
||||
Error ("Calloc");
|
||||
thismenu->item =(GmenuItem*)resize;
|
||||
|
||||
thisitem = &(thismenu->item[curitem]);
|
||||
thisitem->label = (char*)calloc(strlen(temp)+1,
|
||||
sizeof(char));
|
||||
thisitem->meta = '\0';
|
||||
thisitem->numinputs = 0;
|
||||
thisitem->numoutputs = 0;
|
||||
thisitem->numargs = 0;
|
||||
thisitem->X = 0;
|
||||
thisitem->help = NULL;
|
||||
|
||||
/*
|
||||
* Create new item
|
||||
*/
|
||||
|
||||
if(thisitem->label == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thisitem->label,temp);
|
||||
}
|
||||
|
||||
/*
|
||||
* itemmethod: generic command line generated by this item
|
||||
*/
|
||||
else if(Find(Inline,"itemmethod:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
thisitem->method =
|
||||
(char*)calloc(strlen(temp)+1,sizeof(char));
|
||||
if(thisitem->method == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thisitem->method,temp);
|
||||
}
|
||||
/*
|
||||
* Help file
|
||||
*/
|
||||
else if(Find(Inline,"itemhelp:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
thisitem->help =
|
||||
(char*)calloc(strlen(temp)+1,sizeof(char));
|
||||
if(thisitem->method == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thisitem->help,temp);
|
||||
}
|
||||
/*
|
||||
* Meta key equiv
|
||||
*/
|
||||
else if(Find(Inline,"itemmeta:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
thisitem->meta = temp[0];
|
||||
}
|
||||
/*
|
||||
* arg: defines the symbol for a command line arguement.
|
||||
* this is used for substitution into the itemmethod
|
||||
* definition.
|
||||
*/
|
||||
|
||||
else if(Find(Inline,"arg:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
curarg=thisitem->numargs++;
|
||||
if(curarg == 0)
|
||||
resize = (char*)calloc(1,sizeof(GmenuItemArg));
|
||||
else
|
||||
resize = realloc(thisitem->arg,
|
||||
thisitem->numargs*sizeof(GmenuItemArg) );
|
||||
|
||||
|
||||
if(resize == NULL)
|
||||
Error("arg: Realloc");
|
||||
|
||||
(thisitem->arg) = (GmenuItemArg*)resize;
|
||||
thisarg = &(thisitem->arg[curarg]);
|
||||
thisarg->symbol = (char*)calloc(strlen(temp)+1,
|
||||
sizeof(char));
|
||||
if(thisarg->symbol == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thisarg->symbol,temp);
|
||||
thisarg->optional = FALSE;
|
||||
thisarg->type = 0;
|
||||
thisarg->min = 0;
|
||||
thisarg->max = 0;
|
||||
thisarg->numchoices = 0;
|
||||
thisarg->choice = NULL;
|
||||
thisarg->textvalue = NULL;
|
||||
thisarg->value = 0;
|
||||
}
|
||||
/*
|
||||
* argtype: Defines the type of argument (menu,chooser, text, slider)
|
||||
*/
|
||||
else if(Find(Inline,"argtype:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
if(strcmp(temp,"text")==0)
|
||||
{
|
||||
thisarg->type=TEXTFIELD;
|
||||
thisarg->textvalue =
|
||||
(char*)calloc(GBUFSIZ,sizeof(char));
|
||||
if(thisarg->textvalue == NULL)
|
||||
Error("Calloc");
|
||||
}
|
||||
else if(strcmp(temp,"choice_list")==0)
|
||||
thisarg->type=CHOICE_LIST;
|
||||
else if(strcmp(temp,"choice_menu")==0)
|
||||
thisarg->type=CHOICE_MENU;
|
||||
else if(strcmp(temp,"chooser")==0)
|
||||
thisarg->type=CHOOSER;
|
||||
else if(strcmp(temp,"slider")==0)
|
||||
thisarg->type=SLIDER;
|
||||
else
|
||||
Error(sprintf(head,"Unknown argtype %s",temp));
|
||||
}
|
||||
/*
|
||||
* argtext: The default text value of the symbol.
|
||||
* $argument is replaced by this value if it is not
|
||||
* changed in the dialog box by the user.
|
||||
*/
|
||||
else if(Find(Inline,"argtext:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
(void)strcpy(thisarg->textvalue,temp);
|
||||
}
|
||||
/*
|
||||
* arglabel: Text label displayed in the dialog box for
|
||||
* this argument. It should be a discriptive label.
|
||||
*/
|
||||
else if(Find(Inline,"arglabel:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
thisarg->label=(char*)calloc(strlen(temp)+1,
|
||||
sizeof(char));
|
||||
if(thisarg->label == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thisarg->label,temp);
|
||||
}
|
||||
/*
|
||||
* Argument choice values use the following notation:
|
||||
*
|
||||
* argchoice:Displayed value:Method
|
||||
*
|
||||
* Where "Displayed value" is the label displayed in the dialog box
|
||||
* and "Method" is the value passed back on the command line.
|
||||
*/
|
||||
else if(Find(Inline,"argchoice:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
crop(temp,head,tail);
|
||||
curchoice = thisarg->numchoices++;
|
||||
if(curchoice == 0)
|
||||
resize = (char*)calloc(1,sizeof(GargChoice));
|
||||
else
|
||||
resize = realloc(thisarg->choice,
|
||||
thisarg->numchoices*sizeof(GargChoice));
|
||||
|
||||
if(resize == NULL)
|
||||
Error("argchoice: Realloc");
|
||||
thisarg->choice = (GargChoice*)resize;
|
||||
|
||||
(thisarg->choice[curchoice].label) = NULL;
|
||||
(thisarg->choice[curchoice].method) = NULL;
|
||||
|
||||
(thisarg->choice[curchoice].label) =
|
||||
(char*)calloc(strlen(head)+1,sizeof(char));
|
||||
|
||||
(thisarg->choice[curchoice].method) =
|
||||
(char*)calloc(strlen(tail)+1,sizeof(char));
|
||||
|
||||
if(thisarg->choice[curchoice].method == NULL ||
|
||||
thisarg->choice[curchoice].label == NULL)
|
||||
Error("Calloc");
|
||||
|
||||
(void)strcpy(thisarg->choice[curchoice].label,head);
|
||||
(void)strcpy(thisarg->choice[curchoice].method,tail);
|
||||
}
|
||||
/*
|
||||
* argmin: Minimum value for a slider
|
||||
*/
|
||||
else if(Find(Inline,"argmin:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
(void)sscanf(temp,"%d",&(thisarg->min));
|
||||
}
|
||||
/*
|
||||
* argmax: Maximum value for a slider
|
||||
*/
|
||||
else if(Find(Inline,"argmax:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
(void)sscanf(temp,"%d",&(thisarg->max));
|
||||
}
|
||||
/*
|
||||
* argmethod: Command line flag associated with this argument.
|
||||
* Replaces argument in itemmethod description.
|
||||
*/
|
||||
else if(Find(Inline,"argmethod:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
thisarg->method = (char*)calloc(GBUFSIZ,strlen(temp));
|
||||
if(thisarg->method == NULL)
|
||||
Error("Calloc");
|
||||
(void)strcpy(thisarg->method,tail);
|
||||
}
|
||||
/*
|
||||
* argvalue: default value for a slider
|
||||
*/
|
||||
else if(Find(Inline,"argvalue:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
if(thisarg->type == TEXT)
|
||||
strcpy(thisarg->textvalue,temp);
|
||||
else
|
||||
(void)sscanf(temp,"%d",&(thisarg->value));
|
||||
}
|
||||
/*
|
||||
* argoptional: Flag specifying that an arguement is optional
|
||||
*/
|
||||
else if(Find(Inline,"argoptional:"))
|
||||
thisarg->optional = TRUE;
|
||||
/*
|
||||
* in: Input file description
|
||||
*/
|
||||
else if(Find(Inline,"in:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
curinput = (thisitem->numinputs)++;
|
||||
if(curinput == 0)
|
||||
resize = (char*)calloc(1,sizeof(GfileFormat));
|
||||
else
|
||||
resize = realloc(thisitem->input,
|
||||
(thisitem->numinputs)*sizeof(GfileFormat));
|
||||
|
||||
if(resize == NULL)
|
||||
Error("in: Realloc");
|
||||
thisitem->input = (GfileFormat*)resize;
|
||||
thisinput = &(thisitem->input)[curinput];
|
||||
thisinput->save = FALSE;
|
||||
thisinput->overwrite = FALSE;
|
||||
thisinput->maskable = FALSE;
|
||||
thisinput->format = 0;
|
||||
thisinput->symbol = String(temp);
|
||||
thisinput->name = NULL;
|
||||
thisinput->select = SELECTED;
|
||||
}
|
||||
|
||||
/*
|
||||
* out: Output file description
|
||||
*/
|
||||
|
||||
else if(Find(Inline,"out:"))
|
||||
{
|
||||
crop(Inline,head,temp);
|
||||
curoutput = (thisitem->numoutputs)++;
|
||||
if(curoutput == 0)
|
||||
resize = (char*)calloc(1,sizeof(GfileFormat));
|
||||
else
|
||||
resize = realloc(thisitem->output,
|
||||
(thisitem->numoutputs)*sizeof(GfileFormat));
|
||||
|
||||
if(resize == NULL)
|
||||
Error("out: Realloc");
|
||||
thisitem->output = (GfileFormat*)resize;
|
||||
thisoutput = &(thisitem->output)[curoutput];
|
||||
thisitem->output = (GfileFormat*)resize;
|
||||
thisoutput = &(thisitem->output)[curoutput];
|
||||
thisoutput->save = FALSE;
|
||||
thisoutput->overwrite = FALSE;
|
||||
thisoutput->format = 0;
|
||||
thisoutput->symbol= String(temp);
|
||||
thisoutput->name = NULL;
|
||||
}
|
||||
else if(Find(Inline,"informat:"))
|
||||
{
|
||||
if(thisinput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
crop(Inline,head,tail);
|
||||
if(Find(tail,"genbank"))
|
||||
thisinput->format = GENBANK;
|
||||
else if(Find(tail,"gde"))
|
||||
thisinput->format = GDE;
|
||||
else if(Find(tail,"na_flat"))
|
||||
thisinput->format = NA_FLAT;
|
||||
else if(Find(tail,"colormask"))
|
||||
thisinput->format = COLORMASK;
|
||||
else if(Find(tail,"flat"))
|
||||
thisinput->format = NA_FLAT;
|
||||
else if(Find(tail,"status"))
|
||||
thisinput->format = STATUS_FILE;
|
||||
else fprintf(stderr,"Warning, unknown file format %s\n"
|
||||
,tail);
|
||||
}
|
||||
else if(Find(Inline,"insave:"))
|
||||
{
|
||||
if(thisinput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
thisinput->save = TRUE;
|
||||
}
|
||||
else if(Find(Inline,"inselect:"))
|
||||
{
|
||||
if(thisinput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
crop(Inline,head,tail);
|
||||
if(Find(tail,"one"))
|
||||
thisinput->select = SELECT_ONE;
|
||||
else if(Find(tail,"region"))
|
||||
thisinput->select = SELECT_REGION;
|
||||
else if(Find(tail,"all"))
|
||||
thisinput->select = ALL;
|
||||
}
|
||||
else if(Find(Inline,"inmask:"))
|
||||
{
|
||||
if(thisinput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
thisinput->maskable = TRUE;
|
||||
}
|
||||
else if(Find(Inline,"outformat:"))
|
||||
{
|
||||
if(thisoutput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
crop(Inline,head,tail);
|
||||
if(Find(tail,"genbank"))
|
||||
thisoutput->format = GENBANK;
|
||||
else if(Find(tail,"gde"))
|
||||
thisoutput->format = GDE;
|
||||
else if(Find(tail,"na_flat"))
|
||||
thisoutput->format = NA_FLAT;
|
||||
else if(Find(tail,"flat"))
|
||||
thisoutput->format = NA_FLAT;
|
||||
else if(Find(tail,"status"))
|
||||
thisoutput->format = STATUS_FILE;
|
||||
else if(Find(tail,"colormask"))
|
||||
thisoutput->format = COLORMASK;
|
||||
else fprintf(stderr,"Warning, unknown file format %s\n"
|
||||
,tail);
|
||||
}
|
||||
else if(Find(Inline,"outsave:"))
|
||||
{
|
||||
if(thisoutput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
thisoutput->save = TRUE;
|
||||
}
|
||||
else if(Find(Inline,"outoverwrite:"))
|
||||
{
|
||||
if(thisoutput == NULL)
|
||||
Error("Problem with .GDEmenus");
|
||||
thisoutput->overwrite = TRUE;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Find(): Search the target string for the given key
|
||||
*/
|
||||
Find(target,key)
|
||||
char *key,*target;
|
||||
{
|
||||
int i,j,len1,dif,flag = FALSE;
|
||||
dif = (strlen(target)) - (len1 = strlen(key)) +1;
|
||||
|
||||
if(len1>0)
|
||||
for(j=0;j<dif && flag == FALSE;j++)
|
||||
{
|
||||
flag = TRUE;
|
||||
for(i=0;i<len1 && flag;i++)
|
||||
flag = (key[i] == target[i+j])?TRUE:FALSE;
|
||||
|
||||
}
|
||||
return(flag);
|
||||
}
|
||||
|
||||
|
||||
Find2(target,key)
|
||||
char *key,*target;
|
||||
/*
|
||||
* Like find, but returns the index of the leftmost
|
||||
* occurence, and -1 if not found.
|
||||
*/
|
||||
{
|
||||
int i,j,len1,dif,flag = FALSE;
|
||||
dif = (strlen(target)) - (len1 = strlen(key)) +1;
|
||||
|
||||
if(len1>0)
|
||||
for(j=0;j<dif && flag == FALSE;j++)
|
||||
{
|
||||
flag = TRUE;
|
||||
for(i=0;i<len1 && flag;i++)
|
||||
flag = (key[i] == target[i+j])?TRUE:FALSE;
|
||||
|
||||
}
|
||||
return(flag?j-1:-1);
|
||||
}
|
||||
|
||||
|
||||
Error(msg)
|
||||
char *msg;
|
||||
{
|
||||
(void)fprintf(stderr,"%s\n",msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
int getline(file,string)
|
||||
FILE *file;
|
||||
char string[];
|
||||
{
|
||||
char c;
|
||||
int i;
|
||||
for(i=0;((c=getc(file))!='\n') && (c!=EOF);i++)
|
||||
string[i]=c;
|
||||
string[i] = '\0';
|
||||
if (i==0 && c==EOF) return (EOF);
|
||||
else return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
Crop():
|
||||
Split "this:that[:the_other]"
|
||||
into: "this" and "that[:the_other]"
|
||||
*/
|
||||
|
||||
crop(input,head,tail)
|
||||
char input[],head[],tail[];
|
||||
{
|
||||
/*
|
||||
* Crop needs to be fixed so that whitespace is compressed off the end
|
||||
* of tail
|
||||
*/
|
||||
int offset,end,i,j,length;
|
||||
|
||||
length=strlen(input);
|
||||
for(offset=0;offset<length && input[offset] != ':';offset++)
|
||||
head[offset]=input[offset];
|
||||
head[offset++] = '\0';
|
||||
for(;offset<length && input[offset] == ' ';offset++);
|
||||
for(end=length-1;input[end] ==' ' && end>offset;end--);
|
||||
|
||||
for(j=0,i=offset;i<=end;i++,j++)
|
||||
tail[j]=input[i];
|
||||
tail[j] = '\0';
|
||||
return;
|
||||
}
|
BIN
CORE/ParseMenu.o
Normal file
BIN
CORE/ParseMenu.o
Normal file
Binary file not shown.
292
CORE/Scroll.c
Executable file
292
CORE/Scroll.c
Executable file
|
@ -0,0 +1,292 @@
|
|||
#include <malloc.h>
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/scrollbar.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/font.h>
|
||||
#include <xview/xv_xrect.h>
|
||||
#include <xview/cms.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
|
||||
/*
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
InitEditSplit(oldview, newview, pos)
|
||||
Xv_Window oldview, newview;
|
||||
int pos;
|
||||
{
|
||||
Xv_Window view, win;
|
||||
extern Frame frame;
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Canvas EditCan;
|
||||
extern int SCALE;
|
||||
Scrollbar hsc,vsc;
|
||||
int j;
|
||||
|
||||
if(DataSet == (NA_Alignment *) NULL || EditCan == (Canvas) NULL)
|
||||
return ;
|
||||
|
||||
for(j=0;j<xv_get(EditCan,OPENWIN_NVIEWS);j++)
|
||||
{
|
||||
view = (Xv_window)xv_get(EditCan,OPENWIN_NTH_VIEW,j);
|
||||
|
||||
hsc = (Scrollbar)xv_get(EditCan,
|
||||
OPENWIN_HORIZONTAL_SCROLLBAR,view);
|
||||
|
||||
vsc = (Scrollbar)xv_get(EditCan,
|
||||
OPENWIN_VERTICAL_SCROLLBAR,view);
|
||||
|
||||
xv_set(hsc,
|
||||
SCROLLBAR_VIEW_START,0,
|
||||
SCROLLBAR_OBJECT_LENGTH,((NA_Alignment*)DataSet)->
|
||||
maxlen,0);
|
||||
|
||||
xv_set(vsc,
|
||||
SCROLLBAR_VIEW_START,0,
|
||||
SCROLLBAR_OBJECT_LENGTH,((NA_Alignment*)DataSet)->
|
||||
numelements,0);
|
||||
|
||||
if (view == newview)
|
||||
{
|
||||
/*
|
||||
* Get the paint window associated, and set it up the same as in
|
||||
* BasicDisplay:
|
||||
*/
|
||||
|
||||
(void)xv_set(xv_get(view,CANVAS_VIEW_PAINT_WINDOW),
|
||||
WIN_EVENT_PROC,NAEvents,
|
||||
WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS,
|
||||
LOC_DRAG, LOC_WINENTER, WIN_ASCII_EVENTS,
|
||||
WIN_META_EVENTS, 0,
|
||||
0);
|
||||
|
||||
notify_interpose_event_func(
|
||||
xv_get(hsc,SCROLLBAR_NOTIFY_CLIENT),
|
||||
EditCanScroll,NOTIFY_SAFE);
|
||||
|
||||
xv_set(hsc,
|
||||
SCROLLBAR_OBJECT_LENGTH,((NA_Alignment*)DataSet)->
|
||||
maxlen,SCROLLBAR_VIEW_START,0,
|
||||
0);
|
||||
|
||||
xv_set(vsc,
|
||||
SCROLLBAR_OBJECT_LENGTH,((NA_Alignment*)DataSet)->
|
||||
numelements,0);
|
||||
}
|
||||
}
|
||||
RepaintAll(FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Notify_value EditCanScroll(client,event,arg,type)
|
||||
Notify_client client;
|
||||
Event *event;
|
||||
Notify_arg arg;
|
||||
Notify_event_type type;
|
||||
{
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Canvas EditCan;
|
||||
extern Panel_item left_foot,right_foot;
|
||||
extern int DisplayAttr,SCALE;
|
||||
|
||||
Notify_client parent;
|
||||
Drawable draw;
|
||||
GC gc;
|
||||
Display *dpy;
|
||||
Xv_xrectlist area;
|
||||
|
||||
Xv_window win,view;
|
||||
Scrollbar hsc,vsc;
|
||||
extern Frame frame;
|
||||
int lastx,currentx,deltax,j;
|
||||
int lasty,currenty,deltay;
|
||||
int dx,dy;
|
||||
char buffer[80];
|
||||
|
||||
hsc=(Scrollbar)xv_get(EditCan,OPENWIN_HORIZONTAL_SCROLLBAR, client);
|
||||
vsc=(Scrollbar)xv_get(EditCan,OPENWIN_VERTICAL_SCROLLBAR, client);
|
||||
/*
|
||||
test for hsc && vsc attempts to fix warnings at split
|
||||
*/
|
||||
|
||||
if(event_id(event) == SCROLLBAR_REQUEST && hsc && vsc)
|
||||
{
|
||||
win=(Xv_window)xv_get(client,
|
||||
CANVAS_VIEW_PAINT_WINDOW);
|
||||
|
||||
dx=((NA_DisplayData*)(((NA_Alignment*)DataSet)->
|
||||
na_ddata))-> font_dx;
|
||||
|
||||
dy=((NA_DisplayData*)(((NA_Alignment*)DataSet)->
|
||||
na_ddata))-> font_dy;
|
||||
|
||||
lastx=(int)xv_get(hsc,
|
||||
SCROLLBAR_LAST_VIEW_START);
|
||||
|
||||
currentx=(int)xv_get(hsc,SCROLLBAR_VIEW_START)/SCALE;
|
||||
deltax=(int)xv_get(hsc,SCROLLBAR_VIEW_LENGTH);
|
||||
|
||||
lasty=(int)xv_get(vsc,
|
||||
SCROLLBAR_LAST_VIEW_START);
|
||||
|
||||
currenty=(int)xv_get(vsc,SCROLLBAR_VIEW_START);
|
||||
deltay=(int)xv_get(vsc,SCROLLBAR_VIEW_LENGTH);
|
||||
|
||||
area.count=1;
|
||||
area.rect_array[0].x=0;
|
||||
area.rect_array[0].y=0;
|
||||
area.rect_array[0].width=(short)(deltax*dx);
|
||||
area.rect_array[0].height=(short)(deltay*dy);
|
||||
|
||||
RepaintNACan(EditCan,win,xv_get(client,
|
||||
XV_DISPLAY),
|
||||
(Window)xv_get(win,XV_XID),&area);
|
||||
|
||||
sprintf(buffer,"Columns %d - %d shown",currentx,
|
||||
currentx+deltax*SCALE);
|
||||
if(DisplayAttr & VSCROLL_LOCK)
|
||||
{
|
||||
DisplayAttr &= (unsigned int)(255 - VSCROLL_LOCK);
|
||||
for(j=0;j<xv_get(EditCan,OPENWIN_NVIEWS);j++)
|
||||
{
|
||||
view = xv_get(EditCan,OPENWIN_NTH_VIEW,j);
|
||||
if(view != client)
|
||||
{
|
||||
if(view)
|
||||
{
|
||||
vsc=(Scrollbar)xv_get(EditCan,
|
||||
OPENWIN_VERTICAL_SCROLLBAR, view);
|
||||
if(vsc)
|
||||
xv_set(vsc,SCROLLBAR_VIEW_START,
|
||||
currenty, SCROLLBAR_VIEW_LENGTH,deltay,
|
||||
0);
|
||||
}
|
||||
}
|
||||
}
|
||||
DisplayAttr |= VSCROLL_LOCK;
|
||||
}
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
xv_set(right_foot,PANEL_LABEL_STRING,buffer,0);
|
||||
return(XV_OK);
|
||||
}
|
||||
|
||||
/*
|
||||
test for hsc && vsc attempts to fix warnings at split
|
||||
*/
|
||||
else if ((event_action(event) == ACTION_SPLIT_HORIZONTAL ||
|
||||
event_action(event) == ACTION_SPLIT_VERTICAL ) &&
|
||||
hsc && vsc)
|
||||
{
|
||||
xv_set(hsc,SCROLLBAR_VIEW_START,0,0);
|
||||
xv_set(vsc,SCROLLBAR_VIEW_START,0,0);
|
||||
return(notify_next_event_func(client,event,arg,type));
|
||||
}
|
||||
else
|
||||
return(notify_next_event_func(client,event,arg,type));
|
||||
}
|
||||
|
||||
|
||||
|
||||
void JumpTo(view,x,y)
|
||||
Xv_window view;
|
||||
int x,y;
|
||||
{
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Canvas EditCan;
|
||||
Scrollbar hsc,vsc;
|
||||
int j,dx,dy;
|
||||
Xv_xrectlist area;
|
||||
Xv_window win;
|
||||
|
||||
hsc = (Scrollbar)xv_get(EditCan,OPENWIN_HORIZONTAL_SCROLLBAR,view);
|
||||
vsc = (Scrollbar)xv_get(EditCan,OPENWIN_VERTICAL_SCROLLBAR,view);
|
||||
win = (Xv_window)xv_get(view,CANVAS_VIEW_PAINT_WINDOW);
|
||||
|
||||
(void)xv_set(hsc,SCROLLBAR_VIEW_START,MIN(x,
|
||||
xv_get(hsc,SCROLLBAR_OBJECT_LENGTH)-xv_get(hsc,SCROLLBAR_VIEW_LENGTH)),
|
||||
0);
|
||||
(void)xv_set(vsc,SCROLLBAR_VIEW_START,MIN(y,
|
||||
xv_get(vsc,SCROLLBAR_OBJECT_LENGTH)-xv_get(vsc,SCROLLBAR_VIEW_LENGTH)),
|
||||
0);
|
||||
(void)xv_set(hsc,SCROLLBAR_OBJECT_LENGTH,DataSet->maxlen,0);
|
||||
(void)xv_set(vsc,SCROLLBAR_OBJECT_LENGTH,DataSet->numelements,0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
RepaintAll(Names)
|
||||
int Names;
|
||||
{
|
||||
extern NA_Alignment *DataSet;
|
||||
extern Canvas EditCan,EditNameCan;
|
||||
Xv_xrectlist area;
|
||||
Xv_window win,view;
|
||||
Scrollbar hsc,vsc;
|
||||
extern int SCALE;
|
||||
extern Frame frame;
|
||||
int lastx,currentx,deltax;
|
||||
int lasty,currenty,deltay;
|
||||
int dx,dy,j;
|
||||
char buffer[80];
|
||||
|
||||
if(DataSet == NULL)
|
||||
return;
|
||||
|
||||
if((NA_DisplayData*)(((NA_Alignment*)DataSet)->na_ddata == NULL))
|
||||
return;
|
||||
|
||||
for(j=0;j<xv_get(EditCan,OPENWIN_NVIEWS);j++)
|
||||
{
|
||||
view = (Xv_window)xv_get(EditCan,OPENWIN_NTH_VIEW,j);
|
||||
win = (Xv_window)xv_get(view,CANVAS_VIEW_PAINT_WINDOW);
|
||||
dx = ((NA_DisplayData*)(((NA_Alignment*)DataSet)->na_ddata))->
|
||||
font_dx ;
|
||||
dy = ((NA_DisplayData*)(((NA_Alignment*)DataSet)->na_ddata))->
|
||||
font_dy;
|
||||
hsc=(Scrollbar)xv_get(EditCan,OPENWIN_HORIZONTAL_SCROLLBAR,
|
||||
view);
|
||||
vsc=(Scrollbar)xv_get(EditCan,OPENWIN_VERTICAL_SCROLLBAR, view);
|
||||
|
||||
lastx = (int)xv_get(hsc,SCROLLBAR_LAST_VIEW_START);
|
||||
currentx = (int)xv_get(hsc,SCROLLBAR_VIEW_START);
|
||||
deltax = (int)xv_get(hsc,SCROLLBAR_VIEW_LENGTH);
|
||||
|
||||
lasty = (int)xv_get(vsc,SCROLLBAR_LAST_VIEW_START);
|
||||
currenty = (int)xv_get(vsc,SCROLLBAR_VIEW_START);
|
||||
deltay = (int)xv_get(vsc,SCROLLBAR_VIEW_LENGTH);
|
||||
|
||||
area.count = 1;
|
||||
area.rect_array[0].x = 0;
|
||||
area.rect_array[0].y = 0;
|
||||
area.rect_array[0].width = (short)(deltax*dx);
|
||||
area.rect_array[0].height = (short)(deltay*dy);
|
||||
|
||||
RepaintNACan(EditCan,win,xv_get(view, XV_DISPLAY),
|
||||
(Window)xv_get(win,XV_XID),&area);
|
||||
|
||||
sprintf(buffer,"%d - %d",currentx/SCALE,
|
||||
currentx/SCALE+deltax*SCALE);
|
||||
xv_set(frame,FRAME_RIGHT_FOOTER,buffer,0);
|
||||
}
|
||||
if(Names)
|
||||
DrawNANames(xv_get(view, XV_DISPLAY),
|
||||
(Window)xv_get(xv_get(EditNameCan,
|
||||
CANVAS_NTH_PAINT_WINDOW,0), XV_XID));
|
||||
return;
|
||||
}
|
||||
|
||||
DestroySplit(view)
|
||||
Xv_window view;
|
||||
{}
|
BIN
CORE/Scroll.o
Normal file
BIN
CORE/Scroll.o
Normal file
Binary file not shown.
274
CORE/defines.h
Executable file
274
CORE/defines.h
Executable file
|
@ -0,0 +1,274 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
#include <xview/font.h>
|
||||
#include <xview/scrollbar.h>
|
||||
#include <xview/xview.h>
|
||||
|
||||
#define TRUTH 1
|
||||
#define JUSTICE 2
|
||||
#define BEAUTY 3
|
||||
|
||||
/*
|
||||
* Edit modes
|
||||
*/
|
||||
|
||||
#define INSERT 0
|
||||
#define CHECK 1
|
||||
|
||||
/*
|
||||
* Cursor directions
|
||||
*/
|
||||
#define RIGHT 1
|
||||
#define LEFT 0
|
||||
#define UP 0
|
||||
#define DOWN 1
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#define GBUFSIZ 512
|
||||
#define MAX_NA_DISPLAY_WIDTH 1024
|
||||
#define MAX_NA_DISPLAY_HEIGHT 1024
|
||||
#define MAX_STARTUP_CANVAS_HEIGHT 512
|
||||
#define grey_height 8
|
||||
#define grey_width 8
|
||||
|
||||
/*
|
||||
* Definable dialog types
|
||||
*/
|
||||
#define TEXTFIELD 0x1
|
||||
#define SLIDER 0x2
|
||||
#define CHOOSER 0x3
|
||||
#define CHOICE_MENU 0x4
|
||||
#define CHOICE_LIST 0x5
|
||||
|
||||
/*
|
||||
* File Formats
|
||||
*/
|
||||
#define GDE 0x100
|
||||
#define GENBANK 0x101
|
||||
#define NA_FLAT 0x102
|
||||
#define COLORMASK 0x103
|
||||
#define STATUS_FILE 0x104
|
||||
|
||||
/*
|
||||
* Protection bits
|
||||
*/
|
||||
|
||||
#define PROT_BASE_CHANGES 0x1 /* Allow base changes */
|
||||
#define PROT_GREY_SPACE 0x2 /* Allow greyspace modification */
|
||||
#define PROT_WHITE_SPACE 0x4 /* Allow whitespace modification */
|
||||
#define PROT_TRANSLATION 0x8 /* Allow translation */
|
||||
#define PROT_REORIENTATION 0x10 /* Allow reorientation */
|
||||
|
||||
|
||||
/*
|
||||
* File loading methods (must be 'OR/AND' able)
|
||||
*/
|
||||
|
||||
#define NONE 0x0
|
||||
#define DESTROY 0x1
|
||||
#define LOAD 0x2
|
||||
#define SAVE 0x4
|
||||
#define SELECTED 0x8
|
||||
#define ALL 0x10
|
||||
#define SELECT_REGION 0x20
|
||||
#define SELECT_ONE 0x30
|
||||
|
||||
/*
|
||||
* Sequence DISPLAY Types
|
||||
*/
|
||||
#define NASEQ_ALIGN 0x201
|
||||
#define NASEQ 0x202
|
||||
|
||||
/*
|
||||
* Sequence Data Types
|
||||
*/
|
||||
#define DNA 0x300
|
||||
#define RNA 0x301
|
||||
#define TEXT 0x302
|
||||
#define MASK 0x303
|
||||
#define PROTEIN 0x304
|
||||
/*
|
||||
* extended sequence attributes (true/false)
|
||||
*/
|
||||
|
||||
#define IS_5_TO_3 0x01 /* 5prime to 3 prime */
|
||||
#define IS_3_TO_5 0x02 /* 3 prime to 5 prime */
|
||||
#define IS_CIRCULAR 0x04 /* circular dna */
|
||||
#define IS_PRIMARY 0x10 /* on the primary strand */
|
||||
#define IS_SECONDARY 0x20 /* on the secondary strand */
|
||||
#define IS_MODIFIED 0x40 /* modification flag */
|
||||
#define IS_ORIG_PRIMARY 0x80 /* Original sequence was primary */
|
||||
#define IS_ORIG_SECONDARY 0x100 /* Original sequence was secondary */
|
||||
#define IS_ORIG_5_TO_3 0x200 /* Original sequence was 5_to_3 */
|
||||
#define IS_ORIG_3_TO_5 0x400 /* Original sequence was 3_to_5 */
|
||||
|
||||
#ifdef HGL
|
||||
#define DEFAULT_X_ATTR 0
|
||||
#else
|
||||
#define DEFAULT_X_ATTR IS_5_TO_3+IS_PRIMARY;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Other display attributed
|
||||
*/
|
||||
#define INVERTED 1
|
||||
#define VSCROLL_LOCK 2
|
||||
#define KEYCLICKS 4
|
||||
#define GDE_MESSAGE_PANEL 8
|
||||
|
||||
/*
|
||||
* Coloring Methods
|
||||
*/
|
||||
#define COLOR_MONO 0x40 /* no color, simple black and white */
|
||||
#define COLOR_LOOKUP 0x41 /* Use a simple value->color lookup */
|
||||
#define COLOR_ALN_MASK 0x42 /* The alignment has a column by column color
|
||||
mask associated with it */
|
||||
#define COLOR_SEQ_MASK 0x43 /* Each sequence has a color mask*/
|
||||
#define COLOR_STRAND 0x44 /* Color based on original strandedness*/
|
||||
|
||||
|
||||
/*
|
||||
* Data types
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int *valu;
|
||||
} NumList;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
int yy;
|
||||
int mm;
|
||||
int dd;
|
||||
int hr;
|
||||
int mn;
|
||||
int sc;
|
||||
} origin,modify;
|
||||
} TimeStamp;
|
||||
|
||||
typedef unsigned char NA_Base;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *name;
|
||||
int type;
|
||||
NumList *list;
|
||||
int listlen;
|
||||
int maxlen;
|
||||
} GMask;
|
||||
|
||||
|
||||
typedef struct NA_SeqStruct
|
||||
{
|
||||
char id[80]; /* sequence id (ACCESSION)*/
|
||||
char seq_name[80]; /* Sequence name (ORGANISM) */
|
||||
char short_name[32]; /* Name (LOCUS) */
|
||||
char barcode[80];
|
||||
char contig[80];
|
||||
char membrane[80];
|
||||
char description[80]; /* Description (DEFINITION)*/
|
||||
char authority[80]; /* Author (or creator) */
|
||||
char *comments; /* Stuff we can't parse */
|
||||
int comments_len, comments_maxlen;
|
||||
|
||||
NA_Base *sequence; /* List of bases */
|
||||
TimeStamp t_stamp; /* Time stamp of origin/modification */
|
||||
Mask *mask; /* List of masks(analysis/display) */
|
||||
int offset; /* offset into alignment (left white)
|
||||
space */
|
||||
int seqlen; /* Number of elements in sequence[] */
|
||||
int seqmaxlen; /* Size sequence[] (for mem alloc) */
|
||||
unsigned int protect; /* Protection mask */
|
||||
int attr; /* Extended attributes */
|
||||
int groupid; /* group id */
|
||||
int *col_lut; /* character to color LUT */
|
||||
struct NA_SeqStruct *groupb; /* Group link backward */
|
||||
struct NA_SeqStruct *groupf; /* Group link forward */
|
||||
int *cmask; /* color mask */
|
||||
int selected; /* Selection flag */
|
||||
int subselected; /* Sub selection flag */
|
||||
int format; /* default file format */
|
||||
int elementtype; /* what type of data are being aligned*/
|
||||
char *baggage; /* unformatted comments*/
|
||||
int baggage_len,
|
||||
baggage_maxlen;
|
||||
int *tmatrix; /* translation matrix (code->char) */
|
||||
int *rmatrix; /* reverse translation matrix
|
||||
(char->code)*/
|
||||
} NA_Sequence;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *id; /* Alignment ID */
|
||||
char *description; /* Description of the alignment*/
|
||||
char *authority; /* Who generated the alignment*/
|
||||
int *cmask; /* color mask */
|
||||
int cmask_offset; /* color mask offset */
|
||||
int cmask_len; /* color mask length */
|
||||
int ref; /* reference sequence */
|
||||
int numelements; /* number of data elements */
|
||||
int maxnumelements; /* maximum number of data elements */
|
||||
int nummasks; /* number of masks */
|
||||
int maxlen; /* Maximum length of alignment */
|
||||
int rel_offset; /* add this to every sequence offset */
|
||||
/* to orient it back to 0 */
|
||||
Mask *mask; /* masks */
|
||||
NA_Sequence *element; /* alignment elements */
|
||||
int numgroups; /* number of groups */
|
||||
NA_Sequence **group; /* link to array of pointers into
|
||||
each group */
|
||||
char *na_ddata; /* display data */
|
||||
int format; /* default file format */
|
||||
char *selection_mask; /* Sub sequence selection mask */
|
||||
int selection_mask_len; /* Sub selection mask length */
|
||||
int min_subselect; /* Leftmost coord of selection mask */
|
||||
} NA_Alignment;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int font_dx; /* width of a character in this font*/
|
||||
int font_dy; /* height of a character in this font*/
|
||||
int wid,ht; /* width and height of edit win (in
|
||||
characters */
|
||||
int top_seq; /* Top sequence index shown */
|
||||
int lft_pos; /* Leftmost column (in alignment
|
||||
position coords) */
|
||||
int color_type; /* Method of manipulating colors
|
||||
(See above) */
|
||||
int depth; /* number of color bits available */
|
||||
int num_colors; /* Actual number of colors used */
|
||||
int *palette; /* palette for display */
|
||||
int *col_lut; /* character to color LUT */
|
||||
int black,white; /* color indicies for blk,wht */
|
||||
int cursor_x,cursor_y; /* Current cursor positions */
|
||||
int position; /* Current position minus whitespace */
|
||||
int *jumptbl; /* the jump table for fast access
|
||||
into the sequence data */
|
||||
int jtsize; /* its length */
|
||||
NA_Alignment *aln; /* Pointer to the actual data set
|
||||
(the alignment */
|
||||
Xv_font font; /* The default font */
|
||||
Canvas seq_can,nam_can; /* ties to the canvas for screen
|
||||
updates. */
|
||||
Window seq_x,nam_x; /* X versions of the above */
|
||||
int use_repeat; /* Number keys set repeat count*/
|
||||
|
||||
} NA_DisplayData;
|
||||
|
||||
|
||||
#define getcmask(a,b) (b < ((a)->offset))?0:((a)->cmask[(b-(a)->offset)])
|
||||
|
||||
#include "functions.h"
|
8
CORE/formatdb.log
Normal file
8
CORE/formatdb.log
Normal file
|
@ -0,0 +1,8 @@
|
|||
|
||||
========================[ Feb 1, 2002 1:57 PM ]========================
|
||||
NOTE: CoreLib [002.003] FileOpen("HIV1POLDNA.fasta","r") failed
|
||||
Cannot open input database file. Formating failed...
|
||||
|
||||
========================[ Feb 1, 2002 7:27 PM ]========================
|
||||
NOTE: CoreLib [002.003] FileOpen("SIVPOLPRO.fasta","r") failed
|
||||
Cannot open input database file. Formating failed...
|
90
CORE/functions.h
Executable file
90
CORE/functions.h
Executable file
|
@ -0,0 +1,90 @@
|
|||
int AdjustGroups();
|
||||
int CaseChange();
|
||||
int Cfree();
|
||||
int ChAttr();
|
||||
int ChAttrType();
|
||||
int ChColor();
|
||||
int ChDisAttr();
|
||||
int ChDisplayDone();
|
||||
int ChEditDir();
|
||||
int ChEditMode();
|
||||
int ChFontSize();
|
||||
int ChangeDisplay();
|
||||
int CheckType();
|
||||
int CompSeqs();
|
||||
int CompressAlign();
|
||||
int DONT();
|
||||
int DO();
|
||||
int DestroySplit();
|
||||
int DoMeta();
|
||||
int DrawNAColor();
|
||||
int DummyRepaint();
|
||||
int EditCopy();
|
||||
int EditCut();
|
||||
int EditPaste();
|
||||
int EditSubCut();
|
||||
int EditSubPaste();
|
||||
int Find();
|
||||
int Find2();
|
||||
int FrameDone();
|
||||
int Group();
|
||||
int HELP();
|
||||
int HandleMenuItem();
|
||||
int InitEditSplit();
|
||||
int InitNASeq();
|
||||
int LoadData();
|
||||
int ModAttr();
|
||||
int ModAttrDone();
|
||||
int NAEvents();
|
||||
int NANameEvents();
|
||||
int New();
|
||||
int NormalizeOffset();
|
||||
Notify_value EditCanScroll();
|
||||
Notify_value SaveComments();
|
||||
int Open();
|
||||
int OpenFileName();
|
||||
int OrigDir();
|
||||
int OverWrite();
|
||||
Panel BasicDisplay();
|
||||
int Prot();
|
||||
int QuitGDE();
|
||||
int ReadCMask();
|
||||
int ReadStatus();
|
||||
int Regroup();
|
||||
int RemoveQuotes();
|
||||
int RepaintAll();
|
||||
int RepaintNACan();
|
||||
int ResizeNACan();
|
||||
int RevSeqs();
|
||||
int SaveAs();
|
||||
int SaveAsFileName();
|
||||
int SaveFormat();
|
||||
int SelectAll();
|
||||
int SelectBy();
|
||||
int SelectByName();
|
||||
int SetFilename();
|
||||
NA_DisplayData *SetNADData();
|
||||
int SetProtection();
|
||||
int SetScale();
|
||||
int SetTime();
|
||||
int StripSpecial();
|
||||
int TestSelection();
|
||||
int Ungroup();
|
||||
int Warning();
|
||||
int WriteGDE();
|
||||
int WriteGen();
|
||||
int WriteNA_Flat();
|
||||
int WriteCMask();
|
||||
int WriteStatus();
|
||||
char *Calloc();
|
||||
char *ReplaceArgs();
|
||||
char *ReplaceFile();
|
||||
char *Realloc();
|
||||
char *String();
|
||||
char *uniqueID();
|
||||
int TestSelection();
|
||||
int hnorm();
|
||||
int vnorm();
|
||||
void HandleMenus();
|
||||
void JumpTo();
|
||||
void SeqNorm();
|
201
CORE/globals.h
Executable file
201
CORE/globals.h
Executable file
|
@ -0,0 +1,201 @@
|
|||
#include <xview/cms.h>
|
||||
int DataType;
|
||||
int FileFormat,first_select = FALSE;
|
||||
int Dirty,OldEditMode,EditMode = INSERT, EditDir = RIGHT;
|
||||
int DisplayAttr = 0,OVERWRITE = FALSE;
|
||||
int SCALE = 1;
|
||||
int BlockInput = FALSE;
|
||||
#ifdef SeeAlloc
|
||||
int TotalCalloc = 0;
|
||||
int TotalRealloc = 0;
|
||||
#endif
|
||||
char FileName[80];
|
||||
char current_dir[1024];
|
||||
|
||||
/*
|
||||
* Months of the year
|
||||
*/
|
||||
char month[12][6] =
|
||||
{
|
||||
"-JAN-","-FEB-","-MAR-","-APR-","-MAY-","-JUN-",
|
||||
"-JUL-","-AUG-","-SEP-","-OCT-","-NOV-","-DEC-"
|
||||
};
|
||||
|
||||
/*
|
||||
* Tables for DNA/RNA <--> ASCII translation
|
||||
*/
|
||||
|
||||
int Default_RNA_Trans[128] =
|
||||
{
|
||||
'-','A','C','M','G','R','S','V','U','W','Y','H','K','D','B','N',/*Upper*/
|
||||
'~','a','c','m','g','r','s','v','u','w','y','h','k','d','b','n',/*lower*/
|
||||
'-','A','C','M','G','R','S','V','U','W','Y','H','K','D','B','N',/*Upper select*/
|
||||
'~','a','c','m','g','r','s','v','u','w','y','h','k','d','b','n',/*lwr select*/
|
||||
'-','A','C','M','G','R','S','V','U','W','Y','H','K','D','B','N',/*extended*/
|
||||
'~','a','c','m','g','r','s','v','u','w','y','h','k','d','b','n',/*extended*/
|
||||
'-','A','C','M','G','R','S','V','U','W','Y','H','K','D','B','N',/*extended*/
|
||||
'~','a','c','m','g','r','s','v','u','w','y','h','k','d','b','n',/*extended*/
|
||||
};
|
||||
|
||||
int Default_DNA_Trans[128]={
|
||||
'-','A','C','M','G','R','S','V','T','W','Y','H','K','D','B','N',/*Upper*/
|
||||
'~','a','c','m','g','r','s','v','t','w','y','h','k','d','b','n',/*lower*/
|
||||
'-','A','C','M','G','R','S','V','T','W','Y','H','K','D','B','N',/*Upper select*/
|
||||
'~','a','c','m','g','r','s','v','t','w','y','h','k','d','b','n',/*lwr select*/
|
||||
'-','A','C','M','G','R','S','V','T','W','Y','H','K','D','B','N',/*extended*/
|
||||
'~','a','c','m','g','r','s','v','t','w','y','h','k','d','b','n',/*extended*/
|
||||
'-','A','C','M','G','R','S','V','T','W','Y','H','K','D','B','N',/*extended*/
|
||||
'~','a','c','m','g','r','s','v','t','w','y','h','k','d','b','n',/*extended*/
|
||||
};
|
||||
|
||||
int Default_NA_RTrans[128]={
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x00,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
/* Upper case alpha */
|
||||
0x01,0xe,0x02,0x0d,0,0,0x04,0x0b,0,0,0x0c,0,0x03,0x0f,0,0,0,0x05,0x06,0x08,
|
||||
0x08,0x07,0x09,0x0f,0xa,0,0,0,0,0,0,0,
|
||||
/* Lower case alpha */
|
||||
0x11,0x1e,0x12,0x1d,0,0,0x14,0x1b,0,0,0x1c,0,0x13,0x1f,0,0,0,0x15,0x16,0x18,
|
||||
0x18,0x17,0x19,0x1f,0x1a,0,0,0,0,0x10,0
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* RGB values for the simple palette
|
||||
*/
|
||||
|
||||
Xv_singlecolor Default_Colors[16]= {
|
||||
{0,128,0},
|
||||
{255,192,0},
|
||||
{255,0,255},
|
||||
{225,0,0},
|
||||
{0,192,192},
|
||||
{0,192,0},
|
||||
{0,0,255},
|
||||
{128,0,255},
|
||||
{0,0,0},
|
||||
{36,36,36},
|
||||
{72,72,72},
|
||||
{109,109,109},
|
||||
{145,145,145},
|
||||
{182,182,182},
|
||||
{218,218,218},
|
||||
{255,255,255}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Character->color lookup table
|
||||
*/
|
||||
|
||||
int Default_NAColor_LKUP[128] =
|
||||
{
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13,
|
||||
13,3,6,13,8,13,13,13,5,13,13,13,13,13,13,13
|
||||
};
|
||||
|
||||
int Default_PROColor_LKUP[128] =
|
||||
{
|
||||
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
|
||||
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
|
||||
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
|
||||
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
|
||||
12,2,8,3,8,8,6,2,4,5,12,4,5,5,8,12,2,
|
||||
8,4,2,2,12,5,6,12,6,8,12,12,12,12,12,12,
|
||||
2,8,3,8,8,6,2,4,5,12,4,5,5,8,12,2,
|
||||
8,4,2,2,12,5,6,12,6,8,12,12,12,12,12
|
||||
};
|
||||
|
||||
char vert_mito[512][4] =
|
||||
{
|
||||
"AAA","Lys", "AAC","Asn", "AAG","Lys", "AAT","Asn", "ACA","Thr",
|
||||
"ACC","Thr", "ACG","Thr", "ACT","Thr", "AGA","Ter", "AGC","Ser",
|
||||
"AGG","Ter", "AGT","Ser", "ATA","Met", "ATC","Ile", "ATG","Met",
|
||||
"ATT","Ile", "CAA","Gln", "CAC","His", "CAG","Gln", "CAT","His",
|
||||
"CCA","Pro", "CCC","Pro", "CCG","Pro", "CCT","Pro", "CGA","Arg",
|
||||
"CGC","Arg", "CGG","Arg", "CGT","Arg", "CTA","Leu", "CTC","Leu",
|
||||
"CTG","Leu", "CTT","Leu", "GAA","Glu", "GAC","Asp", "GAG","Glu",
|
||||
"GAT","Asp", "GCA","Ala", "GCC","Ala", "GCG","Ala", "GCT","Ala",
|
||||
"GGA","Gly", "GGC","Gly", "GGG","Gly", "GGT","Gly", "GTA","Val",
|
||||
"GTC","Val", "GTG","Val", "GTT","Val", "TAA","Ter", "TAC","Tyr",
|
||||
"TAG","Ter", "TAT","Tyr", "TCA","Ser", "TCC","Ser", "TCG","Ser",
|
||||
"TCT","Ser", "TGA","Trp", "TGC","Cys", "TGG","Trp", "TGT","Cys",
|
||||
"TTA","Leu", "TTC","Phe", "TTG","Leu", "TTT","Phe"
|
||||
},
|
||||
mycoplasma[512][4] =
|
||||
{
|
||||
"AAA","Lys", "AAC","Asn", "AAG","Lys", "AAT","Asn", "ACA","Thr",
|
||||
"ACC","Thr", "ACG","Thr", "ACT","Thr", "AGA","Arg", "AGC","Ser",
|
||||
"AGG","Arg", "AGT","Ser", "ATA","Ile", "ATC","Ile", "ATG","Met",
|
||||
"ATT","Ile", "CAA","Gln", "CAC","His", "CAG","Gln", "CAT","His",
|
||||
"CCA","Pro", "CCC","Pro", "CCG","Pro", "CCT","Pro", "CGA","Arg",
|
||||
"CGC","Arg", "CGG","Arg", "CGT","Arg", "CTA","Leu", "CTC","Leu",
|
||||
"CTG","Leu", "CTT","Leu", "GAA","Glu", "GAC","Asp", "GAG","Glu",
|
||||
"GAT","Asp", "GCA","Ala", "GCC","Ala", "GCG","Ala", "GCT","Ala",
|
||||
"GGA","Gly", "GGC","Gly", "GGG","Gly", "GGT","Gly", "GTA","Val",
|
||||
"GTC","Val", "GTG","Val", "GTT","Val", "TAA","Ter", "TAC","Tyr",
|
||||
"TAG","Ter", "TAT","Tyr", "TCA","Ser", "TCC","Ser", "TCG","Ser",
|
||||
"TCT","Ser", "TGA","Trp", "TGC","Cys", "TGG","Trp", "TGT","Cys",
|
||||
"TTA","Leu", "TTC","Phe", "TTG","Leu", "TTT","Phe" },
|
||||
universal[512][4] =
|
||||
{
|
||||
"AAA","Lys", "AAC","Asn", "AAG","Lys", "AAT","Asn", "ACA","Thr",
|
||||
"ACC","Thr", "ACG","Thr", "ACT","Thr", "AGA","Arg", "AGC","Ser",
|
||||
"AGG","Arg", "AGT","Ser", "ATA","Ile", "ATC","Ile", "ATG","Met",
|
||||
"ATT","Ile", "CAA","Gln", "CAC","His", "CAG","Gln", "CAT","His",
|
||||
"CCA","Pro", "CCC","Pro", "CCG","Pro", "CCT","Pro", "CGA","Arg",
|
||||
"CGC","Arg", "CGG","Arg", "CGT","Arg", "CTA","Leu", "CTC","Leu",
|
||||
"CTG","Leu", "CTT","Leu", "GAA","Glu", "GAC","Asp", "GAG","Glu",
|
||||
"GAT","Asp", "GCA","Ala", "GCC","Ala", "GCG","Ala", "GCT","Ala",
|
||||
"GGA","Gly", "GGC","Gly", "GGG","Gly", "GGT","Gly", "GTA","Val",
|
||||
"GTC","Val", "GTG","Val", "GTT","Val", "TAA","Ter", "TAC","Tyr",
|
||||
"TAG","Ter", "TAT","Tyr", "TCA","Ser", "TCC","Ser", "TCG","Ser",
|
||||
"TCT","Ser", "TGA","Ter", "TGC","Cys", "TGG","Trp", "TGT","Cys",
|
||||
"TTA","Leu", "TTC","Phe", "TTG","Leu", "TTT","Phe" },
|
||||
yeast[512][4] =
|
||||
{
|
||||
"AAA","Lys", "AAC","Asn", "AAG","Lys", "AAT","Asn", "ACA","Thr",
|
||||
"ACC","Thr", "ACG","Thr", "ACT","Thr", "AGA","Arg", "AGC","Ser",
|
||||
"AGG","Arg", "AGT","Ser", "ATA","Met", "ATC","Ile", "ATG","Met",
|
||||
"ATT","Ile", "CAA","Gln", "CAC","His", "CAG","Gln", "CAT","His",
|
||||
"CCA","Pro", "CCC","Pro", "CCG","Pro", "CCT","Pro", "CGA","Arg",
|
||||
"CGC","Arg", "CGG","Arg", "CGT","Arg", "CTA","Thr", "CTC","Thr",
|
||||
"CTG","Thr", "CTT","Thr", "GAA","Glu", "GAC","Asp", "GAG","Glu",
|
||||
"GAT","Asp", "GCA","Ala", "GCC","Ala", "GCG","Ala", "GCT","Ala",
|
||||
"GGA","Gly", "GGC","Gly", "GGG","Gly", "GGT","Gly", "GTA","Val",
|
||||
"GTC","Val", "GTG","Val", "GTT","Val", "TAA","Ter", "TAC","Tyr",
|
||||
"TAG","Ter", "TAT","Tyr", "TCA","Ser", "TCC","Ser", "TCG","Ser",
|
||||
"TCT","Ser", "TGA","Trp", "TGC","Cys", "TGG","Trp", "TGT","Cys",
|
||||
"TTA","Leu", "TTC","Phe", "TTG","Leu", "TTT","Phe"
|
||||
};
|
||||
|
||||
|
||||
char three_to_one[23][5] = {
|
||||
"AlaA", "ArgR", "AsnN", "AspD",
|
||||
"AsxB", "CysC", "GlnQ", "GluE",
|
||||
"GlxZ", "GlyG", "HisH", "IleI",
|
||||
"LeuL", "LysK", "MetM", "PheF",
|
||||
"ProP", "SerS", "ThrT", "TrpW",
|
||||
"TyrY", "ValV", "Ter*"
|
||||
};
|
||||
|
||||
|
||||
|
||||
static unsigned char grey0[] = {0,0,0,0,0,0,0,0};
|
||||
static unsigned char grey1[] = {138,0,0,0,138,0,0,0};
|
||||
static unsigned char grey2[] = {138,0,34,0,138,0,34,0};
|
||||
static unsigned char grey3[] = {138,85,34,85,138,85,34,85};
|
||||
static unsigned char grey4[] = {117,170,221,170,117,170,221,170};
|
||||
static unsigned char grey5[] = {117,255,221,255,117,255,221,255};
|
||||
static unsigned char grey6[] = {117,255,255,255,117,255,255,255};
|
||||
static unsigned char grey7[] = {255,255,255,255,255,255,255,255};
|
||||
|
||||
unsigned char *greys[] = {grey1,grey3,grey3,grey1,grey2,grey3,grey0,grey3,
|
||||
grey0,grey1,grey2,grey3,grey4,grey5,grey6,grey7};
|
||||
Pixmap *grey_pm[16];
|
66
CORE/icon_gde
Executable file
66
CORE/icon_gde
Executable file
|
@ -0,0 +1,66 @@
|
|||
/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
|
||||
*/
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x000F,0xE000,0x0000,0x0000,
|
||||
0x0030,0x1800,0x0000,0x0000,
|
||||
0x007F,0xFC00,0x0000,0x0000,
|
||||
0x0180,0x0300,0x0000,0x0000,
|
||||
0x0100,0x0100,0x0000,0x0000,
|
||||
0x0201,0x80FF,0xFFFF,0xFE00,
|
||||
0x0402,0x0040,0x0000,0x0100,
|
||||
0x043A,0x1840,0x0000,0x0080,
|
||||
0x0812,0x2020,0x0000,0x0040,
|
||||
0x0811,0xA820,0xE0E0,0xE020,
|
||||
0x0810,0x2831,0x1111,0x1020,
|
||||
0x0890,0x1831,0x1111,0x1020,
|
||||
0x0940,0x0031,0x1111,0x0020,
|
||||
0x09C0,0x072E,0x0E0E,0x0020,
|
||||
0x0940,0x0220,0x0000,0x0040,
|
||||
0x0540,0x0240,0x0000,0x0080,
|
||||
0x0400,0x0240,0x0000,0x0100,
|
||||
0x0200,0x00FF,0xFFFF,0xFE00,
|
||||
0x0100,0x0100,0x0000,0x0000,
|
||||
0x0180,0x0300,0x0000,0x0000,
|
||||
0x007F,0xFE00,0x0000,0x0000,
|
||||
0x0030,0x1E00,0x0000,0x0000,
|
||||
0x000F,0xFD00,0x1E1F,0x07E0,
|
||||
0x0000,0x5B00,0x3319,0x8600,
|
||||
0x0000,0x3680,0x6018,0xC600,
|
||||
0x0000,0x2D80,0x6018,0xC600,
|
||||
0x0000,0x1B40,0x6018,0xC7C0,
|
||||
0x0000,0x16C0,0x6318,0xC600,
|
||||
0x0000,0x0DA0,0x6318,0xC600,
|
||||
0x0000,0x0B60,0x3319,0x8600,
|
||||
0x0000,0x06F0,0x1F1F,0x07E0,
|
||||
0x0000,0x05F0,0x0000,0x0000,
|
||||
0x0000,0x03E0,0x0000,0x0000,
|
||||
0x0000,0x03C0,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000,
|
||||
0x0000,0x0000,0x0000,0x0000
|
191
CORE/infile
Executable file
191
CORE/infile
Executable file
|
@ -0,0 +1,191 @@
|
|||
10 916
|
||||
contig GGGnnGGnGn GGnnnGnnGn nnnGGnnnnn nnnTnTGTnT GnnGGnAGGG
|
||||
W22140 AAAAANGCCC NNTTCNAAGN GGGGGGGGGG GGGGGGGATA TTTTGCNNAG
|
||||
R.C.W27436 GGGNNNNGNN NNNNNNNNNN NNNNNNAANN NNNNNNNNNN NNNNNNNNNN
|
||||
R.C.W27652 GGNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
W28762 TCTTGACATT TGTCTCCATT TCAGCAAAAC GANACCTGTG GTGAAGGGAT
|
||||
#10005_2 2 GGnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn
|
||||
R.C.W27652 GGNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
W28762 ---------- ---------- ---------- ---------- ----------
|
||||
W28762(165 GGGNNGGNGN GGNNNGNNGN NNNGGNNNNN NNNTNTGTNT GNNGGNAGGG
|
||||
#10005_2 2 GGGnnGGnGn GGnnnGnnGn nnnGGnnnnn nnnTnTGTnT GnnGGnAGGG
|
||||
nnTnTnAnnn nnTTnTAnAG TnAAAGnTTG GTnnnnGTnn nTTTGAnGAA
|
||||
GGGGGCATGA TGNNGAGANC NAAAGAAAGN NCNGGGNGGG AAAAAAGAAG
|
||||
NNNANNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
TTGTGTGCTG GCACTG---- ---------- ---------- ----------
|
||||
nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn
|
||||
NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
NNTNTNANNN NNTTNTANAG TNAAAGNTTG GTNNNNGTNN NTTTGANGAA
|
||||
nnTnTnAnnn nnTTnTAnAG TnAAAGnTTG GTnnnnGTnn nTTTGAnGAA
|
||||
GnTCAAnnTG GGGnnnAnAn nnGnnnTTGA nTGAAAATGG GGnAAnCCCC
|
||||
GAGGNCCCTG GNGGGAGGGG GGNNCGNNTT TNNTGCNCCG GATGGAGGGN
|
||||
NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
NNNNNNNNGN AANNNNNNNN NNNNNNNNNN NNNNNNNNNT TGAAAACTGT
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
nnnnnnnnGn AAnnnnnnnn nnnnnnnnnn nnnnnnnnnT TGAAAACTGT
|
||||
NNNNNNNNGN AANNNNNNNN NNNNNNNNNN NNNNNNNNNT TGAAAACTGT
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
GNTCAANNTG GGGNNNANAN NNGNNNTTGA NTGAAAATGG GGNAANCCCC
|
||||
GnTCAAnnTG GGGnnnAnAn nnGnnnTTGA nTGAAAATGG GGnAAnCCCC
|
||||
CnTTTTnCCA GTCAnCTGGT AAGTCCAAGC TGAA-n--Tc TACT---CCG
|
||||
GGGGNTTTTN AAGNNTGTTT NTTTANAAGN AAGAGGGGGA NAAAATTTTT
|
||||
NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
TANCCAANTG GAATCCTAAG ACAATTTTCT TCCAANCCAC CCAACCGAAA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
TAnCCAAnTG GAATCCTAAG ACAATTTTCT -cCAwTTCA- sCAAC-CGAA
|
||||
TANCCAANTG GAATCCTAAG ACAATTTTCT TCCAANCCAC CCAAC-CGAA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
CNTTTTNCCA GTCANCTGGT AAGTCCAAGC TGAA-N--TC TACTC--C-G
|
||||
CnTTTTnCCA GTCAnCTGGT AAGTCCAAGC Tgaa----Tc TACTC--C-G
|
||||
CATGTAA-CC C-AAAAGAGm TGTCCAGAGC CAAGGCTTCT ACCTTCATTG
|
||||
TTNNTTCTNT NNCTNGNNNG GGGGGGGGGG GGGGCCCCCA ATAAGNNNTT
|
||||
NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
CCCTGTGGTG GAGGGAATTN CGTTCTTGGC NCTTCAGACT NCAGGGCAGG
|
||||
---------- ---------- ---------- ----CAGACT GCAGGGNAGG
|
||||
ACCCTGTGGT GrAGGGATTT GTGTGCT-GG CACTGCAGAC TGCAGGGCAG
|
||||
ACCCTGTGGT GGAGGGAATT NCGTTCTTGG CNCTTCAGAC TNCAGGGCAG
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
CATGTAACCC C-NAAAGAGT TGTCCAGAGC CAAGGCTTCT ACCTTCATTG
|
||||
CATGTAa-CC C-AAAAGAGm TGTCCAGAGC CAAGGCTTCT ACCTTCATTG
|
||||
TCCCTCTCTG TGCTCAAGGA GTTCCATTCC AGGAGGAAGA GATCTATACC
|
||||
GNGCNCAGAA NNAGGGGGGG GNGGGGGGGC CCCTTTNCTC CNAAAAATTT
|
||||
NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN NNNNNNNNNN
|
||||
AA-------- ---------- ---------- ---------- ----------
|
||||
AA-------- ---------- ---------- ---------- ----------
|
||||
GAAAGGGCTA GGGCCCAGGG GCTGGGAmAT GCATGAGGT- gCTCGGAGGA
|
||||
GAAAGGGCTA GGGCCCAGGG GCTGGGAAAT GCATGAGGTT GCTCGGAGGA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
TCCCTCTCTG TGCTCAAGGA GTTCCATTCC AGGAGGAAGA GATCTATACC
|
||||
TCCCTCTCTG TGCTCAAGGA GTTCCATTCC AGGAGGAAGA GATCTATACC
|
||||
CTaAGCAGAT AGCAAAGaAG ATaATGGAGG AgCAATTGGT CATGGCCtTG
|
||||
CCCCCCNTTT TGGGNAAGGG TGGGGGAAAN NNTTTGGGCA AANAGGGGAA
|
||||
NNNNNNNNNN NNNAANNAGG GCTAGGGCCC AGGGGCTGGG ACATGCATGA
|
||||
---------- -------AGG GCTAGGGCCC AGGGGCTGGG AAATGCATGA
|
||||
---------- -------AGG GCTAGGGCCC AGGGGCTGGG ACATGCATGA
|
||||
GCCTGGCTAA ATCCAAGCAC CAGCACCTGT GAGTCTGCTC TCTTCTCAGC
|
||||
GCCTGGCTAA ATCCAAGCAC CAGCACCTGT GAGTCTGCTC TCTTCTCAGC
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
CTAAGCAGAT AGCAAAGNAG ATNATGGAGG ANCAATTGGT CATGGCCNTG
|
||||
CTAAGCAGAT AGCAAAGAAG ATAATGGAGG AGCAATTGGT CATGGCCTTG
|
||||
GTTTCCCTCk AAACaACgCT GCAGATTTAT CTGCACAAAC ATCTCCACTT
|
||||
AAAAAAAGNG GGGGGGGGCG GNTTCCANAA AANAANAAAG GGTNCACCCN
|
||||
GG-TTCTNGG NGGAGCCTGG CTAAANCCAA GCACCAGCAC CTGTGAGTCT
|
||||
GGTTGCTCGG AGGAGCCTGG CTAAATCCAA GCACCAGCAC CTGTGAGTCT
|
||||
GG-TGCTCGG AGGAGCCTGG NTAAATCCAA GCACCAGCAC CTGTGAGTCT
|
||||
TGGCTCCCAA GTAAACCTGT AGCTTTGCCT CTTCTCCCAG CTCTCGTGCC
|
||||
TGGCTCCCAA GTAAACCTGT AGCTTTGCCT CTTCTCCCAG CTCTCGTGCC
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
GTTTCCCTCC AAACNACNCT GCAGATTTAT CTGCACAAAC ATCTCCACTT
|
||||
GTTTCCCTCk AAACAACGCT GCAGATTTAT CTGCACAAAC ATCTCCACTT
|
||||
tmGGGGGAAA GGTGGGTAGA TTCCAGTTCC CTGGACTACC TTCAGGAGGC
|
||||
TNGGGGGNCN CCCCCCCCNC NNGNAAATCN TCCCTTTTTT TGANGGGCNA
|
||||
GCTCTCTTCT CAGCTGGCTC CCAAGTAAAC CTGTAGCTTT NCCTCTTCTC
|
||||
GCTCTCTTCT CAGCTGGCTC CCAAGTAAAC CTGTAGCTTT GCCTCTTCTC
|
||||
GCTCTCTTCT CAGCTGGCTC CCAAGTAAAC CTGTAGCTTT GCCTCTTCTC
|
||||
TCCTGAAGGT AGTCCAGGGA ACTGGAATCT ACCCACCTTT CCCCCAAAAG
|
||||
TCCTGAAGGT AGTCCAGGGA ACTGGAATCT ACCCACCTTT CCCCCCNAAG
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
TTGGGGGAAA GGTGGGTAGA TTCCAGTTCC CTGGACTACC TTCAGGAGGC
|
||||
TTGGGGGAAA GGTGGGTAGA TTCCAGTTCC CTGGACTACC TTCAGGAGGC
|
||||
ACGAGAGCTG GGAGAAGAGG cAAAGCTACA GGTTTACTTG GGAGCCAGCT
|
||||
ANNNCATTTN CTTGNCCTTG AAGATTGACC NTGACTGCTC TGGCAAGAAG
|
||||
CCAGCTCTCG TGCCTCCTGA AGGTAGTCCA GGGAACTGGA ATCTACCCAC
|
||||
CCAGCTCTCG TGCCTCCTGA AGGTAGTCCA GGGAACTGGA ATCTACCCAC
|
||||
CCAGCTCTCG TGCCTCCTGA AGGTAGTCCA GGGAACTGGA ATCTACCCAC
|
||||
TGGAGATGTT TGTGCAGATA AATCTGCAGC GTTGTTTkGA GGGAAACCAA
|
||||
TGGAGATGTT TGTGCAGATA AATCTGCAGC GTTGTTTTGA GGGAAACCAA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
ACGAGAGCTG GGAGAAGAGG CAAAGCTACA GGTTTACTTG GGAGCCAGCT
|
||||
ACGAGAGCTG GGAGAAGAGG CAAAGCTACA GGTTTACTTG GGAGCCAGCT
|
||||
GAGAAGAGAG CAGACTCACA GGTGCTGGTG CTTGGaTTTA gCCAGGCTCC
|
||||
AAGAGGTGTC CTTACAGAGA CCTCTTTACT GACCAACTGA AGNATAGACT
|
||||
CTTTCCCCCN AAAGTGGAGA TGTTTGTGCA GATAAATCTG CAGCGTTGTT
|
||||
CTTTCCCCCC NAAGTGGAGA TGTTTGTGCA GATAAATCTG CAGCGTTGTT
|
||||
CTTTCCCCCA AAAGTGGAGA TGTTTGTGCA GATAAATCTG CAGNGTNGTT
|
||||
GGCCATGACC AATTGCTCCT CCATTATCTT CTTTGCTATC TGCTTAGGGT
|
||||
GGCCATGACC AATTGCTCCT CCATTATCTT CTTTGCTATC TGCTTAGGGT
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
GAGAAGAGAG CAGACTCACA GGTGCTGGTG CTTGGATTTA NCCAGGCTCC
|
||||
GAGAAGAGAG CAGACTCACA GGTGCTGGTG CTTGGATTTA GCCAGGCTCC
|
||||
tCCgAGkA-- CCTCATGCAT mTCCCAGCCC CTGGGCCCTA GCCCT-----
|
||||
TACTGCTGGA CAATCTGCAT GGGCATCACC CCTCCCCGCA TGTAACCC-A
|
||||
TTGAGGGAAA CCAAGGCCAT GACCAATTGC TCCTCCATTA TCTTCTTTGC
|
||||
TTGAGGGAAA CCAAGGCCAT GACCAATTGC TCCTCCATTA TCTTCTTTGC
|
||||
TGGAGGGAAA CCANGGCCAT GACCAATTGN TCCTCCATNA TCTNCTTTGC
|
||||
ATAGATCTCT TCCTCCTGGA ATGGAACTCC TTGAGCACAG AGAGGGACAA
|
||||
ATAGATCTCT TCCTCCTGGA ATGGAACTCC TTGAGCACAG AGAGGGACAA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
TCCGAGC--A CCTCATGCAT GTCCCAGCCC CTGGGCCCTA GCCCT-----
|
||||
TCCGAGc--A CCTCATGCAT mTCCCAGCCC CTGGGCCCTA GCCCT-----
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
AAAGAGGTGT CCAGAGCCAA GGCTTCTACC TTCATTGTCC CTCTCTGTGC
|
||||
TATCTGCTNA GAGNANNCAA NNNAANNNA- ---------- ----------
|
||||
TATCTGCTTA GGGTATAGAT CTCTTCCTCC TGGAATGGAA CTCCTTGAGC
|
||||
TATCTGCTTA GGGTATAGAT CTCTTCCTCC TGGAATGGAA CTCCTTGAGC
|
||||
TGAAGGTAGA AGCCTTGGCT CTGGACAmCT CTTTTGGG-t TACATGCG--
|
||||
TGAAGGTAGA AGCCTTGGCT CTGGACACCT CTTTTGGG-T TACATGCGGT
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- TTCCTgCCCT GcAGTCTGAA GnGCCAAG-A -ACGnAATTC
|
||||
TCAAGGAGTT CCATTCCAGG AGGAAGAGAT CTATACCCT- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
ACAGAGAGGG ACAATGAAGG TAGAAGCCTT GGCTCTGGAC ACCTCTTTT-
|
||||
ACAGAGAGGG ACAATGAAGG TAGAAGCCTT GGCTCTGGAC AACTCTTTNG
|
||||
GAGTAgA-tt cAGCTTGGAC TTACCAGnTG ACTGGnAAAA nGGGGGnTTn
|
||||
GAGTANA-NN NA-------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- TTCCTNCCCT GCAGTCTGCA GTGCC-AGCA CACA-AAT-C
|
||||
---------- TTCCTGCCCT GCAGTCTGCA GTGCC-AGCA CACA-AAT-C
|
||||
CCTCCACCAC AGGGTTTCG- GTTGGGTGGn TTGGAAGA-A AATTGTCTTA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
GGGTTACATG CGGTGAGTAN ANNNA----- ---------- ----------
|
||||
GGGTTACATG CGG--AGTAG ANTTCAGCTT GGACTTACCA GNTGACTGGN
|
||||
CCCCATTTTC AnTCAAnnnC nnnTnTnnnC CCCAnnTTGA nCTTCnTCAA
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
CCTTCACCAC A-GGTNTCGT TTTGC-TGAA ATGG-AGACA AAT-GTCa-a
|
||||
CCTrCACCAC AGGGTTTCG- GTTGs-TGAA wTGg-AGA-A AATTGTCTTA
|
||||
GGATTCCAnT TGGnTAACAG TTTTCAAnnn nnnnnnnnnn nnnnnnnnnn
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
AAAANGGGGG NTTNCCCCAT TTTCANTCAA NNNCNNNTNT NNNCCCCANN
|
||||
AnnnACnnnn ACCAAnCTTT nACTnTAnAA nnnnnTnAnA nnCCCTnCCn
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
g-a------- ---------- ---------- ---------- ----------
|
||||
GGATTCCAnT TGGnTAACAG TTTTCAAnnn nnnnnnnnnn nnnnnnnnnn
|
||||
nnnnTTnCnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
TTGANCTTCN TCAAANNNAC NNNNACCAAN CTTTNACTNT ANAANNNNNT
|
||||
nCAnACAnAn nnnnnnnCCn nnnCnnCnnn CCnCnCCnnC CC--------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
nnnnTTnCnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn
|
||||
nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
NANANNCCCT NCCNNCANAC ANANNNNNNN NCCNNNNCNN CNNNCCNCNC
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
---------- ---------- ---------- ---------- ----------
|
||||
nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn nnnnnnnnnn
|
||||
nnnnnnnnnn nnnnCC
|
||||
---------- ------
|
||||
---------- ------
|
||||
---------- ------
|
||||
CNNCCC---- ------
|
||||
---------- ------
|
||||
---------- ------
|
||||
---------- ------
|
||||
---------- ------
|
||||
nnnnnnnnnn nnnnCC
|
2
CORE/install.csh
Executable file
2
CORE/install.csh
Executable file
|
@ -0,0 +1,2 @@
|
|||
make
|
||||
cp gde ../bin
|
51
CORE/installBLASTDB.pl
Executable file
51
CORE/installBLASTDB.pl
Executable file
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
my $newFileName;
|
||||
my $line;
|
||||
|
||||
my $sourceFile = shift;
|
||||
my $menuName = shift;
|
||||
|
||||
print("mv -f ./$sourceFile.* /usr/local/bio/db/\n");
|
||||
print("cp -f ./$sourceFile /usr/local/bio/db/\n");
|
||||
|
||||
|
||||
|
||||
print system("mv -f ./$sourceFile.* /usr/local/bio/db/");
|
||||
# or die ("cannot copy files\n");
|
||||
print system("cp -f ./$sourceFile /usr/local/bio/db/") ;
|
||||
#or die ("cannot copy file\n");
|
||||
|
||||
|
||||
open(MENUFILE, "/usr/local/bio/GDE/CORE/.GDEmenus")
|
||||
or die "cannot open menu file, sorry\n";
|
||||
$newFileName = "/usr/local/bio/GDE/CORE/.GDEmenusNew";
|
||||
open(NEWFILE, ">$newFileName");
|
||||
READLOOP:
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
if (/^arg:BLASTDBDNA/){
|
||||
print "FOUND\n";
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
if (/^argchoice:/){
|
||||
print NEWFILE "argchoice:$menuName:/usr/local/bio/db/$sourceFile\n";
|
||||
last READLOOP;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
}
|
||||
close(NEWFILE);
|
||||
close(MENUFILE);
|
||||
system("mv $newFileName /usr/local/bio/GDE/CORE/.GDEmenus")
|
||||
or die "cannot replace old menu file\n";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
51
CORE/installBLASTDBPROT.pl
Executable file
51
CORE/installBLASTDBPROT.pl
Executable file
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
my $newFileName;
|
||||
my $line;
|
||||
|
||||
my $sourceFile = shift;
|
||||
my $menuName = shift;
|
||||
|
||||
print("mv -f ./$sourceFile.* /usr/local/bio/db/\n");
|
||||
print("cp -f ./$sourceFile /usr/local/bio/db/\n");
|
||||
|
||||
|
||||
|
||||
print system("mv -f ./$sourceFile.* /usr/local/bio/db/");
|
||||
# or die ("cannot copy files\n");
|
||||
print system("cp -f ./$sourceFile /usr/local/bio/db/") ;
|
||||
#or die ("cannot copy file\n");
|
||||
|
||||
|
||||
open(MENUFILE, "/usr/local/bio/GDE/CORE/.GDEmenus")
|
||||
or die "cannot open menu file, sorry\n";
|
||||
$newFileName = "/usr/local/bio/GDE/CORE/.GDEmenusNew";
|
||||
open(NEWFILE, ">$newFileName");
|
||||
READLOOP:
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
if (/^arg:BLASTDBPROT/){
|
||||
print "FOUND\n";
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
if (/^argchoice:/){
|
||||
print NEWFILE "argchoice:$menuName:/usr/local/bio/db/$sourceFile\n";
|
||||
last READLOOP;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
}
|
||||
close(NEWFILE);
|
||||
close(MENUFILE);
|
||||
system("mv $newFileName /usr/local/bio/GDE/CORE/.GDEmenus")
|
||||
or die "cannot replace old menu file\n";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
BIN
CORE/libxview.a
Executable file
BIN
CORE/libxview.a
Executable file
Binary file not shown.
178
CORE/main.c
Executable file
178
CORE/main.c
Executable file
|
@ -0,0 +1,178 @@
|
|||
#include <stdio.h>
|
||||
#include <xview/defaults.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/window.h>
|
||||
#include <xview/icon.h>
|
||||
#include <pixrect/pixrect.h>
|
||||
#include <malloc.h>
|
||||
#include "menudefs.h"
|
||||
#include "defines.h"
|
||||
#include "globals.h"
|
||||
|
||||
/*
|
||||
Main()
|
||||
|
||||
Copyright (c) 1989, University of Illinois board of trustees. All rights
|
||||
reserved. Written by Steven Smith at the Center for Prokaryote Genome
|
||||
Analysis. Design and implementation guidance by Dr. Gary Olsen and Dr.
|
||||
Carl Woese.
|
||||
|
||||
|
||||
Copyright (c) 1990,1991,1992 Steven Smith at the Harvard Genome Laboratory.
|
||||
All rights reserved.
|
||||
|
||||
*/
|
||||
|
||||
Gmenu menu[100];
|
||||
int num_menus = 0,repeat_cnt = 0;
|
||||
Frame frame,pframe,infoframe;
|
||||
Panel popup,infopanel;
|
||||
Panel_item left_foot,right_foot;
|
||||
Canvas EditCan,EditNameCan;
|
||||
int DisplayType;
|
||||
GmenuItem *current_item;
|
||||
NA_Alignment *DataSet = NULL;
|
||||
NA_Alignment *Clipboard = NULL;
|
||||
char **TextClip;
|
||||
int TextClipSize = 0,TextClipLength = 0;
|
||||
|
||||
/*
|
||||
* Icon structure (pixmap dependent)
|
||||
*/
|
||||
|
||||
|
||||
static short GDEicon[258]={
|
||||
#include "icon_gde"
|
||||
};
|
||||
|
||||
mpr_static(iconpr,64,64,1,GDEicon);
|
||||
|
||||
main(argc,argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
|
||||
Icon tool_icon; /* obvious */
|
||||
extern char FileName[],current_dir[];
|
||||
|
||||
int type = GENBANK; /* default file type */
|
||||
DataSet = NULL;
|
||||
Clipboard = (NA_Alignment*)Calloc(1,sizeof(NA_Alignment));
|
||||
DisplayType = NASEQ_ALIGN; /* default data type */
|
||||
Clipboard->maxnumelements = 5;
|
||||
Clipboard->element =(NA_Sequence*)Calloc(Clipboard->maxnumelements,
|
||||
sizeof(NA_Sequence));
|
||||
|
||||
/*
|
||||
* Connect to server, and set up initial XView data types
|
||||
* that are common to ALL display types
|
||||
*/
|
||||
xv_init(XV_INIT_ARGC_PTR_ARGV, &argc,argv,0);
|
||||
|
||||
|
||||
/*
|
||||
* Main frame (primary window);
|
||||
*/
|
||||
|
||||
frame = xv_create((int) NULL,FRAME,
|
||||
FRAME_NO_CONFIRM,FALSE,
|
||||
FRAME_LABEL, "Genetic Data Environment 2.2",
|
||||
FRAME_INHERIT_COLORS,TRUE,
|
||||
XV_WIDTH,700,
|
||||
XV_HEIGHT,500,
|
||||
FRAME_SHOW_FOOTER,TRUE,
|
||||
0);
|
||||
|
||||
/*
|
||||
* Popup frame (dialog box window), and default settings in
|
||||
* the dialog box. These are changed to fit each individual
|
||||
* command's needs in EventHandler().
|
||||
*/
|
||||
infoframe = xv_create(frame,FRAME_CMD,
|
||||
FRAME_LABEL,"Messages",
|
||||
WIN_DESIRED_HEIGHT,100,
|
||||
WIN_DESIRED_WIDTH,300,
|
||||
FRAME_SHOW_RESIZE_CORNER,TRUE,
|
||||
FRAME_INHERIT_COLORS,TRUE,
|
||||
FRAME_CLOSED,FALSE,
|
||||
WIN_SHOW,FALSE,
|
||||
0);
|
||||
|
||||
pframe = xv_create(frame,FRAME_CMD,
|
||||
FRAME_CMD_PUSHPIN_IN,TRUE,
|
||||
FRAME_DONE_PROC,FrameDone,
|
||||
XV_HEIGHT,100,
|
||||
XV_WIDTH,300,
|
||||
FRAME_SHOW_RESIZE_CORNER,FALSE,
|
||||
FRAME_CLOSED,FALSE,
|
||||
XV_X,300,
|
||||
XV_Y,150,
|
||||
WIN_SHOW,FALSE,
|
||||
0);
|
||||
|
||||
infopanel = xv_get(infoframe,FRAME_CMD_PANEL);
|
||||
xv_set(infopanel, PANEL_LAYOUT,PANEL_VERTICAL,
|
||||
XV_WIDTH,300,
|
||||
XV_HEIGHT,50,
|
||||
0);
|
||||
|
||||
left_foot = xv_create(infopanel,PANEL_MESSAGE,0);
|
||||
right_foot = xv_create(infopanel,PANEL_MESSAGE,0);
|
||||
|
||||
window_fit(infoframe);
|
||||
|
||||
/*
|
||||
popup = xv_create(pframe,PANEL,
|
||||
PANEL_LAYOUT,PANEL_HORIZONTAL,
|
||||
0);
|
||||
*/
|
||||
popup = xv_get(pframe,FRAME_CMD_PANEL);
|
||||
|
||||
xv_create(popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"HELP",
|
||||
PANEL_NOTIFY_PROC,HELP,
|
||||
0);
|
||||
|
||||
xv_create(popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"OK",
|
||||
PANEL_NOTIFY_PROC,DO,
|
||||
0);
|
||||
|
||||
xv_create(popup,PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING,"Cancel",
|
||||
PANEL_NOTIFY_PROC,DONT,
|
||||
0);
|
||||
|
||||
/*
|
||||
* Keep original directory where program was started
|
||||
*/
|
||||
(void)getwd(current_dir);
|
||||
|
||||
ParseMenu();
|
||||
GenMenu(type);
|
||||
if(argc>1)
|
||||
LoadData(argv[1]);
|
||||
|
||||
/*
|
||||
* Set up the basics of the displays, and off to the main loop.
|
||||
*/
|
||||
BasicDisplay(DataSet);
|
||||
|
||||
if(DataSet != NULL)
|
||||
((NA_Alignment*)DataSet)->na_ddata = (char*)SetNADData
|
||||
((NA_Alignment*)DataSet,EditCan,EditNameCan);
|
||||
|
||||
tool_icon = xv_create((int) NULL,ICON,
|
||||
ICON_IMAGE,&iconpr,
|
||||
ICON_LABEL,strlen(FileName)>0?FileName:"GDE",
|
||||
0);
|
||||
|
||||
xv_set(frame,
|
||||
FRAME_ICON,tool_icon,
|
||||
0);
|
||||
|
||||
window_main_loop(frame);
|
||||
exit(0);
|
||||
}
|
||||
|
BIN
CORE/main.o
Executable file
BIN
CORE/main.o
Executable file
Binary file not shown.
56
CORE/menudefs.h
Executable file
56
CORE/menudefs.h
Executable file
|
@ -0,0 +1,56 @@
|
|||
typedef struct GargChoicetype
|
||||
{
|
||||
char *label; /* name for display in dialog box */
|
||||
char *method; /* value (if null, return choice number) */
|
||||
} GargChoice;
|
||||
|
||||
typedef struct GmenuItemArgtype
|
||||
{
|
||||
int optional; /* is this optional? */
|
||||
int type; /* TEXT, SLIDER, CHOOSER, etc. */
|
||||
int min; /* minimum range value */
|
||||
int max; /* maximum range value */
|
||||
int value; /* default numeric value(or choice) */
|
||||
int numchoices; /* number of choices */
|
||||
char *textvalue; /* default text value */
|
||||
char *label; /* description of arg function */
|
||||
char *symbol; /* internal symbol table mapping */
|
||||
char *method; /* commandline interpretation */
|
||||
GargChoice *choice; /* choices */
|
||||
Panel_item X; /* Xview menu item entry */
|
||||
} GmenuItemArg;
|
||||
|
||||
typedef struct GfileFormattype
|
||||
{
|
||||
int save; /* how should file be saved */
|
||||
int overwrite; /* how should file be loaded */
|
||||
int format; /* what format is each field */
|
||||
int maskable; /* Can a write through mask be used? */
|
||||
int select; /* what type of selection */
|
||||
char *symbol; /* internal symbol table mapping */
|
||||
char *name; /* file name */
|
||||
} GfileFormat;
|
||||
|
||||
typedef struct GmenuItemtype
|
||||
{
|
||||
int numargs; /* number of agruments to cmnd */
|
||||
int numoutputs; /* number of outputs from cmnd */
|
||||
int numinputs; /* number of input files to cmnd */
|
||||
char *label; /* item name */
|
||||
char *method; /* commandline produced */
|
||||
GfileFormat *input; /* input definitions */
|
||||
GfileFormat *output; /* output definitions */
|
||||
GmenuItemArg *arg; /* arguement definitions */
|
||||
char meta; /* Meta character for function */
|
||||
char *help; /* commandline help */
|
||||
Panel_item X; /* Xview panel */
|
||||
} GmenuItem;
|
||||
|
||||
typedef struct Gmenutype
|
||||
{
|
||||
int numitems; /* number of items in menu */
|
||||
char *label; /* menu heading */
|
||||
GmenuItem *item; /* menu items */
|
||||
Panel_item button; /* Button to activate menu */
|
||||
Menu X; /* XView menu structure */
|
||||
} Gmenu;
|
34
CORE/newURL.pl
Normal file
34
CORE/newURL.pl
Normal file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
my $newFileName;
|
||||
my $line;
|
||||
|
||||
my $urlname = shift;
|
||||
my $url = shift;
|
||||
|
||||
open(MENUFILE, "/usr/local/biotools/GDE/CORE/.GDEmenus")
|
||||
or die "cannot open menu file, sorry\n";
|
||||
$newFileName = "/usr/local/biotools/GDE/CORE/.GDEmenusNew";
|
||||
open(NEWFILE, ">$newFileName");
|
||||
READLOOP:
|
||||
while (<MENUFILE>){
|
||||
print NEWFILE;
|
||||
if (/^menu:Online/){
|
||||
print "FOUND\n";
|
||||
print NEWFILE "item:$urlname\n";
|
||||
print NEWFILE "itemmethod:netscape $url\n";
|
||||
last READLOOP;
|
||||
|
||||
}
|
||||
}
|
||||
close(NEWFILE);
|
||||
close(MENUFILE);
|
||||
system("mv $newFileName /usr/local/biotools/GDE/CORE/.GDEmenus")
|
||||
or die "cannot replace old menu file\n";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
259
CORE/new_menu
Executable file
259
CORE/new_menu
Executable file
|
@ -0,0 +1,259 @@
|
|||
Blastn (Nucleic Acid)
|
||||
itemmethod:(echo PROGRAM blastn > in1.tmp; echo DATALIB $DBASE >> in1.tmp; echo HISTOGRAM $PLOT >> in1.tmp; echo ALIGNMENTS $SCORE >> in1.tmp; echo SPLIT 100000 >> in1.tmp; echo BEGIN >> in1.tmp; readseq -i1 -p -f8 in1 >> in1.tmp; cat in1.tmp | /bin/mail blast@ncbi.nlm.nih.gov; rm in1 in1.tmp) &
|
||||
|
||||
arg:DBASE
|
||||
argtype:choice_menu
|
||||
arglabel:Which Database?
|
||||
argchoice:Non-redundant database:nr
|
||||
argchoice:GenBank DNA sequence database:genbank
|
||||
argchoice:GenBank update (cumulative daily updates):gbupdate
|
||||
argchoice:EMBL DNA sequence database:embl
|
||||
argchoice:EMBL update (cumulative weekly updates):emblu
|
||||
argchoice:Vector subset of GenBank:vector
|
||||
argchoice:Database of Expressed Sequence Tags (ESTs):dbest
|
||||
argchoice:Eukaryotic promoterdatabase:epd
|
||||
argchoice:Kabat's database of immunological interest:kabatnuc
|
||||
|
||||
arg:PLOT
|
||||
argtype:chooser
|
||||
arglabel:Display Histogram?
|
||||
argvalue:1
|
||||
argchoice:Yes:yes
|
||||
argchoice:No:no
|
||||
|
||||
arg:SCORE
|
||||
argtype:slider
|
||||
arglabel:Number of High Scoring Pairs Displayed?
|
||||
argmin:1
|
||||
argmax:250
|
||||
argvalue:5
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
insave:
|
||||
|
||||
item:Blastp (Protein)
|
||||
itemmethod:(echo PROGRAM blastp >in1.tmp; echo DATALIB $DBASE >> in1.tmp; echo HISTOGRAM $PLOT >> in1.tmp; echo ALIGNMENTS $SCORE >> in1.tmp; echo MATRIX $MATRX >> in1.tmp; echo SPLIT 100000 >> in1.tmp; echo BEGIN >> in1.tmp; readseq -i1 -p -f8 in1 >> in1.tmp; cat in1.tmp | /bin/mail blast@ncbi.nlm.nih.gov; rm in1 in1.tmp) &
|
||||
|
||||
arg:DBASE
|
||||
argtype:choice_menu
|
||||
arglabel:Which Database?
|
||||
argchoice:Non-redundant protein database:nr
|
||||
argchoice:Swiss-Prot protein database:swissprot
|
||||
argchoice:PIR protein database:pir
|
||||
argchoice:Cumulative update to Swiss-Prot major release:spupdate
|
||||
argchoice:GenPept (translated GenBank):genpept
|
||||
argchoice:GenPept update (cumulative daily updates):gpupdate
|
||||
argchoice:Brookhaven PDB:pdb
|
||||
argchoice:Kabat's database of immunological interest:kabatnuc
|
||||
argchoice:Transcription Factors Database:tfd
|
||||
argchoice:6-frame translations of human Alu repeats:palu
|
||||
|
||||
arg:PLOT
|
||||
argtype:chooser
|
||||
arglabel:Display Histogram?
|
||||
argvalue:1
|
||||
argchoice:Yes:yes
|
||||
argchoice:No:no
|
||||
|
||||
arg:SCORE
|
||||
argtype:slider
|
||||
arglabel:Number of High Scoring Pairs Displayed
|
||||
argmin:1
|
||||
argmax:250
|
||||
argvalue:5
|
||||
|
||||
arg:Matrx
|
||||
argtype:chooser
|
||||
arglabel:Weighting matrix
|
||||
argchoice:PAM 250:PAM250
|
||||
argchoice:PAM 120:PAM10
|
||||
argchoice:PAM 40:PAM40
|
||||
argchoice:BLOSUM62:BLOSUM62
|
||||
|
||||
|
||||
in:in1
|
||||
informat:genbank
|
||||
insave:
|
||||
|
||||
item:Fasta (Nucleic Acid)
|
||||
itemmethod:(echo LIB $DBASE > in1.tmp; echo WORD $KPL >> in1.tmp; echo LIST $TOP >> in1.tmp; echo ALIGN $ALNG >> in1.tmp; echo ONE >> in1.tmp; echo SEQ >> in1.tmp; sed "s/-//g" < in1 | tr '@%#' '>' >> in1.tmp;Mail FASTA@EMBL-Heidelberg.de < in1.tmp; rm in1 in1.tmp) &
|
||||
|
||||
arg:DBASE
|
||||
argtype:choice_menu
|
||||
arglabel:Which Database?
|
||||
argchoice:GenBank Qrtly & Updates:GBALL
|
||||
argchoice:GenBank Updates:GBNEW
|
||||
argchoice:Entries only in GenBank, not in EMBL:GBONLY
|
||||
argchoice:GenBank and EMBL entries (latest releases):GENEMBL
|
||||
argchoice:New EMBL entries (Since latest release):EMNEW
|
||||
argchoice:All EMBL entries (latest release + new ones):EMALL
|
||||
argchoice:EMBL fungi division only:EFUN
|
||||
argchoice:EMBL invertebrates division only:EINV
|
||||
argchoice:EMBL mammals division only:EMAM
|
||||
argchoice:EMBL organelles division only:EORG
|
||||
argchoice:EMBL phages division only:EPHG
|
||||
argchoice:EMBL plants division only:EPLN
|
||||
argchoice:EMBL primates division only:EPRI
|
||||
argchoice:EMBL prokaryotes division only:EPRO
|
||||
argchoice:EMBL rodents division only:EROD
|
||||
argchoice:EMBL synthetic sequences division only:ESYN
|
||||
argchoice:EMBL unannotated division only:EUNA
|
||||
argchoice:EMBL viruses division only:EVRL
|
||||
argchoice:EMBL vertebrates division only:EVRT
|
||||
|
||||
|
||||
|
||||
arg:KPL
|
||||
argtype:slider
|
||||
arglabel:K-tuple window
|
||||
argmin:3
|
||||
argmax:6
|
||||
argvalue:4
|
||||
|
||||
arg:TOP
|
||||
argtype:slider
|
||||
arglabel:Scores Displayed?
|
||||
argmin:1
|
||||
argmax:200
|
||||
argvalue:100
|
||||
|
||||
arg:ALNG
|
||||
argtype:slider
|
||||
arglabel:# Alignments Displayed?
|
||||
argmin:1
|
||||
argmax:200
|
||||
argvalue:20
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Fasta (Protein)
|
||||
itemmethod:(echo LIB $DBASE > in1.tmp; echo WORD $TPL >> in1.tmp; echo LIST $SCRS >> in1.tmp; echo ALIGN $ALNMNTS >> in1.tmp; echo PROT >> in1.tmp; echo SEQ >> in1.tmp; sed "s/-//g" < in1 | tr '@%#$' '>' >> in1.tmp; Mail FASTA@EMBL-Heidelberg.de < in1.tmp; rm in1 in1.tmp) &
|
||||
|
||||
arg:DBASE
|
||||
argtype:choice_menu
|
||||
arglabel:Which Protein Database?
|
||||
argchoice:Swiss-Protein (latest release + new ones):SWALL
|
||||
argchoice:Swiss-Protein (since latest release):SWNEW
|
||||
argchoice:Swiss-Protein (latest release):SW
|
||||
argchoice:NBRF/PIR (latest release):NBRF
|
||||
argchoice:NBRF/PIR (not Swiss-Prot):PIRONLY
|
||||
argchoice:All Swiss-Prot and NBRF/PIR entries:SWISSPIRALL
|
||||
argchoice:PDB structure entries:BROOKHAVEN
|
||||
argchoice:PDB structure entries (NBRF version):NRL
|
||||
|
||||
arg:TPL
|
||||
argtype:slider
|
||||
arglabel:K-TUP window
|
||||
argmin:1
|
||||
argmax:2
|
||||
argvalue:1
|
||||
|
||||
arg:SCRS
|
||||
argtype:slider
|
||||
arglabel:# Scores Displayed?
|
||||
argmin:1
|
||||
argmax:200
|
||||
argvalue:100
|
||||
|
||||
arg:ALNMNTS
|
||||
argtype:slider
|
||||
arglabel:# Alignments Displayed?
|
||||
argmin:1
|
||||
argmax:200
|
||||
argvalue:20
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:GeneID
|
||||
itemmethod:($REPRINT > in1.tmp; echo Genomic Sequence >> in1.tmp; sed "s/-//g" < in1 | tr '@%#' '>' >> in1.tmp; Mail geneid@darwin.bu.edu < in1.tmp; rm in1 in1.tmp) &
|
||||
|
||||
arg:REPRINT
|
||||
argtype:chooser
|
||||
arglabel:Do you want a GENEID reprint?
|
||||
argchoice:YES:echo "Preprint Request" >> in1.tmp
|
||||
argchoice:NO
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
item:Sequence Retrieval
|
||||
itemmethod:(echo DATALIB $DBASE>> in1.tmp; echo MAXDOCS $NDOC >> in1.tmp;echo MAXLINES 100000 >> in1.tmp; echo BEGIN >> in1.tmp; echo $REGEXP >> in1.tmp; Mail retrieve@ncbi.nlm.nih.gov < in1.tmp; rm in1.tmp) &
|
||||
|
||||
arg:DBASE
|
||||
argtype:choice_menu
|
||||
arglabel:Which Database?
|
||||
argchoice:GenBank DNA sequence database:genbank
|
||||
argchoice:GenBank update (cumulative daily updates):gbupdate
|
||||
argchoice:EMBL DNA sequence database:embl
|
||||
argchoice:EMBL update (cumulative weekly updates):emblu
|
||||
argchoice:Vector subset of GenBank:vector
|
||||
argchoice:Database of Expressed Sequence Tags (ESTs):dbest
|
||||
argchoice:Swiss-Prot protein database:swissprot
|
||||
argchoice:PIR protein database:pir
|
||||
argchoice:GenPept (translated GenBank):genpept
|
||||
argchoice:GenPept update (cumulative daily updates):gpupdate
|
||||
argchoice:Transcription Factors Database:tfd
|
||||
|
||||
arg:NDOC
|
||||
argtype:slider
|
||||
arglabel:Number of Sequences Retrieved?
|
||||
argmin:1
|
||||
argmax:100
|
||||
argvalue:20
|
||||
|
||||
|
||||
arg:REGEXP
|
||||
argtype:text
|
||||
arglabel:key words, sequence IDs, boolean connectors
|
||||
|
||||
item:Grail
|
||||
itemmethod:(echo Sequences $TOTALSEQS $ID > in1.tmp; sed "s/-//g" < in1 | tr '@%#' '>' >> in1.tmp; Mail grail@ornl.gov <in1.tmp; rm in1 in1.tmp) &
|
||||
|
||||
arg:REGISTER
|
||||
argtype:chooser
|
||||
arglabel:Have you previously registered for Grail services?
|
||||
argchoice:YES
|
||||
argchoice:NO:echo "YOU MUST REGISTER"
|
||||
|
||||
arg:TOTALSEQS
|
||||
argtype:text
|
||||
arglabel:Number of Sequences Being Sent to Grail?
|
||||
|
||||
arg:ID
|
||||
argtype:text
|
||||
arglabel:User ID (MUST HAVE PREVIOUSLY REGISTERED)
|
||||
|
||||
in:in1
|
||||
informat:flat
|
||||
insave:
|
||||
|
||||
item:Grail Registration
|
||||
itemmethod:(echo Register > in1.tmp; echo $NAME >> in1.tmp; echo $ADDRESS >> in1.tmp; echo $PHONE >> in1.tmp; echo $EMAIL >> in1.tmp; Mail grail@ornl.gov < in1.tmp; rm in1.tmp)
|
||||
|
||||
arg:NAME
|
||||
argtype:text
|
||||
arglabel:Your Name
|
||||
|
||||
arg:ADDRESS
|
||||
argtype:text
|
||||
arglabel:Your Address
|
||||
|
||||
arg:PHONE
|
||||
argtype:text
|
||||
arglabel:Your Phone Number
|
||||
|
||||
arg:EMAIL
|
||||
argtype:text
|
||||
arglabel:Your E-Mail Address
|
||||
|
||||
|
34
CORE/outfile
Executable file
34
CORE/outfile
Executable file
|
@ -0,0 +1,34 @@
|
|||
|
||||
DNA parsimony algorithm, version 3.51c
|
||||
|
||||
|
||||
One most parsimonious tree found:
|
||||
|
||||
|
||||
|
||||
|
||||
+-----------------------#10005_2 2
|
||||
!
|
||||
! +--------------------W28762(165
|
||||
+--9 !
|
||||
! ! ! +--R.C.W27652
|
||||
! ! ! +-----------6
|
||||
! ! ! ! +--#10005_2 2
|
||||
! +--8 !
|
||||
! ! +--5 +--W28762
|
||||
! ! ! ! +--7
|
||||
--1 ! ! ! +--4 +--W28762
|
||||
! ! ! ! ! !
|
||||
! +--2 +-----3 +-----R.C.W27652
|
||||
! ! !
|
||||
! ! +--------R.C.W27436
|
||||
! !
|
||||
! +-----------------W22140
|
||||
!
|
||||
+--------------------------contig
|
||||
|
||||
remember: this is an unrooted tree!
|
||||
|
||||
|
||||
requires a total of 2453.000
|
||||
|
2
CORE/treefile
Executable file
2
CORE/treefile
Executable file
|
@ -0,0 +1,2 @@
|
|||
((#10005_2_2,(W28762(165,(((R.C.W27652,#10005_2_2),(((W28762,W28762),
|
||||
R.C.W27652),R.C.W27436)),W22140))),contig);
|
BIN
CORE/xview-3.2p1.4-6.i386.rpm
Executable file
BIN
CORE/xview-3.2p1.4-6.i386.rpm
Executable file
Binary file not shown.
BIN
CORE/xview-3.2p1.4-6.src.rpm
Executable file
BIN
CORE/xview-3.2p1.4-6.src.rpm
Executable file
Binary file not shown.
BIN
CORE/xview-clients-3.2p1.4-6.i386.rpm
Executable file
BIN
CORE/xview-clients-3.2p1.4-6.i386.rpm
Executable file
Binary file not shown.
BIN
CORE/xview-devel-3.2p1.4-6.i386.rpm
Executable file
BIN
CORE/xview-devel-3.2p1.4-6.i386.rpm
Executable file
Binary file not shown.
25
CORE/xylem/acc.template
Normal file
25
CORE/xylem/acc.template
Normal file
|
@ -0,0 +1,25 @@
|
|||
;---------------------------------------------------------------------------
|
||||
; FEATURES/GDE Accession File Instructions
|
||||
;
|
||||
; 1. Type in one or more GenBank Accession #'s below,
|
||||
; or
|
||||
; Place cursor at end of this file and choose 'Include File' in the FILE
|
||||
; menu to read in a file of numbers.
|
||||
;
|
||||
; (NOTE: File can not contain LOCUS names.)
|
||||
;
|
||||
; 2. Choose 'Save Current File' in the File menu
|
||||
; 3. Quit this window
|
||||
;
|
||||
; FEATURES will then extract the appropriate sequences . YOU DON'T NEED TO EDIT
|
||||
; OUT THESE COMMENT LINES.
|
||||
;
|
||||
; NOTE: Put each accession # on a separate line
|
||||
; SAMPLE ACCESSION FILE:
|
||||
;
|
||||
; M18249
|
||||
; X13383
|
||||
; J03680
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
|
45
CORE/xylem/clu2ig.doc
Normal file
45
CORE/xylem/clu2ig.doc
Normal file
|
@ -0,0 +1,45 @@
|
|||
clu2ig update 3 Feb 94
|
||||
|
||||
NAME
|
||||
clu2ig
|
||||
|
||||
SYNOPSIS
|
||||
clu2ig clustalfile > igfile
|
||||
|
||||
DESCRIPTION
|
||||
Converts interleaved .aln output from Clustal V into
|
||||
sequential .ig (IntelliGenetics) format for use by MASE.
|
||||
|
||||
clustalfile:
|
||||
CLUSTAL V multiple sequence alignment
|
||||
|
||||
name1 AACTTTCG
|
||||
name2 ATCTTTCG
|
||||
* ******
|
||||
|
||||
name1 CCTGCT
|
||||
name2 CCCGCT
|
||||
** ***
|
||||
|
||||
igfile:
|
||||
;
|
||||
name1
|
||||
AACTTTCG
|
||||
CCTGCT
|
||||
:
|
||||
name2
|
||||
ATCTTTCG
|
||||
CCCGCT
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
36
CORE/xylem/dbstat.doc
Normal file
36
CORE/xylem/dbstat.doc
Normal file
|
@ -0,0 +1,36 @@
|
|||
dbstat update 3 Feb 94
|
||||
|
||||
NAME
|
||||
dbstat - calculates amino acid frequencies in a protein
|
||||
database
|
||||
|
||||
SYNOPSIS
|
||||
dbstat
|
||||
|
||||
DESCRIPTION
|
||||
dbstat reads a file of one or more nucleic acid sequences
|
||||
and calculates the amino acid frequencies, both in terms of
|
||||
absolute numbers, and as a fraction of the total.
|
||||
|
||||
input - The input file is the standard .wrp (Pearson) format,
|
||||
such as that produced by getob:
|
||||
|
||||
>name
|
||||
; one or more comment lines (optional)
|
||||
sequence lines
|
||||
|
||||
Comments begin either with semicolon (;) or right arrow (>)
|
||||
characters.
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
30
CORE/xylem/expfile.template
Normal file
30
CORE/xylem/expfile.template
Normal file
|
@ -0,0 +1,30 @@
|
|||
;---------------------------------------------------------------------------
|
||||
; FEATURES/GDE Expression File Instructions 8/7/95
|
||||
;
|
||||
; 1. Type in one or more GenBank expressions below,
|
||||
; or
|
||||
; Place cursor at end of this file and choose 'Include File' in the FILE
|
||||
; menu to read in a file of feature keys.
|
||||
; or
|
||||
; Copy expressions from another window and Paste into this window.
|
||||
; 2. Choose 'Save Current File' in the File menu
|
||||
; 3. Quit this window
|
||||
;
|
||||
; NOTES:
|
||||
; 1) FEATURES will then extract the appropriate sequences.
|
||||
; YOU DON'T NEED TO EDIT OUT THESE COMMENT LINES.
|
||||
; 2) All expressions referring to GenBank entries must begin with a '@'
|
||||
; Literals (ie. sequences to be embedded in the final output)
|
||||
; do NOT begin with a '@'.
|
||||
; 3) Put each expression on a separate line.
|
||||
;
|
||||
; SAMPLE EXPRESSION FILE:
|
||||
;
|
||||
; @J05635:83..1813
|
||||
; ; EcoRI/NotI adaptor {this is a comment line}
|
||||
; AATTGCGGCCGC
|
||||
; @J05635:/product="flagellin A"
|
||||
; @x17548:singed_trans
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
|
23
CORE/xylem/feafile.template
Normal file
23
CORE/xylem/feafile.template
Normal file
|
@ -0,0 +1,23 @@
|
|||
;---------------------------------------------------------------------------
|
||||
; FEATURES/GDE Feature Key File Instructions
|
||||
;
|
||||
; 1. Type in one or more GenBank FEATURE Table feature keys below,
|
||||
; or
|
||||
; Place cursor at end of this file and choose 'Include File' in the FILE
|
||||
; menu to read in a file of feature keys.
|
||||
;
|
||||
; 2. Choose 'Save Current File' in the File menu
|
||||
; 3. Quit this window
|
||||
;
|
||||
; FEATURES will then extract the appropriate sequences . YOU DON'T NEED TO EDIT
|
||||
; OUT THESE COMMENT LINES.
|
||||
;
|
||||
; NOTE: Put each feature key on a separate line
|
||||
; SAMPLE FEATURE KEY FILE:
|
||||
;
|
||||
; mRNA
|
||||
; CDS
|
||||
; mat_peptide
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
|
407
CORE/xylem/features.doc
Normal file
407
CORE/xylem/features.doc
Normal file
|
@ -0,0 +1,407 @@
|
|||
|
||||
FEATURES.DOC update 7 Feb 94
|
||||
|
||||
|
||||
NAME
|
||||
FEATURES - extracts features from GenBank entries
|
||||
|
||||
SYNOPSIS
|
||||
features
|
||||
features expression
|
||||
features [-f featurekey | -F keyfile]
|
||||
[-n name |-a accession | -e expression |
|
||||
-N namefile |-A accfile | -E expfile]
|
||||
[-u dbfile | -U dbfile | -g ]
|
||||
features -h
|
||||
|
||||
DESCRIPTION
|
||||
FEATURES extracts sequence objects from GenBank entries, using
|
||||
the Features Table language. Features can be retrieved either by
|
||||
specifying keywords (eg. CDS, mRNA, exon, intron etc.) or by
|
||||
evaluating expressions. In practical terms, FEATURES is actually
|
||||
a user interface for GETOB, which actually performs the parsing
|
||||
and extraction of sequence objects. FEATURES can be run either as
|
||||
an interactive program or with command line arguments.
|
||||
|
||||
'features' with no arguments runs the program interactively.
|
||||
'features' followed by an expression retrieves the data directly
|
||||
from GenBank and evaluates the expression. The third form of
|
||||
features requires all arguments to be accompanied by their
|
||||
respective option flags. Finally, 'features -h' prints the
|
||||
SYNOPSIS.
|
||||
|
||||
|
||||
INTERACTIVE EXECUTION
|
||||
FEATURES executed with no arguments runs interactively. An example of the
|
||||
FEATURES menu is shown below:
|
||||
|
||||
___________________________________________________________________
|
||||
FEATURES - Version 7 FEB 94
|
||||
Please cite: Fristensky (1993) Nucl. Acids Res. 21:5997-6003
|
||||
___________________________________________________________________
|
||||
Features: tRNA
|
||||
Entries: EPFCPCG
|
||||
Dataset:
|
||||
___________________________________________________________________
|
||||
Parameter Description Value
|
||||
-------------------------------------------------------------------
|
||||
1).................... FEATURES TO EXTRACT ....................> f
|
||||
f:Type a feature at the keyboard
|
||||
F:Read a list of features from a file
|
||||
2)....................ENTRIES TO BE PROCESSED (choose one).....> n
|
||||
Keyboard input - n:name a:accession # e:expression
|
||||
File input - N:name(s) A:accession #(s) E:expression(s)
|
||||
3)....................WHERE TO GET IT .........................> g
|
||||
u:Genbank dataset g:complete GenBank database
|
||||
U: same as u, but all entries
|
||||
4)....................WHERE TO SEND IT ........................> a
|
||||
s:Each feature to a separate file a:All output to same file
|
||||
---------------------------------------------------------------
|
||||
Type number of your choice or 0 to continue:
|
||||
0
|
||||
Messages will be written to EPFCPCG.msg
|
||||
Final sequence output will be written to EPFCPCG.out
|
||||
Expressions will be written to EPFCPCG.exp
|
||||
Extracting features...
|
||||
|
||||
In the example, FEATURES was instructed to retrieve all tRNAs from
|
||||
the GenBank entry EPFCPCG, which contains the Epifagus plastid
|
||||
genome. By default, the GenBank database was the source of the
|
||||
sequence. Messages indicate the progress of the job. A log describing
|
||||
the extraction of each feature is written to EPFCPCG.msg, while the
|
||||
extracted features themselves are written to EPFCPCG.out. Feature
|
||||
expressions which could be used by FEATURES to reconstruct the .out
|
||||
file, are written to EPFCPCG.exp.
|
||||
|
||||
The first step is to retrieve the EPFCPCG entry from GenBank, which is
|
||||
accomplished by calling FETCH. Next, FEATURES extracts the specified
|
||||
features from the entry.
|
||||
|
||||
An excerpt from EPFCPCG.msg is shown below, describing the extraction
|
||||
of the fifth tRNA found in this entry. To create this tRNA, two exons
|
||||
had to be joined. The qualifier line associated with this feature
|
||||
indicates that it is an Isoleucine tRNA with a gat anticodon.
|
||||
|
||||
|
||||
EPFCPCG:anticodon gtg
|
||||
complement
|
||||
(
|
||||
join
|
||||
(
|
||||
70023 70028
|
||||
|
||||
1 69
|
||||
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
|
||||
/product="transfer RNA-His"
|
||||
/gene="His-tRNA"
|
||||
/label=anticodon gtg
|
||||
/note="anticodon gtg"
|
||||
//----------------------------------------------
|
||||
|
||||
|
||||
The actual sequence for this feature, as written to EPFCPCG.out, is
|
||||
written with each exon beginning a new line:
|
||||
|
||||
>EPFCPCG:anticodon gtg
|
||||
ggcggatgtagccaaatggatcaaggtagtggattgtgaatccaacatat
|
||||
gcgggttcaattcccgtcg
|
||||
ttcgcc
|
||||
|
||||
Finally, the expression that was evaluated to create this feature is
|
||||
written to EPFCPCG.exp:
|
||||
|
||||
>EPFCPCG:anticodon gtg
|
||||
@M81884:anticodon gtg
|
||||
|
||||
If EPFCPCG.exp was used as an expression file in option 2 (E) of FEATURES,
|
||||
EPFCPCG.out would be recreated.
|
||||
|
||||
OPTIONS
|
||||
1) FEATURES - choosing f will cause FEATURES to prompt for
|
||||
a feature to extract. If you wish to extract several types of
|
||||
features simultaneously (ie. F), you must construct a file listing the
|
||||
feature keywords. The following example would retrieve both tRNA and
|
||||
rRNA sequences:
|
||||
|
||||
OBJECTS
|
||||
tRNA
|
||||
rRNA
|
||||
SITES
|
||||
|
||||
The words 'OBJECTS' and 'SITES' must enclose the feature keywords,
|
||||
and each keyword must be on a separate line. For a rigorous
|
||||
definition of the input file format, see the GETOB manual pages
|
||||
(getob.doc).
|
||||
|
||||
In the menu shown above, f was chosen, and the user entered tRNA at
|
||||
the prompt. Thus tRNA is now displayed on the Features: line. If
|
||||
features had been specified from a file (suboption F) then the
|
||||
filename containing the feature keywords would be displayed instead.
|
||||
A complete list of legal feature keywords can be found in the GenBank
|
||||
Release notes (gbrel.txt) under the subheading 'Feature Key Names'.
|
||||
|
||||
2) ENTRIES
|
||||
n User is prompted for the name of an entry from which the
|
||||
feature is to be extracted. The name of the entry will appear
|
||||
on the 'Entries' line of the menu.
|
||||
|
||||
N User is prompted for a filename containing one or more
|
||||
entry names. Each name must be on a separate line. The filename
|
||||
will be displayed on the 'Entries' menu line.
|
||||
|
||||
a User is prompted for an accession number, which will appear
|
||||
on the 'Entries' line of the menu.
|
||||
|
||||
A User is prompted for a filename for accession numbers. The filename
|
||||
will appear on the 'Entries:' line.
|
||||
|
||||
e User is prompted for a GenBank Features expression of the
|
||||
form accession:location.'accession' refers to a GenBank
|
||||
accession number, while 'location' is any legal feature location.
|
||||
A brief description of location syntax can be found under the
|
||||
subheading "Feature Location" in the GenBank release notes
|
||||
(gbrel.txt). See "The DDBJ/EMBL/GenBank Feature Table:
|
||||
Definition" Version 1.04 for a complete definition.
|
||||
E User is prompted for a filename containing one or more Feature
|
||||
expressions. EACH EXPRESSION MUST BEGIN A '@'. All lines beginning
|
||||
with '@' are processed as expressions, and all other lines are
|
||||
copied to the output file unchanged.
|
||||
|
||||
Examples:
|
||||
|
||||
The tRNA shown above could have been extracted by choosing
|
||||
suboption e and entering either of the following expressions:
|
||||
|
||||
M81884:complement(join(70023..70028,1..69))
|
||||
M81884:anticodon gtg
|
||||
|
||||
In the first example, the feature line from the original entry
|
||||
is used as the location. In the second example, the feature is
|
||||
found by its qualifier line, which also appeared in the
|
||||
original entry. It must be noted that the qualifier line must
|
||||
be unique from others in the same entry in its first 15
|
||||
characters after the = .
|
||||
|
||||
The flaL protein coding region of B. licheniformis is described
|
||||
in GenBank entry BLIFALA, accession number M60287 in the
|
||||
following feature:
|
||||
|
||||
CDS 305..640
|
||||
/note="flaD (sin) homologue"
|
||||
/gene="flaL"
|
||||
/label=ORF2
|
||||
/codon_start=1
|
||||
|
||||
This feature could be retrieved using any of the following
|
||||
expressions:
|
||||
|
||||
M60287:305..640
|
||||
M60287:ORF2
|
||||
M60287:/label=ORF2
|
||||
M60287:/gene="flaL"
|
||||
M60287:/note="flaD (sin) homologue"
|
||||
|
||||
Note that the /label= qualifier is special, in that labels are
|
||||
specifically intented as unique tags on an feature. For labels,
|
||||
only the label itself is need be specified. Thus, /label=ORF2 is
|
||||
equivalent to ORF2. For other qualifiers, the qualifier keyword
|
||||
(eg. /note=) must be included.
|
||||
|
||||
3) DATABASE (WHERE TO GET IT) - By default, all entries processed will
|
||||
be automatically retrieved from GenBank using FETCH. Specifying 'u'
|
||||
(User-defined database subset) makes it possible to extract features
|
||||
from GenBank subsets created by the user. Usually, retrieval of
|
||||
features is much faster with a User-defined subset, so if you
|
||||
frequently work with sets of genes, it is best to retrieve them
|
||||
en-masse using FETCH, and work with them directly. For example, if
|
||||
you had retrieved a set of Beta-globin sequences into a file called
|
||||
'globin.gen', you could directly extract features from these entries
|
||||
by specifying 'globin' or 'globin.gen' as your User-defined database.
|
||||
If the file extension is '.gen', FEATURES will automatically create
|
||||
temporary files called globin.ano, globin.wrp and globin.ind,
|
||||
containing annotation, sequence, and an index, respectively. These
|
||||
files will be read during feature extraction, and then discarded. If
|
||||
you have already created such files using SPLITDB, simply specify
|
||||
any of 'globin', 'globin.ano', etc. ie. anything, as long as it does
|
||||
not have the .gen file extension.
|
||||
|
||||
'U' rather than 'u' causes ALL entries in the user-defined
|
||||
database to be subset. This means that it is unnecessary to
|
||||
specify entry options (eg -n, -N etc.), as these will be
|
||||
ignored, if given.
|
||||
|
||||
One consequence of these conventions is that the individual GenBank
|
||||
divisions can be processed directly. For example, suppose you were only
|
||||
interested in rodent globins. You could directly access the rodent
|
||||
division of GenBank by specifying the base name of that file division
|
||||
(eg. /home/psgendb/GenBank/gbrod) as your user-defined database. In
|
||||
this case, the files gbrod.ano, gbrod.wrp and gbrod.ind already
|
||||
exist. Again, this approach is faster, since FEATURES would not have
|
||||
to find and retrieve the sequences, but can read directly from the
|
||||
database files. Finally, if you wanted to process all of the entries
|
||||
in the database division, simply use -U. The user is warned that a
|
||||
GenBank division is a huge amount of data, and processing every entry
|
||||
could take a long time.
|
||||
|
||||
4) WHERE TO SEND IT - By default (a), the output for all entries goes
|
||||
to a single set of files, whose names are chosen by FEATURES,
|
||||
depending on the setting of option 2, Entries. If a single name (n) or
|
||||
accession number (a) has been chosen, that will be used as
|
||||
the raw filename. For example, if you were processing the entry
|
||||
WHTCAB, the output files would be WHTCAB.msg and WHTCAB.out. If names
|
||||
(N), accession numbers (A) or expressions (E) were read from a file,
|
||||
the raw name of that file would be used eg. cellulase.nam would result
|
||||
in cellulase.msg and cellulase.out. Finally, if a single expression
|
||||
is processed (e), then the primary accession number in that
|
||||
expression will be used for the filenames. In all cases, FEATURES
|
||||
will tell you the names of the files being written.
|
||||
|
||||
Choosing suboption s, you can specify that the features created for
|
||||
each entry be sent to separate files. In this case, each file will
|
||||
have the name of that entry, with the extension .obj. However, all
|
||||
messages and expressions will still go to a single files. While this
|
||||
can be a convenient way of creating separate files when you need them,
|
||||
this option still has the limitation of writing all features for a
|
||||
given entry (if there are more than one) to the same file. Also,
|
||||
successive resolution of features (anything requiring 'getob -r')
|
||||
will not work with this option. This may be corrected in future
|
||||
versions.
|
||||
|
||||
|
||||
COMMAND LINE EXECUTION
|
||||
|
||||
There are two ways of running FEATURES from the command line. If only one
|
||||
argument is supplied, that argument is interpreted as an expression, and
|
||||
the result of that expression (ie. a sequence ) is written to the
|
||||
standard output. .msg, .out and .exp files are NOT created. For example,
|
||||
GenBank entry BACFLALA (M60287) contains the following feature:
|
||||
|
||||
CDS 95..271
|
||||
/label=LORF-
|
||||
/codon_start=1
|
||||
/translation="MNKDKNEKEELDEEWTELIKHALEQGISPDDIRIFLNLGKKSSK
|
||||
PSASIERSHSINPF"
|
||||
Any of
|
||||
|
||||
features M60287:LORF-
|
||||
features M60287:95..271
|
||||
features M60287:/label=LORF-
|
||||
|
||||
would write the open reading frame to the standard output:
|
||||
|
||||
atgaataaagataaaaatgagaaagaagaattggatgaggagtggacaga
|
||||
actgattaaacacgctcttgaacaaggcattagtccagacgatatacgta
|
||||
tttttctcaatttgggtaagaagtcttcaaaaccttccgcatcaattgaa
|
||||
agaagtcattcaataaatcctttctga
|
||||
|
||||
This form of FEATURES is provided to make it easy to pipe output to
|
||||
other programs for further processing. For example
|
||||
|
||||
features M60287:LORF- |ribosome >LORF.protein
|
||||
|
||||
would write the translation of the open reading frame to a file called
|
||||
LORF.protein.
|
||||
|
||||
The full functionality of the FEATURES can be accessed using arguments on
|
||||
the command line. In particular, when there are multiple entries to be
|
||||
processed, or multiple features within entries, it is much faster to
|
||||
supply FEATURES with lists of entries, feature keys or expressions.
|
||||
Command line options are similar to suboptions in menu items 1-3 above:
|
||||
|
||||
Feature keys:
|
||||
-f key {feature key}
|
||||
-F filename {file of feature keys}
|
||||
|
||||
Entries:
|
||||
-n name {GenBank LOCUS name}
|
||||
-N filename {file of GenBank LOCUS names}
|
||||
-a accession {GenBank ACCESSION number}
|
||||
-A filename {file of GenBank ACCESSION numbers}
|
||||
-e expression {Feature Table expression}
|
||||
-E filename {file of Feature Table expressions, each begin-
|
||||
ning with '@'}
|
||||
|
||||
Databases:
|
||||
-u filename {GenBank dataset}
|
||||
-U filename { " " " " " " ,
|
||||
process all entries ie. -nNaAeE options
|
||||
will be ignored}
|
||||
-g {GenBank}
|
||||
|
||||
Examples:
|
||||
|
||||
features -f tRNA -n EPFCPCG
|
||||
|
||||
retrieves all tRNAs from GenBank entry EPFCPCG and writes .msg, .out,
|
||||
and .exp files.
|
||||
|
||||
features -e M60287:LORF-
|
||||
|
||||
would retrieve the same open reading frame as in the earlier example.
|
||||
|
||||
|
||||
Since most time-consuming operation in FEATURES is sequence retrieval,
|
||||
it is often best to retrieve frequently-used sequences as database
|
||||
subsets. For example, a set GenBank entries for chlorophyl a/b binding
|
||||
protein genes might be stored in a file called CAB.gen.
|
||||
|
||||
features -f CDS -N CAB.nam -u CAB.gen
|
||||
|
||||
would generate the files CAB.msg, CAB.out and CAB.exp containing output
|
||||
for all CDS features in the entries listed in the file CAB.nam.
|
||||
|
||||
features -E CAB.exp -u CAB.gen
|
||||
|
||||
would re-create the output file CAB.out.
|
||||
|
||||
|
||||
|
||||
BUGS
|
||||
FEATURES does no preliminary error checking for syntax of
|
||||
GenBank expressions prior to their evaluation. Expressions that can
|
||||
not be evaluated will be flagged by GETOB in the .msg file.
|
||||
|
||||
At present, little checking is done to test for the presence or
|
||||
correctness of input files. Some errors may cause the program to
|
||||
crash.
|
||||
|
||||
For User-defined datasets, filename expansion is not performed.
|
||||
|
||||
FILES
|
||||
Temporary files:
|
||||
X.term X.ano X.wrp X.ind X.gen {X is raw filename, see 4) }
|
||||
UNRESOLVED.fea UNRESOLVED.out
|
||||
FEA.inf FEA.nam FEA.gen FEA.ano FEA.wrp FEA.ind FEA.msg FEA.out
|
||||
|
||||
SEE ALSO
|
||||
grep(1V) fetch getob splitdb
|
||||
|
||||
TRANSPORTATION NOTES
|
||||
It should be fairly easy to get FEATURES to work even on systems
|
||||
in which GenBank has not been formatted for the XYLEM package.
|
||||
This is because FEATURES does not work directly on the database, but
|
||||
rather retrieves all necessary sequences by calling FETCH. Thus,
|
||||
statements like 'fetch FEA.nam FEA.gen' could be replaced with any
|
||||
command that, given a file containing names or accession numbers,
|
||||
returns a file containing GenBank entries. In principle, you
|
||||
could even implement this sort of command to retrieve entries from
|
||||
the email server (retrieve@ncbi.nlm.nih.gov) at NCBI, although
|
||||
such a setup would undoubtedly be quite slow.
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
320
CORE/xylem/fetch.doc
Normal file
320
CORE/xylem/fetch.doc
Normal file
|
@ -0,0 +1,320 @@
|
|||
|
||||
FETCH.DOC update 24 Feb 96
|
||||
|
||||
|
||||
NAME
|
||||
fetch - retrieves database entries by name or accession number
|
||||
|
||||
SYNOPSIS
|
||||
fetch {interactive mode}
|
||||
fetch [options] namefile [output file] {batch mode}
|
||||
|
||||
DESCRIPTION
|
||||
fetch retrieves one or more entries from a database.
|
||||
|
||||
Interactive mode: fetch prompts the user to set search parameters,
|
||||
using an interactive menu:
|
||||
___________________________________________________________________
|
||||
FETCH - Version 7 Feb 94
|
||||
Please cite: Fristensky (1993) Nucl. Acids Res. 21:5997-6003
|
||||
___________________________________________________________________
|
||||
Namefile:
|
||||
Outfile:
|
||||
Database:
|
||||
-------------------------------------------------------------------
|
||||
Parameter Description Value
|
||||
|
||||
1) Name/Acc Name or Accession sequence to get
|
||||
2) Namefile Get list of sequences from Namefile
|
||||
3) WhatToGet a:annotation s:sequence b:both b
|
||||
4) Database g:GenBank p:PIR v:VecBase l:LiMB g
|
||||
G:GenBank dataset P:PIR dataset
|
||||
5) Outfile Send all output to a single file (Outfile)
|
||||
6) Files f:Send each entry to a separate file f
|
||||
-------------------------------------------------------------
|
||||
Type number of your choice or 0 to continue:
|
||||
|
||||
After all parameters have been set, type 0 to commence the search.
|
||||
Messages regarding the progress of the search will be printed.
|
||||
|
||||
(1,2) Which entries to get?
|
||||
If you want to get a single entry, option 1 lets you type in the
|
||||
name of that entry, without having to create a namefile. To get
|
||||
more than one entry, choose option 2, and specify the name of a
|
||||
file containing sequence names or accession numbers.
|
||||
|
||||
namefile is a file containing one or more sequence names or
|
||||
accession numbers, each on a separate line. Names and accession
|
||||
numbers can even be interspersed, in upper or lowercase, and in
|
||||
any order. For example, the namefile prp.nam might contain
|
||||
|
||||
; plant pathogenesis related proteins
|
||||
; (these are sample comment lines)
|
||||
; note that any line containing a semicolon is ignored
|
||||
x06362
|
||||
x05454
|
||||
TOBPR1A1
|
||||
; comments can be interspersed with names.
|
||||
PUMPR13
|
||||
tobpr1ar
|
||||
|
||||
Options 1 & 2 are mutually exclusive. Setting one will negate the
|
||||
other. If option 2 is chosen, the name of the namefile will appear
|
||||
at the top of the menu.
|
||||
|
||||
(3) WhatToGet
|
||||
Use this option to specify whether to get annotation, sequence,
|
||||
or both (default=both).
|
||||
|
||||
(4) Database
|
||||
Use this option to select the database. (default=GenBank).
|
||||
G and P select user-created database subsets containing GenBank
|
||||
or PIR entries, respectively. It is assumed that the database
|
||||
has been split into .ano, .wrp and .ind files using splitdb.
|
||||
For example, if you had created a database subset called PR1.pir,
|
||||
splitdb would create PR1.ano, PR1.wrp and PR1.ind. These are
|
||||
the files actually read by FETCH. When prompted for the name
|
||||
of the database, simply type "PR1", without a file extension.
|
||||
(If you do type a file extension, it will be ignored).
|
||||
|
||||
(5, 6) Where to send output
|
||||
By default, option 6 is set to f, and each entry will be written to
|
||||
a separate file, where the name of the file is the name of the
|
||||
entry, followed by a file extension. If a complete entry is
|
||||
retrieved, the file extension will indicate the type of database
|
||||
(GenBank: .gen; PIR: .pir, Vecbase: .vec; LiMB: .LiMB). If only
|
||||
annotation or sequence are retrieved, the file extensions will be
|
||||
.ano or .wrp, respectively. Using the default, the namefile above
|
||||
would create the following files:
|
||||
|
||||
PUMPR13.gen
|
||||
TOBPR1A1.gen
|
||||
TOBPR1AR.gen
|
||||
TOBPR1CR.gen
|
||||
TOBPR1PS.gen
|
||||
|
||||
By choosing option 5, you can specify the name of an output file
|
||||
for all entries to go to. This filename will appear at the top
|
||||
of the menu. Obviously, options 5 & 6 are mutually exclusive.
|
||||
Note entries retrieved are writen in alphabetical order (sorting by
|
||||
ASCII values), not the order in which they appeared in namefile.
|
||||
|
||||
(Note for remote users only: -f will only work for a single
|
||||
name/accession supplied in 1). -f IS NOT ENABLED FOR NAMEFILES
|
||||
specified in 2).)
|
||||
|
||||
Batch mode:
|
||||
Although it is transparent to the user, all fetch really does
|
||||
is call getloc, saving the user the trouble of knowing which
|
||||
database files to retrieve sequences from, or of having to
|
||||
execute getloc multiple times to retrieve sequences from
|
||||
different database files. Thus, the options are identical to those
|
||||
for getloc:
|
||||
|
||||
-a Write annotation portions of entries only, terminated by '//'.
|
||||
-s Write sequence data only, in Pearson (.wrp) format.
|
||||
-f Write each entry to a separate file.
|
||||
-g GenBank (default)
|
||||
-e EMBL {not implemented}
|
||||
-p PIR (NBRF)
|
||||
-v Vecbase
|
||||
-l LiMB
|
||||
-G GenBank_dataset
|
||||
-P PIR_dataset
|
||||
|
||||
If -f is not specified, outfile must be specified.
|
||||
|
||||
-L force execution of findkey on local host even if
|
||||
$XYLEM_RHOST is set. See "REMOTE EXECUTION" below
|
||||
|
||||
|
||||
PIR_dataset
|
||||
GenBank_dataset
|
||||
This can be either a file of PIR entries, a file of GenBank entries,
|
||||
or a XYLEM dataset created by splitdb. A file of PIR entries must
|
||||
have the file extension ".pir". A file of GenBank entries must have
|
||||
the file extension ".gen". A XYLEM dataset contains PIR entries split
|
||||
among three files by splitdb: annotation (.ano), sequence (.wrp)
|
||||
and index (.ind). These file extensions must be used!
|
||||
|
||||
When specifying a split dataset, only the base name needs to be
|
||||
used. For example given a XYLEM dataset consisting of the files
|
||||
myset.ano, myset.wrp and myset.ind, the following two commands
|
||||
are equivalent:
|
||||
|
||||
fetch -P myset something.nam something.pir
|
||||
fetch -P myset.ano something.nam something.pir
|
||||
|
||||
If the original .pir file had been used, the command would have
|
||||
been
|
||||
|
||||
fetch -P myset.pir something.nam something.pir
|
||||
|
||||
The ability to work directly with .gen or .pir files is quite
|
||||
convenient. However, since FETCH needs to work with a split
|
||||
FETCH automatically splits .pir or .gen files into .ano, .wrp
|
||||
and .ind files, which are removed when finished. This requires
|
||||
extra disk space and execution time, which could be significant
|
||||
for large datasets.
|
||||
|
||||
EXAMPLES
|
||||
Batch example:
|
||||
fetch -f chitinase.nam
|
||||
will retrieve annotation and sequence for sequences listed in
|
||||
chitinase.nam from GenBank, writing each entry to a separate file
|
||||
with the extension .gen.
|
||||
|
||||
fetch -s -v pbr.nam pbr.wrp
|
||||
will retrieve sequence data only for the entries listed in pbr.nam,
|
||||
from VecBase, and write all sequences to a Pearson format file
|
||||
(ie. readable by fasta) with the name pbr.wrp.
|
||||
|
||||
fetch -G sample sample.nam new.gen
|
||||
fetch -G sample.ano sample.nam new.gen
|
||||
Assumes that a set of GenBank entries has been split by splitdb
|
||||
into sample.ano sample.wrp and sample.ind. The entries listed in
|
||||
sample.nam are written to new.gen.
|
||||
|
||||
|
||||
FILES
|
||||
Database files:
|
||||
The directories for database files are specified by the environment
|
||||
variables $GB (GenBank) $PIR (PIR/NBRF) $VEC(Vecbase) and $LIMB
|
||||
(LiMB).
|
||||
|
||||
Index files are $GB/gbacc.idx for GenBank (this file is supplied
|
||||
with each GenBank release), while the other databases
|
||||
use .ind files generated by splitdb. Split database files MUST
|
||||
have the following file extensions: .ano {annotation}, .wrp
|
||||
{sequence} and .ind {index}. Thus, when creating database files
|
||||
for pir1.dat with splitdb, the output files should be pir1.ano,
|
||||
pir1.wrp and pir1.ind.
|
||||
|
||||
Temporary files:
|
||||
NAMEFILE.fetch
|
||||
PRELIMINARY.fetch
|
||||
TMP.fetch
|
||||
FOUND.fetch
|
||||
FETCHDIR {temporary directory}
|
||||
|
||||
REMOTE EXECUTION
|
||||
Where the databases can not be stored locally, FETCH can call
|
||||
FETCH on another system and retrieve the results. To run
|
||||
FETCH remotely, your .cshrc file should contain the following
|
||||
lines:
|
||||
|
||||
setenv XYLEM_RHOST remotehostname
|
||||
setenv XYLEM_USERID remoteuserid
|
||||
|
||||
where remotehostname is the name of the host on which the
|
||||
databases reside (in XYLEM split format) and remoteuserid
|
||||
is your userid on the remote system. When run remotely,
|
||||
your local copy of FETCH will generate the following
|
||||
commands:
|
||||
|
||||
rcp filename $XYLEM_USERID@$XYLEM_HOST:filename
|
||||
rsh $XYLEM_RHOST -l $XYLEM_USERID fetch ...
|
||||
rcp $XYLEM_USERID@$XYLEM_HOST:outputfilename outputfilename
|
||||
rsh $XYLEM_RHOST -l $XYLEM_USERID $RM temporary_files
|
||||
|
||||
Because FETCH uses rsh and rcp, your home directory on both
|
||||
the local and remote systems must have a world-readable
|
||||
file called .rhosts, containing the names of trusted remote
|
||||
hosts and your userid on each host. Before trying to get
|
||||
FETCH to work remotely, make sure that you can rcp and
|
||||
rsh to the remote host.
|
||||
|
||||
Obviously, remote execution of FETCH implies that FETCH
|
||||
must already be installed on the remote host. When FETCH
|
||||
runs another copy of FETCH remotely, it uses the -L option
|
||||
(findkey -L) to insure that the remote FETCH job executes,
|
||||
rather than calling yet another FETCH on another host.
|
||||
|
||||
|
||||
---------- Remote execution on more than 1 host -----------
|
||||
If more than 1 remote host is available for running FINDKEY
|
||||
(say, in a clustered environment where many servers mount
|
||||
a common filesystem) the choice of a host can be determined
|
||||
by the csh script choosehost, such that execution of
|
||||
choosehost returns the name of a remote server. To use this
|
||||
approach, the following script, called 'choosehost' should
|
||||
be in your bin directory:
|
||||
|
||||
#!/bin/csh
|
||||
# choosehost - choose a host to use for a remote job.
|
||||
# This script rotates among servers listed in .rexhosts,
|
||||
# by choosing the host at the top of the list and moving
|
||||
# it to the bottom.
|
||||
|
||||
#Rotate the list, putting the current host to the bottom.
|
||||
set HOST = `head -1 $home/.rexhosts`
|
||||
set JOBID = $$
|
||||
tail +2 $home/.rexhosts > /tmp/.rexhosts.$JOBID
|
||||
echo $HOST >> /tmp/.rexhosts.$JOBID
|
||||
/usr/bin/mv /tmp/.rexhosts.$JOBID $home/.rexhosts
|
||||
|
||||
# Write out the current host name
|
||||
echo $HOST
|
||||
|
||||
You must also have a file in your home directory called
|
||||
.rexhosts, listing remote hosts, such as
|
||||
|
||||
graucho.cc.umanitoba.ca
|
||||
harpo.cc.umanitoba.ca
|
||||
chico.cc.umanitoba.ca
|
||||
zeppo.cc.umanitoba.ca
|
||||
|
||||
Each time choosehost is called, choosehost will rotate the
|
||||
names in the file. For example, starting with the .rexhosts
|
||||
as shown, it will move graucho.cc.umanitoba.ca to the bottom
|
||||
of the file, and write the line 'graucho.cc.umanitoba.ca'
|
||||
to the standard output. The next time choosehosts is
|
||||
run, it would write 'harpo.cc.umanitoba.ca', and so on.
|
||||
|
||||
Depending on your local configuration, you may wish to
|
||||
rewrite choosehosts. All that is really necessary is that
|
||||
echo `choosehost` should return the name of a valid host.
|
||||
|
||||
Once you have installed choosehost and tested it, you can
|
||||
get FINDKEY to use choosehost simply by setting
|
||||
|
||||
setenv XYLEM_RHOST choosehost
|
||||
|
||||
in your .cshrc file.
|
||||
|
||||
--------------- Remote filesystems -----------------------
|
||||
Finally, an alternative to remote execution is to remotely mount
|
||||
the file system containing the databases across the network.
|
||||
This has the advantage of simplicity, and means that the
|
||||
databases are available for ALL programs on your local
|
||||
workstation. However, it may still be advantageous to run
|
||||
FETCH remotely, since that will shift much of the computational
|
||||
load to another host.
|
||||
|
||||
BUGS
|
||||
When retrieving entries directly from GenBank, FETCH uses the
|
||||
Accession Number index file gbacc.idx. In this case, FETCH
|
||||
can retrieve all entries containing a given accession number.
|
||||
This capability makes it possible to retrieve an entry using a
|
||||
secondary accession number. However if more than one entry
|
||||
share a secondary accession number, all of those entries will
|
||||
be retrieved. While this behavior might be a bit of an
|
||||
annoyance at times, it can also be useful because it alerts
|
||||
the user to the presence of other, related entries that might
|
||||
be of interest.
|
||||
|
||||
SEE ALSO
|
||||
getloc features
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
365
CORE/xylem/findkey.doc
Normal file
365
CORE/xylem/findkey.doc
Normal file
|
@ -0,0 +1,365 @@
|
|||
|
||||
FINDKEY.DOC update 13 Mar 97
|
||||
|
||||
|
||||
NAME
|
||||
findkey - finds database entries containg one or more keywords
|
||||
|
||||
SYNOPSIS
|
||||
findkey
|
||||
findkey [-pvbmgrdutielnsaxzL] keywordfile [namefile findfile]
|
||||
findkey [-P PIR_dataset] keywordfile [namefile findfile]
|
||||
findkey [-G GenBank_dataset] keywordfile [namefile findfile]
|
||||
|
||||
DESCRIPTION
|
||||
findkey uses the grep family of commands to find lines in database
|
||||
annotation files containing one or more keywords. Next, identify
|
||||
is called to create a .nam file, containing the names of entries
|
||||
containing the keywords, and a .fnd file, containing the actual
|
||||
lines from each entry containing hits. A PIR or GenBank dataset is
|
||||
either a file containing one or more GenBank or PIR entries, or
|
||||
the name of a XYLEM dataset created by splitdb. See FILES below
|
||||
for a more detailed description.
|
||||
|
||||
INTERACTIVE USE
|
||||
findkey prompts the user to set search parameters, using an interactive
|
||||
menu:
|
||||
|
||||
___________________________________________________________________
|
||||
FINDKEY - Version 12 Aug 94
|
||||
Please cite: Fristensky (1993) Nucl. Acids Res. 21:5997-6003
|
||||
___________________________________________________________________
|
||||
Keyfile:
|
||||
Dataset:
|
||||
-------------------------------------------------------------------
|
||||
Parameter Description Value
|
||||
-------------------------------------------------------------------
|
||||
1) Keyword Keyword to find thionin
|
||||
2) Keyfile Get list of keywords from Keyfile
|
||||
3) WhereToLook p:PIR v:VecBase p
|
||||
GenBank - b:bacterial i:invertebrate
|
||||
m:mamalian e:expressed seq. tag
|
||||
g:phage l:plant
|
||||
r:primate n:rna
|
||||
d:rodent s:synthetic
|
||||
u:unannotated a:viral
|
||||
t:vertebrate x:patented
|
||||
z:STS
|
||||
G: GenBank dataset P: PIR dataset
|
||||
-------------------------------------------------------------
|
||||
Type number of your choice or 0 to continue:
|
||||
0
|
||||
Searching /home/psgendb/PIR/pir1.ano...
|
||||
Sequence names will be written to thionin~pir.nam
|
||||
Lines containing keyword(s) will be written to thionin~pir.fnd
|
||||
Searching /home/psgendb/PIR/pir2.ano...
|
||||
Sequence names will be written to thionin~pir.nam
|
||||
Lines containing keyword(s) will be written to thionin~pir.fnd
|
||||
Searching /home/psgendb/PIR/pir3.ano...
|
||||
Sequence names will be written to thionin~pir.nam
|
||||
Lines containing keyword(s) will be written to thionin~pir.fnd
|
||||
|
||||
As shown in the example above, the keyword thionin was specified
|
||||
as the keyword to search for. By default, option 3 is set to p,
|
||||
and the PIR protein database is searched. Messages describe the
|
||||
progress of the search. Since PIR is broken up into two divisions
|
||||
(new and protein) both are searched, but all output is written to
|
||||
thionin.pir.nam and thionin.pir.fnd
|
||||
|
||||
OPTIONS
|
||||
(1,2) Which keywords to search for?
|
||||
If you want to search for a single keyword, option 1 lets you type
|
||||
the keyword, without having to create a file. To search for more
|
||||
than one keyword, choose option 2, and specify the name of a
|
||||
file containing the keywords. For example, entries containing
|
||||
genes for antibiotic resistance might be found using the
|
||||
following keyword file:
|
||||
|
||||
ampicillin
|
||||
chloramphenicol
|
||||
kanamycin
|
||||
neomycin
|
||||
tetracycline
|
||||
|
||||
Note: keyword searches are case insensitive.
|
||||
|
||||
As you might expect, it takes longer to search for multiple
|
||||
keywords than a single keyword.
|
||||
|
||||
Options 1 & 2 are mutually exclusive. Setting one will negate the
|
||||
other. If option 2 is chosen, the name of the keyword file will
|
||||
appear at the top of the menu.
|
||||
|
||||
Finally, it is probably not a good idea to search GenBank
|
||||
entries using very short keywords consisting only of letters.
|
||||
This is because GenBank entries now include a /translation
|
||||
field containing the amino acid sequence of each protein
|
||||
coding sequence. Consequently, 3 or 4 letter keywords
|
||||
consisting of legal amino acid symbols (eg. CAP, recA) will
|
||||
turn up fairly often in protein translations.
|
||||
|
||||
(3) WhereToLook
|
||||
Use this option to specify the database to be searched In the
|
||||
case of GenBank, only one division at a time may be searched.
|
||||
User-created database subsets containing PIR (P) or GenBank (G)
|
||||
entries may also be searched. User-created database subsets
|
||||
must be in the .ano/.wrp/.ind form created by splitdb.
|
||||
|
||||
OUTPUT
|
||||
The output filenames take the following form:
|
||||
|
||||
name_ex1.ex2
|
||||
|
||||
The 'name' part of the filename is either the keyword searched for,
|
||||
if option 1 was chosen, or the name of the keyword file,if option 2
|
||||
obtains. 'ex1' indicates the database division that was searched. For
|
||||
PIR and VecBase, ex1 is 'pir' and 'vec', respectively. For GenBank,
|
||||
ex1 is as follows:
|
||||
|
||||
bct - bacterial
|
||||
inv - invertebrate
|
||||
mam - other mamalian
|
||||
est - expressed sequence tag
|
||||
phg - phage
|
||||
pln - plant (includes fungi)
|
||||
pri - primate
|
||||
rna - structural RNAs
|
||||
rod - rodent
|
||||
syn - synthetic sequences
|
||||
sts - sequence tagged sites
|
||||
una - unannotated (new) sequences
|
||||
vrl - viral
|
||||
vrt - other vertebrate
|
||||
|
||||
'ex2' distinguishes the files containing the names of entries
|
||||
containing keywords (.nam) and the files containing the lines found
|
||||
in each entry (.fnd).
|
||||
|
||||
The .nam file can be used directly as a namefile for fetch, getloc,
|
||||
or getob.
|
||||
|
||||
COMMAND LINE USE
|
||||
|
||||
OPTIONS
|
||||
p search PIR (default)
|
||||
P PIR dataset search dbfile, containing PIR entries
|
||||
v search VecBase
|
||||
b search Genbank bacterial division
|
||||
m search Genbank mamalian division
|
||||
g search Genbank phage division
|
||||
r search Genbank primate division
|
||||
d search Genbank rodent division
|
||||
u search Genbank unannotated division
|
||||
t search Genbank vertebrate division
|
||||
i search Genbank invertebrate division
|
||||
l search Genbank plant division
|
||||
n search Genbank rna division
|
||||
s search Genbank synthetic division
|
||||
a search Genbank viral division
|
||||
x search Genbank patented division
|
||||
e search Genbank exp.seq.tag division
|
||||
z search GenBank STS division
|
||||
S search GenBank Genom. Survey division
|
||||
h search GenBank High Thrput. division
|
||||
G GenBank dataset search dbfile, containing GenBank entries
|
||||
|
||||
L force execution of findkey on local host
|
||||
even if $XYLEM_RHOST is set. See "REMOTE
|
||||
EXECUTION" below
|
||||
|
||||
FILES
|
||||
|
||||
keywordfile - contains keywords to search for
|
||||
|
||||
namefile - LOCUS names of hits are written to this file
|
||||
|
||||
findfile - for each hit, a report listing the LOCUS name and the
|
||||
lines matching the keyword if written to this file.
|
||||
|
||||
If namefile and findfile are not specified on the command line,
|
||||
filenames will be created as described above for interactive
|
||||
use.
|
||||
|
||||
PIR_dataset
|
||||
GenBank_dataset
|
||||
This can be either a file of PIR entries, a file of GenBank entries,
|
||||
or a XYLEM dataset created by splitdb. A file of PIR entries must
|
||||
have the file extension ".pir". A file of GenBank entries must have
|
||||
the file extension ".gen". A XYLEM dataset contains PIR entries split
|
||||
among three files by splitdb: annotation (.ano), sequence (.wrp)
|
||||
and index (.ind). These file extensions must be used!
|
||||
|
||||
When specifying a split dataset, only the base name needs to be
|
||||
used. For example given a XYLEM dataset consisting of the files
|
||||
myset.ano, myset.wrp and myset.ind, the following two commands
|
||||
are equivalent:
|
||||
|
||||
findkey -P myset something.kw
|
||||
findkey -P myset.ano something.kw
|
||||
|
||||
If the original .pir file had been used, the command would have
|
||||
been
|
||||
|
||||
findkey -P myset.pir something.kw
|
||||
|
||||
The ability to work directly with .gen or .pir files is quite
|
||||
convenient. However, since FINDKEY needs to work with a split
|
||||
FINDKEY automatically splits .pir or .gen files into .ano, .wrp
|
||||
and .ind files, which are removed when finished. This requires
|
||||
extra disk space and execution time, which could be significant
|
||||
for large datasets.
|
||||
|
||||
EXAMPLES
|
||||
If the list of antibiotics shown above was stored in the file
|
||||
antibiotic.kw, and option 3 was set to 'b', then the annotation
|
||||
portion of the GenBank bacterial division would be searched, and
|
||||
all lines containing any of these keywords would be written to
|
||||
antibiotic~bac.fnd. The corresponding GenBank entry names would
|
||||
appear in antibiotic~bac.nam.
|
||||
|
||||
The same keyword file could be used to search other database files.
|
||||
If VecBase was searched, the output files would be antibiotic~vec.fnd
|
||||
and antibiotic~vec.nam. These filename conventions make it easy
|
||||
to search different database divisions, and to keep track of where
|
||||
data came from.
|
||||
|
||||
Command line examples:
|
||||
|
||||
findkey thionin.kw
|
||||
|
||||
would be equivalent to the interactive example shown above. In
|
||||
this case, the file thionin.kw contains the word 'thionin'.
|
||||
(Note that since PIR is the default, -p need not be supplied.)
|
||||
|
||||
findkey -b antibiotic.kw drugs.nam drugs.fnd
|
||||
|
||||
would search the GenBank bacterial division for the keywords
|
||||
contained in antibiotic.kw, and write the output to drugs.nam
|
||||
and drugs.kw.
|
||||
|
||||
FILES
|
||||
Database files:
|
||||
The directories for database files are specified by the environment
|
||||
variables $GB (GenBank) $PIR (PIR/NBRF) and $VEC(Vecbase).
|
||||
Annotation (.ano) and index (.ind) are those generated by splitdb.
|
||||
|
||||
Temporary files:
|
||||
$jobid.fnd
|
||||
$jobid.nam
|
||||
$jobid.grep
|
||||
|
||||
where $jobid is a unique jobid generated by the shell
|
||||
|
||||
REMOTE EXECUTION
|
||||
Where the databases can not be stored locally, FINDKEY can call
|
||||
FINDKEY on another system and retrieve the results. To run
|
||||
FINDKEY remotely, your .cshrc file should contain the following
|
||||
lines:
|
||||
|
||||
setenv XYLEM_RHOST remotehostname
|
||||
setenv XYLEM_USERID remoteuserid
|
||||
|
||||
where remotehostname is the name of the host on which the
|
||||
databases reside (in XYLEM split format) and remoteuserid
|
||||
is your userid on the remote system. When run remotely,
|
||||
your local copy of FINDKEY will generate the following
|
||||
commands:
|
||||
|
||||
rcp filename $XYLEM_USERID@$XYLEM_HOST:filename
|
||||
rsh $XYLEM_RHOST -l $XYLEM_USERID findkey ...
|
||||
rcp $XYLEM_USERID@$XYLEM_HOST:outputfilename outputfilename
|
||||
rsh $XYLEM_RHOST -l $XYLEM_USERID rm temporary_files
|
||||
|
||||
Because FINDKEY uses rsh and rcp, your home directory on both
|
||||
the local and remote systems must have a world-readable
|
||||
file called .rhosts, containing the names of trusted remote
|
||||
hosts and your userid on each host. Before trying to get
|
||||
FINDKEY to work remotely, make sure that you can rcp and
|
||||
rsh to the remote host.
|
||||
|
||||
Obviously, remote execution of FINDKEY implies that FINDKEY
|
||||
must already be installed on the remote host. When FINDKEY
|
||||
runs another copy of FINDKEY remotely, it uses the -L option
|
||||
(findkey -L) to insure that the remote FINDKEY job executes,
|
||||
rather than calling yet another FINDKEY on another host.
|
||||
|
||||
---------- Remote execution on more than 1 host -----------
|
||||
If more than 1 remote host is available for running FINDKEY
|
||||
(say, in a clustered environment where many servers mount
|
||||
a common filesystem) the choice of a host can be determined
|
||||
by the csh script choosehost, such that execution of
|
||||
choosehost returns the name of a remote server. To use this
|
||||
approach, the following script, called 'choosehost' should
|
||||
be in your bin directory:
|
||||
|
||||
#!/bin/csh
|
||||
# choosehost - choose a host to use for a remote job.
|
||||
# This script rotates among servers listed in .rexhosts,
|
||||
# by choosing the host at the top of the list and moving
|
||||
# it to the bottom.
|
||||
|
||||
#Rotate the list, putting the current host to the bottom.
|
||||
set HOST = `head -1 $home/.rexhosts`
|
||||
set JOBID = $$
|
||||
tail +2 $home/.rexhosts > /tmp/.rexhosts.$JOBID
|
||||
echo $HOST >> /tmp/.rexhosts.$JOBID
|
||||
/usr/bin/mv /tmp/.rexhosts.$JOBID $home/.rexhosts
|
||||
|
||||
# Write out the current host name
|
||||
echo $HOST
|
||||
|
||||
You must also have a file in your home directory called
|
||||
.rexhosts, listing remote hosts, such as
|
||||
|
||||
graucho.cc.umanitoba.ca
|
||||
harpo.cc.umanitoba.ca
|
||||
chico.cc.umanitoba.ca
|
||||
zeppo.cc.umanitoba.ca
|
||||
|
||||
Each time choosehost is called, choosehost will rotate the
|
||||
names in the file. For example, starting with the .rexhosts
|
||||
as shown, it will move graucho.cc.umanitoba.ca to the bottom
|
||||
of the file, and write the line 'graucho.cc.umanitoba.ca'
|
||||
to the standard output. The next time choosehosts is
|
||||
run, it would write 'harpo.cc.umanitoba.ca', and so on.
|
||||
|
||||
Depending on your local configuration, you may wish to
|
||||
rewrite choosehosts. All that is really necessary is that
|
||||
echo `choosehost` should return the name of a valid host.
|
||||
|
||||
Once you have installed choosehost and tested it, you can
|
||||
get FINDKEY to use choosehost simply by setting
|
||||
|
||||
setenv XYLEM_RHOST choosehost
|
||||
|
||||
in your .cshrc file.
|
||||
|
||||
--------------- Remote filesystems -----------------------
|
||||
Finally, an alternative to remote execution is to remotely mount
|
||||
the file system containing the databases across the network.
|
||||
This has the advantage of simplicity, and means that the
|
||||
databases are available for ALL programs on your local
|
||||
workstation. However, it may still be advantageous to run
|
||||
XYLEM remotely, since that will shift much of the computational
|
||||
load to another host.
|
||||
|
||||
|
||||
BUGS
|
||||
At present, regular expression characters cannot be used for
|
||||
keyword searches.
|
||||
|
||||
SEE ALSO
|
||||
grep(1V) identify splitdb
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
65
CORE/xylem/getloc.doc
Normal file
65
CORE/xylem/getloc.doc
Normal file
|
@ -0,0 +1,65 @@
|
|||
|
||||
GETLOC.DOC update 30 May 95
|
||||
|
||||
|
||||
NAME
|
||||
getloc - retrieve database entries listed in namefile to outfile.
|
||||
|
||||
SYNOPSIS
|
||||
getloc [-asfcgepvl] namefile [anofile] [seqfile] indfile outfile
|
||||
|
||||
DESCRIPTION
|
||||
getloc reads a list of names from namefile and recreates
|
||||
entries by combining the annotation and sequence portions of each
|
||||
entry from anofile and seqfile. getloc will work most quickly
|
||||
when the namefile is in alphabetical order, but it will also
|
||||
work on unsorted lists. The following options affect the output:
|
||||
|
||||
a Write annotation portions of entries only, terminated by '//'.
|
||||
seqfile is not included on command line.
|
||||
|
||||
s Write sequence data only, in Pearson (.wrp) format.
|
||||
anofile is not included on commandline.
|
||||
|
||||
f Write each entry to a separate file. The filename will
|
||||
consist of the LOCUS name, followed by .ano for annotation
|
||||
only, .wrp for sequence only, or gen for complete GenBank
|
||||
format.
|
||||
|
||||
c namefile contains accession numbers, rather than names
|
||||
|
||||
The following options identify the type of database being read:
|
||||
|
||||
g GenBank (default)
|
||||
e EMBL
|
||||
p PIR (NBRF)
|
||||
v Vecbase
|
||||
l LiMB
|
||||
|
||||
namefile consists of an alphabetically ordered list of LOCUS names,
|
||||
each on a separate line. Indfile could be used to create a
|
||||
namefile by simply editing out some subset of names. (This can also
|
||||
be done using the Unix comm command.) If the entire indfile was
|
||||
used, the entire database would be recreated, minus the header
|
||||
information that might have been present in the original, but
|
||||
deleted by splitdb.
|
||||
|
||||
NOTE
|
||||
Getloc automatically expands leading blanks that have been
|
||||
compressed using splitdb -c. See splitdb.doc for more information.
|
||||
|
||||
SEE ALSO
|
||||
splitdb, comm(1).
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
327
CORE/xylem/getob.doc
Normal file
327
CORE/xylem/getob.doc
Normal file
|
@ -0,0 +1,327 @@
|
|||
|
||||
GETOB 21 Dec 94
|
||||
|
||||
|
||||
NAME
|
||||
getob - Get an object from GenBank
|
||||
|
||||
SYNOPSIS
|
||||
getob [-frcn] infile namefile anofile seqfile indfile message
|
||||
[outfile] expfile
|
||||
|
||||
DESCRIPTION
|
||||
getob extracts 'objects' (subsequences) from GenBank entries, using
|
||||
the features table, and writes them to outfile (.out). A log
|
||||
describing the construction of each object is written to message
|
||||
(.msg). If -r is not set, a list of expressions that would recreate
|
||||
the .out file if evaluated by getob -r, is written to expfile (.exp)
|
||||
|
||||
The following options are available:
|
||||
|
||||
f Write each entry to a separate file. The name will consist
|
||||
of the entry name, and the extension '.obj'.
|
||||
|
||||
r Resolve expressions from namefile into objects.
|
||||
Expressions take the form:
|
||||
|
||||
@[<database>::]<accession>:<location>
|
||||
|
||||
In effect, r makes it possible to use getob to resolve
|
||||
features that span more than one entry, such as segmented
|
||||
files. In the first run of the program, features that require
|
||||
data from outside the entry in which they are defined will be
|
||||
written to outfile with those externally-defined parts rep-
|
||||
resented using the '@' notation described above. During a
|
||||
subsequent run, the outfile from the previous run is used as
|
||||
namefile. When r is set, all lines not beginning with '@' (ie.
|
||||
name lines and sequence lines) are simply copied to the new
|
||||
outfile. When an '@' is encountered, the expression is parsed
|
||||
into accession number and location. The entry with the
|
||||
specified accession number is located in indfile, and read from
|
||||
anofile and seqfile. It is then evaluated, and the result
|
||||
written to outfile in place of the '@' expression.
|
||||
|
||||
getob can also be used to get specific labeled objects from
|
||||
a given entry. Examples:
|
||||
|
||||
@k30576:polyprotein
|
||||
@k30576:/label=polyprotein
|
||||
@x10345:/product="hsp70"
|
||||
@j00879:group(1..2200,mutation_37)
|
||||
|
||||
The first two constructs given above are equivalent. Both
|
||||
will extract the feature called polyprotein. The third
|
||||
construct shows that any feature label can be specified. If
|
||||
none is specified, as in the first example, then /label= is
|
||||
assumed. One limitation, however, is that the label sought
|
||||
must be unique within the entry in its first 15 characters
|
||||
including double quotes ("). Otherwise, only the first
|
||||
matching label expression will be evaluated. Finally, the
|
||||
last example shows that a mutant sequence can be constructed
|
||||
by first specifying an expression that evaluates to a
|
||||
sequence (ie. 1..2200) and then a labeled expression that
|
||||
upon evaluation, uses replace() to modify that sequence. The
|
||||
usage shown in examples 3 & 4 above represent extensions to
|
||||
the DDBJ/EMBL/GenBank Features Table Format.
|
||||
|
||||
As touched on briefly above, the r option makes it possible
|
||||
to construct objects that include recursive references to
|
||||
other entries (eg. segmented files) by iterative calls to
|
||||
getob. The 'features' command automates this process. The basic
|
||||
algorithm is as follows:
|
||||
|
||||
getob infile namefile anofile seqfile indfile ...
|
||||
|
||||
#Pull out all lines containing indirect references
|
||||
grep '@' outfile > unresolved.grep
|
||||
|
||||
while (unresolved.grep is not empty)
|
||||
|
||||
#extract accession numbers to be retrieved
|
||||
cut -c2-7 unresolved.grep > unresolved.nam
|
||||
|
||||
#retrieve the sequences into a new file, and create
|
||||
#a database subset to be used by getob
|
||||
fetch unresolved.nam new.gen
|
||||
splitdb new.gen new.ano new.wrp new.ind
|
||||
|
||||
#run getob again to resolve indirect references
|
||||
getob -r infile outfile new.ano new.wrp new.ind ...
|
||||
|
||||
#Pull out all lines containing indirect references
|
||||
grep '@' outfile > unresolved.grep
|
||||
end
|
||||
|
||||
c NAMEFILE contains accession numbers, rather than locus names
|
||||
|
||||
n By default, the qualifier 'codon_start' is used to determine
|
||||
how many n's, if necessary, must be added to the 5' end of
|
||||
CDS, mat_peptide, or sig_peptide, to preserve the reading
|
||||
frame. To turn OFF this feature, -n must be set. -n must be set
|
||||
for GenBank Releases 67.0 and earlier.
|
||||
|
||||
infile contains commands indicating what data is to be pulled from
|
||||
each entry. Two types of output may be presented, GenBank or
|
||||
OBJECTS. These are described below:
|
||||
|
||||
1) GenBank output - If the word 'GENBANK' is the first line in
|
||||
infile, a pseudo-GenBank entry will be recreated. This option
|
||||
is only intended for debugging purposes and will probably be
|
||||
removed in later releases.
|
||||
|
||||
2) Object format - This option instructs getob to write part or
|
||||
all of each sequence, along with site annotation, by specifying
|
||||
feature key names. The syntax for infile is shown below:
|
||||
|
||||
Backus-Naur format: Example:
|
||||
----------------------------------------------------------
|
||||
OBJECTS OBJECTS
|
||||
<feature key> tRNA
|
||||
{<feature key> rRNA
|
||||
. . . SITES
|
||||
<feature key>} stem_loop
|
||||
SITES
|
||||
{<feature key>
|
||||
. . .
|
||||
<feature key>}
|
||||
|
||||
In the example above, getob is instructed to extract all tRNA or
|
||||
rRNA sequences from each entry, and annotate the position of each
|
||||
stem/loop structure. Note that the SITES coordinates written to the
|
||||
file tell the positions of those SITES relative to the start of the
|
||||
object, rather than the original location in the sequence. As above,
|
||||
each word begins a separate line.
|
||||
|
||||
While the -r option does not use infile, at least a dummy infile
|
||||
must be included in the command line. This dummy file need only
|
||||
contain two lines:
|
||||
|
||||
OBJECTS
|
||||
SITES
|
||||
|
||||
NOTE: SITES IS NOT YET IMPLEMENTED! Although inclusion of SITES in
|
||||
the input file will have no effect, the word SITES must still be
|
||||
present after the last feature key.
|
||||
|
||||
|
||||
namefile
|
||||
namefile consists of a list of LOCUS names or accession numbers,
|
||||
each on a separate line. Names or accession numbers should appear
|
||||
in the order in which they appear in the database file. Unordered
|
||||
namefiles will slow the progress of the search. Since only the
|
||||
first non-blank field of each line in namefile is read, indfile
|
||||
could be used to create a namefile. If the entire indfile was
|
||||
used, the entire database file would be processed. A sample
|
||||
namefile requesting four sequences by LOCUS name is shown below:
|
||||
|
||||
POTPR1A
|
||||
POTPSTH2
|
||||
POTPSTH21
|
||||
POTSTHA
|
||||
|
||||
anofile, seqfile, and indfile
|
||||
The database subset containing GenBank entries must be divided
|
||||
among annotation, sequence and an index by splitdb.
|
||||
|
||||
message
|
||||
message contains a log describing the parsing of each object.
|
||||
For annotative purposes, qualifier lines from the object are
|
||||
included in along with the location expression being parsed.
|
||||
The beginning of a typical message file is shown below:
|
||||
|
||||
GETOB Version 0.962 14 May 1992
|
||||
|
||||
POTPR1A:CDS1
|
||||
join
|
||||
(
|
||||
295 603
|
||||
|
||||
1011 1355
|
||||
|
||||
)
|
||||
|
||||
|
||||
/note="pathogenesis-related protein (prp1)"
|
||||
/codon_start=1
|
||||
/translation="MAEVKLLGLRYSPFSHRVEWALKIKGVKYEFIEEDLQNKSPLLL
|
||||
QSNPIHKKIPVLIHNGKCICESMVILEYIDEAFEGPSILPKDPYDRALARFWAKYVED
|
||||
KGAAVWKSFFSKGEEQEKAKEEAYEMLKILDNEFKDKKCFVGDKFGFADIVANGAALY
|
||||
LGILEEVSGIVLATSEKFPNFCAWRDEYCTQNEEYFPSRDELLIRYRAYIQPVDASK"
|
||||
//----------------------------------------------
|
||||
|
||||
In the example above, getob was instructed to retrieve all CDS
|
||||
features from the database subset. The message for the entry
|
||||
POTPR1A is shown, along with a reconstruction of the location
|
||||
expression that was evaluated to create the object. In this
|
||||
case, protien coding sequences from two exons had to be joined
|
||||
to create the object.
|
||||
|
||||
outfile
|
||||
outfile contains the actual objects constructed, consisting of
|
||||
sites found and sequences. The beginning of a typical output file
|
||||
is shown below:
|
||||
|
||||
>POTPR1A:CDS1
|
||||
atggcagaagtgaagttgcttggtctaaggtatagtccttttagccatag
|
||||
agttgaatgggctctaaaaattaagggagtgaaatatgaatttatagagg
|
||||
aagatttacaaaataagagccctttacttcttcaatctaatccaattcac
|
||||
aagaaaattccagtgttaattcacaatggcaagtgcatttgtgagtctat
|
||||
ggtcattcttgaatacattgatgaggcatttgaaggcccttccattttgc
|
||||
ctaaagacccttatgatcgcgctttagcacgattttgggctaaatacgtc
|
||||
gaagataag
|
||||
ggggcagcagtgtggaaaagtttcttttcgaaaggagaggaacaagagaa
|
||||
agctaaagaggaagcttatgagatgttgaaaattcttgataatgagttca
|
||||
aggacaagaagtgctttgttggtgacaaatttggatttgctgatattgtt
|
||||
gcaaatggtgcagcactttatttgggaattcttgaagaagtatctggaat
|
||||
tgttttggcaacaagtgaaaaatttccaaatttttgtgcttggagagatg
|
||||
aatattgcacacaaaacgaggaatattttccttcaagagatgaattgctt
|
||||
atccgttaccgagcctacattcagcctgttgatgcttcaaaatga
|
||||
|
||||
In the example, the CDS from entry POTPR1A has been written in
|
||||
two chunks, corresponding to the two exon portions of the coding
|
||||
sequence. Each location retrieved in constructing the object is
|
||||
written as a separate block of sequence. By comparing message file
|
||||
to outfile, it is possible to verify the correctness of the
|
||||
operation.
|
||||
|
||||
Numbers are appended to the sequence names to indicate
|
||||
which CDS in the entry has been retrieved. Thus, if two CDS
|
||||
features were present, the second one would be named >POTPR1A:2.
|
||||
For compatiblility with the FASTA programs of Pearson, the name line
|
||||
begins with a '>'.
|
||||
|
||||
expfile
|
||||
The expression evaluated to create this feature is written
|
||||
to expfile:
|
||||
|
||||
>POTPR1A:CDS1
|
||||
@J03679:join(295..603,1011..1355)
|
||||
|
||||
expfile is only created if -r is not set. It is itended as a way
|
||||
of automating the creation of a feature expression file for use
|
||||
in generating customized datasets. Expressions in expfile can be
|
||||
deleted or modified, or new expressions added, to tailor the
|
||||
dataset to individual needs. To generate a dataset from expfile:
|
||||
|
||||
getob -r infile expfile anofile seqfile indfile message outfile
|
||||
|
||||
EXTENSIONS TO THE FEATURE TABLE LANGUAGE
|
||||
|
||||
1) poly(<absolute_location>|<literal>|<feature_name>,x)
|
||||
|
||||
This operator evaluates an absolute location, literal, or
|
||||
feature name (ie. any location not containing functional
|
||||
operators) and writes it x times. The most obvious
|
||||
application of poly is to create spacers to represent regions
|
||||
of unknown sequence between sequences that are known. For
|
||||
example, the restriction map of a 4kb EcoR1 fragment with a
|
||||
Hind3 site 1000 bp from one end could be represented as follows:
|
||||
|
||||
join("gaattc",poly("n",1000),"aagctt",poly("n",3000),"gaattc")
|
||||
|
||||
2) The following feature keys are recognized by GETOB, although
|
||||
not included in the language definition. While they will not
|
||||
appear in GenBank entries, they could be used in user-created
|
||||
GenBank-format files:
|
||||
|
||||
contig
|
||||
This feature key is meant to be used to assemble large
|
||||
sequence segments from smaller segments, possibly using the
|
||||
poly() operator.
|
||||
|
||||
chromosome
|
||||
Intended to annotate the complete sequence of a chromosome. This
|
||||
feature may be constructed by a join of two or more contigs.
|
||||
|
||||
Use of these keywords is illustrated in the features table
|
||||
shown below, which could be used to construct a model of part
|
||||
of the E.coli chromosome, spanning map units 763.4 to 1031.4 kb:
|
||||
|
||||
contig join(J01619:1..13063,poly("n",7140),
|
||||
J03939:1..1363,poly("n",14380),
|
||||
X02306:complement(1..1622),poly("n",14710),
|
||||
J04423:1..5793,poly("n",22500),
|
||||
X03722:1..2400,poly("n",123750),
|
||||
one-of(X05017:complement(1..1854),X05017:1..1854))
|
||||
/label=Eco_contig8
|
||||
/map=763.4-950.6kb
|
||||
contig join(V00352:1..2412,poly("n",28800),M15273:1..3409)
|
||||
/label=Eco_contig9
|
||||
/map=972.9-1001.7kb
|
||||
contig join(X02826:1..1357,poly("n",13540),
|
||||
J01654:complement(1..2270))
|
||||
/label=Eco_contig10
|
||||
/map=1016.5-1031.4kb
|
||||
chromosome join(Eco_contig8,poly("n",22300),
|
||||
Eco_contig9,poly("n",14800),
|
||||
Eco_contig10)
|
||||
/label=Ecoli_chromosome
|
||||
|
||||
NOTES
|
||||
1) If the const DEBUG is set to true in the Pascal source code, getob
|
||||
writes messages to the standard output, indicating the progress of
|
||||
processing for each entry read in. By default, DEBUG=false.
|
||||
This feature is solely for debugging purposes and will be removed in
|
||||
later releases.
|
||||
|
||||
2) GETOB automatically expands leading blanks that have been
|
||||
compressed using splitdb -c. See splitdb.doc for more information.
|
||||
|
||||
SEE ALSO
|
||||
features, splitdb, getloc
|
||||
The DDBJ/EMBL/GenBank Feature Table: Definition, Version 1.04
|
||||
September 1, 1992
|
||||
GenBank Release Notes for Release 79.0.
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
83
CORE/xylem/identify.doc
Normal file
83
CORE/xylem/identify.doc
Normal file
|
@ -0,0 +1,83 @@
|
|||
|
||||
IDENTIFY update 3 Feb 94
|
||||
|
||||
|
||||
NAME
|
||||
identify - creates a file of locus names corresponding to lines
|
||||
found by grep in a GenBank annotation file.
|
||||
|
||||
SYNOPSIS
|
||||
identify grepfile indfile namefile findfile
|
||||
|
||||
DESCRIPTION
|
||||
grepfile is created using the Unix grep command to search a .ano
|
||||
file created by splitgb. For example, to find all lines containing
|
||||
the word 'chlorophyll' in plant.ano, use
|
||||
|
||||
grep -n -i 'chlorophyll' plant.ano > plant.grep
|
||||
|
||||
In the example shown, the -n option causes each line written to
|
||||
plant.grep to be preceeded by the number of that line in plant.ano.
|
||||
(The -i option causes grep to ignore case.) Identify can use the
|
||||
indfile do determine which entry a given numbered line was found
|
||||
in, and writes the corresponding LOCUS name to namefile. In
|
||||
addition, all lines found in a given entry are re-written to
|
||||
findfile without the line numbers, and preceeded by the LOCUS name
|
||||
for that entry.
|
||||
|
||||
EXAMPLES
|
||||
Suppose you wanted to obtain a list of names for all plant
|
||||
sequences which code for proteins. The task is complicated by the
|
||||
fact that many fungal sequences are included in the GenBank plant
|
||||
file. You could begin by searching plant.ano (containing all
|
||||
GenBank plant entries) for the word 'Planta':
|
||||
|
||||
grep -n 'Planta' plant.ano > Planta.grep
|
||||
|
||||
However, we want to eliminate all fungal sequences, as well as all
|
||||
sequences for RNAs other than mRNAs. If we create the file
|
||||
bad.str containing the keywords
|
||||
|
||||
Mycophyta
|
||||
tRNA
|
||||
rRNA
|
||||
uRNA
|
||||
|
||||
we can then type
|
||||
|
||||
grep -n -f bad.str plant.ano > bad.grep
|
||||
|
||||
bad.grep now contains all lines containing the offending keywords.
|
||||
We next use identify to find the names of the entries found by
|
||||
grep.
|
||||
|
||||
identify Planta.grep plant.ind Planta.nam Planta.fnd
|
||||
identify bad.grep plant.ind bad.nam bad.fnd
|
||||
|
||||
Next, we can use the Unix comm command to compare the two .nam
|
||||
files and produce an output file containing only names which are
|
||||
present in Planta.nam but not bad.nam:
|
||||
|
||||
comm -23 Planta.nam bad.nam > plants.nam
|
||||
|
||||
The file plants.nam now contains names of either plant cDNA or
|
||||
genomic sequences which do not code for structural RNAs.
|
||||
At this point, getloc could to create a sub-database containing
|
||||
only those entries listed in planta.nam. See documentation for
|
||||
getloc for a more detailed discussion.
|
||||
|
||||
SEE ALSO
|
||||
grep, fgrep, egrep, ngrep, comm, splitgb, getloc
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
23
CORE/xylem/keyfile.template
Normal file
23
CORE/xylem/keyfile.template
Normal file
|
@ -0,0 +1,23 @@
|
|||
;---------------------------------------------------------------------------
|
||||
; FINDKEY/GDE Keyword File Instructions
|
||||
;
|
||||
; 1. Type in one or more keywords below,
|
||||
; or
|
||||
; Place cursor at end of this file and choose 'Include File' in the FILE
|
||||
; menu to read in a file of keywords.
|
||||
;
|
||||
; 2. Choose 'Save Current File' in the File menu
|
||||
; 3. Quit this window
|
||||
;
|
||||
; FINDKEY will then perform the keyword search. YOU DON'T NEED TO EDIT
|
||||
; OUT THESE COMMENT LINES.
|
||||
;
|
||||
; NOTE: Put each keyword on a separate line
|
||||
; SAMPLE KEYWORD FILE:
|
||||
;
|
||||
; maize
|
||||
; corn
|
||||
; Z.mays
|
||||
; Zea
|
||||
;---------------------------------------------------------------------------
|
||||
|
25
CORE/xylem/namefile.template
Normal file
25
CORE/xylem/namefile.template
Normal file
|
@ -0,0 +1,25 @@
|
|||
;---------------------------------------------------------------------------
|
||||
; FETCH/GDE Name/Accession File Instructions
|
||||
;
|
||||
; 1. Type in one or more LOCUS names or Accession #'s below,
|
||||
; or
|
||||
; Place cursor at end of this file and choose 'Include File' in the FILE
|
||||
; menu to read in a file of names or accession #'s.
|
||||
; or
|
||||
; Copy names or accession #'s from another window and Paste into this window.
|
||||
;
|
||||
; 2. Choose 'Save Current File' in the File menu
|
||||
; 3. Quit this window
|
||||
;
|
||||
; FETCH will then retrieve the data. YOU DON'T NEED TO EDIT
|
||||
; OUT THESE COMMENT LINES.
|
||||
;
|
||||
; NOTE: Put each name on a separate line
|
||||
; SAMPLE NAME/ACCESSION FILE:
|
||||
;
|
||||
; X30412
|
||||
; PSDRR1
|
||||
; PEADRRG
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
|
25
CORE/xylem/names.template
Normal file
25
CORE/xylem/names.template
Normal file
|
@ -0,0 +1,25 @@
|
|||
;---------------------------------------------------------------------------
|
||||
; FEATURES/GDE Name File Instructions
|
||||
;
|
||||
; 1. Type in one or more GenBank LOCUS names below,
|
||||
; or
|
||||
; Place cursor at end of this file and choose 'Include File' in the FILE
|
||||
; menu to read in a file of names.
|
||||
;
|
||||
; (NOTE: File can not contain accession numbers.)
|
||||
;
|
||||
; 2. Choose 'Save Current File' in the File menu
|
||||
; 3. Quit this window
|
||||
;
|
||||
; FEATURES will then extract the appropriate sequences . YOU DON'T NEED TO EDIT
|
||||
; OUT THESE COMMENT LINES.
|
||||
;
|
||||
; NOTE: Put each name on a separate line
|
||||
; SAMPLE NAME FILE:
|
||||
;
|
||||
; PEADRRA
|
||||
; PSDRR1
|
||||
; PEADRRG
|
||||
;
|
||||
;---------------------------------------------------------------------------
|
||||
|
56
CORE/xylem/printdoc.doc
Normal file
56
CORE/xylem/printdoc.doc
Normal file
|
@ -0,0 +1,56 @@
|
|||
printdoc update 3 Feb 94
|
||||
|
||||
NAME
|
||||
printdoc - prints documentation files
|
||||
|
||||
SYNOPSIS
|
||||
printdoc filename
|
||||
|
||||
DESCRIPTION
|
||||
printdoc uses the file extension to decide how to print a
|
||||
documentation file. If necessary, a filter such as pr or nroff
|
||||
is used to format the file before sending to the appropriate
|
||||
printer. A list of file extensions recognized by printdoc is
|
||||
given below. If no file extension is given, or the extension is
|
||||
not in the list, printdoc assumes .doc.
|
||||
|
||||
.doc - (default) Uses pr to print the text, using the default
|
||||
settings provided by pr (56 text lines per page plus a 5 line
|
||||
header and footer). Printing is at 12 cpi, front only. This works
|
||||
reasonbly well for most unformatted documentation files,
|
||||
provided that the line length doesn't exceed 80 char. This
|
||||
option assumes that a half-inch left margin is automatically
|
||||
provided by the printer.
|
||||
|
||||
.tex - Assumes that document is already pre-formatted. Thus,
|
||||
no headers or footers are provided, and it is assumed that
|
||||
the top and bottom of pages are padded with blanks or header/
|
||||
footer lines as needed. Form-feed characters (^L) may be
|
||||
included in the text to force page breaks.
|
||||
|
||||
.ps - Assumes file is in PostScript format. Sends it to the
|
||||
PostScript printer.
|
||||
|
||||
.nroff - Assumes file is formatted for use by nroff, using the
|
||||
standard macro set (nroff -ms).
|
||||
|
||||
.nroff.me - Assumes file is formatted for use by nroff, using the
|
||||
e macro set (nroff -me).
|
||||
|
||||
TRANSPORTATION NOTES
|
||||
For reasons which should be obvious, this script needs major
|
||||
rewriting at each site, since the available printers will
|
||||
be of different types and have different names.
|
||||
|
||||
SEE ALSO
|
||||
pr, pr(V), xlp, nroff
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
123
CORE/xylem/prot2nuc.doc
Normal file
123
CORE/xylem/prot2nuc.doc
Normal file
|
@ -0,0 +1,123 @@
|
|||
prot2nuc update 10 Aug 94
|
||||
|
||||
NAME
|
||||
prot2nuc - reverse translates protein into nucleic acid
|
||||
|
||||
SYNOPSIS
|
||||
prot2nuc [-ln -gn] < input > output
|
||||
|
||||
DESCRIPTION
|
||||
prot2nuc reads a file containing an amino acid sequence
|
||||
and writes the corresponding reverse translated nucleic acid
|
||||
sequence, using the standard IUPAC-IUB ambiguity codes to output.
|
||||
The amino acid sequence may contain internal stop '*' characters.
|
||||
That is, all legal amino acid characters will be processed.
|
||||
|
||||
-ln print n amino acids/codons per line. (default = 25)
|
||||
|
||||
-gn number the amino acid sequence every n amino acids/codons.
|
||||
(defalut = 5)
|
||||
|
||||
If l is not evenly divisible by g, the defaults are used.
|
||||
|
||||
input - If the first line of the file begins with '>' or ';',
|
||||
input will be read as the standard .wrp (Pearson) format,
|
||||
such as that produced by getob:
|
||||
|
||||
>name
|
||||
sequence lines
|
||||
|
||||
|
||||
Otherwise, it will be assumed that the file ONLY contains
|
||||
sequence, and all legal IUPAC/IUB DNA characters will be
|
||||
read as sequence.
|
||||
|
||||
output - The output begins with a header, listing the both
|
||||
1 and 3 letter amino acid codes [J. Biol. Chem. 243, 3557-3559
|
||||
(1968)], as well as the nucleic acid ambiguity codes [Cornish-
|
||||
Bowden (1985) Nucl. Acids Res. 13:3021-3030.]. The amino acid
|
||||
sequence, along with its reverse translation, are then printed on
|
||||
lines of l amino acids/codons, numbering every g amino acids/codons.
|
||||
Non-ambiguous nucleotides appear capitalized, while ambiguous
|
||||
nucleotides are in lowercase. A sample output file appears below:
|
||||
|
||||
PROT2NUC Version 8/10/94
|
||||
|
||||
IUPAC-IUP AMINO ACID SYMBOLS
|
||||
[J. Biol. Chem. 243, 3557-3559 (1968)]
|
||||
|
||||
Phe F Leu L Ile I
|
||||
Met M Val V Ser S
|
||||
Pro P Thr T Ala A
|
||||
Tyr Y His H Gln Q
|
||||
Asn N Lys K Asp D
|
||||
Glu E Cys C Trp W
|
||||
Arg R Gly G STOP *
|
||||
Asx B Glx Z UNKNOWN X
|
||||
|
||||
|
||||
IUPAC-IUB SYMBOLS FOR NUCLEOTIDE NOMENCLATURE
|
||||
[Cornish-Bowden (1985) Nucl. Acids Res. 13: 3021-3030.]
|
||||
|
||||
Symbol Meaning | Symbol Meaning
|
||||
------------------------------------+---------------------------------
|
||||
G Guanine | k G or T
|
||||
A Adenine | s G or C
|
||||
C Cytosine | w A or T
|
||||
T Thymine | h A or C or T
|
||||
U Uracil | b G or T or C
|
||||
r Purine (A or G) | v G or C or A
|
||||
y Pyrimidine (C or T) | d G or T or A
|
||||
m A or C | n G or A or T or C
|
||||
|
||||
pI39
|
||||
5 10 15 20
|
||||
M E K K S L A A L S F L L L L V L F V A
|
||||
ATGGArAArAArTCnCTnGCnGCnCTnTCnTTyCTnCTnCTnCTnGTnCTnTTyGTnGCn
|
||||
AGyTTr TTrAGy TTrTTrTTrTTr TTr
|
||||
|
||||
25 30 35 40
|
||||
Q E I V V T E A N T C E H L A D T Y R G
|
||||
CArGArAThGTnGTnACnGArGCnAAyACnTGyGArCAyCTnGCnGAyACnTAyCGnGGn
|
||||
TTr AGr
|
||||
|
||||
45 50 55 60
|
||||
V C F T N A S C D D H C K N K A H L I S
|
||||
GTnTGyTTyACnAAyGCnTCnTGyGAyGAyCAyTGyAArAAyAArGCnCAyCTnAThTCn
|
||||
AGy TTr AGy
|
||||
|
||||
65 70
|
||||
G T C H D W K C F C T Q N C
|
||||
GGnACnTGyCAyGAyTGGAArTGyTTyTGyACnCArAAyTGy
|
||||
|
||||
|
||||
With the Universal Genetic code, ambiguity symbols make it possible
|
||||
to represent all possible codons for an amino acid using two output
|
||||
lines. It is important to realize that the ambiguities on each line
|
||||
can not be combined. For example, CTn and TTr represent all codons for
|
||||
Leucine. However, attempting to combine them into a single triplet,
|
||||
yTn, would be incorrect. For example, TTT and TTC are codons for
|
||||
Phenylalanine, not Leucine.
|
||||
|
||||
FUTURE PLANS
|
||||
1. It wouldn't be hard to have the output printed as nucleic acid
|
||||
sequences in Perason format, so that the output could be read back
|
||||
into GDE. I don't know why you would want to do this, but it could
|
||||
be done.
|
||||
2. Right now, only the Universal Genetic Code is used, but it should
|
||||
be possible to read in alternative genetic codes, have prot2nuc
|
||||
figure out the ambiguity rules (as is already done in ribosome) and
|
||||
print out the appropriate ambiguous codons.
|
||||
3. It might be useful to have each possible codon printed out, rather
|
||||
than ambiguous codons. This would take up a lot more space and
|
||||
wouldn't be as pretty. If there's a lot of demand I could do this.
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
107
CORE/xylem/reform.doc
Normal file
107
CORE/xylem/reform.doc
Normal file
|
@ -0,0 +1,107 @@
|
|||
reform update 3 Feb 94
|
||||
|
||||
NAME
|
||||
reform - reformats multiply-aligned sequences for printing.
|
||||
|
||||
SYNOPSIS
|
||||
reform [-gpcnm] [-fx] [-sn] [-ln] [file {ralign only}]
|
||||
or
|
||||
ralign file parameters | reform [-gpcn] [-sn] [-ln] file
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
g Gaps are to be represented by dashes (-).
|
||||
p Bases which agree with the consensus are
|
||||
represented by periods (.).
|
||||
c Positions at which all sequences agree are
|
||||
capitalized in the consensus.
|
||||
n Sequence data is nucleic acid. Protein default
|
||||
fx Specify input file format, where x is
|
||||
r:RALIGN (default) p:PEARSON i:MBCRR-MASE (Intelligenetics)
|
||||
m Input file contains multiline format sequences already aligned,
|
||||
as opposed to ralign output. This option is obsolete, and is
|
||||
equivalent to -fp.
|
||||
ln The output linelength is set to n.
|
||||
Default is 70.
|
||||
sn numbering starts with n (default=0)
|
||||
|
||||
file Sequence file as described in ralign docu-
|
||||
mentation. reform needs to re-read the
|
||||
sequence file read by ralign to get the
|
||||
names of the sequences, which ralign ignores.
|
||||
This filename is only included for ralign output.
|
||||
If -m is set, file is ignored, and sequence names
|
||||
must be read from the input.
|
||||
|
||||
Note that positions in the consensus at which no nucleotide is in the
|
||||
majority are represented by n's (for nucleic acids) or x's (for proteins),
|
||||
rather than periods, as in ralign.
|
||||
|
||||
Gaps in the input sequences may be represented by either blanks or dashes.
|
||||
|
||||
INPUT FILE FORMATS
|
||||
|
||||
(a) ralign (default, -fr)
|
||||
As described in ralign documentation, the input file (which is assumed to
|
||||
be ralign output) must have each sequence on a single long line. All
|
||||
characters on a given line will be included in the alignment. All lines
|
||||
must be exactly the same length. For example, if ralign had been read
|
||||
sequence from a file called 'allcab.seq' and written output to 'allcab.ral',
|
||||
the following command might be used:
|
||||
|
||||
reform allcab.seq <allcab.ralign >allcab.ref
|
||||
|
||||
(b) Pearson (-fp, -m)
|
||||
Compatible with sequence files used by Pearson's fasta programs as shown:
|
||||
>name1
|
||||
sequence1
|
||||
>name2
|
||||
sequence2
|
||||
...
|
||||
>namen
|
||||
sequencen
|
||||
|
||||
Sequences may run over many lines and line length does not have to be
|
||||
uniform. However, both dashes ('-') and blanks (' ') will be read in
|
||||
as gaps in the alignment. A right arrow (>) at the beginning of a line
|
||||
indicates the name line at the beginning of a new sequence.
|
||||
|
||||
Any line beginning with a semicolon (';') will be considered a comment,
|
||||
and will be ignored.
|
||||
|
||||
(c) MBCRR-MASE (Intelligenetics) (-fi)
|
||||
Compatible with .mase files produced by MBCRR's mase and pima programs,
|
||||
which use the Intelligenetics format as shown:
|
||||
|
||||
;one or more comment lines
|
||||
name1
|
||||
sequence1
|
||||
;one or more comment lines
|
||||
name2
|
||||
sequence2
|
||||
...
|
||||
;one or more comment lines
|
||||
namen
|
||||
sequencen
|
||||
|
||||
Sequences may run over many lines and line length does not have to be
|
||||
uniform. However, both dashes ('-') and blanks (' ') will be read in
|
||||
as gaps in the alignment. Each sequence MUST begin with at least one
|
||||
comment line. When a comment line is encountered, that signals the
|
||||
beginning of a new sequence. The first line after the comment is read
|
||||
as the name, and the sequence begins on the next line after that.
|
||||
|
||||
SEE ALSO ralign, mase
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
84
CORE/xylem/ribosome.doc
Normal file
84
CORE/xylem/ribosome.doc
Normal file
|
@ -0,0 +1,84 @@
|
|||
ribosome update 3 Feb 94
|
||||
|
||||
NAME
|
||||
ribosome - translates nucleic acid into protein
|
||||
|
||||
SYNOPSIS
|
||||
ribosome [-g gcfile] < input > output
|
||||
|
||||
DESCRIPTION
|
||||
ribosome reads a file of one or more nucleic acid sequences
|
||||
and writes the corresponding amino acid sequence, in the standard
|
||||
one letter code, to output. Ribosome begins translating at the
|
||||
first nucleotide in each input sequence and continues to the end.
|
||||
If the length of the translated sequence is not divisible by 3,
|
||||
ribosome pads the final codon with N's and attempts to use ambi-
|
||||
guity rules to translate the final codon. Based on the genetic
|
||||
code used, ribosome derives a set of rules to resolve all ambi-
|
||||
guities that can possibly be resolved.
|
||||
|
||||
-g read in an alternative genetic code from gcfile. If this
|
||||
option is not specified, ribosome uses the universal
|
||||
genetic code.
|
||||
|
||||
gcfile - This file specifies an alternative genetic code. An
|
||||
example is shown below. ribosome reads the first 64 legal
|
||||
capital letters as amino acids. Consequently, lowercase letters
|
||||
can be used for annotation purposes, as shown in the example.
|
||||
All non-amino acid characters are ignored.
|
||||
|
||||
sgc2 - yeast mitochondrial genetic code
|
||||
|
||||
second position
|
||||
first position ------------------------------- third position
|
||||
(5' end) u c a g (3' end)
|
||||
-----------------------------------------------------------------
|
||||
u F S Y C u
|
||||
F S Y C c
|
||||
L S * W a
|
||||
L S * W g
|
||||
-----------------------------------------------------------------
|
||||
c T P H R u
|
||||
T P H R c
|
||||
T P Q R a
|
||||
T P Q R g
|
||||
-----------------------------------------------------------------
|
||||
a I T N S u
|
||||
I T N S c
|
||||
M T K R a
|
||||
M T K R g
|
||||
-----------------------------------------------------------------
|
||||
g V A D G u
|
||||
V A D G c
|
||||
V A E G a
|
||||
V A E G g
|
||||
|
||||
|
||||
input - If the first line of the file begins with '>' or ';',
|
||||
input will be read as the standard .wrp (Pearson) format,
|
||||
such as that produced by getob:
|
||||
|
||||
>name
|
||||
; one or more comment lines (optional)
|
||||
sequence lines
|
||||
|
||||
|
||||
Otherwise, it will be assumed that the file ONLY contains
|
||||
sequence, and all legal IUPAC/IUB DNA characters will be
|
||||
read as sequence.
|
||||
|
||||
SEE ALSO
|
||||
getob
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
66
CORE/xylem/shuffle.doc
Normal file
66
CORE/xylem/shuffle.doc
Normal file
|
@ -0,0 +1,66 @@
|
|||
shuffle.doc update 3 Feb 94
|
||||
|
||||
SYNOPSIS
|
||||
shuffle -sn [-wn -on]
|
||||
|
||||
DESCRIPTION
|
||||
Shuffles sequences locally. See Lipman DJ, Wilbur WJ, Smith TF
|
||||
and Waterman MS (1984) On the statistical significance of nucleic
|
||||
acid similarities. Nucl. Acids Res. 12:215-226.
|
||||
-sn n is a random integer between 0 and 32767. This number
|
||||
must be provided for each run.
|
||||
|
||||
-wn n is an integer, indicating the width of the window for
|
||||
random localization. If w exceeds the length of a sequence,
|
||||
or is negative, the entire sequence is scrambled as a single
|
||||
window. This is also the case if w is not specified.
|
||||
|
||||
-on n is an integer, indicating the number of nucleotides
|
||||
overlap between adjacent windows. It should never exceed
|
||||
the window size. o defaults to 0 if not specified.
|
||||
|
||||
If w and o are specified, overlapping windows of w nucleotides
|
||||
are shuffled, thus preserving the local characteristic base
|
||||
composition. Windows overlap by o nucleotides.
|
||||
If w and o are not specified, each sequence is shuffled globally,
|
||||
thus preserving the overall base composition, but not the local
|
||||
variations in comp.
|
||||
|
||||
Any number of sequences may be processed from a single input
|
||||
file. In Pearson-format files, each new sequence begins with a
|
||||
'>' comment line, indicating the name and a short description of
|
||||
the sequence.
|
||||
|
||||
No distinction is made between protein or nucleic acid sequences.
|
||||
That is, shuffle will read any of the following characters as
|
||||
sequence:
|
||||
|
||||
T,U,C,A,G,N,R,Y,M,W,S,K,D,H,V,B,L,Z,F,P,E,I,Q,X,*,-
|
||||
|
||||
where '*' is the result of translating a stop codon, and '-'
|
||||
is a gap generated during sequence alignment. Lowercase is
|
||||
also accepted.
|
||||
|
||||
EXAMPLE
|
||||
A sample output file is shown below. Note that the first two
|
||||
lines of output are comment lines, listing the version of the
|
||||
program and the parameters used in the run.
|
||||
|
||||
>SHUFFLE VERSION 11/ 8/93
|
||||
>RANDOM SEED: 9873 WINDOW: 12 OVERLAP: 3
|
||||
>BAZFAZ - Borborigmus azerbi F-actin-zeta gene
|
||||
ctgagtagctagtcctaaatagttagtccatagtactagtacgggtcgtt
|
||||
cacccttgggcagtg.....(etc.)
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
141
CORE/xylem/splitdb.doc
Normal file
141
CORE/xylem/splitdb.doc
Normal file
|
@ -0,0 +1,141 @@
|
|||
|
||||
SPLITDB update 28 Mar 98
|
||||
|
||||
|
||||
NAME
|
||||
splitdb - split GenBank files into annotation, sequence, and index
|
||||
|
||||
SYNOPSIS
|
||||
splitdb [-gepvlct] dbfile anofile seqfile indfile
|
||||
|
||||
DESCRIPTION
|
||||
Splitdb splits a database (dbfile) among three files: anofile, seqfile
|
||||
and indfile. Splitdb ignores any header information that might be in the
|
||||
file and begins processing at the first entry.
|
||||
|
||||
anofile contains the annotation portion of each entry. Entries are
|
||||
terminated with '//' or '///' (PIR only). Trailing blanks present in
|
||||
dbfile are omitted in anofile.
|
||||
|
||||
seqfile contains the sequence data for each entry. Each sequence
|
||||
entry begins with a header line, followed by sequence data on
|
||||
succeeding lines of 75 characters per line. The header line
|
||||
includes the header flag character '>' in column 1, followed by the
|
||||
name, followed by the first 50 characters of the 1st
|
||||
DEFINITION line. An example is shown below:
|
||||
|
||||
>UNHOR1 - Unicorn horn protein 1, complete cDNA sequence
|
||||
attcctctatagtctattctagctagccaaataggttagatggctgtcttactacttacgc
|
||||
...
|
||||
|
||||
Removal of blanks and numbers from sequence lines makes makes split
|
||||
datasets about 8-9% smaller than the original GenBank files.
|
||||
|
||||
indfile is an index which tells the line numbers for each entry in
|
||||
anofile and seqfile. It is assumed to be in alphabetical order by
|
||||
name. Each line contains a name and accession number, followed by the
|
||||
line numbers on which the annotation and sequence data begin in anofile
|
||||
and seqfile, respectively. Thus the file plants.ind might contain:
|
||||
|
||||
|
||||
A15660 TA156608 1 1
|
||||
A15671 A15671 33 11
|
||||
A15673 A15673 65 25
|
||||
A15675 AK156751 97 36
|
||||
A15677 BA156770 128 46
|
||||
A16780 BA167807 160 57
|
||||
A16782 A16782 192 70
|
||||
ATHRPRP1C GM905105 225 83
|
||||
etc...
|
||||
|
||||
Note that indfile is a perfectly legitimate .nam file, for use with
|
||||
programs such as getloc, getob, or comm.
|
||||
|
||||
|
||||
The following options identify the type of database being read:
|
||||
|
||||
-g GenBank (default)
|
||||
-e EMBL
|
||||
-p PIR (NBRF)
|
||||
-v Vecbase
|
||||
-l LiMB
|
||||
|
||||
Other options:
|
||||
-c Compress 3 or more leading blanks in annotation lines
|
||||
to take the form <CRUNCHFLAG><CRUNCHCHAR>, where CRUNCHFLAG
|
||||
is the ASCII character specified by the Pascal const
|
||||
CRUNCHOFFSET, which is set to 33 ("!") in the current
|
||||
implementation. For each annotation line read, if the
|
||||
number of leading blanks is >=3, splitdb sets CRUNCHCHAR
|
||||
to CRUNCHOFFSET+the number of blanks. Thus, for lines
|
||||
with 3, 4, or 5 leading blanks, CRUNCHCHAR would be
|
||||
'$', '%' and '&', respectively. GETLOC and GETOB
|
||||
automatically expand crunched blanks when CRUNCHFLAG
|
||||
is encountered on an input line. Empiracle observations
|
||||
indicate that the -c option decreases the size of
|
||||
GenBank files by about 10%.
|
||||
|
||||
This compression method may fail when the number of
|
||||
leading blanks exceeds 127-CRUNCHOFFSET. However,
|
||||
none of the above mentioned databases currently
|
||||
supports any datafield with anywhere near that number
|
||||
of leading blanks.
|
||||
|
||||
-t (GenBank only) Append all information in the first
|
||||
ORGANISM to the end of each line in indfile. For example,
|
||||
the entry which begins:
|
||||
|
||||
LOCUS GORMTDLOOZ 282 bp DNA UNA 11-MAR-1996
|
||||
DEFINITION GGGOMT493; Gorilla gorilla gorilla (BomBom, ISIS 438, Audubon
|
||||
Zoological Gardens) mitochondrial D-loop DNA.
|
||||
ACCESSION L76759
|
||||
NID g1222584
|
||||
KEYWORDS D-loop.
|
||||
SOURCE Mitochondrion Gorilla gorilla gorilla (individual_isolate BomBom,
|
||||
ISIS 438, Audubon Zoological Gardens, sub_species gorilla) male
|
||||
DNA.
|
||||
ORGANISM Mitochondrion Gorilla gorilla gorilla
|
||||
Eukaryotae; mitochondrial eukaryotes; Metazoa; Chordata;
|
||||
Vertebrata; Eutheria; Primates; Catarrhini; Hominidae; Gorilla.
|
||||
|
||||
might be indexed as
|
||||
|
||||
GORMTDLOOZ L76759 1 1 Mitochondrion Gorilla gorilla gorilla
|
||||
|
||||
This is useful for taxonomic studies, or as a way of making
|
||||
it easy to create subsets from a single index. Thus,
|
||||
'grep gorilla primates.ind' would print all lines in the
|
||||
file that contained the word gorilla. The output from
|
||||
this command could be used as a .nam file for extracting
|
||||
just gorilla sequences from a larger dataset using
|
||||
fetch.
|
||||
|
||||
|
||||
NOTES
|
||||
1. Header lines that aren't part of entries are automatically
|
||||
stripped out during processing. For example, in a file containing
|
||||
GenBank entries, all lines up to the first occurrence of 'LOCUS'
|
||||
starting in column 1, are ignored. Similarly for PIR, processing
|
||||
begins on the first line containing 'ENTRY' beginning in column 1.
|
||||
2. GenBank/EMBL/DDBJ entries created on or after Feb. 1, 1996,
|
||||
have accession numbers of 8 characters, rather than 6. Previously
|
||||
assigned accession numbers will remain at 6 characters. Splitdb has
|
||||
been updated to write all accession numbers to the .ind file, left
|
||||
justified in a field of 8 characters, in columns 14-21 of the .ind
|
||||
file.
|
||||
|
||||
SEE ALSO
|
||||
getloc, getob, comm(1) (Unix command).
|
||||
|
||||
AUTHOR
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB Canada R3T 2N2
|
||||
Phone: 204-474-6085
|
||||
FAX: 204-261-5732
|
||||
frist@cc.umanitoba.ca
|
||||
|
||||
REFERENCE
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
125
CORE/xylem/xylem.doc
Normal file
125
CORE/xylem/xylem.doc
Normal file
|
@ -0,0 +1,125 @@
|
|||
|
||||
|
||||
XYLEM.DOC update 10 Aug 1994
|
||||
|
||||
XYLEM: TOOLS FOR MANIPULATION OF GENETIC DATABASES
|
||||
Brian Fristensky, University of Manitoba
|
||||
|
||||
Fristensky, B. (1993) Feature expressions: creating and manipulating
|
||||
sequence datasets. Nucleic Acids Research 21:5997-6003.
|
||||
|
||||
SPLITDB - Splits files containing one or more GenBank entries into
|
||||
annotation, sequence, and index files. Indexfiles can also serve as
|
||||
namefiles for GETLOC. Sequence files are in the format required for
|
||||
use with the Pearson programs (FASTA,LFASTA etc.).
|
||||
|
||||
GETLOC - Reads a file containing LOCUS names (namefile) and
|
||||
retrieves either annotation, sequence, or both from a split
|
||||
database or database subset created by SPLITDB.
|
||||
|
||||
FETCH - A c-shell script that provides a convenient menu-driven
|
||||
front end for retrieval of database entries using GETLOC.
|
||||
|
||||
FINDKEY - A c-shell script that provides a convenient menu-driven
|
||||
front end for keyword searches of database annotation files,
|
||||
using IDENTIFY.
|
||||
|
||||
IDENTIFY- Given line-numbered output from grep, IDENTIFY uses the
|
||||
index file to determine which entries contained the keywords
|
||||
searched for by grep. It then produces a namefile for use by
|
||||
GETLOC. Namefiles can serve as logical databases, and utilities
|
||||
such as the Unix comm command can perform logical operations on
|
||||
these namefiles to produce database subsets.
|
||||
|
||||
FEATURES/GETOB - Given a namefile, pulls objects (mRNA, tRNA, CDS
|
||||
etc.) from each of the named entries, using the new
|
||||
DDBJ/EMBL/GenBank International Features Table Format. A future
|
||||
version will also allow the annotation of sites within objects that
|
||||
are extracted.
|
||||
|
||||
DBSTAT - Calculates amino acid frequencies in a protein database.
|
||||
|
||||
RIBOSOME - Given a file of one or more nucleic acids (eg. output
|
||||
from GETOB) , RIBOSOME translates them into protein, using either
|
||||
the universal genetic code or an alternative genetic code supplied
|
||||
by the user. All ambiguities that can be resolved are translated.
|
||||
|
||||
PROT2NUC - reverse translates a sequence from protein to nucleic
|
||||
acid, using IUPAC-IUB ambiguity codes.
|
||||
|
||||
SHUFFLE - Given a random seed, shuffles each sequence in a Pearson-
|
||||
format (.wrp) file. Shuffling is done locally in overlapping windows
|
||||
across the length of a given sequence. The window size and overlap
|
||||
length can be specified by the user.
|
||||
|
||||
REFORM - Reformats multiply aligned nucleic acid or protein
|
||||
sequences for publication. Output for M. Waterman's RALIGN
|
||||
program, or the MBCRR MASE editor, can be directly used as input.
|
||||
A variety of options are available for representing gaps, consensus
|
||||
sequences and other features.
|
||||
|
||||
Fristensky (Cornell) Sequence Analysis Package - General purpose
|
||||
sequence analysis package written in Standard Pascal. Features
|
||||
include: sequence numbering, formatting, & translation, restriction
|
||||
site searches & mapping, matrix similarity searches, TESTCODE
|
||||
analysis, base composition analysis. All programs are interactive
|
||||
and read free-format, BIONET, and GenBank files.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
XYLEM DATABASE TOOLS
|
||||
|
||||
|
||||
|
||||
----------
|
||||
| .gen | getloc
|
||||
|----------|<--------------------------
|
||||
| GenBank | |
|
||||
---------- |
|
||||
| |
|
||||
| splitgb |
|
||||
/|\ |
|
||||
/ | \ |
|
||||
/ | \ |
|
||||
/ | \ |
|
||||
/ | \ |
|
||||
/ | \ |
|
||||
v v v |
|
||||
---------- ---------- ---------- |
|
||||
| .ano | | .wrp | | .ind | |
|
||||
|----------| |----------| |----------| |
|
||||
|annotation| | sequence | | index | |
|
||||
---------- ---------- ---------- |
|
||||
| \ | / |
|
||||
| \ | / |
|
||||
| \ | / |
|
||||
| \ | / |
|
||||
grep -n | \ | / |
|
||||
| \ | / |
|
||||
| | |
|
||||
| | -------------------------------+
|
||||
| ^ |
|
||||
v | getob |
|
||||
---------- ---------- v
|
||||
| .grep | identify | .nam | ----------
|
||||
|----------| --------->|----------| | .wrp |
|
||||
| numbered | | LOCUS | ----------
|
||||
|file lines| ---------- | eg. mRNA |
|
||||
---------- | ^ | tRNA |
|
||||
| | | rRNA |
|
||||
| | | CDS |
|
||||
--comm-- ----------
|
||||
(logical operations on
|
||||
sets of names)
|
||||
|
||||
Dr. Brian Fristensky
|
||||
Dept. of Plant Science
|
||||
University of Manitoba
|
||||
Winnipeg, MB R3T 2N2 CANADA
|
||||
204-474-6085
|
||||
frist@cc.umanitoba.ca
|
||||
|
6258
GDE2.0_manual.ps
Executable file
6258
GDE2.0_manual.ps
Executable file
File diff suppressed because one or more lines are too long
331
HGL_SRC/Alloc.c
Executable file
331
HGL_SRC/Alloc.c
Executable file
|
@ -0,0 +1,331 @@
|
|||
#include <stdio.h>
|
||||
#include "global_defs.h"
|
||||
#include <malloc.h>
|
||||
|
||||
/*
|
||||
* Alloc.c
|
||||
* Memory functions for Harvard Genome Laboratory.
|
||||
* Last revised 6/3/91
|
||||
*
|
||||
* Print error message, and die
|
||||
*/
|
||||
void ErrorOut(code,string)
|
||||
int code;
|
||||
char *string;
|
||||
{
|
||||
if (code == 0)
|
||||
{
|
||||
fprintf(stderr,"Error:%s\n",string);
|
||||
exit(1);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Calloc count*size bytes with memory aligned to size.
|
||||
* Return pointer to new block.
|
||||
*/
|
||||
char *Calloc(count,size)
|
||||
int count,size;
|
||||
/*unsigned count,size;*/
|
||||
{
|
||||
char *temp;
|
||||
temp = calloc(count,(unsigned)size);
|
||||
|
||||
if(count*size == 0)
|
||||
fprintf(stderr,"Allocate ZERO blocks?\n");
|
||||
ErrorOut(temp,"Cannot allocate memory");
|
||||
return(temp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Reallocate memory at block, expand to size.
|
||||
* Return pointer to (possibly) new block.
|
||||
*/
|
||||
char *Realloc(block,size)
|
||||
char *block;
|
||||
unsigned size;
|
||||
{
|
||||
char *temp;
|
||||
temp=realloc(block,size);
|
||||
ErrorOut(temp,"Cannot change memory size");
|
||||
return(temp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free block Allocated by Calloc.
|
||||
* Return error code from free().
|
||||
*/
|
||||
|
||||
void Cfree(block)
|
||||
char* block;
|
||||
{
|
||||
extern void Warning();
|
||||
if(block != NULL)
|
||||
{
|
||||
#ifdef SUN4
|
||||
if(free(block) == 0)
|
||||
Warning("Error in Cfree...");
|
||||
#endif
|
||||
}
|
||||
/* else
|
||||
Warning("Error in Cfree, NULL block");
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Print Warning message to stderr.
|
||||
*/
|
||||
void Warning(s)
|
||||
char *s;
|
||||
{
|
||||
fprintf(stderr,"Warning:%s\n",s);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get array element from a sequence structure. The index
|
||||
* is relative to the alignment.
|
||||
*/
|
||||
char GetElem(seq,indx)
|
||||
Sequence *seq; /*Sequence to search*/
|
||||
int indx; /*Index relative to the global offset*/
|
||||
{
|
||||
if((indx<seq->offset) || (indx >= seq->offset + seq->seqlen))
|
||||
return('-');
|
||||
else
|
||||
return((char)(seq->c_elem[indx-seq->offset]));
|
||||
}
|
||||
|
||||
/*
|
||||
* Replace the array element at seq[indx] with elem. The index
|
||||
* is relative to the alignment.
|
||||
*/
|
||||
|
||||
void ReplaceElem(seq,indx,elem)
|
||||
Sequence *seq; /*Sequence */
|
||||
int indx; /*Position to overwrite (replace) */
|
||||
unsigned char elem; /*Character to replace with */
|
||||
{
|
||||
int j;
|
||||
extern char *Calloc();
|
||||
int width;
|
||||
|
||||
/*
|
||||
* If no c_elem has been allocated yet...
|
||||
*/
|
||||
/* if(index("abcdefghijklmnopqrstuvwxyz-0123456789",elem)==0)
|
||||
fprintf(stderr,"Warning (ReplaceElem) elem = %c\n",elem);
|
||||
*/
|
||||
width = seq->offset-indx;
|
||||
if(seq->seqlen == 0 && elem != '-')
|
||||
{
|
||||
if(seq->seqmaxlen == 0 || seq->c_elem == NULL)
|
||||
{
|
||||
seq->c_elem = Calloc(4,sizeof(char));
|
||||
seq->offset = indx;
|
||||
seq->seqmaxlen = 4;
|
||||
}
|
||||
seq->seqlen = 1;
|
||||
seq->c_elem[0] = elem;
|
||||
seq->offset = indx;
|
||||
}
|
||||
/*
|
||||
* If inserting before the c_elem (< offset)
|
||||
*/
|
||||
else if((indx<seq->offset) && (elem!='-'))
|
||||
{
|
||||
seq->seqmaxlen += width;
|
||||
seq->c_elem = Realloc(seq->c_elem,seq->seqmaxlen*sizeof(char));
|
||||
for(j=seq->seqmaxlen-1;j>=width;j--)
|
||||
seq->c_elem[j] = seq->c_elem[j-width];
|
||||
for(j=0;j<width;j++)
|
||||
seq->c_elem[j] = '-';
|
||||
seq->c_elem[0] = elem;
|
||||
seq->seqlen += width;
|
||||
seq->offset = indx;
|
||||
}
|
||||
/*
|
||||
* if inserting after c_elem (indx > offset + seqlen)
|
||||
*/
|
||||
else if((indx>=seq->offset+seq->seqlen) && (elem!='-'))
|
||||
{
|
||||
if(indx-seq->offset >= seq->seqmaxlen)
|
||||
{
|
||||
seq->seqmaxlen = indx-seq->offset+256;
|
||||
seq->c_elem = Realloc(seq->c_elem,seq->seqmaxlen*
|
||||
sizeof(char));
|
||||
}
|
||||
for(j=seq->seqlen;j<seq->seqmaxlen;j++)
|
||||
seq->c_elem[j] = '-';
|
||||
seq->c_elem[indx-seq->offset] = elem;
|
||||
seq->seqlen = indx-seq->offset+1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(indx-(seq->offset)>=0 && indx-(seq->offset)<seq->seqlen)
|
||||
seq->c_elem[indx-(seq->offset)] = elem;
|
||||
else if(elem!='-')
|
||||
fprintf(stderr,"%c better be a -\n",elem);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* InsertElem is a modification of InsertElems, and should be
|
||||
* optimized. s.s.5/6/91
|
||||
*/
|
||||
int InsertElem(a,b,ch)
|
||||
Sequence *a; /* Sequence */
|
||||
int b; /*Position to insert BEFORE*/
|
||||
char ch; /*element to insert */
|
||||
{
|
||||
char c[2];
|
||||
c[0]=ch;
|
||||
c[1] = '\0';
|
||||
|
||||
return (InsertElems(a,b,c));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Make a copy of Sequence one, place in Sequence two
|
||||
*/
|
||||
void SeqCopy(one,two)
|
||||
Sequence *one,*two;
|
||||
{
|
||||
int j;
|
||||
*two = *one;
|
||||
if(two->seqmaxlen)
|
||||
two->c_elem = Calloc(one->seqmaxlen,sizeof(char));
|
||||
if(two->commentsmaxlen)
|
||||
two->comments = Calloc(one->commentsmaxlen,sizeof(char));
|
||||
for(j=0;j<one->seqlen;j++)
|
||||
two->c_elem[j] = one->c_elem[j];
|
||||
for(j=0;j<one->commentslen;j++)
|
||||
two->comments[j] = one->comments[j];
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Normalize seq (remove leading indels in the c_elem;
|
||||
*/
|
||||
void SeqNormal(seq)
|
||||
Sequence *seq;
|
||||
{
|
||||
int len,j,shift_width,trailer;
|
||||
char *c_elem;
|
||||
len = seq->seqlen;
|
||||
|
||||
c_elem = seq->c_elem;
|
||||
|
||||
if(len == 0) return;
|
||||
|
||||
for(shift_width=0; (shift_width<len) && (c_elem[shift_width] == '-');
|
||||
shift_width++);
|
||||
|
||||
for(j=0;j<len-shift_width;j++)
|
||||
c_elem[j] = c_elem[j+shift_width];
|
||||
|
||||
seq->seqlen -= shift_width;
|
||||
seq->offset += shift_width;
|
||||
for(trailer=seq->seqlen-1;(c_elem[trailer] =='-' ||
|
||||
c_elem[trailer] == '\0') && trailer>=0;
|
||||
trailer--)
|
||||
c_elem[trailer] = '\0';
|
||||
seq->seqlen = trailer+1;
|
||||
return;
|
||||
}
|
||||
|
||||
void SeqRev(seq,min,max)
|
||||
Sequence *seq;
|
||||
int min,max;
|
||||
/*
|
||||
SeqRev will reverse a given sequence within a window from
|
||||
min to max (inclusive). The idea is to allow several sequences
|
||||
to be reversed in such a manner as to allow them to remain aligned.
|
||||
|
||||
BEFORE AFTER
|
||||
min | | max min | |max
|
||||
aaaacccgggttt tttgggcccaaaa
|
||||
aaa-cccg-g ---g-gccc-aaa
|
||||
----cccgggt --tgggccc
|
||||
*/
|
||||
{
|
||||
int j;
|
||||
char temp1,temp2;
|
||||
extern char GetElem();
|
||||
extern void ReplaceElem();
|
||||
|
||||
for(j=0;j<= (max-min)/2;j++)
|
||||
{
|
||||
temp1 = GetElem(seq,min+j);
|
||||
temp2 = GetElem(seq,max-j);
|
||||
ReplaceElem(seq,min+j,(unsigned char)temp2);
|
||||
ReplaceElem(seq,max-j,(unsigned char)temp1);
|
||||
}
|
||||
|
||||
seq->direction *= -1;
|
||||
|
||||
SeqNormal(seq);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* sequence complementing. */
|
||||
void SeqComp(seq)
|
||||
Sequence *seq;
|
||||
{
|
||||
int j;
|
||||
unsigned char in,out,case_bit;
|
||||
char *c;
|
||||
static int tmatr[16] = {'-','a','c','m','g','r','s','v',
|
||||
't','w','y','h','k','d','b','n'};
|
||||
|
||||
static int matr[128] = {
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x00,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0x01,0x0e,0x02,0x0d,0,0,0x04,0x0b,0,0,0x0c,0,0x03,0x0f,0,0x05,0,0x05,0x06,
|
||||
0x08,0x08,0x07,0x09,0x00,0x0a,0,0,0,0,0,0,0,0x01,0x0e,0x02,0x0d,0,0,0x04,
|
||||
0x0b,0,0,0x0c,0,0x03,0x0f,0,0x05,0,0x05,0x06,0x08,0x08,0x07,0x09,0x00,0x0a,
|
||||
0,0,0,0,0x00,0
|
||||
};
|
||||
|
||||
c = seq->c_elem;
|
||||
for(j=0;j<seq->seqlen;j++)
|
||||
{
|
||||
/*
|
||||
* Save Case bit...
|
||||
*/
|
||||
case_bit = c[j] & 32;
|
||||
out = 0;
|
||||
in = matr[c[j]];
|
||||
if(in&1)
|
||||
out|=8;
|
||||
if(in&2)
|
||||
out|=4;
|
||||
if(in&4)
|
||||
out|=2;
|
||||
if(in&8)
|
||||
out|=1;
|
||||
|
||||
if(case_bit == 0)
|
||||
c[j] = toupper(tmatr[out]);
|
||||
else
|
||||
c[j] = tmatr[out];
|
||||
}
|
||||
|
||||
seq->direction *= -1;
|
||||
seq->strandedness = ( seq->strandedness == 2)?1:
|
||||
( seq->strandedness == 1)?2:
|
||||
0;
|
||||
return;
|
||||
|
||||
}
|
BIN
HGL_SRC/Alloc.o
Executable file
BIN
HGL_SRC/Alloc.o
Executable file
Binary file not shown.
BIN
HGL_SRC/Consto01mask
Executable file
BIN
HGL_SRC/Consto01mask
Executable file
Binary file not shown.
27
HGL_SRC/Consto01mask.c
Executable file
27
HGL_SRC/Consto01mask.c
Executable file
|
@ -0,0 +1,27 @@
|
|||
#ifndef _GLOBAL_DEFS_H
|
||||
#define _GLOBAL_DEFS_H
|
||||
#include "global_defs.h"
|
||||
#endif
|
||||
|
||||
main()
|
||||
{
|
||||
Sequence tSeq;
|
||||
int ii, jj, rr;
|
||||
char acgt[128];
|
||||
|
||||
for(ii = 0; ii < 128; ii++)
|
||||
acgt[ii] = '0';
|
||||
|
||||
acgt[0x41] = acgt[0x43] = acgt[0x47] = acgt[0x54] = acgt[0x55] = '1';
|
||||
acgt[0x61] = acgt[0x63] = acgt[0x67] = acgt[0x74] = acgt[0x75] = '1';
|
||||
|
||||
while((rr = ReadRecord(stdin, &tSeq)) != -1)
|
||||
{
|
||||
strcpy(tSeq.type, "MASK");
|
||||
for(ii = 0; ii < tSeq.seqlen; ii++)
|
||||
{
|
||||
tSeq.c_elem[ii] = acgt[tSeq.c_elem[ii]];
|
||||
}
|
||||
WriteRecord(stdout, tSeq, NULL, 0);
|
||||
}
|
||||
}
|
BIN
HGL_SRC/DotPlotTool
Executable file
BIN
HGL_SRC/DotPlotTool
Executable file
Binary file not shown.
1136
HGL_SRC/DotPlotTool.c
Executable file
1136
HGL_SRC/DotPlotTool.c
Executable file
File diff suppressed because it is too large
Load diff
3165
HGL_SRC/HGLfuncs.c
Executable file
3165
HGL_SRC/HGLfuncs.c
Executable file
File diff suppressed because it is too large
Load diff
BIN
HGL_SRC/HGLfuncs.o
Executable file
BIN
HGL_SRC/HGLfuncs.o
Executable file
Binary file not shown.
703
HGL_SRC/MAP_ChooseFile.c
Executable file
703
HGL_SRC/MAP_ChooseFile.c
Executable file
|
@ -0,0 +1,703 @@
|
|||
/*
|
||||
Copyright (c) 1989-1990, University of Illinois board of trustees. All
|
||||
rights reserved. Written by Michael Maciukenas at the Center for Prokaryote
|
||||
Genome Analysis. Design and implementation guidance by Steven Smith, Carl
|
||||
Woese.
|
||||
*/
|
||||
/* File picker by Mike Maciukenas
|
||||
** Allows the user to search up and down the directory tree, and choose a
|
||||
** file.
|
||||
** "Open" descends down into a directory, or chooses a file (depending ** on what is selected). The user may also press return after choosing
|
||||
** a file or directory, to do the same thing.
|
||||
** "Up Dir" ascends to the parent directory.
|
||||
** "Cancel" cancels the operation.
|
||||
** The user may also type a directory into the "Directory:" field. When the
|
||||
** user presses return (or tab, or newline), the contents of the new directory
|
||||
** will be shown.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <xview/textsw.h>
|
||||
#include <xview/xview.h>
|
||||
#include <xview/panel.h>
|
||||
#include <xview/canvas.h>
|
||||
#include <xview/scrollbar.h>
|
||||
#include <xview/rectlist.h>
|
||||
#include <xview/notice.h>
|
||||
#include <xview/font.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
||||
#define GBUFSIZ 256 /* buffer size, remove when adding to Steve's code */
|
||||
|
||||
#define FL_VIEW_H 15 /* # of files to show in one page, originally */
|
||||
|
||||
|
||||
/* structure for a linked list that allows sorting of filenames */
|
||||
typedef struct namedata {char *FileN; /* file name */
|
||||
int type; /* flag: 1 if directory '/'
|
||||
** 2 if executable '*'
|
||||
** 3 if symbolic link '@'
|
||||
** 4 if socket '='
|
||||
** 0 if normal */
|
||||
struct namedata *Next; /* next in list */
|
||||
} NameData;
|
||||
|
||||
Frame fl_getframe = XV_NULL; /* frame, is set to XV_NULL by free_mem(),
|
||||
** load_file() checks this to see if it should
|
||||
** destroy an existing frame */
|
||||
Scrollbar fl_scroll; /* the scrollbar for the file list canvas */
|
||||
Canvas fl_FileList; /* the file list canvas */
|
||||
Panel_item fl_DirText; /* the text item that displays the directory */
|
||||
Panel fl_Getpanel; /* the panel, contains buttons, and DirText */
|
||||
GC fl_gc; /* gc to use for drawing file names, just the default GC with
|
||||
** the frame's font copied in. */
|
||||
int fl_current_picked, fl_current_len; /* the current item picked in the file
|
||||
** list, and the current number of items
|
||||
** in the file list */
|
||||
int fl_cell_h, fl_width, fl_ascent; /* the height of the font, the width of the
|
||||
** canvas, and the default ascent of the
|
||||
** font, all used for drawing into the file
|
||||
** list canvas */
|
||||
Xv_opaque data;
|
||||
|
||||
extern int set_offset, *matrix;
|
||||
/* extern BuildMatrix(); */
|
||||
|
||||
NameData *fl_start; /* the root node for the linked list of filenames */
|
||||
|
||||
Frame load_file(Parentframe, x, y, passdata)
|
||||
/* pick a file for loading. */
|
||||
Frame Parentframe;
|
||||
int x, y;
|
||||
Xv_opaque passdata;
|
||||
{
|
||||
|
||||
/* callback procedures */
|
||||
int fl_open_btn_lf(), fl_up_dir_btn(), lf_cancel_btn();
|
||||
void fl_show_list_lf();
|
||||
void fl_list_select_lf();
|
||||
Panel_setting fl_dir_typed();
|
||||
/* interposed destroy function */
|
||||
Notify_value fl_free_mem();
|
||||
|
||||
char dirname[GBUFSIZ];
|
||||
Display *display;
|
||||
Xv_screen screen;
|
||||
int screen_no;
|
||||
Xv_Font font;
|
||||
XFontStruct *font_data;
|
||||
|
||||
data=passdata;
|
||||
|
||||
/* create the frame */
|
||||
fl_getframe = xv_create(Parentframe, FRAME,
|
||||
FRAME_LABEL, "Choose File",
|
||||
FRAME_SHOW_RESIZE_CORNER, FALSE,
|
||||
XV_X, x,
|
||||
XV_Y, y,
|
||||
NULL);
|
||||
notify_interpose_destroy_func(fl_getframe, fl_free_mem);
|
||||
|
||||
/* get font characteristics */
|
||||
font = xv_get(fl_getframe, XV_FONT);
|
||||
fl_cell_h = xv_get(font, FONT_DEFAULT_CHAR_HEIGHT);
|
||||
fl_width = 50*xv_get(font, FONT_DEFAULT_CHAR_WIDTH);
|
||||
font_data = (XFontStruct *)xv_get(font, FONT_INFO);
|
||||
fl_ascent = font_data->ascent;
|
||||
|
||||
/* create the panel and panel buttons */
|
||||
fl_Getpanel = xv_create(fl_getframe, PANEL,
|
||||
NULL);
|
||||
(void) xv_create(fl_Getpanel, PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING, "Open",
|
||||
PANEL_NOTIFY_PROC, fl_open_btn_lf,
|
||||
NULL);
|
||||
(void) xv_create(fl_Getpanel, PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING, "Up Dir",
|
||||
PANEL_NOTIFY_PROC, fl_up_dir_btn,
|
||||
NULL);
|
||||
(void) xv_create(fl_Getpanel, PANEL_BUTTON,
|
||||
PANEL_LABEL_STRING, "Cancel",
|
||||
PANEL_NOTIFY_PROC, lf_cancel_btn,
|
||||
NULL);
|
||||
/* create the "Directory:" field, initialized to the current working dir */
|
||||
getcwd(dirname, GBUFSIZ);
|
||||
fl_DirText = xv_create(fl_Getpanel, PANEL_TEXT,
|
||||
PANEL_LABEL_STRING,"Directory:",
|
||||
XV_X, xv_col(fl_Getpanel, 0),
|
||||
XV_Y, xv_row(fl_Getpanel, 1),
|
||||
PANEL_VALUE_STORED_LENGTH, GBUFSIZ,
|
||||
PANEL_VALUE_DISPLAY_LENGTH, 30,
|
||||
PANEL_VALUE, dirname,
|
||||
PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
|
||||
PANEL_NOTIFY_STRING, "\n\r\t",
|
||||
PANEL_NOTIFY_PROC, fl_dir_typed,
|
||||
NULL);
|
||||
|
||||
window_fit(fl_Getpanel);
|
||||
|
||||
/* create the file list canvas, below the above panel */
|
||||
fl_FileList = xv_create(fl_getframe, CANVAS,
|
||||
XV_X, 0,
|
||||
WIN_BELOW, fl_Getpanel,
|
||||
XV_WIDTH, fl_width,
|
||||
XV_HEIGHT, FL_VIEW_H*fl_cell_h+7,
|
||||
CANVAS_REPAINT_PROC, fl_show_list_lf,
|
||||
CANVAS_AUTO_EXPAND, FALSE,
|
||||
CANVAS_AUTO_SHRINK, FALSE,
|
||||
CANVAS_WIDTH, fl_width,
|
||||
CANVAS_HEIGHT, fl_cell_h,
|
||||
CANVAS_RETAINED, FALSE,
|
||||
OPENWIN_AUTO_CLEAR, FALSE,
|
||||
NULL);
|
||||
fl_scroll = xv_create(fl_FileList, SCROLLBAR,
|
||||
SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL,
|
||||
SCROLLBAR_PIXELS_PER_UNIT, fl_cell_h,
|
||||
SCROLLBAR_VIEW_LENGTH, fl_view_h(),
|
||||
SCROLLBAR_PAGE_LENGTH, fl_view_h(),
|
||||
NULL);
|
||||
xv_set(canvas_paint_window(fl_FileList),
|
||||
WIN_EVENT_PROC, fl_list_select_lf,
|
||||
WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, WIN_ASCII_EVENTS, NULL,
|
||||
NULL);
|
||||
xv_set(fl_Getpanel, XV_WIDTH, xv_get(fl_FileList, XV_WIDTH), NULL);
|
||||
|
||||
/* set up the gc for drawing into the file list */
|
||||
display = (Display *)xv_get(fl_getframe, XV_DISPLAY);
|
||||
screen = (Xv_screen)xv_get(fl_getframe, XV_SCREEN);
|
||||
screen_no = (int)xv_get(screen, SCREEN_NUMBER);
|
||||
fl_gc = XCreateGC(display, RootWindow(display, screen_no),
|
||||
0, NULL);
|
||||
XCopyGC(display, DefaultGC(display, DefaultScreen(display)),
|
||||
0xFFFFFFFF, fl_gc);
|
||||
XSetFont(display, fl_gc, xv_get(font, XV_XID));
|
||||
/*
|
||||
* Added S.Smith 2/5/91
|
||||
*/
|
||||
XSetForeground(display,fl_gc,BlackPixel(display,DefaultScreen(display)));
|
||||
XSetBackground(display,fl_gc,WhitePixel(display,DefaultScreen(display)));
|
||||
|
||||
|
||||
/* set up the extra trailing node for the linked list, makes insertion
|
||||
** into the list easier */
|
||||
fl_start = (NameData *)calloc(1, sizeof(NameData));
|
||||
fl_start->FileN = (char *)NULL;
|
||||
fl_start->Next = NULL;
|
||||
|
||||
/* make the list, showing files in the application`s current directory
|
||||
*/
|
||||
(void) fl_make_list();
|
||||
|
||||
window_fit(fl_getframe);
|
||||
xv_set(fl_getframe, XV_SHOW, TRUE, NULL);
|
||||
return(fl_getframe);
|
||||
}
|
||||
|
||||
|
||||
int fl_open_btn_lf(item, event)
|
||||
/* callback procedure for the open button. If it's a directory, switch to
|
||||
** the new directory, otherwise return the filename
|
||||
*/
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
int i, end, r;
|
||||
char namebuf[GBUFSIZ], thestr[GBUFSIZ];
|
||||
NameData *current;
|
||||
Frame top_frame;
|
||||
|
||||
if(fl_current_picked != -1) /* then an item is selected. Work with it */
|
||||
{
|
||||
/* find item in list */
|
||||
current = fl_start;
|
||||
for(i=0; i<fl_current_picked; i++)
|
||||
current = current->Next;
|
||||
strcpy(namebuf, current->FileN);
|
||||
if(current->type == 1) /* then it's a directory, so switch to it */
|
||||
{
|
||||
if(fl_checkdir(namebuf))
|
||||
{
|
||||
chdir(namebuf);
|
||||
(void) fl_make_list();
|
||||
fl_set_dirtext(fl_DirText);
|
||||
return XV_OK;
|
||||
}
|
||||
}
|
||||
else /* it's a file name, so return it */
|
||||
{
|
||||
if(fl_checkdir(xv_get(fl_DirText, PANEL_VALUE))) /* then valid dir */
|
||||
{
|
||||
if(current->type != 0) /* then it's not a regular file, so strip off
|
||||
** the extra type character: *, =, /, or @ */
|
||||
namebuf[strlen(namebuf)-1]='\0';
|
||||
/* create the file string (with full directory path) */
|
||||
getcwd(thestr, GBUFSIZ);
|
||||
if(thestr[strlen(thestr)-1] != '/')
|
||||
strcat(thestr, "/");
|
||||
strcat(thestr, namebuf);
|
||||
|
||||
/* call load data procedure. */
|
||||
|
||||
top_frame = (Frame) xv_get(
|
||||
(Frame) xv_get(
|
||||
(Panel) xv_get(item,XV_OWNER),
|
||||
XV_OWNER),
|
||||
XV_OWNER);
|
||||
|
||||
xv_set(top_frame, FRAME_LABEL, thestr, NULL);
|
||||
|
||||
/********
|
||||
if(strcmp(thestr+(strlen(thestr)-3), "GDE") == 0)
|
||||
{
|
||||
LoadGDEData(thestr);
|
||||
set_offset = 0;
|
||||
}
|
||||
else if(strcmp(thestr+(strlen(thestr)-3), "HGL") == 0)
|
||||
{
|
||||
*********/
|
||||
if((r = LoadHGLData(thestr)) == -1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
set_offset = r;
|
||||
/********
|
||||
}
|
||||
else
|
||||
printf("File format unknown. Should be .HGL or .GDE \n");
|
||||
********/
|
||||
|
||||
/*
|
||||
rect = (Rect *)xv_get(canvas,CANVAS_VIEWABLE_RECT,view_win);
|
||||
XClearArea(display,xwin,
|
||||
rect->r_left, rect->r_top,
|
||||
rect->r_width, rect->r_height,
|
||||
0);
|
||||
(void)xv_set(view_win,
|
||||
CANVAS_HEIGHT, max_lines*max_pbl+margin,
|
||||
CANVAS_WIDTH, max_dots/min_scale+margin,
|
||||
NULL);
|
||||
*/
|
||||
xv_destroy_safe(fl_getframe);
|
||||
return XV_OK;
|
||||
}
|
||||
else
|
||||
{ /* invalid directory, so show notice*/
|
||||
int result;
|
||||
Panel panel = (Panel)xv_get(fl_FileList, PANEL_PARENT_PANEL);
|
||||
|
||||
result = notice_prompt(panel, NULL,
|
||||
NOTICE_MESSAGE_STRINGS, "Invalid Directory specified.", NULL,
|
||||
NOTICE_FOCUS_XY, event_x(event), event_y(event),
|
||||
NOTICE_BUTTON_YES, "Change Directory",
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int fl_up_dir_btn(item, event)
|
||||
/* go up one directory */
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
char dirname[GBUFSIZ];
|
||||
|
||||
/* pretty simple, just go up, show it, and change the "Directory:" field */
|
||||
(void) chdir("..");
|
||||
(void) fl_make_list();
|
||||
fl_set_dirtext(fl_DirText);
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
Panel_setting fl_dir_typed(item, event)
|
||||
/* handle when user types return, newline, or tab in the "Directory:" field.
|
||||
** if it's a valid directory, it moves to it, otherwise, display a notice
|
||||
*/
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
int error;
|
||||
char dirname[GBUFSIZ];
|
||||
|
||||
switch (event_action(event))
|
||||
{
|
||||
case '\n':
|
||||
case '\r':
|
||||
case '\t':
|
||||
{
|
||||
if(fl_checkdir(xv_get(fl_DirText, PANEL_VALUE)))
|
||||
{ /* valid directory, chdir to it and show it */
|
||||
chdir(xv_get(fl_DirText, PANEL_VALUE));
|
||||
fl_make_list();
|
||||
fl_set_dirtext(fl_DirText);
|
||||
}
|
||||
else
|
||||
{ /* invalid directory, so show notice */
|
||||
int result;
|
||||
Panel panel = (Panel)xv_get(fl_FileList, PANEL_PARENT_PANEL);
|
||||
|
||||
result = notice_prompt(panel, NULL,
|
||||
NOTICE_MESSAGE_STRINGS, "Invalid Directory specified.", NULL,
|
||||
NOTICE_FOCUS_XY, event_x(event), event_y(event),
|
||||
NOTICE_BUTTON_YES, "Change Directory",
|
||||
NULL);
|
||||
}
|
||||
return PANEL_NONE;
|
||||
};
|
||||
/* if it wasn't \n, \t, or \r, pass event on to standard
|
||||
** panel_text handler
|
||||
*/
|
||||
default:
|
||||
return(panel_text_notify(item, event));
|
||||
}
|
||||
}
|
||||
|
||||
int lf_cancel_btn(item, event)
|
||||
/* handle the cancel button. Just destroys the frame and returns
|
||||
*/
|
||||
Panel_item item;
|
||||
Event *event;
|
||||
{
|
||||
|
||||
LoadHGLData("");
|
||||
xv_destroy_safe(fl_getframe);
|
||||
return XV_OK;
|
||||
}
|
||||
|
||||
fl_readln(file, buf)
|
||||
FILE *file;
|
||||
char *buf;
|
||||
{
|
||||
int i;
|
||||
int ch;
|
||||
|
||||
ch = getc(file);
|
||||
if(ch==EOF)
|
||||
{
|
||||
buf[0]='\0';
|
||||
return;
|
||||
}
|
||||
i=0;
|
||||
do
|
||||
{
|
||||
buf[i++]=ch;
|
||||
ch = getc(file);
|
||||
} while(ch!='\n');
|
||||
buf[i]='\0';
|
||||
}
|
||||
|
||||
int fl_make_list()
|
||||
/* Creates a list of files, out of the current working directory. It then
|
||||
** tells the file list canvas to refresh itself. The list sits attached to
|
||||
** fl_start, for reading by the show_list() routine.
|
||||
*/
|
||||
{
|
||||
FILE *dirp; /* for directory data */
|
||||
int i, list_len, cur_pos;
|
||||
char dirname[GBUFSIZ], tempbuf[GBUFSIZ];
|
||||
NameData *current, *temp; /* structures for reading
|
||||
** and sorting file names */
|
||||
int notdone;
|
||||
struct stat statbuf; /* for checking if a file
|
||||
** name is a directory */
|
||||
int pid = getpid(); /* for creation of temp
|
||||
** file for directory list */
|
||||
char tmpcmd[GBUFSIZ]; /* for holding ls command */
|
||||
char tmpname[GBUFSIZ]; /* for holding file names */
|
||||
|
||||
|
||||
getcwd(dirname, GBUFSIZ);
|
||||
sprintf(tmpcmd, "cd %s;ls -aF > /usr/tmp/.svlffil%d", dirname, pid);
|
||||
sprintf(tmpname, "/usr/tmp/.svlffil%d", pid);
|
||||
system(tmpcmd);
|
||||
dirp = fopen(tmpname, "r");
|
||||
if (dirp == NULL) /* just a check to make sure */
|
||||
{
|
||||
fprintf(stderr, "fl_make_list was passed bad directory name\n");
|
||||
return(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* free up the old list, to build a new one */
|
||||
for(current = fl_start; current->FileN != (char *)NULL; i++)
|
||||
{
|
||||
temp = current;
|
||||
current = current->Next;
|
||||
free(temp->FileN);
|
||||
free(temp);
|
||||
};
|
||||
/* set up the linked list for sorting */
|
||||
fl_start = (NameData *)calloc(1, sizeof(NameData));
|
||||
fl_start->FileN = (char *)NULL;
|
||||
fl_start->Next = NULL;
|
||||
/* read through the directory entries */
|
||||
list_len = 0;
|
||||
for(fl_readln(dirp, tempbuf); tempbuf[0] != '\0'; fl_readln(dirp, tempbuf))
|
||||
{
|
||||
/* don't include "." and ".." in the list */
|
||||
if((strcmp(tempbuf,"./")!=0)&&
|
||||
(strcmp(tempbuf,"../")!=0))
|
||||
{
|
||||
/* find the right spot in the list to insert the new name */
|
||||
current = fl_start;
|
||||
notdone = 1;
|
||||
while(notdone)
|
||||
if(current->FileN == NULL)
|
||||
notdone = 0;
|
||||
else if(strcmp(tempbuf, current->FileN)>0)
|
||||
current = current->Next;
|
||||
else
|
||||
notdone = 0;
|
||||
/* insert the new name */
|
||||
temp = (NameData *)calloc(1, sizeof(NameData));
|
||||
temp->FileN = current->FileN;
|
||||
temp->type = current->type;
|
||||
temp->Next = current->Next;
|
||||
++list_len;
|
||||
current->Next = temp;
|
||||
/* set flag for file type */
|
||||
switch(tempbuf[strlen(tempbuf)-1])
|
||||
{
|
||||
case '/': /* directory */
|
||||
{
|
||||
current->type = 1;
|
||||
break;
|
||||
}
|
||||
case '@': /* symbolic link */
|
||||
{
|
||||
current->type = 3;
|
||||
break;
|
||||
}
|
||||
case '=': /* socket */
|
||||
{
|
||||
current->type = 4;
|
||||
break;
|
||||
}
|
||||
case '*': /* executable */
|
||||
{
|
||||
current->type = 2;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
current->type = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
current->FileN = (char *)calloc(1, strlen(tempbuf)+1);
|
||||
strcpy(current->FileN,tempbuf);
|
||||
};
|
||||
}
|
||||
fclose(dirp);
|
||||
sprintf(tmpcmd, "rm %s", tmpname);
|
||||
system(tmpcmd);
|
||||
|
||||
/* adjust the Canvas size, and refresh it */
|
||||
fl_current_len = list_len;
|
||||
cur_pos = xv_get(fl_scroll, SCROLLBAR_VIEW_START);
|
||||
xv_set(fl_FileList, CANVAS_HEIGHT,
|
||||
(list_len+fl_view_h()+1)*fl_cell_h,
|
||||
NULL);
|
||||
/* scrollbars bomb with zero-length objects */
|
||||
if(list_len == 0) ++list_len;
|
||||
/* reset scrollbar */
|
||||
xv_set(fl_scroll, SCROLLBAR_VIEW_START, 0,
|
||||
SCROLLBAR_OBJECT_LENGTH, list_len,
|
||||
NULL);
|
||||
/* refresh canvas */
|
||||
wmgr_refreshwindow(canvas_paint_window(fl_FileList));
|
||||
fl_current_picked = -1;
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
fl_set_dirtext(fl_DirText)
|
||||
/* sets the "Directory:" field according to the current directory
|
||||
** fl_DirText is the Xview pointer to the fl_DirText Panel Item
|
||||
*/
|
||||
Panel_item fl_DirText;
|
||||
{
|
||||
char dirbuf[GBUFSIZ];
|
||||
|
||||
getcwd(dirbuf, GBUFSIZ);
|
||||
xv_set(fl_DirText, PANEL_VALUE, dirbuf, NULL);
|
||||
|
||||
}
|
||||
|
||||
int fl_checkdir(dirname)
|
||||
/* check if a directory can be opened. directory can be specified by
|
||||
** full root name or by current name. returns true if it can be opened.
|
||||
*/
|
||||
char *dirname;
|
||||
{
|
||||
DIR *dirp;
|
||||
|
||||
dirp = opendir(dirname);
|
||||
if(dirp == NULL) /* not available, user cannot enter */
|
||||
return(0);
|
||||
else
|
||||
{
|
||||
closedir(dirp); /* must close it */
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
|
||||
void fl_show_list_lf(canvas, paint_window, repaint_area)
|
||||
/* repaint procedure for the file list canvas. Repaints all file names in
|
||||
** the damaged area */
|
||||
Canvas canvas;
|
||||
Xv_Window paint_window;
|
||||
Rectlist *repaint_area;
|
||||
{
|
||||
NameData *current;
|
||||
int i;
|
||||
int start_draw, end_draw;
|
||||
Display *dpy;
|
||||
Window xwin;
|
||||
|
||||
|
||||
/* make sure AUTO_CLEAR is off, this routine will do it itself */
|
||||
while(xv_get(fl_FileList, OPENWIN_AUTO_CLEAR)!=FALSE)
|
||||
{
|
||||
fprintf(stderr, "lf:found bug--OPENWIN_AUTO_CLEAR still TRUE");
|
||||
xv_set(fl_FileList, OPENWIN_AUTO_CLEAR, FALSE, NULL);
|
||||
}
|
||||
/* make sure RETAINED is off, this routine will repaint itself */
|
||||
while(xv_get(fl_FileList, CANVAS_RETAINED)!=FALSE)
|
||||
{
|
||||
fprintf(stderr, "lf:found bug--CANVAS_RETAINED still TRUE");
|
||||
xv_set(fl_FileList, CANVAS_RETAINED, FALSE, NULL);
|
||||
}
|
||||
/* get display and window */
|
||||
dpy = (Display *)xv_get(paint_window, XV_DISPLAY);
|
||||
xwin = (Window)xv_get(paint_window, XV_XID);
|
||||
|
||||
/* clear the area given us by Xview, for simplicity, we clear the
|
||||
** smallest rectangle that encloses all of the destroyed areas, the
|
||||
** rl_bound rectangle */
|
||||
XClearArea(dpy, xwin,
|
||||
repaint_area->rl_bound.r_left,
|
||||
repaint_area->rl_bound.r_top,
|
||||
repaint_area->rl_bound.r_width,
|
||||
repaint_area->rl_bound.r_height,
|
||||
0);
|
||||
/* the next 3 lines calculate which file names must be drawn, by where the
|
||||
** top and bottom of the rl_bound rectangle lie */
|
||||
start_draw = repaint_area->rl_bound.r_top;
|
||||
end_draw = (repaint_area->rl_bound.r_height + start_draw - 1) / fl_cell_h;
|
||||
start_draw = (start_draw - 1) / fl_cell_h;
|
||||
|
||||
/* find the first element to draw in the list */
|
||||
current = fl_start;
|
||||
for(i = 0; (i<start_draw) && (current->Next != NULL); i++)
|
||||
current = current->Next;
|
||||
/* now start drawing them */
|
||||
for(; (i<=end_draw) && (current->Next != NULL); i++)
|
||||
{
|
||||
XDrawString(dpy, xwin, fl_gc, 5, i*fl_cell_h+fl_ascent, current->FileN,
|
||||
strlen(current->FileN));
|
||||
/* add a box if we are drawing the currently picked one */
|
||||
if(i==fl_current_picked)
|
||||
{
|
||||
XDrawRectangle(dpy, xwin, fl_gc,
|
||||
2, i*fl_cell_h,
|
||||
xv_get(canvas, XV_WIDTH)-11-xv_get(fl_scroll, XV_WIDTH),
|
||||
fl_cell_h);
|
||||
}
|
||||
current = current->Next;
|
||||
}
|
||||
}
|
||||
|
||||
void fl_list_select_lf(paint_window, event)
|
||||
/* callback procedure for events that happen in the file list canvas. Checks
|
||||
** mouse button press or drag, and for when the user types return */
|
||||
Xv_window paint_window;
|
||||
Event *event;
|
||||
{
|
||||
int picked, cur_pos;
|
||||
Window xwin = (Window)xv_get(paint_window, XV_XID);
|
||||
Display *dpy;
|
||||
|
||||
dpy = (Display *)xv_get(paint_window, XV_DISPLAY);
|
||||
/* get the current position of the scrollbar for future reference */
|
||||
cur_pos = xv_get(fl_scroll, SCROLLBAR_VIEW_START);
|
||||
|
||||
/* first, check for user picking a file name */
|
||||
if((event_action(event) == ACTION_SELECT)||
|
||||
(event_action(event) == LOC_DRAG))
|
||||
{
|
||||
picked = (event_y(event) - 1) / fl_cell_h;
|
||||
/* make sure the file picked is on screen. if it is not,
|
||||
** we just ignore it. this avoids wierd stuff, like being
|
||||
** able to pick files that aren't shown on screen */
|
||||
if((picked >= cur_pos)&&
|
||||
(picked < cur_pos+fl_view_h())&&
|
||||
(picked < fl_current_len))
|
||||
{
|
||||
/* efficiency: ignore if it is already picked */
|
||||
if(picked != fl_current_picked)
|
||||
{
|
||||
XSetFunction(dpy, fl_gc, GXclear);
|
||||
XDrawRectangle(dpy, xwin, fl_gc,
|
||||
2, fl_current_picked*fl_cell_h,
|
||||
xv_get(fl_FileList, XV_WIDTH)-11-
|
||||
xv_get(fl_scroll, XV_WIDTH),
|
||||
fl_cell_h);
|
||||
XSetFunction(dpy, fl_gc, GXcopy);
|
||||
XDrawRectangle(dpy, xwin, fl_gc,
|
||||
2, picked*fl_cell_h,
|
||||
xv_get(fl_FileList, XV_WIDTH)-11-
|
||||
xv_get(fl_scroll, XV_WIDTH),
|
||||
fl_cell_h);
|
||||
fl_current_picked = picked;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* user may have pressed return, then just call the open button
|
||||
** callback procedure. PANEL_FIRST_ITEM gets the pointer to the
|
||||
** open button itself, since it happens to be the first item on
|
||||
** the panel. fl_open_btn doesn't really use this parameter, but
|
||||
** just in case it ever does, we include it. */
|
||||
else if((event_is_ascii(event))&&(event_action(event) == '\r'))
|
||||
fl_open_btn_lf(xv_get(fl_Getpanel, PANEL_FIRST_ITEM), event);
|
||||
else
|
||||
return;
|
||||
}
|
||||
int fl_view_h()
|
||||
/* returns the current height (in # of file names displayed) of the file list */
|
||||
{
|
||||
return (((int)xv_get(fl_FileList, XV_HEIGHT))/fl_cell_h);
|
||||
}
|
||||
|
||||
Notify_value
|
||||
fl_free_mem(client, status)
|
||||
/* clean up when the frame is destroyed. Frees up the memory used in the
|
||||
** linked list of file names, and sets the Frame variable (getframe) to null */
|
||||
Notify_client client;
|
||||
Destroy_status status;
|
||||
{
|
||||
NameData *current, *temp;
|
||||
int i;
|
||||
|
||||
switch (status)
|
||||
{
|
||||
case DESTROY_CHECKING:
|
||||
return NOTIFY_DONE;
|
||||
case DESTROY_CLEANUP:
|
||||
{
|
||||
for(current = fl_start; current->FileN != (char *)NULL; i++)
|
||||
{
|
||||
temp = current;
|
||||
current = current->Next;
|
||||
free(temp->FileN);
|
||||
free(temp);
|
||||
};
|
||||
fl_getframe = XV_NULL;
|
||||
return notify_next_destroy_func(client, status);
|
||||
}
|
||||
default:
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
}
|
BIN
HGL_SRC/MAP_ChooseFile.o
Executable file
BIN
HGL_SRC/MAP_ChooseFile.o
Executable file
Binary file not shown.
BIN
HGL_SRC/MakeCons
Executable file
BIN
HGL_SRC/MakeCons
Executable file
Binary file not shown.
178
HGL_SRC/MakeCons.c
Executable file
178
HGL_SRC/MakeCons.c
Executable file
|
@ -0,0 +1,178 @@
|
|||
#include <stdio.h>
|
||||
#include <malloc.h>
|
||||
#include "global_defs.h"
|
||||
|
||||
main(ac,av)
|
||||
int ac;
|
||||
char *av[];
|
||||
{
|
||||
Sequence cons; /* master alignment */
|
||||
Sequence *master; /* Current Walking sets to add */
|
||||
int cursize, maxsize = 10, ii;
|
||||
char str[2], cons_type;
|
||||
FILE *file, *consout_fp, *maskout_fp;
|
||||
int conserved_color, variable_color, partial_color, major_perc;
|
||||
|
||||
if(ac == 1)
|
||||
{
|
||||
fprintf(stderr, "Usage:\n");
|
||||
fprintf(stderr,
|
||||
"%s %s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n",
|
||||
av[0],
|
||||
"sequence-file",
|
||||
"[-iupac] IUPAC consensus. Default",
|
||||
"[-majority percent] Majority consensus (default percent: 75)",
|
||||
"[-maskv colorv] Variable position color",
|
||||
"[-maskc colorc] Conserved position color",
|
||||
"[-maskp colorp] Partially conserved color",
|
||||
"[-consout output-consensus] Default: stdout",
|
||||
"[-maskout output-mask]");
|
||||
exit (0);
|
||||
}
|
||||
|
||||
InitRecord(&cons);
|
||||
|
||||
if((file = fopen(av[1],"r")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Can't open sequence-file %s.\n", av[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
master = (Sequence*)Calloc(maxsize,sizeof(Sequence));
|
||||
|
||||
cursize = 0;
|
||||
while(ReadRecord(file,&(master[cursize])) != -1)
|
||||
{
|
||||
SeqNormal(&master[cursize]);
|
||||
if(++cursize == maxsize)
|
||||
{
|
||||
maxsize *= 2;
|
||||
master = (Sequence*)
|
||||
Realloc(master, maxsize*sizeof(Sequence));
|
||||
}
|
||||
|
||||
master[cursize].group_number = 99999;
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
|
||||
cons_type = ' '; /* 'i':IUPAC, 'm':majority, 'k':mask */
|
||||
consout_fp = stdout;
|
||||
maskout_fp = NULL;
|
||||
conserved_color = 8; /* black */
|
||||
variable_color = 3; /* red */
|
||||
|
||||
ii = 2;
|
||||
while(ii < ac)
|
||||
{
|
||||
if(strcmp(av[ii], "-iupac") == 0)
|
||||
{
|
||||
cons_type = 'i';
|
||||
}
|
||||
else if(strcmp(av[ii], "-majority") == 0)
|
||||
{
|
||||
cons_type = 'm';
|
||||
ii++;
|
||||
major_perc = atoi(av[ii]);
|
||||
}
|
||||
else if(strcmp(av[ii], "-maskv") == 0)
|
||||
{
|
||||
variable_color = atoi(av[++ii]);
|
||||
if(cons_type == ' ')
|
||||
cons_type = 'k';
|
||||
}
|
||||
else if(strcmp(av[ii], "-maskc") == 0)
|
||||
{
|
||||
conserved_color = atoi(av[++ii]);
|
||||
if(cons_type == ' ')
|
||||
cons_type = 'k';
|
||||
}
|
||||
else if(strcmp(av[ii], "-maskp") == 0)
|
||||
{
|
||||
partial_color = atoi(av[++ii]);
|
||||
if(cons_type == ' ')
|
||||
cons_type = 'k';
|
||||
}
|
||||
else if(strcmp(av[ii], "-consout") == 0)
|
||||
{
|
||||
if((consout_fp = fopen(av[++ii], "w")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Can't open output file %s.\n",av[ii]);
|
||||
consout_fp = stdout;
|
||||
}
|
||||
}
|
||||
else if(strcmp(av[ii], "-maskout") == 0)
|
||||
{
|
||||
if((maskout_fp = fopen(av[++ii], "w")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Can't open output file %s.\n",av[ii]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "Invalid flag %s\n", av[ii]);
|
||||
}
|
||||
ii++;
|
||||
}
|
||||
|
||||
if(cons_type == ' ')
|
||||
cons_type = 'i';
|
||||
|
||||
if(cons_type != 'k')
|
||||
{
|
||||
if(maskout_fp != NULL)
|
||||
{
|
||||
/* Useful only when output to GDE. */
|
||||
fprintf(maskout_fp, "length:%d\n", cons.seqlen);
|
||||
fprintf(maskout_fp, "start:\n");
|
||||
}
|
||||
|
||||
if((cons_type == 'i' &&
|
||||
MakeConsensus(master,cursize,&cons,0,cons_type)==FALSE) ||
|
||||
(cons_type == 'm' &&
|
||||
MajorityCons(master,cursize,&cons,0, major_perc) == FALSE))
|
||||
{
|
||||
fprintf(stderr, "Failed to make consensus.\n");
|
||||
exit(1);
|
||||
}
|
||||
WriteRecord(consout_fp, &cons, NULL, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(MakeScore(master,cursize,&cons,0) == FALSE)
|
||||
{
|
||||
fprintf(stderr, "Failed to make consensus.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*WriteRecord(stdout, &cons, NULL, 0);
|
||||
printf("\n\n");*/
|
||||
|
||||
if(maskout_fp == NULL)
|
||||
{
|
||||
maskout_fp = stdout;
|
||||
}
|
||||
|
||||
fprintf(maskout_fp, "length:%d\n", cons.seqlen);
|
||||
fprintf(maskout_fp, "start:\n");
|
||||
|
||||
for(ii = 0; ii < cons.seqlen; ii++)
|
||||
{
|
||||
switch(cons.c_elem[ii])
|
||||
{
|
||||
case 'F':
|
||||
fprintf(maskout_fp, "%d\n", partial_color);
|
||||
break;
|
||||
case 'E':
|
||||
fprintf(maskout_fp, "%d\n", conserved_color);
|
||||
break;
|
||||
default:
|
||||
fprintf(maskout_fp, "%d\n", variable_color);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(consout_fp);
|
||||
fclose(maskout_fp);
|
||||
}
|
43
HGL_SRC/Makefile
Executable file
43
HGL_SRC/Makefile
Executable file
|
@ -0,0 +1,43 @@
|
|||
|
||||
CC = cc
|
||||
#FLAGS = -g
|
||||
OPENWINHOME = /usr/openwin
|
||||
MFILE =
|
||||
INCDIR = -I$(OPENWINHOME)/include
|
||||
LIBDIR = -L$(OPENWINHOME)/lib
|
||||
LIBS = -lxview -lolgx -lX11
|
||||
|
||||
libs.o = Alloc.o HGLfuncs.o
|
||||
|
||||
all: mapview MakeCons Consto01mask PrintStrat Translate heapsortHGL DotPlotTool
|
||||
|
||||
Alloc.o: Alloc.c
|
||||
$(CC) $(FLAGS) -c Alloc.c
|
||||
|
||||
HGLfuncs.o: HGLfuncs.c
|
||||
$(CC) $(FLAGS) -c HGLfuncs.c
|
||||
|
||||
MAP_ChooseFile.o: MAP_ChooseFile.c
|
||||
$(CC) $(FLAGS) -c MAP_ChooseFile.c $(INCDIR)
|
||||
|
||||
mapview: mapview.c MAP_ChooseFile.o $(libs.o)
|
||||
$(CC) $(FLAGS) -o $@ $@.c MAP_ChooseFile.o $(libs.o) $(INCDIR) $(LIBDIR) $(LIBS)
|
||||
|
||||
DotPlotTool: DotPlotTool.c MAP_ChooseFile.o $(libs.o)
|
||||
$(CC) $(FLAGS) -o $@ $@.c MAP_ChooseFile.o $(libs.o) \
|
||||
$(INCDIR) $(LIBDIR) $(LIBS)
|
||||
|
||||
MakeCons: MakeCons.c $(libs.o) $(MKFILE)
|
||||
$(CC) $(FLAGS) -o $@ $@.c $(libs.o)
|
||||
|
||||
Translate: Translate.c $(libs.o) $(MKFILE)
|
||||
$(CC) $(FLAGS) -o $@ $@.c $(libs.o)
|
||||
|
||||
heapsortHGL: heapsortHGL.c $(libs.o) $(MKFILE)
|
||||
$(CC) $(FLAGS) -o $@ $@.c $(libs.o)
|
||||
|
||||
PrintStrat: PrintStrat.c $(libs.o) $(MKFILE)
|
||||
$(CC) $(FLAGS) -o $@ $@.c $(libs.o)
|
||||
|
||||
Consto01mask: Consto01mask.c $(libs.o) $(MKFILE)
|
||||
$(CC) $(FLAGS) -o $@ $@.c $(libs.o)
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue