예제 #1
0
def changePassword(request):
	try:
		data = json.loads(request.body)
		user = User()
		token = Token()
		token = Token.objects.get(token=data['token'])
		user = token.user
		if(not check_password(data['old_password'],user.password)):
			raise myError('Wrong old password.')
		if(data['new_password'] != data['re_password']):
			raise myError('Two passwords are different.')
		user.password = make_password(data['new_password'])
		user.save()
		result = {
			'successful': True,
			'error': {
				'id': '',
				'msg': ''
			}
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #2
0
def createNewProject(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_name = data['project_name']
        if not project_name:
            raise myError('Project_name can\'t be null.')
        track = Tracks.objects.filter(track=data['track']).first()
        # function = Functions.objects.filter(function=data['function']),first()
        project = Project()
        project.creator = user
        project.project_name = project_name
        project.track = track
        # project.function = function
        project.save()
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #3
0
def changeProjectName(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		project_id = data['project_id']
		project = Project()
		project = Project.objects.filter(id=project_id).first()
		if user != project.creator:
			raise myError('Change Failed.')
		project.project_name = data['project_name']
		project.save()
		result = {
			'successful': True,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #4
0
def getResultImage(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Get Failed.')
        chainid = data['chain_id']
        chain = Chain.objects.filter(id=data['chain_id']).first()
        sequence = chain.sequence
        if not sequence:
            filepath = None
            raise myError('no img.')
        else:
            if sequence.startswith('_'):
                sequence = sequence[1:]
            if sequence.endswith('_'):
                sequence = sequence[:-1]
            chainName = chain.name
            width = 80 * len(sequence.split('_'))
            height = 100
            if width > 800:
                width = 800
                height = 200 * (len(sequence.split('_')) // 10)
            filepath = getSequenceResultImage(sequence, width, height, chainName)
            chain.isModified = False
            chain.image_file_path = filepath
            chain.save()
        result = {
            'successful': True,
            'data': filepath,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.args,
            }
        }
    finally:
        return HttpResponse(json.dumps(result), content_type='application/json')
예제 #5
0
def createProjectDevice(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		project_id = data['project_id']
		project = Project.objects.filter(id=project_id).first()
		if user != project.creator:
			raise myError('Create Failed.')
		if not data['device_name']:
			raise myError('Devicee_name can\'t be Null.' )
		chain = Chain()
		chain.name = data['device_name']
		chain.project = project
		chain.save()
		result = {
			'successful': True,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #6
0
def changeProjectName(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Change Failed.')
        project.project_name = data['project_name']
        project.save()
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #7
0
def createProjectDevice(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Create Failed.')
        if not data['device_name']:
            raise myError('Devicee_name can\'t be Null.')
        chain = Chain()
        chain.name = data['device_name']
        chain.project = project
        chain.save()
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #8
0
def getParts(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        part_name = data['part_name']
        searchResult = getPart(part_name)
        if searchResult['successful']:
            result = {
                'successful': True,
                'data': searchResult,
                'error': {
                    'id': '',
                    'msg': '',
                }
            }
        else:
            raise myError('Check Failed.')
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #9
0
def deleteProjectDevice(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		project_id = data['project_id']
		project = Project.objects.filter(id=project_id).first()
		if user != project.creator:
			raise myError('Delete Failed.')
		chain = Chain.objects.filter(id=data['device_id']).first()
		deleteMassage = chain.delete()
		print deleteMassage
		result = {
			'successful': True,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #10
0
def deleteProjectDevice(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Delete Failed.')
        chain = Chain.objects.filter(id=data['device_id']).first()
        deleteMassage = chain.delete()
        print deleteMassage
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #11
0
def deleteProject(request):
    try:
        body = request.body.decode('utf-8')
        data = json.loads(body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Delete Failed.')
        project.delete()
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #12
0
def createNewProject(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		project_name = data['project_name']
		if not project_name:
			raise myError('Project_name can\'t be null.' )
		track = Tracks.objects.filter(track=data['track']).first()
		# function = Functions.objects.filter(function=data['function']),first()
		project = Project()
		project.creator = user
		project.project_name = project_name
		project.track = track
		# project.function = function
		project.save()
		result = {
			'successful': True,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #13
0
def getParts(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        part_name = data['part_name']
        searchResult = getPart(part_name)
        if searchResult['successful']:
            result = {
                'successful': True,
                'data': searchResult,
                'error': {
                    'id': '',
                    'msg': '',
                }
            }
        else:
            raise myError('Check Failed.')
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #14
0
def changePassword(request):
    try:
        data = json.loads(request.body)
        user = User()
        token = Token()
        token = Token.objects.get(token=data['token'])
        user = token.user
        if (not check_password(data['old_password'], user.password)):
            raise myError('Wrong old password.')
        if (data['new_password'] != data['re_password']):
            raise myError('Two passwords are different.')
        user.password = make_password(data['new_password'])
        user.save()
        result = {'successful': True, 'error': {'id': '', 'msg': ''}}
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {
            'successful': False,
            'error': {
                'id': '1024',
                'msg': e.args,
            }
        }
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #15
0
def register(request):
    try:
        data = json.loads(request.body)
        userName = noneIfEmptyString(data['username'])
        if not userName:
            raise myError('The username can\'t be none.')
        email = noneIfEmptyString(data['email'])
        if not email:
            raise myError('Wrong email.')
        password = data['password']
        repassword = data['repassword']
        existEmail = User.objects.filter(email=email).first()
        if existEmail:
            raise myError('The email already exists.')
        existName = User.objects.filter(userName=userName).first()
        if existName:
            raise myError('The username already exists.')
        if password != repassword:
            raise myError('Two passwords are different.')
        user = User()
        user.userName = userName
        user.password = make_password(password)
        user.email = email
        user.save()
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {'successful': False, 'error': {'id': '1', 'msg': e.value}}
예제 #16
0
def getChain(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Check Failed.')
        chain = Chain.objects.filter(id=data['chain_id']).first()
        sequence = chain.sequence
        sequenceList = []
        if (sequence):
            if sequence.startswith('_'):
                sequence = sequence[1:]
            if sequence.endswith('_'):
                sequence = sequence[:-1]
            sequenceList = sequence.split('_')
        partList = []
        for seq in sequenceList:
            part = Parts.objects.filter(part_id=seq).first()
            partList.append({
                    'part_id': part.part_id,
                    'part_name': part.part_name,
                    'part_type': part.part_type
                })
        result = {
            'successful': True,
            'data': partList,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '1024',
                'msg': e.args
            }
        }
    finally:
        return HttpResponse(json.dumps(result), content_type='application/json')
예제 #17
0
def getProjectDevices(request):
    try:
        body = request.body.decode('utf-8')
        data = json.loads(body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Check Failed.')
        chains = Chain.objects.filter(project=project)
        chainsList = []
        for chain in chains:
            seq = chain.sequence
            if not seq:
                chainLength = 0
            else:
                if seq.startswith('_'):
                    seq = seq[1:]
                if seq.endswith('_'):
                    seq = seq[:-1]
                chainLength = len(seq.split('_'))
            chainsList.append({
                'chain_id': chain.id,
                'chain_sequence': chain.sequence,
                'chain_name': chain.name,
                'chain_isModified': chain.isModified,
                'chain_image_file_path': chain.image_file_path,
                'chain_Length': chainLength
            })
        result = {
            'successful': True,
            'data': chainsList,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #18
0
def updateChain(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Update Failed.')
        chainid = data['chain_id']
        chain = Chain()
        chain = Chain.objects.filter(id=data['chain_id']).first()
        if len(data['chain_info']):
            seq = ''
            for chain_item in data['chain_info']:
                if seq:
                    seq += '_' + str(chain_item[u'part_id'])
                else:
                    seq += str(chain_item[u'part_id'])
        chain.sequence = seq
        chain.save()
        result = {
            'successful': True,
            'data': seq,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.args,
            }
        }
    finally:
        return HttpResponse(json.dumps(result), content_type='application/json')
예제 #19
0
def getProjectDevices(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		project_id = data['project_id']
		project = Project()
		project = Project.objects.filter(id=project_id).first()
		if user != project.creator:
			raise myError('Check Failed.')
		chains = Chain.objects.filter(project=project)
		chainsList = []
		for chain in chains:
			seq = chain.sequence
			if not seq:
				chainLength = 0
			else:
				if seq.startswith('_'):
					seq = seq[1:]
				if seq.endswith('_'):
					seq = seq[:-1]
				chainLength = len(seq.split('_'))
			chainsList.append(
				{
					'chain_id': chain.id,
					'chain_sequence': chain.sequence,
					'chain_name': chain.name,
					'chain_isModified': chain.isModified,
					'chain_image_file_path': chain.image_file_path,
					'chain_Length': chainLength
				})
		result = {
			'successful': True,
			'data': chainsList,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #20
0
def getResultImage(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Get Failed.')
        chainid = data['chain_id']
        chain = Chain.objects.filter(id=data['chain_id']).first()
        sequence = chain.sequence
        if not sequence:
            filepath = None
            raise myError('no img.')
        else:
            if sequence.startswith('_'):
                sequence = sequence[1:]
            if sequence.endswith('_'):
                sequence = sequence[:-1]
            chainName = chain.name
            width = 80 * len(sequence.split('_'))
            height = 100
            if width > 800:
                width = 800
                height = 100 * (len(sequence.split('_')) / 10)
            filepath = getSequenceResultImage(sequence, width, height, chainName)
            chain.isModified = False
            chain.image_file_path = filepath
            chain.save()
        result = {
            'successful': True,
            'data': filepath,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #21
0
def getProjectDevices(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Check Failed.')
        chains = Chain.objects.filter(project=project)
        chainsList = []
        for chain in chains:
            seq = chain.sequence
            if not seq:
                chainLength = 0
            else:
                if seq.startswith('_'):
                    seq = seq[1:]
                if seq.endswith('_'):
                    seq = seq[:-1]
                chainLength = len(seq.split('_'))
            chainsList.append({
                'chain_id': chain.id,
                'chain_sequence': chain.sequence,
                'chain_name': chain.name,
                'chain_isModified': chain.isModified,
                'chain_image_file_path': chain.image_file_path,
                'chain_Length': chainLength
            })
        result = {
            'successful': True,
            'data': chainsList,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #22
0
def getRelatedDisease(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_name = data['gene_name']
        realated_disease_list = search_related_disease(gene_name)
        result = {
            'successful': True,
            'data': realated_disease_list,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #23
0
def searchParts(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        keyword = data['keyword']
        try:
            funcs = data['funcs']
        except:
            funcs = None
        searchResult = ambiguousSearch(keyword, funcs)
        result = {
            'successful': True,
            'data': searchResult,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #24
0
def getUserProject(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		projects = Project.objects.filter(creator=user)
		projectsList = []
		for project in projects:
			projectsList.append({
				'project_name': noneIfEmptyString(project.project_name),
				'project_id': project.id,
				'track': noneIfEmptyString(project.track.track),
				'function': noneIfEmptyString(project.function),
				'creator': project.creator.userName
				})
		result = {
			'successful': True,
			'data': projectsList,
			'error': {
				'id': '',
				'msg': '',
			}
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #25
0
def getGeneInfo(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_name = data['gene_name']
        gene = Gene.objects.filter(name=gene_name).first()
        gene_id = gene.gene_id
        get_result = get_gene_info(gene_id)
        result = {
            'successful': get_result[0],
            'data': get_result[1],
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #26
0
def getMRecommend(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        part_id = str(data['part_id'])
        part_id_before = str(data['part_id_before'])
        recommend_list_back = getMarkovRecommend(part_id)
        recommend_list_front = getBeforeMarkovRecommend(part_id)
        recommend_list_middle = getBetweenMarkovRecommend(part_id_before, part_id)
        result = {
            'successful': True,
            'data': {
                'recommend_list_front': recommend_list_front,
                'recommend_list_middle': recommend_list_middle,
                'recommend_list_back': recommend_list_back,
            },
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #27
0
def getRelatedGene(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		gene_name = data['gene_name']
		realated_gene_list = []
		realated_genes = search_relation(gene_name)
		if realated_genes['children'] > 10:
			realated_genes['children'].sort(key=lambda d:float(d['relations']), reverse=True)
		realated_genes['children'] = realated_genes['children'][:10]
		result = {
			'successful': True,
			'data': realated_genes,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #28
0
def searchGenes(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        keyword = data['keyword']
        search_result = search_genes(keyword)
        result = {
            'successful': True,
            'data': search_result,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #29
0
def getRelatedCompound(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		compound_tags = data['compound_tags']
		cid_list = []
		for compound in compound_tags:
			cid_list.append(compound['id'])
		graph = gene_graph(cid_list, None)
		graph.cal_graph()
		graph_result = graph.get_graph()
		result = {
			'successful': True,
			'data': graph_result,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #30
0
def searchParts(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        keyword = data['keyword']
        try:
            funcs = data['funcs']
        except:
            funcs = None
        searchResult = ambiguousSearch(keyword, funcs)
        result = {
            'successful': True,
            'data': searchResult,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #31
0
def getThreeSentences(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_name_one = data['source_name']
        gene_name_two = data['target_name']
        sentenceList = search_three_sentence(gene_name_one, gene_name_two)
        result = {
            'successful': True,
            'data': sentenceList,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #32
0
def getRelatedGene(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_name = data['gene_name']
        realated_gene_list = []
        realated_genes = search_relation(gene_name)
        if realated_genes['children'] > 10:
            realated_genes['children'].sort(
                key=lambda d: float(d['relations']), reverse=True)
        realated_genes['children'] = realated_genes['children'][:10]
        result = {
            'successful': True,
            'data': realated_genes,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #33
0
def searchGenes(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		keyword = data['keyword']
		search_result = search_genes(keyword)
		result = {
			'successful': True,
			'data': search_result,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #34
0
def getCompound(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		compound_id = data['compound_id']
		get_result = get_compound_info(compound_id)
		result = {
			'successful': get_result[0],
			'data': get_result[1],
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #35
0
def getThreeSentences(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_name_one = data['source_name']
        gene_name_two = data['target_name']
        sentenceList = search_three_sentence(gene_name_one, gene_name_two)
        result = {
            'successful': True,
            'data': sentenceList,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #36
0
def getMRecommend(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        part_id = str(data['part_id'])
        part_id_before = str(data['part_id_before'])
        recommend_list_back = getMarkovRecommend(part_id)
        recommend_list_front = getBeforeMarkovRecommend(part_id)
        recommend_list_middle = getBetweenMarkovRecommend(part_id_before, part_id)
        result = {
            'successful': True,
            'data': {
                'recommend_list_front': recommend_list_front,
                'recommend_list_middle': recommend_list_middle,
                'recommend_list_back': recommend_list_back,
            },
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #37
0
def getGeneInfo(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		gene_name = data['gene_name']
		gene = Gene.objects.filter(name=gene_name).first()
		gene_id = gene.gene_id
		get_result = get_gene_info(gene_id)
		result = {
			'successful': get_result[0],
			'data': get_result[1],
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #38
0
def getThreeSentences(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		gene_name_one = data['source_name']
		gene_name_two = data['target_name']
		sentenceList = search_three_sentence(gene_name_one,gene_name_two)
		result = {
			'successful': True,
			'data': sentenceList,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #39
0
def getRelatedDisease(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		gene_name = data['gene_name']
		realated_disease_list = search_related_disease(gene_name)
		result = {
			'successful': True,
			'data': realated_disease_list,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}
예제 #40
0
def getRelatedDisease(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_name = data['gene_name']
        realated_disease_list = search_related_disease(gene_name)
        result = {
            'successful': True,
            'data': realated_disease_list,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #41
0
def getGene(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        gene_id = data['gene_id']
        get_result = get_gene_info(gene_id)
        result = {
            'successful': get_result[0],
            'data': get_result[1],
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #42
0
def searchCompound(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        keyword = data['keyword']
        search_result = search_compound(keyword)
        result = {
            'successful': True,
            'data': search_result,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #43
0
def getRelatedCompound(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        compound_tags = data['compound_tags']
        cid_list = []
        for compound in compound_tags:
            cid_list.append(compound['id'])
        graph = gene_graph(cid_list, None)
        graph.cal_graph()
        graph_result = graph.get_graph()
        result = {
            'successful': True,
            'data': graph_result,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #44
0
def getChain(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Check Failed.')
        chain = Chain.objects.filter(id=data['chain_id']).first()
        sequence = chain.sequence
        if sequence.startswith('_'):
            sequence = sequence[1:]
        if sequence.endswith('_'):
            sequence = sequence[:-1]
        sequenceList = sequence.split('_')
        partList = []
        for seq in sequenceList:
            part = Parts.objects.filter(part_id=seq).first()
            partList.append({
                    'part_id': part.part_id,
                    'part_name': part.part_name,
                    'part_type': part.part_type
                })
        result = {
            'successful': True,
            'data': partList,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #45
0
def login(request):
    try:
        data = json.loads(request.body)
        user = data['username']
        password = data['password']
        customerUser = User()
        customerUser = User.objects.filter(userName=user).first()
        if not customerUser:
            raise myError("The user doesn't exist.")
        if (check_password(password, customerUser.password)):
            token = Token()
            token = Token.objects.filter(user=customerUser)
            if (len(token) != 0):
                token.delete()
        else:
            raise myError('Wrong login name or password.')
        confirmed = customerUser.isConfirmed
        customerToken = ''.join(
            random.sample(string.ascii_letters + string.digits, 30))
        token = Token()
        token.token = customerToken
        token.user = customerUser
        token.expire = '-1'
        token.save()
        result = {
            'data': {
                'confirmed': confirmed,
                'token': customerToken,
                'expire': -1,
            },
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {'successful': False, 'error': {'id': '1', 'msg': e.value}}
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #46
0
def login(request):
	try:
		data = json.loads(request.body)
		user = data['username']
		password = data['password']
		customerUser = User()
		customerUser = User.objects.filter(userName=user).first()
		if not customerUser:
			raise myError("The user doesn't exist.")
		if(check_password(password, customerUser.password)):
			token = Token()
			token = Token.objects.filter(user=customerUser)
			if(len(token) != 0):
				token.delete()
		else:
			raise myError('Wrong login name or password.')
		confirmed = customerUser.isConfirmed
		customerToken = ''.join(random.sample(string.ascii_letters + string.digits, 30))
		token = Token()
		token.token = customerToken
		token.user = customerUser
		token.expire = '-1'
		token.save()
		result = {
			'data': {
				'confirmed': confirmed,
				'token': customerToken,
				'expire': -1,
			},
			'successful': True,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '1',
				'msg': e.value
			}
		}
예제 #47
0
def updateChain(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_id = data['project_id']
        project = Project()
        project = Project.objects.filter(id=project_id).first()
        if user != project.creator:
            raise myError('Update Failed.')
        chainid = data['chain_id']
        chain = Chain()
        chain = Chain.objects.filter(id=data['chain_id']).first()
        if len(data['chain_info']):
            seq = ''
            for chain_item in data['chain_info']:
                if seq:
                    seq += '_' + str(chain_item[u'part_id'])
                else:
                    seq += str(chain_item[u'part_id'])
        chain.sequence = seq
        chain.save()
        result = {
            'successful': True,
            'data': seq,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
예제 #48
0
def createNewProject(request):
    try:
        body = request.body.decode('utf-8')
        data = json.loads(body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        project_name = data['project_name']
        if not project_name:
            raise myError('Project_name can\'t be null.')
        track = Tracks.objects.filter(track=data['track']).first()
        # function = Functions.objects.filter(function=data['function']),first()
        project = Project()
        project.creator = user
        project.project_name = project_name
        project.track = track
        # project.function = function
        project.save()
        result = {
            'successful': True,
            'error': {
                'id': '',
                'msg': '',
            },
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {'successful': False, 'error': {'id': '1024', 'msg': e.args}}
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #49
0
def getParts(request):
    try:
        data = json.loads(request.body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        part_name = data['part_name']
        searchResult = getPart(part_name)
        if searchResult['successful']:
            result = {
                'successful': True,
                'data': searchResult,
                'error': {
                    'id': '',
                    'msg': '',
                }
            }
        else:
            raise myError('Check Failed.')
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.args,
            }
        }
    finally:
        return HttpResponse(json.dumps(result), content_type='application/json')
예제 #50
0
def register(request):
	try:
		data = json.loads(request.body)
		userName = noneIfEmptyString(data['username'])
		if not userName:
			raise myError('The username can\'t be none.' )
		email = noneIfEmptyString(data['email'])
		if not email:
			raise myError('Wrong email.')
		password = data['password']
		repassword = data['repassword']
		existEmail = User.objects.filter(email=email).first()
		if existEmail:
			raise myError('The email already exists.')
		existName = User.objects.filter(userName=userName).first()
		if existName:
			raise myError('The username already exists.')
		if password != repassword:
			raise myError('Two passwords are different.')
		user = User()
		user.userName = userName
		user.password = make_password(password)
		user.email = email
		user.save()
		result = {
		'successful': True,
		'error': {
			'id': '',
			'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '1',
				'msg': e.value
			}
		}
예제 #51
0
def changePassword(request):
    try:
        data = json.loads(request.body)
        user = User()
        token = Token()
        token = Token.objects.get(token=data['token'])
        user = token.user
        if (not check_password(data['old_password'], user.password)):
            raise myError('Wrong old password.')
        if (data['new_password'] != data['re_password']):
            raise myError('Two passwords are different.')
        user.password = make_password(data['new_password'])
        user.save()
        result = {'successful': True, 'error': {'id': '', 'msg': ''}}
    except myError, e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
예제 #52
0
def getUserProject(request):
    try:
        body = request.body.decode('utf-8')
        data = json.loads(body)
        try:
            token = Token.objects.filter(token=data['token']).first()
            user = token.user
        except:
            raise myError('Please Log In.')
        projects = Project.objects.filter(creator=user)
        projectsList = []
        for project in projects:
            projectsList.append({
                'project_name':
                noneIfEmptyString(project.project_name),
                'project_id':
                project.id,
                'track':
                noneIfEmptyString(project.track.track),
                'function':
                noneIfEmptyString(project.function),
                'creator':
                project.creator.userName
            })
        result = {
            'successful': True,
            'data': projectsList,
            'error': {
                'id': '',
                'msg': '',
            }
        }
    except myError as e:
        result = {
            'successful': False,
            'error': {
                'id': '3',
                'msg': e.value,
            }
        }
    except Exception as e:
        result = {
            'successful': False,
            'error': {
                'id': '',
                'msg': e.args,
            }
        }
    finally:
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
예제 #53
0
def randomGene(request):
	try:
		data = json.loads(request.body)
		try:
			token = Token.objects.filter(token=data['token']).first()
			user = token.user
		except:
			raise myError('Please Log In.')
		gene_file = open('data/gene_name.json', 'r')
		gene_list = json.loads(gene_file.read())
		gene_name = random.choice(gene_list)
		search_result = search_relation(gene_name)
		if len(search_result['children']) > 10:
			search_result['children'].sort(key=lambda d:float(d['relations']), reverse=True)
		search_result['children'] = search_result['children'][:10]
		for gene in search_result['children']:
			gene_name = gene['name']
			temp_result = search_relation(gene_name)
			if len(temp_result['children']) > 10:
				temp_result['children'].sort(key=lambda d:float(d['relations']), reverse=True)
				gene['children'] = temp_result['children'][:10]
			else:
				gene['children'] = temp_result['children']
		result = {
			'successful': True,
			'data': search_result,
			'error': {
				'id': '',
				'msg': '',
			},
		}
	except myError, e:
		result = {
			'successful': False,
			'error': {
				'id': '3',
				'msg': e.value,
			}
		}