def execute_mat2mat(self): matrix_list = self.create_matrix_list() sv = None if self.sort_vector: sv = self.sort_vector.vector.path mm = MatrixByMatrix( matrix_list=matrix_list, window_start=self.bin_start, bin_number=self.bin_number, bin_size=self.bin_size, sort_vector=sv, ) fn = get_random_filename(os.path.join(settings.MEDIA_ROOT, self.UPLOAD_TO)) mm.writeJson(fn) return os.path.join(self.UPLOAD_TO, os.path.basename(fn))
def execute(cls, analysis, dataset): # returns a new or existing FeatureListCountMatrix that matches the # specified criteria # Find existing instance existing = cls.objects.filter( feature_list=analysis.feature_list, dataset=dataset, anchor=analysis.anchor, bin_start=analysis.bin_start, bin_number=analysis.bin_number, bin_size=analysis.bin_size, ).first() if existing: return existing # existing not found; create instead fn = get_random_filename(os.path.join(settings.MEDIA_ROOT, cls.UPLOAD_TO)) bigwigs = dataset.get_bigwig_paths() BedMatrix( bigwigs=bigwigs, feature_bed=analysis.feature_list.dataset.path, output_matrix=fn, anchor=analysis.get_anchor_display(), bin_start=analysis.bin_start, bin_number=analysis.bin_number, bin_size=analysis.bin_size, opposite_strand_fn=None, stranded_bigwigs=dataset.is_stranded, stranded_bed=analysis.feature_list.stranded ) return cls.objects.create( feature_list=analysis.feature_list, dataset=dataset, anchor=analysis.anchor, bin_start=analysis.bin_start, bin_number=analysis.bin_number, bin_size=analysis.bin_size, matrix=os.path.join(cls.UPLOAD_TO, os.path.basename(fn)) )