The source tree

From genomewiki
Revision as of 14:56, 16 September 2009 by Max (talk | contribs)
Jump to navigationJump to search

The source tree is the collection of all code used by the genome browser group. You can find information [in the help pages http://genome.ucsc.edu/admin/jk-install.html on how to install it and in this wiki for Debian/Ubuntu.

"If you can conceive of a bioinformatics job that could be done, it probably already has been done in the kent source tree." (Hiram)

"The truth is in the source" (slightly adapted from Angie's "Chains Nets"-article)

The intent of this page is just to give an impression of the source tree's layout. See Implementation_Notes for details about the programs.

  • Tools to explore the source tree:
    • you can use ctags to index the source tree
    • and use cscope to search in the source tree (any better ideas for searching?)
    • midnight commander and a rainy day to explore the source tree...
    • Hiram has a nice list created from the help infos
    • Use the bash construct "2>&1" if you want to pipe help messages to less. By default help goes to stderr and is not readable.
      Example: overlapSelect | less does not work, overlapSelect 2>&1 | less is a better idea.
src/java
You better hate Java if you're dealing with the UCSC genome browser. Repeat: "I love pointers!".
src/product
Very important info on how to install the gbdb on your own computer
src/utils
Various small tools, not especially related to a particular genome
src/hg
Almost all tools related to any kind of genome
src/hg/mousestuff
everything related to chaining, netting and whole-genome alignments
src/hg/makeDb
Tools and scripts (!) that were used to load data into the databases. Most of them in subdirs here in the format hgLoadx with x for maf/bed/wiggle/axt/net/chain/out/etc. If you understand these, you can build your own genome browser. :-) Here are also the trackDb.ra-files, something like a list of all tracks, their descriptions and instructions on how to display them.
src/parasol
Jim's parasol cluster system with documentation
kent/src/hg/psl
Everyhing that has to do with psls ("psl stands for ps-Layout, where ps stands for PatSpace (presumably from Pattern-Space) which comes from a sort of earlier predecessor of blat", Galt)
  • UCSC terms:
    • axt: some aligner, maybe called faAlign? Also the name of a file format for local alignments.
    • psl file: A format for local alignment hits used by blat. (axt and psl are convertible with axtToPsl, blastToPsl is also possible (but not tblastx))
    • chaining: post-treating local alignments to see if two aligned regions that were located close on the query are located close to each other on the subject. Here is more info: Chains Nets
    • chain file: positions of identical nucleotides (=an alignment, you can use pslToChain to create it), ->Chains Nets
    • netting: post-treating chains to group together many chains to see where regions do align (the alignment is lost), ->Chains Nets
    • net file: positions of alignable regions
    • Xa file: ? pslToXa ? What is Xa?


Cool Files:

  • /kent/src/oneShot/testScripters: cool collection of scripts to test the speed of various languages, result as expected: C with Jim's libs is much faster than anything else