def export_antibody_items(file_path) : antibodies = Antibody.objects.all() # get all objects if antibodies: # check if empty outfile = open(file_path+'/antibody-items.xml', 'w') # open and write to *-items.xml for antibody in antibodies: submission_data_list = SubmissionData.objects.all().filter(object_id=antibody.id) submission_list = [] # submissions for submission_data in submission_data_list: applied_protocol_list = [] if submission_data.applied_protocol_input: applied_protocol_list.append(submission_data.applied_protocol_input) if submission_data.applied_protocol_output: applied_protocol_list.append(submission_data.applied_protocol_output) for applied_protocol in applied_protocol_list: if applied_protocol.submission.publishable == True: submission_list.append(applied_protocol.submission) submission_list = list(set(submission_list)) # Get rid of duplicates experiment_list = [] # experiment for submission in submission_list: experiment_list.extend(submission.experiments.all().filter(publishable=True)) # experiments experiment_list = list(set(experiment_list)) # Get rid of duplicates project_list = [] # projects for experiment in experiment_list: project_list.extend(experiment.projects.all().filter(publishable=True)) project_list = list(set(project_list)) # Get rid of duplicates # Only export if there is a related objects if submission_data_list or project_list or experiment_list or submission_list: outfile.write('<item id="Antibody_' + str(antibody.id) + '" class="Antibody">\n') outfile.write('\t<attribute name="name" value="' + antibody.name + '" />\n') outfile.write('\t<attribute name="targetName" value="' + antibody.target_name + '" />\n') outfile.write('\t<attribute name="source" value="' + antibody.source + '" />\n') outfile.write('\t<attribute name="epitope" value="' + antibody.epitope + '" />\n') if antibody.animal_host: outfile.write('\t<attribute name="hostOrganism" value="' + antibody.animal_host.name + '" />\n') else: outfile.write('\t<attribute name="hostOrganism" value="" />\n') if antibody.target_gene: exporter_utility.write_reference_item(outfile, antibody.target_gene, 'Gene', 'targetGene') if project_list: exporter_utility.write_collection_items(outfile, project_list, 'Project', 'projects') if experiment_list: exporter_utility.write_collection_items(outfile, experiment_list, 'Experiment', 'experiments') if submission_list: exporter_utility.write_collection_items(outfile, submission_list, 'Submission', 'submissions') outfile.write('</item>\n') outfile.close() # close file
def export_applied_protocol_items(file_path) : applied_protocols = AppliedProtocol.objects.all() # get all objects if applied_protocols: # check if empty outfile = open(file_path+'/applied-protocol-items.xml', 'w') # open and write to *-items.xml for applied_protocol in applied_protocols: input_list = SubmissionData.objects.all().filter(applied_protocol_input=applied_protocol) # submission data output_list = SubmissionData.objects.all().filter(applied_protocol_output=applied_protocol) # submission data input_list = list(set(input_list)) # Get rid of duplicates output_list = list(set(output_list)) # Get rid of duplicates outfile.write('<item id="AppliedProtocol_' + str(applied_protocol.id) + '" class="AppliedProtocol">\n') outfile.write('\t<attribute name="step" value="' + str(applied_protocol.step) + '" />\n') exporter_utility.write_reference_item(outfile, applied_protocol.protocol, 'Protocol', 'protocol') exporter_utility.write_reference_item(outfile, applied_protocol.submission, 'Submission', 'submission') if input_list: exporter_utility.write_collection_items(outfile, input_list, 'SubmissionData', 'inputs') if output_list: exporter_utility.write_collection_items(outfile, output_list, 'SubmissionData', 'outputs') outfile.write('</item>\n') outfile.close() # close file
def export_toxoplasma_mutant_items(file_path) : toxoplasma_mutants = ToxoplasmaMutant.objects.all() # get all objects if toxoplasma_mutants: # check if empty outfile = open(file_path+'/toxoplasma-mutant-items.xml', 'w') # open and write to *-items.xml for toxoplasma_mutant in toxoplasma_mutants: submission_data_list = SubmissionData.objects.all().filter(object_id=toxoplasma_mutant.id) submission_list = [] # submissions for submission_data in submission_data_list: applied_protocol_list = [] if submission_data.applied_protocol_input: applied_protocol_list.append(submission_data.applied_protocol_input) if submission_data.applied_protocol_output: applied_protocol_list.append(submission_data.applied_protocol_output) for applied_protocol in applied_protocol_list: if applied_protocol.submission.publishable == True: submission_list.append(applied_protocol.submission) submission_list = list(set(submission_list)) # Get rid of duplicates experiment_list = [] # experiment for submission in submission_list: experiment_list.extend(submission.experiments.all().filter(publishable=True)) # experiments experiment_list = list(set(experiment_list)) # Get rid of duplicates project_list = [] # projects for experiment in experiment_list: project_list.extend(experiment.projects.all().filter(publishable=True)) project_list = list(set(project_list)) # Get rid of duplicates # Only export if there is a related objects if submission_data_list or project_list or experiment_list or submission_list: outfile.write('<item id="ToxoplasmaMutant_' + str(toxoplasma_mutant.id) + '" class="ToxoplasmaMutant">\n') outfile.write('\t<attribute name="name" value="' + toxoplasma_mutant.name + '" />\n') outfile.write('\t<attribute name="targetName" value="' + toxoplasma_mutant.target_name + '" />\n') outfile.write('\t<attribute name="mutantSelection" value="' + toxoplasma_mutant.selection.name + '" />\n') outfile.write('\t<attribute name="mutantType" value="' + toxoplasma_mutant.mutation_type.name + '" />\n') outfile.write('\t<attribute name="mutantBackground" value="' + toxoplasma_mutant.background.name + '" />\n') strain = '' background = '' organism_property_list = OrganismProperty.objects.all().filter(organism=toxoplasma_mutant.organism) # organism property for organism_property in organism_property_list: if organism_property.organism_property_type.name == 'organism strain': strain = organism_property.organism_property_value.name if organism_property.organism_property_type.name == 'organism type': background = organism_property.organism_property_value.name outfile.write('\t<attribute name="strain" value="' + strain + '" />\n') outfile.write('\t<attribute name="background" value="' + background + '" />\n') if toxoplasma_mutant.target_gene: exporter_utility.write_reference_item(outfile, toxoplasma_mutant.target_gene, 'Gene', 'targetGene') if toxoplasma_mutant.organism: exporter_utility.write_reference_item(outfile, toxoplasma_mutant.organism, 'Organism', 'organism') if project_list: exporter_utility.write_collection_items(outfile, project_list, 'Project', 'projects') if experiment_list: exporter_utility.write_collection_items(outfile, experiment_list, 'Experiment', 'experiments') if submission_list: exporter_utility.write_collection_items(outfile, submission_list, 'Submission', 'submissions') outfile.write('</item>\n') outfile.close() # close file
def export_submission_data_items(file_path) : submission_data = SubmissionData.objects.all() # get all objects if submission_data: # check if empty outfile = open(file_path+'/submissiondata-items.xml', 'w') # open and write to *-items.xml for submission_data_singleton in submission_data: outfile.write('<item id="SubmissionData_' + str(submission_data_singleton.id) + '" class="SubmissionData">\n') outfile.write('\t<attribute name="series" value="' + str(submission_data_singleton.series) + '" />\n') outfile.write('\t<attribute name="partOf" value="na" />\n') if submission_data_singleton.applied_protocol_input: exporter_utility.write_reference_item(outfile, submission_data_singleton.applied_protocol_input, 'AppliedProtocol', 'inputAppliedProtocol') if submission_data_singleton.applied_protocol_output: exporter_utility.write_reference_item(outfile, submission_data_singleton.applied_protocol_output, 'AppliedProtocol', 'outputAppliedProtocol') if submission_data_singleton.content_type==ContentType.objects.get_for_model(ToxoplasmaMutant): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'ToxoplasmaMutant', 'toxoplasmaMutant') if submission_data_singleton.content_type==ContentType.objects.get_for_model(Antibody): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'Antibody', 'antibody') if submission_data_singleton.content_type==ContentType.objects.get_for_model(ExperimentalFactor): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'ExperimentalFactor', 'experimentalFactor') if submission_data_singleton.content_type==ContentType.objects.get_for_model(MicroArray): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'MicroArray', 'microArray') if submission_data_singleton.content_type==ContentType.objects.get_for_model(Sequencing): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'Sequencing', 'sequencing') if submission_data_singleton.content_type==ContentType.objects.get_for_model(DataAnalysis): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'DataAnalysis', 'dataAnalysis') if submission_data_singleton.content_type==ContentType.objects.get_for_model(PersistentDataFile): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'PersistentDataFile', 'persistentDataFile') if submission_data_singleton.content_type==ContentType.objects.get_for_model(SubmissionDataFile): exporter_utility.write_reference_item(outfile, submission_data_singleton.content_object, 'SubmissionDataFile', 'submissionDataFile') outfile.write('</item>\n') outfile.close() # close file