Final paper
plant-based diet consumption has grown significantly following the rise in health awareness in consumers. With the majority of the consumers desiring for plant-based products that imitated the taste and texture of the conventional ones, the food science community has taken interest in the development of plant-based food. However, the plant-based sausages that were commercially available in the market are still lacking. To develop more meat-like plant-based sausages, the textural attributes of the conventional sausages should be considered. With the texture data that I gather from the commercially available plant-based hotdogs and sausages and the even number of conventional meat products using texture profile analysis (TPA), I analyzed the data with analysis of variance (ANOVA) and plotting the principal component analysis (PCA) plot to answer the research questions.
To develop accurate imitation of conventional meat hotdogs and sausages, there are 2 questions that need to be answered in this study. The first one is “How are the plant-based products’ texture attributes different from meat-based one?” while the second research questions is “What is the best available commercially plant protein option between vital wheat gluten, pea protein, and soy protein to imitate the texture of meat-based hotdogs and Italian sausages?”
This data was gathered from research in the plant-based hotdogs and sausages using texture profile analysis (TPA). There are totally 7 textural attributes collected, i.e. Hardness, Adhesiveness, Resilience, Cohesion, Springiness, Gumminess, and Chewiness.
library(readxl)
TPA <- read_excel("TPA_all.xlsx")
TPA
# A tibble: 145 x 14
Product Brand Type Protein Component Sampling Hardness
<chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
1 BallPark Beef Fran~ Ball~ HD M B 1 3820.
2 BallPark Beef Fran~ Ball~ HD M B 2 4522.
3 BallPark Beef Fran~ Ball~ HD M B 3 3653.
4 BallPark Beef Fran~ Ball~ HD M B 4 3594.
5 BAR S FRANKS Bar S HD M CP 1 2886.
6 BAR S FRANKS Bar S HD M CP 2 3773.
7 BAR S FRANKS Bar S HD M CP 3 3948.
8 BAR S FRANKS Bar S HD M CP 4 3439.
9 BAR S FRANKS Bar S HD M CP 5 3792.
10 BAR S FRANKS Bar S HD M CP 6 3875.
# ... with 135 more rows, and 7 more variables: Adhesiveness <dbl>,
# Resilence <dbl>, Cohesion <dbl>, Springiness <dbl>,
# Gumminess <dbl>, Chewiness <dbl>, Diameter <dbl>
#delete diameter
TPA <- TPA[,c("Product","Brand","Type","Protein","Component","Sampling","Hardness","Adhesiveness","Resilence","Cohesion","Springiness","Gumminess","Chewiness")]
TPA
# A tibble: 145 x 13
Product Brand Type Protein Component Sampling Hardness
<chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
1 BallPark Beef Fran~ Ball~ HD M B 1 3820.
2 BallPark Beef Fran~ Ball~ HD M B 2 4522.
3 BallPark Beef Fran~ Ball~ HD M B 3 3653.
4 BallPark Beef Fran~ Ball~ HD M B 4 3594.
5 BAR S FRANKS Bar S HD M CP 1 2886.
6 BAR S FRANKS Bar S HD M CP 2 3773.
7 BAR S FRANKS Bar S HD M CP 3 3948.
8 BAR S FRANKS Bar S HD M CP 4 3439.
9 BAR S FRANKS Bar S HD M CP 5 3792.
10 BAR S FRANKS Bar S HD M CP 6 3875.
# ... with 135 more rows, and 6 more variables: Adhesiveness <dbl>,
# Resilence <dbl>, Cohesion <dbl>, Springiness <dbl>,
# Gumminess <dbl>, Chewiness <dbl>
#change type of sausages
TPA <- TPA %>% dplyr::mutate(Type = ifelse(as.character(Type) != "HD","IT",as.character(Type)))
TPA
# A tibble: 145 x 13
Product Brand Type Protein Component Sampling Hardness
<chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
1 BallPark Beef Fran~ Ball~ HD M B 1 3820.
2 BallPark Beef Fran~ Ball~ HD M B 2 4522.
3 BallPark Beef Fran~ Ball~ HD M B 3 3653.
4 BallPark Beef Fran~ Ball~ HD M B 4 3594.
5 BAR S FRANKS Bar S HD M CP 1 2886.
6 BAR S FRANKS Bar S HD M CP 2 3773.
7 BAR S FRANKS Bar S HD M CP 3 3948.
8 BAR S FRANKS Bar S HD M CP 4 3439.
9 BAR S FRANKS Bar S HD M CP 5 3792.
10 BAR S FRANKS Bar S HD M CP 6 3875.
# ... with 135 more rows, and 6 more variables: Adhesiveness <dbl>,
# Resilence <dbl>, Cohesion <dbl>, Springiness <dbl>,
# Gumminess <dbl>, Chewiness <dbl>
The data was cleaned, remove unnecessary column, and made to be more uniformed using readxl and dplyr functions.
#Explain the variables
str(TPA)
tibble [145 x 13] (S3: tbl_df/tbl/data.frame)
$ Product : chr [1:145] "BallPark Beef Franks" "BallPark Beef Franks" "BallPark Beef Franks" "BallPark Beef Franks" ...
$ Brand : chr [1:145] "Ballpark" "Ballpark" "Ballpark" "Ballpark" ...
$ Type : chr [1:145] "HD" "HD" "HD" "HD" ...
$ Protein : chr [1:145] "M" "M" "M" "M" ...
$ Component : chr [1:145] "B" "B" "B" "B" ...
$ Sampling : num [1:145] 1 2 3 4 1 2 3 4 5 6 ...
$ Hardness : num [1:145] 3820 4522 3653 3594 2886 ...
$ Adhesiveness: num [1:145] -11.35 -10.63 -11.91 -8.65 -8.82 ...
$ Resilence : num [1:145] 32.2 34.2 34.1 25.3 40.6 ...
$ Cohesion : num [1:145] 0.6 0.679 0.607 0.468 0.726 0.743 0.724 0.738 0.721 0.746 ...
$ Springiness : num [1:145] 92 88.2 90.4 86.8 93.3 ...
$ Gumminess : num [1:145] 2292 3072 2217 1683 2094 ...
$ Chewiness : num [1:145] 2107 2710 2005 1461 1953 ...
TPA data has 13 variables. Product (Variable 1), Brand (Variable 2), Type (Variable 3), Protein (Variable 4), and Component (Variable 5) variables are characters type while Sampling (Variable 6) is integer. The other variables, i.e. Hardness (Variable 7), Adhesiveness (Variable 8), Resilence (Variable 9), Cohesion (Variable 10), Springiness (Variable 11), Gumminess (Variable 12), Chewiness (Variable 13) are numeric.
TPA_mean <- TPA %>% group_by(Product,Type,Protein,Component) %>% summarise_at(vars(Hardness:Chewiness), list(mean = mean))
#round to 3 digits
TPA_mean <- mutate_if(TPA_mean , is.numeric, round, 3)
TPA_mean
# A tibble: 27 x 11
# Groups: Product, Type, Protein [27]
Product Type Protein Component Hardness_mean Adhesiveness_me~
<chr> <chr> <chr> <chr> <dbl> <dbl>
1 ALL NATULRA~ IT M P 10547. -10.6
2 BallPark Be~ HD M B 3897. -10.6
3 BAR S FRANKS HD M CP 3619. -37.9
4 BEYOND MEAT~ IT PB PP 1518. -30.9
5 Beyond Saus~ IT PB PP 2132. -17.7
6 BIGY SWEET ~ IT M P 11149. -7.39
7 FIELD ROAST~ HD PB VWG 5135. -24.3
8 FIELD ROAST~ IT PB VWG 5440. -5.07
9 FIELD ROAST~ HD PB PP 2699. -71.3
10 Flame grill~ IT M P 7794. -5.48
# ... with 17 more rows, and 5 more variables: Resilence_mean <dbl>,
# Cohesion_mean <dbl>, Springiness_mean <dbl>,
# Gumminess_mean <dbl>, Chewiness_mean <dbl>
TPA_med <- TPA %>% group_by(Product,Type,Protein,Component) %>% summarise_at(vars(Hardness:Chewiness), list(med = median))
#round to 3 digits
TPA_med <- mutate_if(TPA_med , is.numeric, round, 3)
TPA_med
# A tibble: 27 x 11
# Groups: Product, Type, Protein [27]
Product Type Protein Component Hardness_med Adhesiveness_med
<chr> <chr> <chr> <chr> <dbl> <dbl>
1 ALL NATULRAL~ IT M P 10305. -2.11
2 BallPark Bee~ HD M B 3737. -11.0
3 BAR S FRANKS HD M CP 3782. -40.3
4 BEYOND MEAT ~ IT PB PP 1551. -29.4
5 Beyond Sausa~ IT PB PP 2142. -18.7
6 BIGY SWEET I~ IT M P 11556. -9.18
7 FIELD ROAST ~ HD PB VWG 5122. -22.5
8 FIELD ROAST ~ IT PB VWG 5456. -5.03
9 FIELD ROAST ~ HD PB PP 2705. -78.4
10 Flame grille~ IT M P 7696. -6.47
# ... with 17 more rows, and 5 more variables: Resilence_med <dbl>,
# Cohesion_med <dbl>, Springiness_med <dbl>, Gumminess_med <dbl>,
# Chewiness_med <dbl>
TPA_sd <- TPA %>% group_by(Product,Type,Protein,Component) %>% summarise_at(vars(Hardness:Chewiness), list(sd = sd))
#round to 3 digits
TPA_sd <- mutate_if(TPA_sd , is.numeric, round, 3)
TPA_sd
# A tibble: 27 x 11
# Groups: Product, Type, Protein [27]
Product Type Protein Component Hardness_sd Adhesiveness_sd
<chr> <chr> <chr> <chr> <dbl> <dbl>
1 ALL NATULRAL S~ IT M P 843. 14.3
2 BallPark Beef ~ HD M B 427. 1.42
3 BAR S FRANKS HD M CP 399. 30.0
4 BEYOND MEAT HO~ IT PB PP 257. 12.6
5 Beyond Sausage~ IT PB PP 68.0 10.4
6 BIGY SWEET ITA~ IT M P 1426. 4.96
7 FIELD ROAST CL~ HD PB VWG 643. 7.4
8 FIELD ROAST GA~ IT PB VWG 950. 1.84
9 FIELD ROAST SI~ HD PB PP 237. 21.4
10 Flame grilled ~ IT M P 610. 3.99
# ... with 17 more rows, and 5 more variables: Resilence_sd <dbl>,
# Cohesion_sd <dbl>, Springiness_sd <dbl>, Gumminess_sd <dbl>,
# Chewiness_sd <dbl>
These 3 tables demonstrated the mean, median, and standard deviations of each hotdog and Italian sausage.
The hotdogs and Italian sausages should be individually analyzed, thus I wrote this code to seperate them using data-wrangling operations. First, I analyzed the hotdogs dataset.
#For hotdogs
HD <- TPA_mean %>%
filter(Type == "HD")
HD_M <- HD %>%
filter(Protein == "M")
#Hardness
A_M_Hardness_HD <- aov(Hardness_mean ~ Component, data = HD_M)
summary(A_M_Hardness_HD)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 3747142 1249047 0.483 0.728
Residuals 2 5168328 2584164
#Adhesiveness
A_M_Adhesiveness_HD <- aov(Adhesiveness_mean ~ Component, data = HD_M)
summary(A_M_Adhesiveness_HD)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 570.4 190.1 1.375 0.447
Residuals 2 276.5 138.3
#Resilence
A_M_Resilence_HD <- aov(Resilence_mean ~ Component, data = HD_M)
summary(A_M_Resilence_HD)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 35.03 11.68 1.154 0.495
Residuals 2 20.24 10.12
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 0.016121 0.005374 4.376 0.192
Residuals 2 0.002456 0.001228
#Springiness
A_M_Springiness_HD <- aov(Springiness_mean ~ Component, data = HD_M)
summary(A_M_Springiness_HD)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 37.68 12.561 23.96 0.0403 *
Residuals 2 1.05 0.524
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Gumminess
A_M_Gumminess_HD <- aov(Gumminess_mean ~ Component, data = HD_M)
summary(A_M_Gumminess_HD)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 705663 235221 0.173 0.906
Residuals 2 2716263 1358132
#Chewiness
A_M_Chewiness_HD <- aov(Chewiness_mean ~ Component, data = HD_M)
summary(A_M_Chewiness_HD)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 383833 127944 0.126 0.937
Residuals 2 2032661 1016331
After separate the hotdogs from Italian sausage, the analysis of variance (ANOVA) was used to determine whether the plant-based hotdogs should be compared with individual component of meat-based hotdogs. From the ANOVA result, the only attribute that is significantly different at 95% confidence interval for meat-based hotdogs is springiness.
TukeyHSD(A_M_Springiness_HD)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Springiness_mean ~ Component, data = HD_M)
$Component
diff lwr upr p adj
BP-B 2.804667 -2.98819995 8.597533 0.1871227
CP-B 5.373667 -0.41919995 11.166533 0.0577043
TCP-B 5.780667 -0.01219995 11.573533 0.0502022
CP-BP 2.569000 -4.52578368 9.663784 0.2966390
TCP-BP 2.976000 -4.11878368 10.070784 0.2365905
TCP-CP 0.407000 -6.68778368 7.501784 0.9739568
The Tukey’s post hoc test was then conducted to determine how each component is different. Only the Turkey-Chicken-Pork meat blended and Beef is significantly different with each other; however, it is narrowly different. Thus, it was determined that plant-based hotdogs should be compared with overall meat-based hotdogs.
#For hotdogs
HD <- HD %>% dplyr::mutate(Component = ifelse(as.character(Component) != "PP" & as.character(Component) != "SP"& as.character(Component) != "VWG","M",as.character(Component)))
HD <- HD %>% arrange(Protein)
HD$Product = c('M1','M2','M3','M4','M5','M6','PB1','PB2','PB3','PB4','PB5','PB6')
With this code, the individual component of meat products were changed into overall meat component to do the statistical analysis.
#Anova for HD
#Hardness
A_HD_hardness <- aov(Hardness_mean ~ Component, data = HD)
summary(A_HD_hardness)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 7946174 2648725 1.593 0.266
Residuals 8 13301120 1662640
#Adhesiveness
A_HD_Adhesiveness <- aov(Adhesiveness_mean ~ Component, data = HD)
summary(A_HD_Adhesiveness)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 4931 1643.5 5.351 0.0258 *
Residuals 8 2457 307.1
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 174.4 58.13 3.18 0.0848 .
Residuals 8 146.2 18.28
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 0.01177 0.003922 1.16 0.383
Residuals 8 0.02704 0.003380
#Springiness
A_HD_Springiness <- aov(Springiness_mean ~ Component, data = HD)
summary(A_HD_Springiness)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 137.72 45.91 3.961 0.053 .
Residuals 8 92.71 11.59
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 2866681 955560 1.273 0.348
Residuals 8 6006044 750755
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 3001488 1000496 1.68 0.248
Residuals 8 4765487 595686
ANOVA was conducted to compare each attributes between individual plant based hotdogs’ component and overall meat hotdogs. Only adhesiveness of the hotdogs is significantly different at 95% confidence interval. The Tukey’s post hoc test was then conducted to determine the different. From the Tukey’s plot of the adhesiveness, it can be determined that only soy protein component hotdogs are significantly different from meat hotdogs. This means that pea protein and vital wheat gluten are better than soy protein in imitating the adhesiveness of meat hotdogs.
#For Italian sausages
IT <- TPA_mean %>%
filter(Type == "IT")
IT_M <- IT %>%
filter(Protein == "M")
#Hardness
A_M_Hardness_IT <- aov(Hardness_mean ~ Component, data = IT_M)
summary(A_M_Hardness_IT)
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 792104 792104 0.29 0.61
Residuals 6 16409919 2734986
#Adhesiveness
A_M_Adhesiveness_IT <- aov(Adhesiveness_mean ~ Component, data = IT_M)
summary(A_M_Adhesiveness_IT)
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 12 12.0 0.026 0.877
Residuals 6 2750 458.4
#Resilence
A_M_Resilence_IT <- aov(Resilence_mean ~ Component, data = IT_M)
summary(A_M_Resilence_IT)
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 49.31 49.31 1.493 0.268
Residuals 6 198.14 33.02
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 0.01594 0.015939 2.045 0.203
Residuals 6 0.04677 0.007795
#Springiness
A_M_Springiness_IT <- aov(Springiness_mean ~ Component, data = IT_M)
summary(A_M_Springiness_IT)
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 8.314 8.314 4.674 0.0739 .
Residuals 6 10.672 1.779
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Gumminess
A_M_Gumminess_IT <- aov(Gumminess_mean ~ Component, data = IT_M)
summary(A_M_Gumminess_IT)
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 2870804 2870804 1.396 0.282
Residuals 6 12335681 2055947
#Chewiness
A_M_Chewiness_IT <- aov(Chewiness_mean ~ Component, data = IT_M)
summary(A_M_Chewiness_IT)
Df Sum Sq Mean Sq F value Pr(>F)
Component 1 1685890 1685890 1.186 0.318
Residuals 6 8529505 1421584
As for the Italian sausages, there is no significant different at 95% confidence interval for any of the attributes for meat-based sausages, which means that plant-based sausages should also be compared with overall meat-based sausages.
#For Italian sausages
IT <- IT %>% dplyr::mutate(Component = ifelse(as.character(Component) != "PP" & as.character(Component) != "SP"& as.character(Component) != "VWG","M",as.character(Component)))
IT <- IT %>% arrange(Protein)
IT$Product = c('M1','M2','M3','M4','M5','M6','M7','M8','PB1','PB2','PB3','PB4','PB5','PB6','PB7')
With this code, the individual component of meat sausages were changed into overall meat component to do the statistical analysis.
#Anova for IT
#Hardness
A_IT_hardness <- aov(Hardness_mean ~ Component, data = IT)
summary(A_IT_hardness)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 123755140 41251713 14.62 0.000374 ***
Residuals 11 31045055 2822278
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Adhesiveness
A_IT_Adhesiveness <- aov(Adhesiveness_mean ~ Component, data = IT)
summary(A_IT_Adhesiveness)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 1887 628.9 2.048 0.166
Residuals 11 3378 307.1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 487.3 162.45 5.241 0.0173 *
Residuals 11 340.9 30.99
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 0.1265 0.04217 6.104 0.0106 *
Residuals 11 0.0760 0.00691
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Springiness
A_IT_Springiness <- aov(Springiness_mean ~ Component, data = IT)
summary(A_IT_Springiness)
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 835.6 278.52 17.32 0.000177 ***
Residuals 11 176.8 16.08
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 30116483 10038828 4.441 0.0282 *
Residuals 11 24865014 2260456
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Component 3 24502666 8167555 4.693 0.024 *
Residuals 11 19144592 1740417
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
As for the Italian sausages, the only attribute that is not significantly different is adhesiveness.
In conclusion based on the Anova test, to make the accurate imitation of conventional meat sausages, the best protein to use as a main component of Italian sausages is soy protein as it can accurately imitate the all texture attributes of meat-based sausages while the vital wheat gluten can only imitate the resilience, springiness, gumminess, and chewiness of the conventional sausages. Additionally, only texture attributes of soy protein that similar to meat sausages are resilience and cohesiveness.
These are visualization of every texture attributes, i.e. Hardness, adhesiveness, resilience, cohesiveness, springiness, gumminess, and chewiness, and how every hotdogs and sausages are influenced by those attributes, and how are they similar or different to each other, which can be used to determine the best commercially used plant protein to imitate the meat hotdogs and sausages.
PCA_HD <- prcomp(HD[,c(5:11)], center = TRUE, scale. = TRUE)
ggbiplot(PCA_HD, choices = c(1,2), obs.scale = 1, var.scale = 1, ellipse = TRUE, labels = HD$Product, groups = HD$Component, varname.adjust = 1, varname.size = 2.5)+ scale_color_discrete(name = 'Protein Component') + theme_classic() + theme(legend.direction = 'horizontal', legend.position = 'bottom')
PCA_IT <- prcomp(IT[,c(5:11)], center = TRUE, scale. = TRUE)
ggbiplot(PCA_IT, obs.scale = 1, var.scale = 1.8, ellipse = TRUE, labels = IT$Product, groups = IT$Component, varname.adjust = 1, varname.size = 2.5)+ scale_color_discrete(name = 'Protein Component') + theme_classic() + theme(legend.direction = 'horizontal', legend.position = 'bottom')
I chose this data because it is the project that I am currently working on and would like to do the data analysis on. It is fun and challenging as I hadn’t dived deeply into R before. I decided to do the analysis on the dataset as I would in my research project so I could also use it and improve on. As for the most challenging aspect of this project, it is to make the visualizations to be more appealing. The statistical analysis was not the hard part. If you can figure out the code to do it then it is done. but it is hard to make it more presentable and publishable. I wish that I known more about how to add the letters to show significant differences into the graph. There could be an improvement in the visualizations of this project such as the results of the Tukey’s post hoc test. However, I couldn’t seem to work out the code to make the results showing in the boxplot but I still have fun with this project.
This project can partially answer the questions that were asked. In conclusion based on the Anova test, Only the adhesiveness of soy protein-based hotdogs is significantly different from conventional meat hotdogs; however, the value is almost significantly different. This means that the ratio of soy protein used in plant-based hotdogs should be considered carefully to accurately imitate the meat-based ones.In addition, when looking at the PCA plot for the overall likeness, vital wheat gluten and soy protein also good options for making plant-based imitation of hotdogs.
Based on ANOVA results, to make the accurate imitation of conventional meat sausages, the best protein to use as a main component of Italian sausages is soy protein as it can accurately imitate the all texture attributes of meat-based sausages while the vital wheat gluten can only imitate the resilience, springiness, gumminess, and chewiness of the conventional sausages. Additionally, only texture attributes of soy protein that similar to meat sausages are resilience and cohesiveness. However, when looking at the overall attributes in PCA, all of the 3 plant protein based sausages are not good enough imitation of meat based one.
Text and figures are licensed under Creative Commons Attribution CC BY-NC 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".
For attribution, please cite this work as
Tansaraviput (2022, May 11). Data Analytics and Computational Social Science: Texture Analysis of Plant-based and Conventional Hotdogs and Italian Sausages. Retrieved from https://github.com/DACSS/dacss_course_website/posts/httprpubscomsnoutsnake901250/
BibTeX citation
@misc{tansaraviput2022texture, author = {Tansaraviput, Sasi}, title = {Data Analytics and Computational Social Science: Texture Analysis of Plant-based and Conventional Hotdogs and Italian Sausages}, url = {https://github.com/DACSS/dacss_course_website/posts/httprpubscomsnoutsnake901250/}, year = {2022} }