def start_qc_analysis(rawfile, storedfile, wf_id, dbfn_id): analysis = Analysis(user_id=settings.QC_USER_ID, name='{}_{}_{}'.format(rawfile.producer.name, rawfile.name, rawfile.date)) analysis.save() jobutil.create_file_job('run_longit_qc_workflow', storedfile.id, analysis.id, wf_id, dbfn_id)
def save(self, commit=True): instance = super().save(commit=False) instance.user = self.user if self.analysis: analysis = self.analysis.clone() else: # Create empty analysis for template user_settings = UserSettings.get_for_user(self.user) genome_build = user_settings.default_genome_build # Doesn't matter for templates analysis = Analysis(genome_build=genome_build, name=f"analysis for template {instance.name}") analysis.template_type = AnalysisTemplateType.TEMPLATE analysis.set_defaults_and_save(self.user) assign_permission_to_user_and_groups(self.user, analysis) instance.analysis = analysis if commit: instance.save() return instance
def setUpClass(cls): super().setUpClass() user = User.objects.get_or_create(username='******')[0] cls.grch37 = GenomeBuild.get_name_or_alias("GRCh37") cls.annotation_version_grch37 = get_fake_annotation_version(cls.grch37) gene_annotation_release = cls.annotation_version_grch37.gene_annotation_version.gene_annotation_release cls.transcript_version = create_fake_transcript_version(cls.grch37, release=gene_annotation_release) cls.gene_symbol = cls.transcript_version.gene_version.gene_symbol cls.trio = create_fake_trio(user, cls.grch37) cls.analysis = Analysis(genome_build=cls.grch37) cls.analysis.set_defaults_and_save(user) cls.sample = cls.trio.get_samples()[0] # Gene List cls.gene_list = GeneList.objects.get_or_create(name="fake list", user=cls.analysis.user, import_status=ImportStatus.SUCCESS)[0] GeneListGeneSymbol.objects.get_or_create(gene_list=cls.gene_list, gene_symbol=cls.gene_symbol) # Need some overlapping variants so gene list will work create_fake_variants(cls.grch37) # Note: Variant probably doesn't overlap with gene, just want a random one variant = Variant.objects.filter(Variant.get_no_reference_q()).first() annotation_run = AnnotationRun.objects.create() VariantGeneOverlap.objects.create(version=cls.annotation_version_grch37.variant_annotation_version, annotation_run=annotation_run, gene=cls.transcript_version.gene, variant=variant) # Tag that variant cls.tag = Tag.objects.get_or_create(pk="foo")[0] VariantTag.objects.create(genome_build=cls.grch37, analysis=cls.analysis, variant=variant, tag=cls.tag, user=user)