Age | Commit message (Collapse) | Author |
|
gen_ind_genofiles.py is a command line script to generate genotype files for groups of
individuals/samples, taking a source .geno or .json file and a target 'dummy' .geno file as input
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* wqflask/wqflask/metadata_edits.py: Import "extract_invalid_csv_headers"
and "get_allowable_sampledata_headers".
(display_phenotype_metadata): Pass the allowable headers to the
template.
(update_phenotype): If a user uploads data with a column header that's
not in the db, don't upload the file, and send a warning message.
* wqflask/wqflask/templates/edit_phenotype.html: List the allowable
headers in the template.
|
|
This is a WIP.
|
|
|
|
Using "database_connection" within a context-manager makes sure that
the SQL connection that is created is closed.
* wqflask/wqflask/metadata_edits.py (display_probeset_metadata):
Connect to the db within a context-manager.
(update_phenotype): Ditto.
(update_probeset): Ditto.
(approve_data): Ditto.
|
|
|
|
* wqflask/wqflask/metadata_edits.py (approve_data): Explicitly close a
connection after it is used.
|
|
|
|
|
|
|
|
* wqflask/wqflask/metadata_edits.py (approve_data): Update query
strings.
|
|
* wqflask/wqflask/metadata_edits.py: Replace imports that start with
`db.traits` with `db.sample_data`.
|
|
|
|
* wqflask/wqflask/metadata_edits (update_phenotype): The logic was for
generating csv_diff and removing insignificant values in the edits was
moved to gn3; use those functions instead of the manual way.
|
|
|
|
|
|
|
|
Remove the `wqflask.utility.tools` and retrieve the `SQL_URI` setting
directly from the environment or the settings file. This breaks the
circular imports and makes the `wqflask.database` module standalone.
Move the `parse_db_url` function to the `wqflask.database` module,
where it is more sensible to be.
|
|
Use the `with` context manager with database connections and cursors
to ensure that they are closed once they are no longer needed.
Where it was not feasible to use the `with` context manager without a
huge refactor/rewrite, the cursors and connections are closed manually.
|
|
This commit gets rid of the multi-step partial correlations process
replacing it with a single-step process.
Summary of changes:
* wqflask/wqflask/collect.py: Add function to format the trait details
in a format that is usable for the partial correlations system.
* wqflask/wqflask/database.py: Provide function to create a connection
to the database
* wqflask/wqflask/partial_correlations_views.py: Rework the code to
enable the one-step process for the partial correlations
computations
* wqflask/wqflask/static/new/javascript/partial_correlations.js: Get
rid of code that supported the multi-step process
* wqflask/wqflask/templates/collections/view.html: Remove inconsistent
UI elements. Attach traits info in a form usable for the partial
correlations
* wqflask/wqflask/templates/partial_correlations.html: delete html
template
* wqflask/wqflask/templates/partial_correlations/pcorrs_error.html:
provide a html template to display errors in the partial
correlations computation process
* wqflask/wqflask/templates/partial_correlations/pcorrs_poll_results.html:
UI template to provide user with feedback as the computations
continue in the background
* wqflask/wqflask/templates/partial_correlations/pcorrs_results_presentation.html:
UI template to present the results of successful computation
* wqflask/wqflask/templates/partial_correlations/pcorrs_select_operations.html:
UI template to trigger the partial correlations computations
* wqflask/wqflask/templates/tool_buttons.html: Add the partial
correlations button to the template to ensure a consistent look and
feel
|
|
* unlink file for JSONDecodeError
* fix for avoiding caching empty dicts
* fix for checking null dicts
|
|
Hyphens in fulltext searches were causing problems, but a recent commit
I made to fix the issue apparently had some side effects for other types
of searches, in addition to make such searches someewhat slower
Apparently the issue wasn't just the hyphens, but also the text to
either side of the hyphen being lower than the minimum word length
(which is either 2 or 3 for us, can't remember). To try and address
this, I did a regular expression check for a pattern with text of <3
legnth to either side of a hyphen, and when that's the case I add quotes
from the search term plus an asterisk, which seeems to be necessary to
get it to not treat the hyphen as a delimiter and to correctly detect
the search term
|
|
|
|
This CSS is overwritten by CSS from trait_list.css and show_trait.css
|
|
|
|
|
|
|
|
|
|
ProbeSet queries previously weren't dealing with aliases correctly,
because it was doing a MATCH/AGAINST against the ProbeSet.alias field,
but that field usually contains a list of gene symbols separated by
semi-colons (so it wouldn't detect the alias unless there was only a
single alias.
To fix this, I added some LIKE conditions, searching for the possible
variations. This is a little awkward, because I needed to make sure to
avoid a situation where, for example, an alias like 'LPD-1' matches a
search for 'PD-1'. I don't think the way it currently works is
efficient, but I don't know of any good alternative without changing the
way we store aliases in the database.
|
|
|
|
|
|
|
|
Moved the Heatmap display area above the table selection options (since
it didn't make sense to have it below those)
Added a button for clearing the Heatmap area and hiding the Heatmap
options
Added some margins to the Heatmap options
|
|
Heatmap options are now shown after the user clicks the button
I also reordered the Heatmap and Partial Correlation buttons, since it's
awkward to get the Heatmap options to display well if its button is
second. We'll probably completely rework this later, but for now this
looks a little less ugly.
|
|
Moved Partial Correlations and Generate Heatmap buttons to be lined up
below the other buttons and hide the Heatmap orientation selection (JS
will be added to show it after Heatmap is run)
|
|
Later this button should just be included with the other function buttons.
There's no need for it to be in a separate form, since it should be able
to take the same trait list input as all the other collection page
functions (with just the action url for the form changing)
|
|
Trait data caching wasn't working correctly because it didn't account
for the samplelist, causing caching to work incorrect in any situation
where the target dataset's samplelist wasn't the same as that of the
trait being correlated against. Trait data is stored as a dictionary
where the keys are trait IDs and values are *lists* of sample values.
This means that the caching needs to account for the exact same set of
samples; otherwise you'll end up with samples being mismatched (since
"the third sample with a value" for one dataset's trait might not be the
same as "the third sample with a value" for another dataset's trait).
To fix this, I added the samplelist to the functions that generate and
fetch the hash file. This will require more cache files, though, so this
should probably be reexamined later to make the code work with only a
single cache file for each dataset.
|
|
These checks are only relevant for python pre-2.2.
* wqflask/utility/svg.py: Remove python pre-2.2 checks.
|
|
There wasn't any search text for cis/trans searches including both
chromosome and exclusion zone, so I added somee
|
|
', Geno' was being added to the FROM clause, which is wrong becausee
Geno is included in the query via a JOIN (and caused an error making
those searches not work)
|
|
|
|
|
|
|
|
|