diff --git a/Code_1er_Visu.R b/Code_1er_Visu.R deleted file mode 100644 index e6067aa6782d52502ee9f5b9b30732072fab5c38..0000000000000000000000000000000000000000 --- a/Code_1er_Visu.R +++ /dev/null @@ -1,182 +0,0 @@ - - - -design_WS3.tsv <- read.csv("design_WS3.tsv.cvs", header = TRUE) - -metadata <- read.csv("C:/Users/diall/Documents/design_WS3 - design_WS3.tsv.csv", heade=TRUE) - -#Charger les biblioth�ques n�cessaires -library(ggplot2) -library(dplyr) -library(tidyr) -library(corrplot) -library(ComplexHeatmap) - -#Cr�er un datatframe avec les donn�es fournies -data <- data.frame( - sample = paste0("S", 1:12), - condition = c("neg", "pos", "neg", "pos", "neg", "pos", "neg", "pos", "neg", "pos", "neg", "pos"), - animal = c("m109", "m109", "m709", "m709", "m882", "m882", "m964", "m964", "m189", "m189", "m198", "m198"), - experiment = as.Date(c("04.09.2024", "04.09.2024", "12.09.2024", "12.09.2024", "17.09.2024", "17.09.2024", "17.09.2024", "18.09.2024", "30.10.2024", "30.10.2024", "30.10.2024", "30.10.2024"), format="%d.%m.%Y"), - extraction = as.Date(c("04.09.2024", "04.09.2024", "12.09.2024", "12.09.2024", "18.09.2024", "18.09.2024", "18.09.2024", "18.09.2024", "30.10.2024", "30.10.2024", "30.10.2024", "30.10.2024"), format="%d.%m.%Y"), - volume = c(18, 18, 18, 18, 17, 18, 18, 18, 12, 12, 12, 12), - quantity = c(520, 936, 718, 223, 15476, 90, 4559, 954, 685, 2671, 72, 75) -) - -#Afficher les premi�res lignes des donn�es -head(data) - -#2- Analyse de corr�lations -#Selectionner les variables num�riques -numeric_data <- data%>% select(volume, quantity) - -#Calculer la matrice de corr�lation -cor_matrix <- cor(numeric_data) - -#Visualiser la matrice de corr�lation avec corrplot -corrplot(cor_matrix, method = "circle", type = "upper", tl.col = "black", tl.srt = 45) - -#Tableau de contingence entre condition et animal -contingency_table <- table(data$condition, data$animal) - -#Certaines valeurs de certaines cellules sont trop faible donc on utilise le test de Fisher au lieu de chi2 -#il est plus adapt� pour les petits echantillons -#Appliquer le test exact de Fisher -fisher_test <- fisher.test(contingency_table) -print(fisher_test) -#P_value= 1: il n'y a aucune diff�rence significative dans la distribution des animaux entre ces deux conditions -#Les 2 variables (condition et animal) sont ind�pendantes - -#visualisation du tableau de contingence -print(contingency_table) - -#3- Visualisatiions adapt�es -#Boxplot pour l'effet de la condition sur la quantit� -ggplot(data, aes(x = condition, y= quantity, fill = condition)) + - geom_boxplot() + - labs(title= "Effet de la condition sur la quantit�", - x= "Condition", - y= "Quantit�") + - theme_minimal() -#Interpretation -#Le graphe montre que la condition positive (pos) est g�n�ralement associ�e -#� des quantit�s plus �lev�es que la condition n�gative (neg) - -#Boxplot pour l'effet de l'animal sur la quantit� -ggplot(data, aes(x = animal, y= quantity, fill = animal)) + - geom_boxplot() + - labs(title = "Effet de l'animal sur la quantit�", - x= "Animal", - y= "Quantit�") + - theme_minimal() -#Interpretation -#Le graphe montre que l'animal a un effet significatif sur la quantit� m�sur�e -#m882 se distingue clairement avec une quantit� tr�s �lev�e, ce qui pourrait -#indiquer une particularit� biologique ou exp�rimentale -#Les autres animaux ont des quantit�s plus faibles, mais avec des variations -#entre eux - - -#Heatmap pourles interactions crois�es -#Pr�parer les donn�es pour la heatmap -heatmap_data <- data %>% - group_by(condition, animal) %>% - summarise(mean_quantity= mean(quantity)) %>% - spread(key= animal, value = mean_quantity) - -#Convertir en matrice -heatmap_matrix <- as.matrix(heatmap_data[,-1]) -rownames(heatmap_matrix) <- heatmap_data$condition - -#Visualiser la heatmap avec ComplexHeatmap -Heatmap(heatmap_matrix, name= "Quantit� moyenne", - row_title = "Condition", column_title = "Animal", - row_names_side = "left", column_names_side = "top") - -#Scatter plot pour volume vs quantit� avec r�gression lin�aire -ggplot(data, aes(x= volume, y= quantity)) + - geom_point(aes(color= condition), size=3) + - geom_smooth(method = "lm", se= FALSE, color= "blue") + - labs(title = "Relation entre volume et quantit�", - x= "Volume", - y= "Quantity") + - theme_minimal() - - -#ANOVA pour comparer les animaux -#anova pour comparer les quantit�s entre les animaux -anova_result <- aov(quantity ~ animal, data= data) -summary(anova_result) - -#0.782 > 0.597 signifie qu'il n'y a pas de diff�rence -#statistiquement significative entre les moyennes des groupes d'animaux -#l'animal n'est pas un facteur influen�ant significativement la quantit� dans les donn�es - - -#V�rifier les hypoth�ses de l'ANOVA -#Homog�n�it� des variances(homosc�dasticit�) -install.packages("carData") -library(car) -class(data) -colnames(data) -leveneTest(quantity ~ animal, data = metadata ) -#Le test de Levene retourne une valeur F extremement �lev�e -#p-value est extremeent faible, indiquant que les -#variances ne sont pas homog�nes entre les groupes d�finis par animal - - -#Test de Bartlett -bartlett.test(quantity ~ animal, data = metadata) -#Les r�sultats du test de Bartlett indiquent que les variances entre -#les groupes d�finis par la variable animal ne sont pas homog�nes -#p-value < 5%, nous rejetons l'hypoth�se nulle d'homog�n�it� des variances - -#Test de Fligner-Killeen -fligner.test(quantity ~ animal, data = metadata) -#p-value= 0.05138 est proche de 5% les groupes sont marginalement homog�nes - - -#Test Welch -oneway.test(quantity ~ animal, data = metadata, var.equal = FALSE) - -#Tracer un boxplot pour inspecter les variances entre groupes -boxplot(quantity ~ animal, data = metadata, main = "Quantities by Animal", ylab = "Quantity", xlab = "Animal") -#Interpretation -#Le groupe m882 pr�sente une variabilit� beaucoup plus importante que les -#autres groupes, avec une �tendue tr�s large des valeurs(la boite et les moustaches sont tr�s �tendus) -#Cela pourrait expliquer pourquoi le test d'homog�n�it� des variances comme celui -#Bartlett ou de Fligner-Killen a d�tect� une h�t�rog�n�it� -#Les groupes m109 et 3198 montrent des valeurs de quantity beaucoup plus faibles et homog�nes -#avec une faible dispersion des donn�es -#Il semble qu'il y ait des observations extremes dans certains groupes, en particulier dans m882. -#Ces valeurs peuvent influencer les tests statistiques et les r�sultats -#Les grandes diff�rences de variabilit� entre les groupes(notament m882 vs les autres) rendent les hypoth�ses -#d'homog�n�it� des variances et de normalit� difficiles � maintenir -#L'ANOVA classique pourrait ne pas �tre appropri�e en raison de ces diff�rences importantes - - - -#Transformation des donn�es pour r�duire l'influence des valeurs extremes et stabilis�r les variances -metadata$quantity_log <- log(metadata$quantity + 1) -boxplot(quantity_log ~ animal, data = metadata, main= "Log-transformed Quantities by Animal") -#Interpretation: la transformation logarithmique a r�duit l'amplitude de la dispersion observ�e pr�c�demment -#Cependant, ce groupe reste le plus variable par rapport aux autres, ce qui pourrait encore influencer les analyses -#Les groupes m109 et m198 ont des valeurs plus resserr�es et homog�nes apr�s transformation - - - -#Analyse non param�trique -kruskal.test(quantity ~ animal, data = metadata) - -#Identifier les valeurs etremes dans m882 et �valuer leur impact -boxplot.stats(metadata$quantity[metadata$animal == "m882"]) - -#comparaison par paires -pairwise.wilcox.test(metadata$quantity, metadata$animal, p.adjust.method = "bonferroni") - -#Groupes convertis en facteurs -metadata$anima <- as.factor(metadata$animal) -table(metadata$animal) -#Normalit� des r�sidus -#Test de Shapiro-Wilk -(shapiro.test(residuals(anova_result)))