Skip to content

Instantly share code, notes, and snippets.

@robsyme
Created November 5, 2011 08:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save robsyme/1341255 to your computer and use it in GitHub Desktop.
Save robsyme/1341255 to your computer and use it in GitHub Desktop.
* Topic
|---+ Biological data resources
| |---+ Laboratory resources
| |---> Microarrays
| |---> Cell culture resources
| +---> Medical informatics resources
| +---+ Biological science resources
|---> Cell biology resources
|---+ Developmental biology resources
| +---> Embryology resources
+---> Anatomy resources
|---+ Nucleic acid analysis
| +---> Nucleic acid design
|---+ Protein analysis
| +---+ Protein function analysis
+---> Protein function prediction
|---+ Sequence analysis
| |---> Sequence composition analysis
| |---+ Sequence comparison
| +---> Sequence clustering
| |---> Sequence feature detection
| |---+ Sequence classification
| |---> Sequence motifs
| +---> Sequence profiles and HMMs
| +---> Primer or probe design
|---+ Structure analysis
| |---+ Structure prediction
| +---> Ab initio structure prediction
| |---+ Structure comparison
| |---> Structural (3D) profiles
| +---> Structural clustering
| +---> Structure determination
|---+ Phylogenetics
| +---> Phylogeny reconstruction
|---> Proteomics
|---+ Data handling
| |---> Data search and retrieval
| |---> Data visualisation
| |---> Biostatistics
| |---> Data acquisition and deposition
| |---> Workflows
| |---> Data processing and validation
| +---> Data types and objects
|---+ Chemoinformatics
| |---+ Pharmacoinformatics
| +---> Drug design
| +---> Toxicoinformatics
|---> Transcriptomics
|---+ Literature and reference
| |---> Documentation and help
| +---+ Literature analysis
+---> Text mining
|---+ Ontologies, nomenclature and classification
| |---> Ontologies
| |---> Annotation
| |---> Nomenclature
| +---> Taxonomy
|---+ Genetics
| |---> Quantitative genetics
| +---> Population genetics
|---+ Systems biology
| |---> Biological system modelling
| +---> Network or pathway analysis
|---+ Ecoinformatics
| +---> Biodiversity
|---+ Genomics
| |---> Functional genomics
| +---> Comparative genomics
+---> Immunoinformatics
---
Biological data resources:
- Laboratory resources
- Biological science resources
Nucleic acid analysis:
- Nucleic acid design
Protein analysis:
- Protein function analysis
Sequence analysis:
- Sequence composition analysis
- Sequence comparison
- Sequence feature detection
- Sequence classification
- Primer or probe design
Structure analysis:
- Structure prediction
- Structure comparison
- Structure determination
Phylogenetics:
- Phylogeny reconstruction
Proteomics: []
Data handling:
- Data search and retrieval
- Data visualisation
- Biostatistics
- Data acquisition and deposition
- Workflows
- Data processing and validation
- Data types and objects
Chemoinformatics:
- Pharmacoinformatics
- Toxicoinformatics
Transcriptomics: []
Literature and reference:
- Documentation and help
- Literature analysis
Ontologies, nomenclature and classification:
- Ontologies
- Annotation
- Nomenclature
- Taxonomy
Genetics:
- Quantitative genetics
- Population genetics
Systems biology:
- Biological system modelling
- Network or pathway analysis
Ecoinformatics:
- Biodiversity
Genomics:
- Functional genomics
- Comparative genomics
Immunoinformatics: []
require './obo'
require 'open-uri'
require 'tree'
# Please excuse this terrible, terrible code. The obo parser was just a quick project to fulfil a quick need.
# You'll need the obo.rb in the same directory. Get it from https://github.com/robsyme/obo/blob/master/lib/obo.rb
include Tree
def find_children(parent_node, obo_elements)
obo_elements.find_all do |element|
element['is_a'] == parent_node.content
end
end
def add_children(parent_node, elements)
children = find_children(parent_node, elements)
if children
children.each do |child|
child_node = TreeNode.new(child['name'], child['id'])
parent_node << child_node
add_children(child_node, elements)
end
else
return
end
end
elements = open("http://downloads.sourceforge.net/project/edamontology/EDAM_beta13.obo") {|ontology_file| Obo::Parser.new(ontology_file).elements.to_a}
root_node = TreeNode.new("Topic", "EDAM:0000003")
add_children(root_node, elements)
root_node.print_tree
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment