29 | | Downstream: |
30 | | * wiki:Plugins/GwasMolgenis - for GWAS studies like in EU-GEN2PHN, LifeLines and BBMRI-NL |
31 | | * wiki:Plugins/QtlMolgenis - for QTL studies in model organisms like EU-Panacea |
| 29 | Design 1: linking in code |
| 30 | We imagine a procedure where when a user runs the generator (ant script, nothing else) |
| 31 | - downloads the core molgenis and starts the model parser/generator |
| 32 | - when <import="db" .../> is in your local model dependencies are automatically checked out from svn to /generated/java (incl libs!) |
| 33 | - each of these dependencies is regenerated in dependency order |
| 34 | - tests run to verify that the modules are sanitized (no compile errors, test cases work) |
| 35 | - and then produced as osgi modules that are simply loaded by the current project during the rest of development |
| 36 | And have a 'clean' action to redo the procedure. |
| 37 | |
| 38 | Design 2: downloading maven/osgi modules. |
| 39 | We imagine a procedure where when a user runs the generator from maven (maven pom + molgenis core as plugin, nothing else) |
| 40 | - downloads all depedencies using maven model (all MOLGENIS settings should be in this model as well to keep it simple?) |
| 41 | - add generate tasks to maven to get all stuff done |
| 42 | Complicating factor here is that the maven repos should be rebuild now and then. |
| 43 | |
| 44 | We could allow both design 1 and 2 in order to speed up development? |
| 45 | |
| 46 | i.e. organize maven compatible but still allow ant.xml type of interactions to do this low-tech. |
| 47 | Or use maven in the back and don't necessarily bother the user with it. |
| 48 | |
| 49 | = Core modules = |
| 50 | These are the foundational building blocks that can be reused between all MOLGENIS applications. |
| 51 | Package org.molgenis.* |
| 52 | |
| 53 | Core: |
| 54 | * [wiki:Plugins/OrgMolgenis core] - core platform of model (parsers), generators and util packages |
| 55 | * [wiki:Plugins/OrgMolgenisDb db] - database interface framework on top of MySQL, PostgreSQL and HypersonicSQL (extends core) |
| 56 | * [wiki:Plugins/OrgMolgenisExchange exchange] - file import/export mechanisms from and to csv, tab, excel, (xml), etc (extends db) |
| 57 | * [wiki:Plugins/OrgMolgenisApi api] - application programming interfaces to Java, R, REST, SOAP, RDF, etc on top of Db (extends exchange) |
| 58 | * [wiki:Plugins/OrgMolgenisUi ui] - web user interface framework with forms, menus and plugins (extends api) |
| 59 | * [wiki:Plugins/OrgMolgenisCompute compute] - compute interface framework for short, long and parallel running computations (extends ui?) |
| 60 | |
| 61 | Discussion: |
| 62 | ui could be moved to depend on core only, and then have other packages extend on that to add particular UI components for db, compute, etc. |
| 63 | Or have separate ui extensions like ui.db, ui.compute, etc. |
| 64 | |
| 65 | = Components = |
| 66 | These are the semi-finished building blocks that can be shared between different applications to reuse common work. |
| 67 | These components typically provide data model (modules) that need to be generated before a plugin is ready to use. |
| 68 | Hence, there is a need to regenerate on the first installation of the plugin. |
| 69 | package org.molgenis.* |
| 70 | |
| 71 | Cross cutting: |
| 72 | * [wiki:Component/OrgXgapAuth auth] - secure authentication and sharing framework (extends ui) |
| 73 | * [wiki:Component/OrgXgapVersionable versionable] - mechanism to have versioned data elements by simply extending an interface |
| 74 | |
| 75 | Discussion: need ability to weave this in later, like a special decorator that is applied everywhere? |
| 76 | Or should we just make these core features and move it into db package? |
| 77 | |
| 78 | Generic: |
| 79 | * [wiki:Component/OrgXgapOnto molgenisdata.onto] - for using ontologies including tree based browser, search box (extends ui) |
| 80 | * [wiki:Component/OrgXgapMatrix molgenisdata.matrix] - for working with matrix like data having 'dimensionelements' and 'dataelements' |
| 81 | * [wiki:Component/OrgXgapProtocol molgenisdata.protocol] - for track and tracing of materials/data, protocols, protocolapplications (compatible with MAGE-TAB SDRF) |
| 82 | * [wiki:Component/OrgXgapTool tool] - for integrating R scripts onto the application (extends protocol, compute) |
| 83 | * [wiki:Component/OrgXgapMaterialTracker tool] - for integrating R scripts onto the application (extends protocol) |
| 84 | |
| 85 | Domain: |
| 86 | * [wiki:Component/OrgXgapLocus locus] - tools for managing and browsing genomic sequence annotations |
| 87 | * [wiki:Component/OrgXgapPheno pheno] - for representing deep phenotypic data collected in clinics and the field (extends onto, tracker, matrix) |
| 88 | * [wiki:Component/OrgXgapMutation muta] - for working with mutating data conforming to HGVS nomenclature (extends pheno) |
| 89 | |
| 90 | More ideas: pedigree, comments |
| 91 | |
| 92 | |
| 93 | = Applications = |
| 94 | Systems are ready to use and download. Ideally end users would be able to choose from these online. |
| 95 | |
| 96 | * [wiki:Apps/PhenoTrackerMolgenis PhenoTracker] - for storing phenotypics annotations on individuals and panels |
| 97 | * [wiki:Apps/GwasMolgenis GwasPlatform] - for GWAS studies like in EU-GEN2PHN, LifeLines and BBMRI-NL |
| 98 | * [wiki:Apps/QtlMolgenis QtlPlatform] - for QTL studies in model organisms like EU-Panacea |
| 99 | * [wiki:Apps/MutationMolgenis MutationTracker] - for locus specific annotations (extends pheno, muta) |
| 100 | * [wiki:Apps/ShortReadMolgenis SequenceArchive] - for storing, QC-ing and releasing short read data from NGS |