def renderExperimentSummaryDownload(form): experiments = form.queryExperiments() # list of data rows experimentsForDownload = [] # add header headerRow = [] headerRow.append("Experiment Type") headerRow.append("Chromosome") headerRow.append("Reference J Num") headerRow.append("Reference Citation") experimentsForDownload.append(headerRow) for experiment in experiments: row = [] row.append(experiment.expttype) row.append(experiment.chromosome) row.append(experiment.reference.jnumid) row.append(experiment.reference.short_citation) experimentsForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in experimentsForDownload) filename = "experiment_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderExperimentSummaryDownload(form): experiments = form.queryExperiments() # list of data rows experimentsForDownload = [] # add header headerRow = [] headerRow.append("Experiment Type") headerRow.append("Chromosome") headerRow.append("Reference J Num") headerRow.append("Reference Citation") experimentsForDownload.append(headerRow) for experiment in experiments: row = [] row.append(experiment.expttype) row.append(experiment.chromosome) row.append(experiment.reference.jnumid) row.append(experiment.reference.short_citation) experimentsForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in experimentsForDownload) filename = "experiment_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderReportDownload(report, results, columns): """ Create the download file for results and columns """ # list of data rows fileData = [] # add header fileData.append(columns) fileData.extend(results) def convert(val): if type(val) not in (str, unicode): return str(val) return val # create a generator for the table cells generator = ("%s\r\n"%("\t".join([convert(col).replace('\n',' ').replace('\r',' ') for col in row])) for row in fileData) filename = "report_%d_%s.txt" % (report.id, printableTimeStamp()) return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderReportDownload(report, results, columns): """ Create the download file for results and columns """ # list of data rows fileData = [] # add header fileData.append(columns) fileData.extend(results) def convert(val): if type(val) not in (str, str): return str(val) return val # create a generator for the table cells generator = ("%s\r\n" % ("\t".join( [convert(col).replace('\n', ' ').replace('\r', ' ') for col in row])) for row in fileData) filename = "report_%d_%s.txt" % (report.id, printableTimeStamp()) return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderSpecimenSummaryDownload(form): # gather lists of specimens specimens = form.querySpecimens() # list of data rows specimensForDownload = [] # add header headerRow = [] headerRow.append("Assay ID") headerRow.append("Marker Symbol") headerRow.append("Assay Type") headerRow.append("Specimen Label") headerRow.append("Age") headerRow.append("Age Note") headerRow.append("Sex") headerRow.append("Hybridization") headerRow.append("Fixation") headerRow.append("Embedding") headerRow.append("Background") headerRow.append("Allele(s)") headerRow.append("Specimen Note") specimensForDownload.append(headerRow) for specimen in specimens: thisRow = [] thisRow.append(specimen.assay.mgiid) thisRow.append(specimen.assay.marker.symbol) thisRow.append(specimen.assay.assaytype) thisRow.append(specimen.specimenlabel or '') thisRow.append(specimen.age or '') thisRow.append(specimen.agenote or '') thisRow.append(specimen.sex or '') thisRow.append(specimen.hybridization or '') thisRow.append(specimen.fixation or '') thisRow.append(specimen.embeddingmethod or '') thisRow.append(specimen.genotype.geneticbackground or '') if specimen.genotype.combination1_cache: thisRow.append( specimen.genotype.combination1_cache.replace( '\n', ' ').replace('\r', '').rstrip()) else: thisRow.append('') thisRow.append(specimen.specimennote or '') specimensForDownload.append(thisRow) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in specimensForDownload) filename = "specimen_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderSpecimenSummaryDownload(form): # gather lists of specimens specimens = form.querySpecimens() # list of data rows specimensForDownload = [] # add header headerRow = [] headerRow.append("Assay ID") headerRow.append("Marker Symbol") headerRow.append("Assay Type") headerRow.append("Specimen Label") headerRow.append("Age") headerRow.append("Age Note") headerRow.append("Sex") headerRow.append("Hybridization") headerRow.append("Fixation") headerRow.append("Embedding") headerRow.append("Background") headerRow.append("Allele(s)") headerRow.append("Specimen Note") specimensForDownload.append(headerRow) for specimen in specimens: thisRow = [] thisRow.append(specimen.assay.mgiid) thisRow.append(specimen.assay.marker.symbol) thisRow.append(specimen.assay.assaytype) thisRow.append(specimen.specimenlabel or '') thisRow.append(specimen.age or '') thisRow.append(specimen.agenote or '') thisRow.append(specimen.sex or '') thisRow.append(specimen.hybridization or '') thisRow.append(specimen.fixation or '') thisRow.append(specimen.embeddingmethod or '') thisRow.append(specimen.genotype.geneticbackground or '') if specimen.genotype.combination1_cache: thisRow.append(specimen.genotype.combination1_cache.replace('\n', ' ').replace('\r', '').rstrip()) else: thisRow.append('') thisRow.append(specimen.specimennote or '') specimensForDownload.append(thisRow) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in specimensForDownload) filename = "specimen_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderProbeSummaryDownload(form): probes = form.queryProbes() # list of data rows probesForDownload = [] # add header headerRow = [] headerRow.append("Probe ID") headerRow.append("Name") headerRow.append("Type") headerRow.append("Markers") headerRow.append("Marker IDs") headerRow.append("Aliases") headerRow.append("Organism") headerRow.append("Parent ID") headerRow.append("Parent Name") headerRow.append("J#s") probesForDownload.append(headerRow) for probe in probes: row = [] row.append(probe.mgiid_object.accid) row.append(probe.name) row.append(probe.segmenttype) # marker symbols row.append(" | ".join([m.symbol for m in probe.markers_with_putatives])) # marker IDs row.append(" | ".join([m.mgiid for m in probe.markers_with_putatives])) # aliases row.append(" | ".join([a.alias for a in probe.aliases])) # organism row.append(probe.source.organism) # parent probe if probe.derivedfrom_probe: row.append(probe.derivedfrom_probe.mgiid) row.append(probe.derivedfrom_probe.name) else: row.append("") row.append("") # reference J#s row.append(" | ".join([r.jnumid for r in probe.references])) probesForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in probesForDownload) filename = "probe_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderResultSummaryDownload(form): # fetch all results results = form.queryResults() # list of data rows resultsForDownload = [] # add header headerRow = [] headerRow.append("Assay ID") headerRow.append("Marker Symbol") headerRow.append("Assay Type") headerRow.append("Age") headerRow.append("Structure") headerRow.append("Detected") headerRow.append("Specimen Label") headerRow.append("Mutant Allele") resultsForDownload.append(headerRow) for result in results.items: resultRow = [] resultRow.append(result.assay.mgiid) resultRow.append(result.marker.symbol) resultRow.append(result.assay.assaytype) resultRow.append(result.age) resultRow.append("TS" + str(result._stage_key) + ": " + result.structure.term) resultRow.append(str(result.expressed)) if result.specimen: resultRow.append(result.specimen.specimenlabel) else: resultRow.append("") if result.genotype.combination1_cache: resultRow.append(result.genotype.combination1_cache.replace('\n', ' ').replace('\r', '').rstrip()) else: resultRow.append("") resultsForDownload.append(resultRow) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in resultsForDownload) filename = "result_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderAlleleSummaryDownload(form): alleles = form.queryAlleles() # list of data rows allelesForDownload = [] # add header headerRow = [] headerRow.append("Symbol") headerRow.append("MGI ID") headerRow.append("Name") headerRow.append("Synonyms") headerRow.append("Transmission") headerRow.append("AlleleStatus") headerRow.append("Generation Type") headerRow.append("Attributes") headerRow.append("MP Annotations") headerRow.append("Disease Annotations") allelesForDownload.append(headerRow) for allele in alleles: alleleRow = [] alleleRow.append(allele.symbol) alleleRow.append(allele.mgiid) alleleRow.append(allele.name) alleleRow.append(",".join([str(s) for s in allele.synonyms])) alleleRow.append(allele.transmission) alleleRow.append(allele.status) alleleRow.append(allele.alleletype) alleleRow.append(",".join([str(s) for s in allele.subtypes])) alleleRow.append(allele.summary_mp_display) alleleRow.append(",".join(allele.disease_terms)) allelesForDownload.append(alleleRow) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in allelesForDownload) filename = "allele_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderAlleleSummaryDownload(form): alleles = form.queryAlleles() # list of data rows allelesForDownload = [] # add header headerRow = [] headerRow.append("Symbol") headerRow.append("MGI ID") headerRow.append("Name") headerRow.append("Synonyms") headerRow.append("Transmission") headerRow.append("AlleleStatus") headerRow.append("Generation Type") headerRow.append("Attributes") headerRow.append("MP Annotations") headerRow.append("Disease Annotations") allelesForDownload.append(headerRow) for allele in alleles: alleleRow = [] alleleRow.append(allele.symbol) alleleRow.append(allele.mgiid) alleleRow.append(allele.name) alleleRow.append(",".join([str(s) for s in allele.synonyms])) alleleRow.append(allele.transmission) alleleRow.append(allele.status) alleleRow.append(allele.alleletype) alleleRow.append(",".join([str(s) for s in allele.subtypes])) alleleRow.append(allele.summary_mp_display) alleleRow.append(",".join(allele.disease_terms)) allelesForDownload.append(alleleRow) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in allelesForDownload) filename = "allele_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderReferenceSummaryDownload(form): references = reference_service.search_for_summary(form) # list of data rows refsForDownload = [] # add header headerRow = [] headerRow.append("J:#") headerRow.append("PubMed ID") headerRow.append("RefType") headerRow.append("Title") headerRow.append("Authors") headerRow.append("Journal") headerRow.append("Year") headerRow.append("Abstract") refsForDownload.append(headerRow) for ref in references: thisRefRow = [] thisRefRow.append(ref.jnumid) thisRefRow.append(ref.pubmedid or '') thisRefRow.append(ref.reftype.term) thisRefRow.append(ref.title or '') thisRefRow.append(ref.authors or '') thisRefRow.append(ref.journal or '') thisRefRow.append(str(ref.year)) thisRefRow.append(ref.abstract or '') refsForDownload.append(thisRefRow) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in refsForDownload) filename = "reference_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderReferenceSummaryDownload(form): references = reference_service.search_for_summary(form) # list of data rows refsForDownload = [] # add header headerRow = [] headerRow.append("J:#") headerRow.append("PubMed ID") headerRow.append("Title") headerRow.append("Authors") headerRow.append("Journal") headerRow.append("Year") headerRow.append("Abstract") refsForDownload.append(headerRow) for ref in references: thisRefRow = [] thisRefRow.append(ref.jnumid) thisRefRow.append(ref.pubmedid or '') thisRefRow.append(ref.title or '') thisRefRow.append(ref.authors or '') thisRefRow.append(ref.journal or '') thisRefRow.append(str(ref.year)) thisRefRow.append(ref.abstract or '') refsForDownload.append(thisRefRow) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in refsForDownload) filename = "reference_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderSequenceSummaryDownload(form): sequences = form.querySequences() # list of data rows sequencesForDownload = [] # add header headerRow = [] headerRow.append("ID") headerRow.append("Type") headerRow.append("Length") headerRow.append("Strain/Species") headerRow.append("Description") headerRow.append("Marker Symbols") sequencesForDownload.append(headerRow) for sequence in sequences: row = [] row.append(" | ".join([a.accid for a in sequence.accession_objects])) row.append(sequence.type) row.append(str(sequence.length)) row.append(sequence.source.strain.strain) row.append(sequence.description) row.append(" | ".join([m.symbol for m in sequence.markers])) sequencesForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in sequencesForDownload) filename = "sequence_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderAssaySummaryDownload(form): assays = form.queryAssays() # list of data rows assaysForDownload = [] # add header headerRow = [] headerRow.append("Assay ID") headerRow.append("Gene") headerRow.append("Gene MGI ID") headerRow.append("Assay Type") headerRow.append("Reference J#") headerRow.append("Short Citation") assaysForDownload.append(headerRow) for assay in assays: assayRow = [] assayRow.append(assay.mgiid) assayRow.append(assay.marker.symbol) assayRow.append(assay.marker.mgiid) assayRow.append(assay.assaytype) assayRow.append(assay.reference.jnumid) assayRow.append(assay.reference.short_citation) assaysForDownload.append(assayRow) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in assaysForDownload) filename = "gxd_assay_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderSequenceSummaryDownload(form): sequences = form.querySequences() # list of data rows sequencesForDownload = [] # add header headerRow = [] headerRow.append("ID") headerRow.append("Type") headerRow.append("Length") headerRow.append("Strain/Species") headerRow.append("Description") headerRow.append("Marker Symbols") sequencesForDownload.append(headerRow) for sequence in sequences: row = [] row.append(" | ".join([a.accid for a in sequence.accession_objects])) row.append(sequence.type) row.append(str(sequence.length)) row.append(sequence.source.strain.strain) row.append(sequence.description) row.append(" | ".join([m.symbol for m in sequence.markers])) sequencesForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in sequencesForDownload) filename = "sequence_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderProbeSummaryDownload(form): probes = form.queryProbes() # list of data rows probesForDownload = [] # add header headerRow = [] headerRow.append("Probe ID") headerRow.append("Name") headerRow.append("Type") headerRow.append("Markers") headerRow.append("Marker IDs") headerRow.append("Primer Sequence 1") headerRow.append("Primer Sequence 2") headerRow.append("Aliases") headerRow.append("Organism") headerRow.append("Parent ID") headerRow.append("Parent Name") headerRow.append("J#s") probesForDownload.append(headerRow) for probe in probes: row = [] row.append(probe.mgiid_object.accid) row.append(probe.name) row.append(probe.segmenttype) # marker symbols row.append(" | ".join([m.symbol for m in probe.markers_with_putatives])) # marker IDs row.append(" | ".join([m.mgiid for m in probe.markers_with_putatives])) # primer sequence if str(probe.primer1sequence) != "None": row.append(str(probe.primer1sequence)) row.append(str(probe.primer2sequence)) else: row.append("") row.append("") # aliases row.append(" | ".join([a.alias for a in probe.aliases])) # organism row.append(probe.source.organism) # parent probe if probe.derivedfrom_probe: row.append(probe.derivedfrom_probe.mgiid) row.append(probe.derivedfrom_probe.name) else: row.append("") row.append("") # reference J#s row.append(" | ".join([r.jnumid for r in probe.references])) probesForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in probesForDownload) filename = "probe_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderAntibodySummaryDownload(form): antibodies = form.queryAntibodies() # list of data rows antibodiesForDownload = [] # add header headerRow = [] headerRow.append("Antibody MGIID") headerRow.append("Name") headerRow.append("Alias(es)") headerRow.append("Organism") headerRow.append("Type") headerRow.append("Class") headerRow.append("Notes") headerRow.append("Antigen ID") headerRow.append("Antigen Name") headerRow.append("Antigen Organism") headerRow.append("Antigen Region") headerRow.append("Antigen Notes") headerRow.append("Markers") headerRow.append("Reference") antibodiesForDownload.append(headerRow) for antibody in antibodies: row = [] row.append(antibody.mgiid) row.append(antibody.antibodyname) row.append(",".join([a.alias for a in antibody.aliases])) row.append(antibody.organism) row.append(antibody.antibodytype) row.append(antibody.antibodyclass) row.append(antibody.antibodynote or '') if antibody.antigen: row.append(antibody.antigen.mgiid) row.append(antibody.antigen.antigenname) if antibody.antigen.source: row.append(antibody.antigen.source.organism) else: row.append("") row.append(antibody.antigen.regioncovered or '') row.append(antibody.antigen.antigennote or '') else: row.append('') row.append('') row.append('') row.append('') row.append('') # use symbol for list of markers row.append(", ".join([m.symbol for m in antibody.markers])) row.append("%s, %s" % (antibody.reference.jnumid, antibody.reference.short_citation)) antibodiesForDownload.append(row) # create a generator for the table cells generator = ("%s\r\n"%("\t".join(row)) for row in antibodiesForDownload) filename = "antibody_summary_%s.txt" % printableTimeStamp() return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})
def renderResultSummaryDownload(form): # fetch all results results = form.queryResults() # list of data rows resultsForDownload = [] # add header headerRow = [] headerRow.append("Assay ID") headerRow.append("Marker Symbol") headerRow.append("Assay Type") headerRow.append("Age") headerRow.append("Structure") headerRow.append("Cell Type") headerRow.append("Detected") headerRow.append("Strength") headerRow.append("Specimen Label") headerRow.append("Mutant Allele") headerRow.append("Result Note") resultsForDownload.append(headerRow) for result in results.items: resultRow = [] resultRow.append(result.assay.mgiid) resultRow.append(result.marker.symbol) resultRow.append(result.assay.assaytype) resultRow.append(result.age) resultRow.append("TS" + str(result._stage_key) + ": " + result.structure.term) if result._celltype_term_key: resultRow.append(result.celltype.term) else: resultRow.append("") resultRow.append(str(result.expressed)) resultRow.append(str(result.strength)) if result.specimen: resultRow.append(str(result.specimen.specimenlabel)) else: resultRow.append("") if result.genotype.combination1_cache: if result.genotype.isconditional == 1: isconditional = " (conditional)" else: isconditional = "" resultRow.append( result.genotype.combination1_cache.replace('\n', ' ').replace( '\r', '').rstrip() + isconditional) else: resultRow.append("") resultRow.append(str(result.resultnote)) resultsForDownload.append(resultRow) # create a generator for the table cells generator = ("%s\r\n" % ("\t".join(row)) for row in resultsForDownload) filename = "result_summary_%s.txt" % printableTimeStamp() return Response( generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename=%s" % filename})