Esempio n. 1
0
def fetch_project_individuals_data(project_id):
    """
    Notes:
      1. ONLY project-authorized user has access to this individual
    """
    project = get_object_or_404(Project, project_id=project_id)
    variants = get_causal_variants_for_project(project)
    variants = sorted(variants, key=lambda v: (v.extras['family_id'], v.xpos))
    grouped_variants = itertools.groupby(variants, key=lambda v: v.extras['family_id'])
    for family_id, family_variants in grouped_variants:
        family = Family.objects.get(project=project, family_id=family_id)
        family_variants = list(family_variants)
        add_extra_info_to_variants_family(get_reference(), family, family_variants)

    family_data = [v.toJSON() for v in variants]
    variant_data = {family.family_id: family.get_json_obj() for family in project.get_families()}

    phenotype_entry_counts = gather_phenotype_data_for_project(project_id, variant_data)

    status_description_map = {}
    for abbrev, details in ANALYSIS_STATUS_CHOICES:
        status_description_map[abbrev] = details[0]
    families_json = json_displays.family_list(project.get_families())
    family_statuses = {}
    for f in families_json:
        family_statuses[f['family_id']] = status_description_map[f['analysis_status']['status']]

    return family_data, variant_data, phenotype_entry_counts, family_statuses
Esempio n. 2
0
def family_group_home(request, project_id, family_group_slug):

    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_view(request.user):
        raise PermissionDenied

    family_group = get_object_or_404(FamilyGroup,
                                     project=project,
                                     slug=family_group_slug)

    return render(
        request, 'family_group/family_group_home.html', {
            'project':
            project,
            'family_group':
            family_group,
            'families_json':
            json.dumps(json_displays.family_list(family_group.get_families())),
            'analysis_statuses':
            json.dumps(dict(ANALYSIS_STATUS_CHOICES)),
            'new_page_url':
            '/project/{}/analysis_group/{}'.format(
                project.seqr_project.guid,
                family_group.seqr_analysis_group.guid) if project.seqr_project
            and family_group.seqr_analysis_group else None,
        })
Esempio n. 3
0
def add_family_group(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_admin(request.user):
        return HttpResponse('unauthorized')

    families_json = json_displays.family_list(project.get_families())

    return render(request, 'family_group/add_family_group.html', {
        'project': project,
        'families_json': json.dumps(families_json),
    })
Esempio n. 4
0
def add_family_group(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_admin(request.user):
        return HttpResponse('unauthorized')

    families_json = json_displays.family_list(project.get_families())

    return render(request, 'family_group/add_family_group.html', {
        'project': project,
        'families_json': json.dumps(families_json),
    })
Esempio n. 5
0
def add_family_group(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_admin(request.user):
        raise PermissionDenied

    families_json = json_displays.family_list(project.get_families())

    return render(request, 'family_group/add_family_group.html', {
        'project': project,
        'families_json': json.dumps(families_json),
    })
Esempio n. 6
0
def family_group_home(request, project_id, family_group_slug):

    project = get_object_or_404(Project, project_id=project_id)
    family_group = get_object_or_404(FamilyGroup, project=project, slug=family_group_slug)
    if not project.can_view(request.user):
        return HttpResponse('unauthorized')

    return render(request, 'family_group/family_group_home.html', {
        'project': project,
        'family_group': family_group,
        'families_json': json.dumps(json_displays.family_list(family_group.get_families())),
    })
Esempio n. 7
0
def families(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_view(request.user):
        return HttpResponse('unauthorized')

    families_json = json_displays.family_list(project.get_families())

    return render(request, 'family/families.html', {
        'project': project,
        'families_json': json.dumps(families_json),
        'analysis_statuses':  json.dumps(dict(ANALYSIS_STATUS_CHOICES)),
    })
Esempio n. 8
0
def add_family_group(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_admin(request.user):
        raise PermissionDenied

    families_json = json_displays.family_list(project.get_families())

    return render(request, 'family_group/add_family_group.html', {
        'project': project,
        'families_json': json.dumps(families_json),
        'new_page_url': '/project/{}/project_page'.format(project.seqr_project.guid) if project.seqr_project else None,
    })
Esempio n. 9
0
def families(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_view(request.user):
        raise PermissionDenied

    families_json = json_displays.family_list(project.get_families())
    
    return render(request, 'family/families.html', {
        'project': project,
        'families_json': json.dumps(families_json),
        'analysis_statuses':  json.dumps(dict(ANALYSIS_STATUS_CHOICES)),
        'is_manager': 'true' if project.can_admin(request.user) else 'false',
    })
Esempio n. 10
0
def families(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_view(request.user):
        raise PermissionDenied

    families_json = json_displays.family_list(project.get_families())
    
    return render(request, 'family/families.html', {
        'project': project,
        'families_json': json.dumps(families_json),
        'analysis_statuses':  json.dumps(dict(ANALYSIS_STATUS_CHOICES)),
        'is_manager': 'true' if project.can_admin(request.user) else 'false',
    })
Esempio n. 11
0
def family_group_home(request, project_id, family_group_slug):

    project = get_object_or_404(Project, project_id=project_id)
    family_group = get_object_or_404(FamilyGroup, project=project, slug=family_group_slug)
    if not project.can_view(request.user):
        raise PermissionDenied

    return render(request, 'family_group/family_group_home.html', {
        'project': project,
        'family_group': family_group,
        'families_json': json.dumps(json_displays.family_list(family_group.get_families())),
        'analysis_statuses':  json.dumps(dict(ANALYSIS_STATUS_CHOICES)),
    })
Esempio n. 12
0
def family_group_home(request, project_id, family_group_slug):

    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_view(request.user):
        raise PermissionDenied

    family_group = get_object_or_404(FamilyGroup, project=project, slug=family_group_slug)

    return render(request, 'family_group/family_group_home.html', {
        'project': project,
        'family_group': family_group,
        'families_json': json.dumps(json_displays.family_list(family_group.get_families())),
        'analysis_statuses':  json.dumps(dict(ANALYSIS_STATUS_CHOICES)),
        'new_page_url': '/project/{}/analysis_group/{}'.format(project.seqr_project.guid, family_group.seqr_analysis_group.guid) if project.seqr_project and family_group.seqr_analysis_group else None,
    })
Esempio n. 13
0
def add_family_group(request, project_id):
    project = get_object_or_404(Project, project_id=project_id)
    if not project.can_admin(request.user):
        raise PermissionDenied

    families_json = json_displays.family_list(project.get_families())

    return render(
        request, 'family_group/add_family_group.html', {
            'project':
            project,
            'families_json':
            json.dumps(families_json),
            'new_page_url':
            '/project/{}/project_page'.format(project.seqr_project.guid)
            if project.seqr_project else None,
        })
Esempio n. 14
0
def family_group_home(request, project_id, family_group_slug):

    project = get_object_or_404(Project, project_id=project_id)
    family_group = get_object_or_404(FamilyGroup,
                                     project=project,
                                     slug=family_group_slug)
    if not project.can_view(request.user):
        return HttpResponse('unauthorized')

    return render(
        request, 'family_group/family_group_home.html', {
            'project':
            project,
            'family_group':
            family_group,
            'families_json':
            json.dumps(json_displays.family_list(family_group.get_families())),
        })