def nutrient_12yr_intake_trend(years, macro_nutrients):
    """Gets Nutrient intake trend over 12 years.
    
    First Analysis"""

    for year in years:

        demo_data = extract_demo_data(year)

        if year == '1999' or year == '2001':
            diet_data = extract_diet_data_xtot(year)
        else:
            diet_data = extract_diet_data_2tot(year)

        relevant_data_arrays, relevant_data_lists = get_children_data(
            demo_data, diet_data, year)
        nutrient_diet = get_children_nutrient_intake(relevant_data_lists)
        nutrient_totals, total_value = get_totals_from_data(nutrient_diet)
        nutrient_trends = report_trends(nutrient_totals)
        nutrient_totals, total_value = report_total_intake(
            nutrient_totals, total_value)

        if year == '2011':
            get_trends(nutrient_trends, years, 'Years', 'Intake',
                       'Nutrient Intake Trend', macro_nutrients)
def class_wise_nutrient_intake_clusters_parallel_coordinates(years, classes):
    """Gets K-Means clusters, 4D parallel coordinates across classes
    
    Fifth Analysis"""

    for year in years:

        demo_data = extract_demo_data(year)

        if year == '1999' or year == '2001':
            diet_data = extract_diet_data_xtot(year)
        else:
            diet_data = extract_diet_data_2tot(year)

        relevant_data_arrays, relevant_data_lists = get_children_data(
            demo_data, diet_data, year)
        nutrients_lower_lists, nutrients_middle_lists, nutrients_upper_lists, nutrients_lower_arrays, nutrients_middle_arrays, nutrients_upper_arrays = get_financial_class_wise_nutrient_details(
            relevant_data_arrays)

        nutrient_intake = get_children_nutrient_intake(relevant_data_lists)
        overall_nutrients_mean = compute_mean_nutrient_intake(nutrient_intake)
        report_mean_overall(overall_nutrients_mean)

        lower_nutrients_mean = compute_mean_nutrient_intake(
            nutrients_lower_arrays)
        report_mean_lower(lower_nutrients_mean)

        middle_nutrients_mean = compute_mean_nutrient_intake(
            nutrients_middle_arrays)
        report_mean_middle(middle_nutrients_mean)

        upper_nutrients_mean = compute_mean_nutrient_intake(
            nutrients_upper_arrays)
        report_mean_upper(upper_nutrients_mean)

        report_class_counts(nutrient_intake, nutrients_lower_arrays,
                            nutrients_middle_arrays, nutrients_upper_arrays)

        if year == '1999' or year == '2003' or year == '2007' or year == '2011':

            # calculate_wssse(nutrient_intake)
            # ipr values are devided into 6 groups
            overall_cluster_ids, overall_intake_clusters = get_cluster_ids(
                nutrient_intake, 6)
            lower_cluster_ids, lower_intake_clusters = get_cluster_ids(
                nutrients_lower_arrays, 6)
            middle_cluster_ids, middle_intake_clusters = get_cluster_ids(
                nutrients_middle_arrays, 6)
            upper_cluster_ids, upper_intake_clusters = get_cluster_ids(
                nutrients_upper_arrays, 6)
            plot_clusters(overall_cluster_ids, overall_intake_clusters, 6)
            plot_clusters(lower_cluster_ids, lower_intake_clusters, 6)
            plot_clusters(middle_cluster_ids, middle_intake_clusters, 6)
            plot_clusters(upper_cluster_ids, upper_intake_clusters, 6)
            plot_as_4d(relevant_data_lists, year)

        if year == '2011':
            get_class_counts()
            get_class_wise_nutrient_trends(years, classes)
def class_wise_12yr_food_composition(years, ideal_percentages,
                                     macro_nutrients):
    """Gets Food compositions over 12 years across classes.
    
    Second Analysis"""

    for year in years:

        demo_data = extract_demo_data(year)

        if year == '1999' or year == '2001':
            diet_data = extract_diet_data_xtot(year)
        else:
            diet_data = extract_diet_data_2tot(year)

        relevant_data_arrays, relevant_data_lists = get_children_data(
            demo_data, diet_data, year)
        nutrient_intake = get_children_nutrient_intake(relevant_data_lists)
        nutrient_totals, total_value = get_totals_from_data(nutrient_intake)
        nutrient_totals, total_value = report_total_intake(
            nutrient_totals, total_value)

        nutrients_lower_lists, nutrients_middle_lists, nutrients_upper_lists, nutrients_lower_arrays, nutrients_middle_arrays, nutrients_upper_arrays = get_financial_class_wise_nutrient_details(
            relevant_data_arrays)

        lower_nutrient_totals, lower_total_value = get_totals_from_data(
            nutrients_lower_arrays)
        lower_nutrient_totals, lower_total_value = report_total_intake(
            lower_nutrient_totals, lower_total_value)

        middle_nutrient_totals, middle_total_value = get_totals_from_data(
            nutrients_middle_arrays)
        middle_nutrient_totals, middle_total_value = report_total_intake(
            middle_nutrient_totals, middle_total_value)

        upper_nutrient_totals, upper_total_value = get_totals_from_data(
            nutrients_upper_arrays)
        upper_nutrient_totals, upper_total_value = report_total_intake(
            upper_nutrient_totals, upper_total_value)

        if year == '2011':
            get_mean_intake_percentages(nutrient_totals, total_value,
                                        macro_nutrients)
            get_mean_intake_percentages(lower_nutrient_totals,
                                        lower_total_value, macro_nutrients)
            get_mean_intake_percentages(middle_nutrient_totals,
                                        middle_total_value, macro_nutrients)
            get_mean_intake_percentages(upper_nutrient_totals,
                                        upper_total_value, macro_nutrients)
            show_pie_analysis(ideal_percentages, macro_nutrients,
                              'Recommended Food Composition')
def nutrient_intake_density(years):
    """Gets Nutrient intake density across classes
    
    Fourth Analysis"""

    for year in years:

        demo_data = extract_demo_data(year)

        if year == '1999' or year == '2001':
            diet_data = extract_diet_data_xtot(year)
        else:
            diet_data = extract_diet_data_2tot(year)

        relevant_data_arrays, relevant_data_lists = get_children_data(
            demo_data, diet_data, year)
        nutrients_lower_lists, nutrients_middle_lists, nutrients_upper_lists, nutrients_lower_arrays, nutrients_middle_arrays, nutrients_upper_arrays = get_financial_class_wise_nutrient_details(
            relevant_data_arrays)

        lower_carb_fat, middle_carb_fat, upper_carb_fat = get_carb_fat_intake(
            nutrients_lower_lists, nutrients_middle_lists,
            nutrients_upper_lists)
        lower_carb, lower_fat = get_scatter_plot_data(lower_carb_fat)
        middle_carb, middle_fat = get_scatter_plot_data(middle_carb_fat)
        upper_carb, upper_fat = get_scatter_plot_data(upper_carb_fat)
        show_scatter_plot(lower_carb, lower_fat, 'Carbohydrate Intake',
                          'Fat Intake',
                          'Fat vs Carbs among Lower Income Class')
        show_scatter_plot(middle_carb, middle_fat, 'Carbohydrate Intake',
                          'Fat Intake',
                          'Fat vs Carbs among Middle Income Class')
        show_scatter_plot(upper_carb, upper_fat, 'Carbohydrate Intake',
                          'Fat Intake',
                          'Fat vs Carbs among Upper Income Class')

        lower_fiber_prot, middle_fiber_prot, upper_fiber_prot = get_fiber_protein_intake(
            nutrients_lower_lists, nutrients_middle_lists,
            nutrients_upper_lists)
        lower_fiber, lower_prot = get_scatter_plot_data(lower_fiber_prot)
        middle_fiber, middle_prot = get_scatter_plot_data(middle_fiber_prot)
        upper_fiber, upper_prot = get_scatter_plot_data(upper_fiber_prot)
        show_scatter_plot(lower_fiber, lower_prot, 'Fiber Intake',
                          'Protein Intake',
                          'Fiber vs Protein among Lower Income Class')
        show_scatter_plot(middle_fiber, middle_prot, 'Fiber Intake',
                          'Protein Intake',
                          'Fiber vs Protein among Middle Income Class')
        show_scatter_plot(upper_fiber, upper_prot, 'Fiber Intake',
                          'Protein Intake',
                          'Fiber vs Protein among Upper Income Class')
def nutrient_box_plot(years):
    """Gets intake comparison among classes
    
    Sixth Analysis"""

    for year in years:

        demo_data = extract_demo_data(year)

        if year == '1999' or year == '2001':
            diet_data = extract_diet_data_xtot(year)
        else:
            diet_data = extract_diet_data_2tot(year)

        relevant_data_arrays, relevant_data_lists = get_children_data(
            demo_data, diet_data, year)
        category_data, carb_normalized, fiber_normalized, fat_normalized, prot_normalized = normalize_nutrient_data(
            relevant_data_lists)

        generate_box_plot(category_data, carb_normalized, fiber_normalized,
                          fat_normalized, prot_normalized)
def average_12yr_person_intake_per_class(years, macro_nutrients, classes):
    """Gets average intake per person over 12 years across classes
    
    Third Analysis"""

    for year in years:

        demo_data = extract_demo_data(year)

        if year == '1999' or year == '2001':
            diet_data = extract_diet_data_xtot(year)
        else:
            diet_data = extract_diet_data_2tot(year)

        relevant_data_arrays, relevant_data_lists = get_children_data(
            demo_data, diet_data, year)
        nutrient_intake = get_children_nutrient_intake(relevant_data_lists)
        nutrient_totals, total_value = get_totals_from_data(nutrient_intake)
        nutrient_totals, total_value = report_total_intake(
            nutrient_totals, total_value)

        nutrients_lower_lists, nutrients_middle_lists, nutrients_upper_lists, nutrients_lower_arrays, nutrients_middle_arrays, nutrients_upper_arrays = get_financial_class_wise_nutrient_details(
            relevant_data_arrays)

        report_class_counts(nutrient_intake, nutrients_lower_arrays,
                            nutrients_middle_arrays, nutrients_upper_arrays)

        lower_nutrient_totals, lower_total_value = get_totals_from_data(
            nutrients_lower_arrays)
        lower_nutrient_totals, lower_total_value = report_total_intake(
            lower_nutrient_totals, lower_total_value)

        middle_nutrient_totals, middle_total_value = get_totals_from_data(
            nutrients_middle_arrays)
        middle_nutrient_totals, middle_total_value = report_total_intake(
            middle_nutrient_totals, middle_total_value)

        upper_nutrient_totals, upper_total_value = get_totals_from_data(
            nutrients_upper_arrays)
        upper_nutrient_totals, upper_total_value = report_total_intake(
            upper_nutrient_totals, upper_total_value)

        if year == '2011':
            overall_intake_averages = report_overall_average_intake_per_person(
                nutrient_totals)
            lower_intake_averages = report_lower_average_intake_per_person(
                lower_nutrient_totals)
            middle_intake_averages = report_middle_average_intake_per_person(
                middle_nutrient_totals)
            upper_intake_averages = report_upper_average_intake_per_person(
                upper_nutrient_totals)
            compute_average_intake_per_person(overall_intake_averages)
            compute_average_intake_per_person(lower_intake_averages)
            compute_average_intake_per_person(middle_intake_averages)
            compute_average_intake_per_person(upper_intake_averages)
            get_average_intake_per_person_nutrient_wise(
                macro_nutrients, classes)
            get_average_intake_per_person_class_wise(overall_intake_averages,
                                                     lower_intake_averages,
                                                     middle_intake_averages,
                                                     upper_intake_averages,
                                                     classes, macro_nutrients)