GMOD / jblast-jbconnect-hook

JBrowse/Galaxy-Blast Plugin
http://jblast.readthedocs.io
Other
4 stars 1 forks source link

multiple pre-configured blast settings. #86

Closed enuggetry closed 6 years ago

enuggetry commented 6 years ago

support multiple pre-configured blast parameter settings in the config and be able the select preconfig settings in the job creation. However, there should be some abstraction for the galaxy run and the stand-alone run.

enuggetry commented 6 years ago

Blast profile framework used in standalone service. (In Galaxy Service, the blast profile is generally defined in the galaxy workflow.)

General policy: (pseudo code) if the job does not have a profile defined, the defaultBlastProfile will be used. if the job has blastProfile=string, it will select from preconfigured blastProfiles[] in config. if the job has blastProfile=object, the profile will be taken from the job description.

Thus, the profile can be defined either in webservice or select preconfigured profile and if not defined at all, it will just default to defaultBlastProfile.

The profile data is written to a JSON file and then passed to the blast script that runs NCBI blast.

// in globals.js
       jblast: {
            blastResultPath: "jblastdata",
            blastResultCategory: "JBlast Results",
            trackTemplate: "jblastTrackTemplate.json",
            import: ["blastxml"],
            defaultBlastProfile: 'htgs',
            blastProfiles: {
                // blast profiles are parameter lists that translate to blastn cli parameters sets
                // (i.e. for "remote_htgs" would translate to "blastn -db <dir>/htgs/htgs -remote")
                // These will override any default parameters defined in blastjs
                'htgs': {
                    'db': 'htgs'
                                 // if the db has no directory punctuation, it will be translated to the appropriate local database that has been installed either by blast_downloadDb or blast_setPath cli
                },
                'remote_htgs': {
                    'db': 'htgs',
                    'remote': ""
                }
            }
        },