-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Master Release v2.8.0 #248
Conversation
This handles subsequent chunks arriving after a delay when called via web api : blastn_request.bash -> blastServer.py -> blastn_cont.bash
issues
use new DocumentTimeline(), as per : These can be deferred to the next branch.Moved items here from #234 :
Version Updates
|
factor Database Configuration out of docker_setup.md to create database-configuration.md and add section for Pretzel 2.7 update.
feature.js : dnaSequenceSearch() : pass options as param instead of via data, so that it gets optionsFromRequest. for removeExisting(), prefix parent. to datasetName, to align with convertSearchResults2Json() in dnaSequenceSearch.bash. sequence-search.js : dnaSequenceInput() : log err because err.responseJSON was undefined (maybe add promise.catch). unviewDataset() : handle undefined replacedDataset (dataset added from result may not have been received yet via getDatasets()) api-server.js : getDatasets() : handle TaskCancelation, don't set model.datasets list to [].
... in frontend/package-lock.json, partially via browserslist, but got Cannot find module internal/util/types, so then manual : npm install caniuse-lite
Use flat-cache in place of memory-cache. closes #249
pass noPrune=true to cache.save(). #249
sequence-search.js : add searches, an array of sequence-search-data. past() : delay evaluation of event.target.value. Move promise handling from dnaSequenceInput() and unviewDataset() to blast-results.js. blast-results.js : add showSearch, resultEffect(). factor element ids : sequence-search-output to search.tabId and blast-results-hotable to search.tableId, so that each search result tab and table can have a unique element id. blast-results.hbs : add x-toggle : showSearch. if showSearch, display search.parent, .seq. add sequence-search-data.js, which wraps the search inputs, id and status.
... 24-hour sequence-search.hbs : nav.item : display search.timeId sequence-search-data.js : init() : set .timeId to HH:MM:SS.
sequence-search.js : dnaSequenceInput() : if addDataset, refreshDatasets after dnaSequenceSearch. left-panel.hbs : pass refreshDatasets to sequence-search
sequence-search.js : dnaSequenceInput() : after refreshDatasets, if viewDatasetFlag then viewDataset. block.js : getCountsForInterval() : handle interval undefined. sequence-search.hbs : add checkbox : viewDatasetFlag. mapview: add viewDataset() and pass to left-panel, which passes it to sequence-search. updateModel() : return datasetsTask.
sequence-search.js : declare and comment viewDatasetFlag. blast-results.js : use upload-base and upload-table. add columnsKeyString, c_name, c_chr, c_pos. add services store, auth, classNames:blast-results. add viewDatasetFlag. add didReceiveAttrs() : initialise selectedParent, namespace. add validateData() app.scss : .blast-results : margin. sequence-search.hbs : pass to blast-results : datasets, refreshDatasets, viewDataset. blast-results.hbs : from data-csv : add message fields, and inputs : selectedDataset, selectedParent (currently read-only), namespace. add checkbox viewDatasetFlag, submit button. add upload-base.js, factored from data-base.js add upload-table.js, factored from data-csv.js
blast-results.js : dataMatrixEffect add dependency : table.
…and id=namespace which are common and not required. remove id=dataset_new and id=namespace from sequence-search.hbs, blast-results.hbs, data-csv.hbs, because those ids are not used, and they clash because multiple concurrent elements have the same id.
blast-results.js : dataMatrix() : return [] while .data is initially undefined.
dataset.js : tableUpload() : if feature.end is defined, append it to value[]. blast-results.js : validateData() : if row[c_end] is defined, pass it as feature.end. A similar change can now be made in data-csv.js : validateData() to support end position : perhaps if row.val contains '-' then split it into [pos start,end].
sequence-search.js : add closeResultTab() sequence-search.hbs : in search nav.item, add button closeResultTab
blast-results.js : add tableVisible, and add it as dependency for activeEffect(). showTable() : check rootElement.parentElement to see if tableVisible has removed table DOM. blast-results.hbs : add x-toggle for tableVisible. factor showSearch x-toggle to form added elem/x-toggle. Drop padding to align with other toggle. Move search.tableId from bottom to top, wrapped in #if tableVisible.
blast-results : add tableModal
x-toggle.hbs : add yield so that e.g. ember-tooltip is within the toggle. blast-results.hbs : add tooltips for toggle value=tableVisible and button-base tableModal.
... works; MVP for discussing the features. axis-ticks-selected.js : add featureIsTransient(f), and use in featuresOfBlockLookup() : show the features of un-viewed blocks, when block is reference. blast-results.js : change tableModal true -> false (i.e. initially table is in left panel, not in modal dialog). add viewFeaturesFlag, dataFeatures() (factored from validateData()), blockNames(), viewFeaturesEffect(). paths-progressive.js : pushFeature() : default for param flowsService, return record found by peekRecord(). selected.js : toggle() : add param add : if true then add, if false then remove, if undefined then toggle (as before). add transient.js : with pushFeature(), pushData() (based on pathsPro : pushFeature), datasetForSearch(), pushDatasetArgs(), pushBlockArgs(), blocksForSearch(), showFeatures(). blast-results.hbs : use viewFeaturesEffect, add checkbox viewFeaturesFlag.
…ence of the search blast-results.js : viewFeaturesEffect() : if viewFeaturesFlag, viewDataset(parentName)
... feature and blast can be open by default left-panel.hbs : use search-lookup split search-lookup out of manage-search, so that the order can be changed.
... (e.g. about not selecting a reference) to appear between the search button and the drop down list
this relates to upload-table.js, and to transient.js : showFeatures() -> .pushFeature(), and to backend tableUpload(). dataset.js : tableUpload() : data.features.forEach : include feature.values if defined. blast-results-view.js : extend columnsKeyString to cover all columns (after pos,end). didReceiveAttrs(): use this.registerDataPipe to connect validateData(). dataFeatures() : place the remainder of the columns, after the required/standard columns name/chr/pos/end, into feature.values. blast-results.js : move store,auth here from blast-results-view.js. blast-results.hbs : pass registerDataPipe to blast-results-view. upload-table.js : submitFile() : .validateData() may be defined via .dataPipe.
blast-results-view.js : validateData() : use getDataAtCol() to get the viewed checkbox values and use them to filter the returned features.
paths-progressive.js : verifyFeatureRecord() f may have ._name instead of .name, after push; this change could have been included in 1486120.
blast-results-view.js : factor viewParent() out of viewFeatures(). Add parentIsViewedEffect() to update viewAllResultAxesFlag when user un-views an axis of the result. mapview.js : viewDataset() : if ! view, unview the data blocks before the axis / reference block. blast-results-view.hbs : entail parentIsViewedEffect.
…(OK), return empty result to client feature.js : dnaSequenceSearch() : searchDataOut() : if ! chunk, reply OK with []. child-process.js : childProcess() : child.on(close ) : if status OK and ! child.killed, dataOutCb(null ).
sequence-search.js : add searchStringMinLength : 25, inputsOK() : depend on .text, pass that to checkTextInput() and if warning set .warningMessage. checkTextInput() : add check : rawText.length < this.searchStringMinLength. move empty-input warningMessage from dnaSequenceInput() to checkTextInput().
Move panel message from below BsTab into tab.pane #sequence-search-input so it is close to Search; this means it won't be visible when user views a blast-results tab; this is probably OK since the messages it displays will mostly occur in response to actions in sequence-search-input.
… (dnaSequence) ... to handle parallel requests. feature.js : add sessionIds, sessionIndex(). dnaSequenceSearch() : add queryStringFileName : use sessionIndex() to augment file name dnaSequence. (re. comment each user session may have 1 concurrent dnaSequenceSearch; this will be implemented in frontend client)
sequence-search.js : rename loading : taskGet to searching : sendRequest (for .isRunning). searchButtonDisabled() : use .searching. split sendRequest() as a task out of dnaSequenceInput(). sequence-search.hbs : if this.searching, display Searching ...
…ition data-csv.js : Use these from upload-table.js (uploadTable), which was factored from data-csv.js in 9640e0f : getDatasetId(), isDupName(), onNameChange(), onSelectChange(), actions.submitFile. define column index constants : c_name, c_block, c_val, c_end. add viewDatasetFlag. table config : append column : End. validateData() : use table.getData() in place of .getSourceData() (see comment in checkBlocks() related to handsontable version update 7 -> 8). validateData() and checkBlocks() : use array indexes c_name, c_block, c_val, c_end in place of row.name, row.block, row.val. left-panel.hbs : pass viewDataset to upload-data. upload-data.hbs : pass-thru viewDataset to data-csv. data-csv.hbs : add checkbox View : viewDatasetFlag. This commit doesn't enable additional .values columns, that can be done by factoring blast-results-view.js : dataFeatures()
sequence-search.js : default range sliders to 0 blast-results-view.hbs : change text 'Show / Hide all Features (triangles)' to 'Select / Deselect all' blast-results.hbs : don't show 'Show Table' toggle
... when switching from results-view tab to sequence-search input tab and back again. sequence-search.js : update comment for inputIsActive(), which is actively used since 086ea39. blast-results-view.js : change CP viewRow() to viewRowInit() which computes initial search.viewRow, called in didReceiveAttrs() if this is the first time that search result has been displayed. viewFeatures() : pass viewRow to showFeatures(). transient.js : showFeatures() : add param view
…play. blast-results-view.js : declare viewAllResultAxesFlag. didReceiveAttrs() : if viewRow is defined, use it to initialise viewFeaturesFlag. add : viewFeaturesChange(), narrowAxesToViewedEffect(), narrowAxesToViewed(), resultParentBlocks(). viewFeatures() : use narrowAxesToViewed() in place of viewParent(). afterChange() : set viewRow[row] before narrowAxesToViewed and showFeature. use narrowAxesToViewed(). blast-results-view.hbs : replace use of parentIsViewedEffect to narrowAxesToViewedEffect. viewAllResultAxesFlag is now constant true. connect action viewFeaturesChange to checkbox viewFeaturesFlag.
…ckboxes to be unticked initially sequence-search.js : didReceiveAttrs() : check viewRow.length - initially viewRow will be initialised from no data (if the request takes a few seconds); calculating viewFeaturesFlag from empty viewRow results in false, and then viewRow=[false,...].
This may address stray transition on feature lable - in sequence search result, all feature triangles have the same name, and this would confuse the d3 join and could cause entry/exit transitions. axis-1d.js : FeatureTicks:showLabels() : append location (feature.value[0]) in the keyFn.
blast-results-view.js : narrowAxesToViewed() : handle block undefined - if parent does not have block with name matching result; don't display an axis. resultParentBlocks() : trace when parent has no blocks but search result has. createTable() : for columns after the view checkbox : disable editor .
…e required. paths-progressive.js : getBlockFeaturesInterval() : catch task, if didCancel() then return lastSuccessful.value otherwise re-throw.
… to/from modal. The role of viewFeaturesFlag has changed in 79d650b; it is now only used to configure the toggle which sets viewRow[*], it doesn't drive viewFeatures(). feature-list.js : appendSelectedFeatures() : trace added param remove. factor viewFeaturesFlagIntegrate() out of didReceiveAttrs(). viewRowInit() : pass in viewFeaturesFlag so it is not locked to this.viewFeaturesFlag. add viewFeaturesAll(). viewFeaturesChange() : access viewRowInit via viewFeaturesAll() which passes viewFeaturesFlag as param so run_later is not required here. viewFeaturesEffect() : depend on viewRow instead of viewFeaturesFlag. viewFeatures() : rename param viewFeaturesFlag -> active. afterChange() : call .viewFeaturesFlagIntegrate(). transient.js : showFeatures() : rename param viewFeaturesFlag -> active
…ations() also. axis-1d.js : FeatureTicks:showTickLocations() : keyFn() : append value[0] to key, because features created from blast search results will all have the same name (same change as applied to .showLabels() in 18196f2). 0a78044 48368 Jun 19 01:06 frontend/app/components/draw/axis-1d.js
…ng to modal. blast-results-view.js : tableModal : width:70vw -> 90vw, wide enough to expose all columns; otherwise get 'The provided element is not a child of the top overlay' in getRelativeCellPosition() from setupHandlePosition(); possible alternative work-around noted in comment. showTable() : handle search.promise undefined; log and stop if table defined but not connected (these may not be needed) createTable() : remove : $(() => ); when switching to modal this appears to cause duplication of the div.handsontable.{ht_master,ht_clone_{top,bottom,left,top_left_corner} and doesn't seem required - copied from data-csv.js:createTable() where it is probably also not required. add param data (this.dataForTable) so that initial data is not required. 5a7f36b1 23319 Jun 22 11:19 frontend/app/components/panel/upload/blast-results-view.js (on dev)
axis-1d.js : showLabels() : Change pSM to pS because pSE is handled separately. Use transition.call directly instead of transitionFn() which wraps in run_bind() (labelsTransitionPerform() in axis-ticks-selected.js, axisScaleEffect()) - seems to effect timing.
axis-1d.js : if transition is used, set y (attrY_featureY) for .enter() after the transition time; also set text then because default y is (0) near the top of the axis. d3-svg.js : add nowOrAfterTransition()
blast-results.{js,hbs} : add setTableModal() to set tableModal in later(), to avoid warning : attempted to update tableModal, but it had already been used previously in the same computation.
…itioned axis-1d.js: showTickLocations() : instead of using .merge() (pSM), show .enter() elements (pSE) (at their final posiiton) after the pS elements have transitioned to their final position, using nowOrAfterTransition(). factor to form pathAndColour() so it can be called separately for pS and pSE.
dev_blastResult() : add param test file name. Add devResultDir to identify location of test files. Commented-out sleep 10 is useful to simulating the delay of a typical blast query.
…tics Master Release v2.8.0 #248
including branches :
There are some items in 239 and 233 which are deferred for a later branch