# Darwin version 2.1 Release Notes # Author : Gina Cannarozzi # Created On : Mon Nov 6 2000 # Last Modification : Sept 13, 2001 Darwin version 2.1 contains a lot of changes and new work and indicates the new direction in which Darwin is heading. As always, Darwin is in development and some functions such as object orientation are still under constrution. Comments and bug reports are always appreciated. We espeically want to elminate abrupt crashes so if you can generate any code that creates a segmentation fault or memory error, please send the code and the ouput from the code to darwin.comments@inf.ethz.ch. We appreciate the effort. Changes in this release: September 12, 2001 solaris, alpha, linux, irix, irix32 gmc version date compiled into the darwin kernel - use command version(); Finally! irix and irix32 versions have been finished. irix was compiled on a Silicon Graphics 5000 64 bit machine irix32 was compiled on a Silicon Graphics 5000 64 bit machine with the -n32 new 32 bit option. If you would like to have it compiled with the old 32 bit option, send an email to darwin.comments@inf.ethz.ch. Library functions: LinearClassify, Minimize, SVD, Inherit improved HTMLC are functions to make HTML components have been added. An HTML component is the HTML code without the header and body tags which can be easily incorportated into an HTML file. Tables, Paragraphs, Hyperlinks can now be converted to HTML components with: HTMLC(structure_name) where structure_name is a variable of type Table, Paragraph or Hyperlink. ReadDb now works better with compressed databases. It will follow one level of symbolic link and requires the link to be an absolute path. Builtin cacheing parameters have been updated to the 21st century standards. The effect is that darwin now is much faster for big computations. Support for Codon manipulations can be found in the library file: CodonTools new data structure: SVDResult An example of using external functions has been added to the library in the directory External. See the directory lib/External/regexp. The example is a useful regular expression tool written by Marcel Turcotte and using the GNU regex distribution. Changes in this release: April 19, 2001 solaris, alpha and linux gmc Creation of selectors is now automatic ie the arguments to any data structure can be selected with the name of the argument. Eg. Complex numbers are defined with Complex := proc( Re:numeric, Im:numeric ) bla bla bla end: The selectors Complex[Re] and Complex[Im] are automatically defined without the need for a Complex_select function. April 9, 2001 ReadDb and OpenReading automatically detect file extentions .Z and .gz and read compressed files string function has been changed to always return a string Changes in release of Feb 20, 2001 solaris, alpha, and linux gmc The number of entries in a database that can be read with ReadDb has been increased; previously limited to < 262,144 (Feb 5, 2001) ReadRawLine implemented See ?io and ?ReadRawLine (Feb 4, 2000) CreateDayMatrices accepts a count matrix as an optional argument and creates the AF, DM and DMS from it see ?CreateDayMatrices darwin 1.6 - darwin 2.0 name changes added to help file DARWIN gives a warning when an existing procedure is redefined Much duplicate code has been removed from the libraries #New linux and solaris releases Jan 22, 2001 (gmc) # new axp release feb 04, 2001 (gmc) Fixes and improvements in this release: command line options -i and -o work correctly (see ?command) database size limitation of 100 MB has been removed MassProfile error handling and help improved (see ?SearchMassDb) Inheritance implemented (see ?Inherit) libraries cleaned System Requirements: As of Nov. 6, 2000 the Darwin 2.1 release is available for Linux, DEC/Alpha, IRIX 64 (irix) and 32 (irix32) bit versions and SunOS 5.6. Linux - the Linux version was compiled with Red Hat Linux 2.2.16-3 and the libraries are statically linked. Solaris - The solaris version was compiled under SunOS 5.6 with the libraries dynamically linked. The libraries are the standard POSIX libraries and should be present on all current versions of solaris. IRIX - irix was compiled on a Silicon Graphics 5000 64 bit machine irix32 was compiled on a Silicon Graphics 5000 64 bit machine with the -n32 new 32 bit option. If you would like to have it compiled with the old 32 bit option, send an email to darwin.comments@inf.ethz.ch. What's new in Darwin 2.1? 1) Extended help system type ?help for an introduciton or ?index for a list of all commands 2) dprint - print a general expression so that it can be read back in Darwin 3) some functions now output html and/or latex 4) Darwin now supports object orientation see ?oo for a complete description 5) In Darwin 1.6 and 2.0, Unary functions (functions passing one paramter or data structure) returned the contents of the passed data structure or parameter, rather than the data structure. In Darwin 2.0, all functions pass the complete data structure or paramter. This change was made to support object orientation. 6) LongInteger - set arbitrary precision for integers 7) Polar and Complex representations of complex numbers 8) Command line options to input/output to files 9) Many text formatting commands such as Indent, Paragraph, Table 10) Darwin now supports procedure return type checking- the return type is indicated with the -> and terminated by a colon or semi-colon like this: my_function := proc () -> numeric; 'hello'; end; Executiuon of my_function (with my_function();) will cause the following error: 'my_function should return numeric, returned: hello Error, (in my_function) invalid return value' See ?returntype for more information Changes from Darwin 1.6 There are many command name changes which are listed in the files d2tod1 and d1tod2 included in the distribution. Changes from Darwin 2.0 A number of command names have been changed to be more consistant with Darwin naming conventions - most notably WriteFile and AppendFile have been changed to OpenWriting and OpenAppending. For a complete list of input/output command type ?inputoutput at the Darwin command line. Installation see the files solaris.darwin.instr or linux.darwin.instr which can be found on the cbrg web page http://cbrg.inf.ethz.ch Files included in the distribution bin/darwin.d* Darwin debugging version executable bin/darwin* Darwin executable bin/darwinipc* Darwin interprocess communication daemon ipc.o ipc object file externcall.o object file for linking with external functions (see ?CallExternal) externcall.o.d object file for linking with external functions debug version(see ?CallExternal) extcalls.h header file for linking with external functions (see ?CallExternal) ipcsend* program for sending data via the darwinipc daemon ipc.o.d ipc object file debug version ProductionCompiled date of current version (include this date in bug reports) lib/ the Darwin library files msa/ awk scripts used by the MSA routines samp.session a Darwin sample session executed.samp.session the sample session with the results enolaseTEST a test database used in the sample session d2tod1 look up table for Darwin 1 commands from Darwin 2 d1tod2 look up table for Darwin 2 commands from Darwin 1 darwin.d shell script that starts a Darwin debug version session with the library darwin shell script that starts Darwin with the library darwinipc shell script that starts darwinipc (needed only for distributed computations) Known Bugs the inheritance function for the object orientation is not yet implemented. What's next? What can Darwin do for you? As the fields of functional genomics, bioinformatics and computational biology are quickly evolving, so will Darwin. Some planned changes for the future are: interface with a database, command line editing, less cumbersome interprocess communication, automatic selector creation, and updated Match data structures. Is there something that you think would make Darwin more useful? Comments and suggestions are always appreciated at: darwin.comments@inf.ethz.ch. Libraries at a Glance ACFEndGapGlobalAlign Global Align with Cost Free End Gaps ALSCRIPT produces ALSCRIPT output AaCount returns the amino acid count of a database AaFrequency Returns the Amino acid frequency in a database AffineGlobalAlign Global Align with Affine Gap Penalty AffineLocalAlign Local Align with Affine Gap Penalty AlgManipulation mimic algebraic manipulation on noeval'd expressions AllAllIndex.drw Build index for AllAll AllAllMatch Retrieve match from AllAll gridfile AllAlpha Looks for alpha helices in a binary string AllBeta Looks for beta strands in a binary string AllSi Get all possible SI strings from SI string with unknowns BestPamShake Compute LocalAlign and FindBestPam until convergence BestStringMatch Functions to do string searching with errors BrentDistMatrix.drw Brents algorithm to find optimal PAM distance and score BuildIndex.drw Build index for accessing SwissProt by ID and AC codes Cholesky Cholesky decomposition out of SRS Clique Code for various Clique problems Complex Complex Numbers ConvertSP convert SwissProt to Darwin format ConvertToDF convert a Swissprot formatted file to Darwin format CreateGraph.drw Create graph of all entries CrossReference create a cross-reference between entries and short names DBTools various Database tools DMDMS Create Dayhoff Matrices Description contains help file description types Descriptions contains help file descriptions Domain multiple sequence alignments by domainization DomainMethods multiple sequence alignments by domainization DrawPackage draws various things DynProgGap dynamic programming between sequences with gaps EmptyJobs.drw for use with UpgradeAllAll Entries datastructure for database entries EntryInfo Gets information from database entries ExtCallFrame Create a frame program for CallExternal Families compute families of proteins from all against all FigPlot Convert a plot data set to fig format FileConv Several file conversion routines Fold Read brk (pdb) and dssp files GapHeuristics Gap Placement in multiple sequence alignments Gene Data structure defining gene-peptide references GetMissingEntries.drw use with VerifyAllAll GetNewMatches.drw use with UpgradeAllAll Gimmiks Gimmiks1 GivensElim Elimination by Givens rotations GlobalAlignBestPam Compute GlobalAlign and FindBestPam until convergence GramSchmidt Graph Graph data structures and definitions GraphFunctions Graph functions GridFile.drw grid files HTMLTools tools for HTML output HelpText.txt Help Files Histogram Various plot routines and Plot structure IPC Routines for Darwin IPC (interprocess communication) Identity returns a new identity matrix of dimension n x n Inherit incomplete InitialTopologies Tree Construction routines IntronScores Intron scoring models LLL LLL reduction LSBestSum Least Squares approximation using Latex routines for producing Latex code for Darwin routines Li expressed/silent ratios according to Li model LongInteger arbitrary precision integers MA multiple sequence alignment MA_PASInit multiple sequence alignment MAlignment multiple sequence alignment MAlignment_Color multiple sequence alignment MSAParameters multiple sequence alignment MassProfile Finding sequences from molecular weight traces Matrices Definition of various scoring matrices in common use Maximize Maximize a convex function x->f(x) using Brent's alg. Minimize k-dimensional numerical minimization MolWeight Compute the molecular weight of a sequence MultiAlign multiple sequence alignment MultiLoad Multiple loading of DnaFiles MultiPage Put several PostScript pages on a single page NNMatch Produce Nucleotide-Nucleotide match from NPMatches NPMatch nucleotide peptide match Nucleotides PItoPam get PAM number that will result in the given % identity. ParExec parallel execution code ParExec2 parallel execution code ParExecSlave parallel execution code Parser parses code Parses parsing heuristics for multiple sequence alignments Parsimony Parsimony Reconstruction Code Partitions creates a splits or partitions data structure PepPepSearch searches a database for related peptide sequences Phylip functions for Phylip Trees PhyloTree Get topology of binary tree based on distance + variance PlotPam Plot simil against pam number Polar polar representation of complex numbers PosM Offset independent matches (PosM matches) PostScriptUtilities Postscript Utilities Predict.drw secondary structure prediction PredictGenes Predict gene structure(s) from a set of NucPepMatches PrintCodonAaMatch Print alignment with peptide and nucleotide sequences PrintScript Print result of a multiple alignment (labeled by Names) PrintScriptNew Print result of a multiple alignment (labeled by Names) ProbModel probable ancestral sequences for a given tree ProbTreeNoDashes probable ancestral sequences for a given tree Rand Rand definition RandomMSA Returns sequences and perfect alignment of a random tree RandomPermut random permutation of the integers RandomTrees generate a random MA from a generated tree RandomWord some random words Refine Refines Match by searching dyn. prog. maxima to right RepeatedPairwise SearchAccNumber search Entry in loaded data base using accession number SearchDF search a database by using the data field SearchFrag search for a fragment in the database SequenceSample Select maximal sequence set where all are >= p distant Server Server files SmallAllAll SplitDF.drw Split SwissProt (or any other database) in parts Stat statistics data structures and functions StructurePrediction Predicts surface/interior and active site SummarizeTree summarizes clusters of leaves for simplification SurfInt surface/interior prediction SvdAnalysis find the best set of variables to do a least square fit SvdBestBasis least squares approx. and measures of quality of the fit TextHandling incomplete Tree Tree data structures and functions TreeMethods TreeParameters TreeUtil Tree Utilities UpgradeCliques.drw Upgrade the cliques from one SwissProt to the next UpgradeEntries.drw upgrade from one SwissProt release to the next (part I) UpgradeMatches.drw upgrade from one SwissProt release to the next (part II) VariationIndices Various variation indices over multiple alignments VectorSequence Data structure to store a sequence of similarity vectors VerifyAllAll.drw verification of the all vs. all for completeness Zeta the Riemman Zeta function atoi ascii to integer dSplits Split decomposition routines, Dress-Trees darwinit initialization files dserver Setup Darwin for access via a DarwinConnection erfcinv inverse of erfc function help help system hydrophobicity define hydrophobicity and atomic volume li expressed/silent ratio according to Li model list_power function called by the kernel for matrix exponentiation matlab Simple matlab access from Darwin print pretty printing functions sign sign function CBRG and Darwin Contact Information : General: Institute for Scientific Computing/CBRG Switchboard: +41 1 632 74 71 Telefax: +41 1 632 13 74 Postal Address: Institut fŸr Wissenschaftliches Rechnen ETH Zentrum IFW CH-8092 ZŸrich http://cbrg.inf.ethz.ch Comments, suggestions, issues, and bug reports about Darwin darwin.comments@inf.ethz.ch Darwin listserv darwin@inf.ethz.ch