Source code for allensdk.internal.pipeline_modules.gbm.generate_gbm_analysis_run_records

###
# This program generates a json file containing the GBM analysis run records from an sql query

# To Do: This will be done by the strategy and later removed from here.

import psycopg2
import json
import sys


[docs]def main(analysis_records_json_location, db_host, db_port, db_name, db_user, db_passwd): conn = psycopg2.connect(host=db_host, port=db_port, dbname=db_name, user=db_user, password=db_passwd) cur = conn.cursor() cur.execute("select distinct rna.id as rna_well_id, gen.storage_directory || gen.filename, trans.storage_directory " "|| trans.filename from wells rna join rs_tubes t on t.sample_id = rna.id join rna_seq_experiments e " "on e.rs_tube_id = t.id join rna_seq_analysis_runs_rna_seq_experiments ar2e on ar2e.rna_seq_experiment_id " "= e.id join well_known_files gen on gen.attachable_id = ar2e.rna_seq_analysis_run_id and " "gen.well_known_file_type_id = 267380639 join well_known_files trans on trans.attachable_id " "= ar2e.rna_seq_analysis_run_id and trans.well_known_file_type_id = 267380638 where gen.published_at is " "not null and gen.storage_directory ilike '%/gbm/%' order by rna.id;") data = cur.fetchall() analysis_run_records = {"analysis_run_records": []} for item in data: record = {"rna_well_id": item[0], "analysis_run_gene_path": item[1], "analysis_run_transcript_path": item[2]} analysis_run_records["analysis_run_records"].append(record) with open(analysis_records_json_location, 'w') as outfile: json.dump(analysis_run_records, outfile)
if __name__ == '__main__': analysis_records_json_location = sys.argv[1] db_host = sys.argv[2] db_port = sys.argv[3] db_name = sys.argv[4] db_user = sys.argv[5] db_passwd = sys.argv[6] main(analysis_records_json_location, db_host, db_port, db_name, db_user, db_passwd)