def kmeans(task): connection.close() start = datetime.datetime.now() # import the file to the local SequenceDb sequences = Sequence.objects.all() profiles = [] seqOut = [] for sequence in sequences: profiles.append(np.array(sequence.dna)) seqOut.append(sequence) results, error, nfound = kcluster( profiles, nclusters = task.params['ncluster'], mask=None, weight=None, transpose=0, npass=task.params['npass'], method=task.params['method'], dist=task.params['distance'], initialid=None) # save the results connection.close() stop = datetime.datetime.now() task.running = False task.duration = stop - start task.save() service = ResultService() service.buildResult(task, results, seqOut)
def get(self, request, id): task = Task.objects.get(pk=id) service = ResultService() data = service.getRefDbString(task) response = HttpResponse(data, content_type='application/text') response['Content-Disposition'] = 'attachment; filename="refdb-task-'+str(task.id)+'.tup"' return response
def get(self, request, id): task = Task.objects.get(pk=id) result = Result.objects.get(task__pk=task.pk) # ensure there is a refdb file created service = ResultService() clusters = service.loadClusters(result) return render(request, self.template_name, { 'task': task, 'result': result, 'clusters': clusters })
def dbscan(task): connection.close() start = datetime.datetime.now() # import the file to the local SequenceDb sequences = Sequence.objects.all() profiles = [] seqOut = [] for sequence in sequences: profiles.append(np.array(sequence.dna)) seqOut.append(sequence) algorithm = DBSCAN(eps=task.params['eps'], min_samples=task.params['min_samples'], metric=task.params['metric']) results = algorithm.fit(profiles) """ rewrite the -1 labeled sequences to new clusters with size 1 to make it compairable with kmeans results """ # get the last cluster index idx = np.amax(results.labels_) + 1 labels = [] for label in results.labels_: if label == -1: labels.append(idx) idx += 1 else: labels.append(label) labels = np.array(labels) # save the results connection.close() stop = datetime.datetime.now() task.duration = stop - start task.save() service = ResultService() service.buildResult(task, labels, seqOut)
def get(self, request, id): task = Task.objects.get(pk=id) service = ResultService() data = service.getJsonString(task) return HttpResponse(data, content_type='application/json')