aboutsummaryrefslogtreecommitdiff
path: root/gn3
AgeCommit message (Collapse)Author
2022-03-26Make creation of database connections more flexibleFrederick Muriuki Muriithi
* Pass the URI string to parse into `gn3.db_utils.parse_db_url` rather than relying on a global variable. * Pass the URI string to use to generate the database connection to the `gn3.db_utils.database_connector` function rather than depending on a global variable. Use the global `SQL_URI` variable as a default value if one is not provided when calling the function. The changes above make the creation of the database connection more flexible, since the database URI passed into the function can be changed at the site where the call is made. The port is also parsed, and used where present, to allow for either a socket connection or one based on a port.
2022-03-23Run python-black on file and fix other pylint issues.BonfaceKilz
See: <https://ci.genenetwork.org/jobs/genenetwork3-pylint/126> * gn3/computations/rqtl.py: Run `black gn3/computations/rqtl.py`. Also, manually fix other pylint issues.
2022-03-22Fixes pylint errorszsloan
2022-03-22Fixed mypy typing errorszsloan
2022-03-22Tried to make the docstrings more consistentzsloan
2022-03-22Add typing to some functionszsloan
2022-03-22Add functions for getting proximal/distal markers for each pseudomarker ↵zsloan
position in pair-scan results + return only the sorted top 500 results
2022-03-22Fix issue that causes R/qtl to always run pair-scan even if pair-scan isn't ↵zsloan
selected
2022-03-22Added genofile name to inputs for processing R/qtl pair-scan results, since ↵zsloan
it's needed to store the proximal/distal markers for each position
2022-03-22Removed quotes from beginning and end of chromosome stringzsloan
2022-03-22Fixed a cople function calls to use the updated function nameszsloan
2022-03-22Create pairscan_for_figure and pairscan_for_table functions that return the ↵zsloan
Dict and List respectively used for the pair scan figure and the table showing the results
2022-03-22Fix imports to import both process_rqtl_mapping and process_rqtl_pairscan in ↵zsloan
api/rqtl.py
2022-03-22Added pairscan boolean kwarg and process_rqtl_pairscan function for reading ↵zsloan
in pairscan results + renamed process_rqtl_output to process_rqtl_mapping to distinguish between that and pairscan
2022-03-18Clean all csv fields before diffingBonfaceKilz
There was a subtle bug where "csvdiff" generated an error related to "different column headings" caused something akin to diffing: "a, b \n, ..." with "a, b\n, ...". * gn3/csvcmp.py (csv_diff): Clean csv texts before any diffing. * tests/unit/test_csvcmp.py (test_csv_diff_same_columns): Modify test case to capture aforementioned bug.
2022-03-18Create new function for cleaning individual fields in csv textBonfaceKilz
* gn3/csvcmp.py (clean_csv_text): New function. * tests/unit/test_csvcmp.py: Import "csv_text". (test_clean_csv_text): Test case for the above.
2022-03-15Feature/refactored pca (#79)Alexander Kabui
* compute zscore function * test case for computing zscore * function to compute pca * generate scree plot data * generate new pca trait data from zscores and eigen_vec * remove redundant functions * generate factor loading table data * generate pca temp dataset dict * variable naming and error fixes * unit test for processing factor loadings * minor fixes for generating temp pca dataset * pass datetime as argument to generate_pca temp dataset function * add unittest for caching pca datasets * cache temp datasets * ignore missing imports for sklearn * mypy fixes * pylint fixes * refactor tests for pca * remove ununsed imports * fix for generating pca traits vals * mypy and code refactoring * pep8 formatting and add docstrings * remove comments /pep8 formatting * sort eigen vectors based on eigen values * minor fix for zscores * fix for rounding variance ratios * refactor tests * rename module to pca * rename datasets to traits * fix failing tests * fix caching function * fixes return x and y coordinates for scree plot * expand exception scope * fix for deprecated numpy.matrix function * fix for failing tests * pep8 fixes * remove comments * fix merge conflict * pylint fixes * rename module name to test_pca
2022-03-14Dummy White Space commit to fix laminarBonfaceKilz
2022-03-14Only loop through the diff's modifications if it existsBonfaceKilz
2022-03-14Given a csv text and permissible headers, extract invalid headersBonfaceKilz
* gn3/csvcmp.py (extract_invalid_csv_headers): New function. * tests/unit/test_csvcmp.py: Import "extract_invalid_csv_headers". (test_extract_invalid_csv_headers_with_some_wrong_headers): Test case for the above.
2022-03-14Get all permissible column dataBonfaceKilz
* gn3/csvcmp.py: Import "Any" and "List". (get_allowable_sampledata_headers): New function. * tests/unit/test_csvcmp: Import "get_allowable_sampledata_headers". (test_get_allowable_csv_headers): Test case for the above.
2022-03-12Remove unused importsBonfaceKilz
2022-03-12Fix mypy issuesBonfaceKilz
2022-03-12Fix pylint issuesBonfaceKilz
2022-03-12Compose csv-diff command within single quotesBonfaceKilz
* gn3/csvcmp.py (csv_diff): Use single quotes. There was a change in 6d39c92 that broke this.
2022-03-12Delete noisy "print" statementBonfaceKilz
2022-03-12Store the first element as strain_idBonfaceKilz
2022-03-12Append the strain name when extracting "actions"BonfaceKilz
* gn3/db/sample_data.py (__extract_actions): During updates, make sure that the strain name is part of the returned string when extracting "actions". * tests/unit/db/test_sample_data.py: Add test cases for the above.
2022-03-12Apply auto-pep8 to sample_data.py and it's test fileBonfaceKilz
2022-03-12Add missing return type-annotationsBonfaceKilz
* tests/unit/db/test_sample_data.py (delete_sample_data): Add missing return type for type annotations. (insert_sample_data): Ditto.
2022-03-12Update how data is updated by re-using existing functionsBonfaceKilz
* gn3/db/sample_data.py (get_sample_data_ids): Re-use "delete_sample_data" and "insert_sample_data" when updating data; and also add logic for updating modified data. * tests/unit/db/test_sample_data.py: Add tests for the above.
2022-03-12Create action dict that's created when updating dataBonfaceKilz
* gn3/db/sample_data.py (__extract_actions): An update on a vector of data can contain: inserts, deletes and updates. This functions extracts these actions during an update. * tests/unit/db/test_sample_data.py (test_extract_actions): Add test-case for the above.
2022-03-12Remove check for inserted data when inserting individual dataBonfaceKilz
* gn3/db/sample_data.py (insert_sample_data)[__insert_data]: Move check to the main body. With this check here, you have 3 redundant checks. For a successful insert, it will insert the first value to the `PublishData` table and ignore the rest of the inserts.
2022-03-12Make `_map` a constantBonfaceKilz
* gn3/db/sample_data.py: Now constant, `_MAP`. (delete_sample_data)[__delete_data]: Replace `_map` with `_MAP`. (insert_sample_data)[__insert_data]: Ditto.
2022-03-12Fix faulty SQL query string when deleting case-attributesBonfaceKilz
2022-03-12Explicitly get CaseAttributeId and fix broken sql queryBonfaceKilz
* gn3/db/sample_data.py (insert_sample_data): Use correct query string. Also, use CaseAttributeId to determine whether case-attributes were inserted. If so, do not attempt an insert.
2022-03-12Remove duplicate paramsBonfaceKilz
* gn3/db/sample_data.py (insert_sample_data)[__insert_case_attribute]: Remove extra parameters.
2022-03-12Remove dead codeBonfaceKilz
2022-03-12Check whether publish data already exists before insertingBonfaceKilz
* gn3/db/sample_data.py (insert_sample_data): If data already exists in the table, do not attempt an insert; otherwise, an error will be generated.
2022-03-12Fill in empty values in csv text with: "x"BonfaceKilz
* gn3/csvcmp.py (fill_csv): Update this function to allow empty lists to be filled with the default value(set in the args). * tests/unit/test_csvcmp.py (test_fill_csv): Update test to capture above.
2022-03-12Fetch id's separately for the insertion edge-caseBonfaceKilz
* gn3/db/sample_data (get_sample_data_ids): Add an extra condition that caters for inserts: during inserts, joins won't work when fetching the strain_id, publishdata_id, and strain_name. In this case, just create 2 separate queries to do that work.
2022-03-12Extract a strain name given a csv string and it's headerBonfaceKilz
* gn3/csvcmp.py (extract_strain_name): New function. * gn3/db/sample_data (delete_sample_data): Use the aforementioned function. (insert_sample_data): Ditto. * tests/unit/test_csvcmp: Test cases for above.
2022-03-12Allow deleting case-attribute data during deletionBonfaceKilz
* gn3/db/sample_data.py (delete_sample_data): Modify this function to allow deleting case-attribute values.
2022-03-12Allow inserting case-attribute data during insertsBonfaceKilz
* gn3/db/sample_data.py (insert_sample_data): Modify this function to allow inserting case-attribute values.
2022-03-12Fetch InbredSetIdBonfaceKilz
* gn3/db/sample_data.py (get_sample_data_ids): Extend to also fetch InbredSetId. (update_sample_data): Discard the returned value of InbredSetId. (delete_sample_data): Ditto.
2022-03-12Create a new function for retrieving strain_id and publishdata_idBonfaceKilz
* gn3/db/sample_data.py: Import Any, Tuple. (get_sample_data_ids): New function that fetches the strain_id and publishdata_id of a given data point. (update_sample_data): Use `get_sample_data_ids`. (delete_sample_data): Ditto. (insert_sample_data): Ditto.
2022-03-12Move operations on sample_data to it's own moduleBonfaceKilz
2022-03-12Don't add extra key "Column" to dict if there are no changesBonfaceKilz
gn3/csvcmp.py (csv_diff): If the diff is empty, don't add an extra key "Column" to the dictionary. tests/unit/test_csvcmp (test_csv_diff_only_column_change): Add test-case for the above.
2022-03-12Fill CSV text if there are non-even rowsBonfaceKilz
Should you try to run `csvdiff` against 2 csv files with either file having a non-even columns, there will be an error. As such, the csv files need to be "filled" before running `csvdiff`. * gn3/csvcmp (csv_diff): For non-even rows in the csv files, fill the csv rows.
2022-03-12Create new method for filling csv with a default valueBonfaceKilz
* gn3/csvcmp.py (fill_csv): Given a csv text with uneven or incomplete fields whole length are less than width, fill them with a value which defaults to "x". * tests/unit/test_csvcmp.py (test_fill_csv): Test cases for the above.