Пример #1
0
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})
Пример #2
0
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})
    
Пример #3
0
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})
Пример #4
0
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})
Пример #5
0
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})
Пример #6
0
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})
Пример #7
0
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})
    
Пример #8
0
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})
Пример #9
0
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})
Пример #10
0
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})
Пример #11
0
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})
Пример #12
0
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})
    
Пример #13
0
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})
    
Пример #14
0
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})
Пример #15
0
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})
Пример #16
0
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})
Пример #17
0
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})
Пример #18
0
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})
    
Пример #19
0
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})
    
Пример #20
0
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})