Using nested loops to analyse up-regulated and down-regulated genes











up vote
2
down vote

favorite












I am new to R Programming and I am currently looking to analyse a huge dataset of genes. I am attempting to alter a nested loop that currently works to see which genes are up-regulated given varying adjusted P values and LogFC values to see the same but for down-regulated genes. What I have generated for the up-regulated genes is a 4x4 table looking to see how the number of genes that meet the cut off values I have selected for the P adjusted value and the LogFC varies. The image shows the coding used for the nested loop What I am getting when I attempt to execute this for the down-regulated genes is the same values - I am assuming R is not registering any changes and returns the same numbers.
Any advice would be much appreciated.



 #--------------------------------------------------------------------------------
# Function to calculate number of up regulated genes
#--------------------------------------------------------------------------------
get.upregulated.genes <- function(dafra, p.value.max, log.fc.min) {
gene.count <- subset(dafra, adj.P.Val <= p.value.max & logFC >= log.fc.min) %>%
.[["Gene.symbol"]] %>% unique %>% length
return(gene.count)
}

get.upregulated.genes(dafra=df3, p.value.max=0.05, log.fc.min=1) # 429

p.values <- c(0.001, 0.005, 0.01, 0.05)
log.fcs <- rev(c(0.5, 1, 1.5, 2))
log.fcs
mx.up <- matrix(rep(NA, 16), ncol=4)
mx.up
colnames(mx.up) <- p.values
rownames(mx.up) <- log.fcs

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
mx.up[as.character(y),as.character(x)] <- z
}
}
mx.up
View(mx.up)

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
print(x)
print(y)
print(z)
print("------")
}
}









share|improve this question









New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Is it ok to paste the code in to the question, please?
    – Jonny Phelps
    Nov 19 at 13:15










  • Yes sure, please access it from the question above
    – Hiba Al-khaffaji
    Nov 19 at 14:04















up vote
2
down vote

favorite












I am new to R Programming and I am currently looking to analyse a huge dataset of genes. I am attempting to alter a nested loop that currently works to see which genes are up-regulated given varying adjusted P values and LogFC values to see the same but for down-regulated genes. What I have generated for the up-regulated genes is a 4x4 table looking to see how the number of genes that meet the cut off values I have selected for the P adjusted value and the LogFC varies. The image shows the coding used for the nested loop What I am getting when I attempt to execute this for the down-regulated genes is the same values - I am assuming R is not registering any changes and returns the same numbers.
Any advice would be much appreciated.



 #--------------------------------------------------------------------------------
# Function to calculate number of up regulated genes
#--------------------------------------------------------------------------------
get.upregulated.genes <- function(dafra, p.value.max, log.fc.min) {
gene.count <- subset(dafra, adj.P.Val <= p.value.max & logFC >= log.fc.min) %>%
.[["Gene.symbol"]] %>% unique %>% length
return(gene.count)
}

get.upregulated.genes(dafra=df3, p.value.max=0.05, log.fc.min=1) # 429

p.values <- c(0.001, 0.005, 0.01, 0.05)
log.fcs <- rev(c(0.5, 1, 1.5, 2))
log.fcs
mx.up <- matrix(rep(NA, 16), ncol=4)
mx.up
colnames(mx.up) <- p.values
rownames(mx.up) <- log.fcs

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
mx.up[as.character(y),as.character(x)] <- z
}
}
mx.up
View(mx.up)

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
print(x)
print(y)
print(z)
print("------")
}
}









share|improve this question









New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Is it ok to paste the code in to the question, please?
    – Jonny Phelps
    Nov 19 at 13:15










  • Yes sure, please access it from the question above
    – Hiba Al-khaffaji
    Nov 19 at 14:04













up vote
2
down vote

favorite









up vote
2
down vote

favorite











I am new to R Programming and I am currently looking to analyse a huge dataset of genes. I am attempting to alter a nested loop that currently works to see which genes are up-regulated given varying adjusted P values and LogFC values to see the same but for down-regulated genes. What I have generated for the up-regulated genes is a 4x4 table looking to see how the number of genes that meet the cut off values I have selected for the P adjusted value and the LogFC varies. The image shows the coding used for the nested loop What I am getting when I attempt to execute this for the down-regulated genes is the same values - I am assuming R is not registering any changes and returns the same numbers.
Any advice would be much appreciated.



 #--------------------------------------------------------------------------------
# Function to calculate number of up regulated genes
#--------------------------------------------------------------------------------
get.upregulated.genes <- function(dafra, p.value.max, log.fc.min) {
gene.count <- subset(dafra, adj.P.Val <= p.value.max & logFC >= log.fc.min) %>%
.[["Gene.symbol"]] %>% unique %>% length
return(gene.count)
}

get.upregulated.genes(dafra=df3, p.value.max=0.05, log.fc.min=1) # 429

p.values <- c(0.001, 0.005, 0.01, 0.05)
log.fcs <- rev(c(0.5, 1, 1.5, 2))
log.fcs
mx.up <- matrix(rep(NA, 16), ncol=4)
mx.up
colnames(mx.up) <- p.values
rownames(mx.up) <- log.fcs

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
mx.up[as.character(y),as.character(x)] <- z
}
}
mx.up
View(mx.up)

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
print(x)
print(y)
print(z)
print("------")
}
}









share|improve this question









New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I am new to R Programming and I am currently looking to analyse a huge dataset of genes. I am attempting to alter a nested loop that currently works to see which genes are up-regulated given varying adjusted P values and LogFC values to see the same but for down-regulated genes. What I have generated for the up-regulated genes is a 4x4 table looking to see how the number of genes that meet the cut off values I have selected for the P adjusted value and the LogFC varies. The image shows the coding used for the nested loop What I am getting when I attempt to execute this for the down-regulated genes is the same values - I am assuming R is not registering any changes and returns the same numbers.
Any advice would be much appreciated.



 #--------------------------------------------------------------------------------
# Function to calculate number of up regulated genes
#--------------------------------------------------------------------------------
get.upregulated.genes <- function(dafra, p.value.max, log.fc.min) {
gene.count <- subset(dafra, adj.P.Val <= p.value.max & logFC >= log.fc.min) %>%
.[["Gene.symbol"]] %>% unique %>% length
return(gene.count)
}

get.upregulated.genes(dafra=df3, p.value.max=0.05, log.fc.min=1) # 429

p.values <- c(0.001, 0.005, 0.01, 0.05)
log.fcs <- rev(c(0.5, 1, 1.5, 2))
log.fcs
mx.up <- matrix(rep(NA, 16), ncol=4)
mx.up
colnames(mx.up) <- p.values
rownames(mx.up) <- log.fcs

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
mx.up[as.character(y),as.character(x)] <- z
}
}
mx.up
View(mx.up)

for (x in p.values) {
for (y in log.fcs) {
z <- get.upregulated.genes(df3, x, y)
print(x)
print(y)
print(z)
print("------")
}
}






r dplyr bioinformatics






share|improve this question









New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Nov 19 at 14:13









zx8754

28.6k76394




28.6k76394






New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 19 at 11:23









Hiba Al-khaffaji

112




112




New contributor




Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Hiba Al-khaffaji is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Is it ok to paste the code in to the question, please?
    – Jonny Phelps
    Nov 19 at 13:15










  • Yes sure, please access it from the question above
    – Hiba Al-khaffaji
    Nov 19 at 14:04


















  • Is it ok to paste the code in to the question, please?
    – Jonny Phelps
    Nov 19 at 13:15










  • Yes sure, please access it from the question above
    – Hiba Al-khaffaji
    Nov 19 at 14:04
















Is it ok to paste the code in to the question, please?
– Jonny Phelps
Nov 19 at 13:15




Is it ok to paste the code in to the question, please?
– Jonny Phelps
Nov 19 at 13:15












Yes sure, please access it from the question above
– Hiba Al-khaffaji
Nov 19 at 14:04




Yes sure, please access it from the question above
– Hiba Al-khaffaji
Nov 19 at 14:04












1 Answer
1






active

oldest

votes

















up vote
1
down vote













No need for forloops, try something like this (not tested, as there is no example data):



# get all combos
x <- expand.grid(
p.values = c(0.001, 0.005, 0.01, 0.05),
log.fcs = rev(c(0.5, 1, 1.5, 2)))

# loop rowby then get length of unique genes
apply(x, 1, function(i){
length(unique(df3[ df3$adj.P.Val <= i[ 1 ] & df3$logFC >= i[ 2 ], "Gene.symbol" ]))
})





share|improve this answer























  • Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
    – Hiba Al-khaffaji
    Nov 19 at 16:52












  • @HibaAl-khaffaji try again please, edited.
    – zx8754
    Nov 19 at 17:01










  • Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
    – Hiba Al-khaffaji
    Nov 19 at 17:07










  • @HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
    – zx8754
    Nov 19 at 17:55










  • I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
    – Hiba Al-khaffaji
    Nov 19 at 20:14













Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Hiba Al-khaffaji is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53373588%2fusing-nested-loops-to-analyse-up-regulated-and-down-regulated-genes%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote













No need for forloops, try something like this (not tested, as there is no example data):



# get all combos
x <- expand.grid(
p.values = c(0.001, 0.005, 0.01, 0.05),
log.fcs = rev(c(0.5, 1, 1.5, 2)))

# loop rowby then get length of unique genes
apply(x, 1, function(i){
length(unique(df3[ df3$adj.P.Val <= i[ 1 ] & df3$logFC >= i[ 2 ], "Gene.symbol" ]))
})





share|improve this answer























  • Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
    – Hiba Al-khaffaji
    Nov 19 at 16:52












  • @HibaAl-khaffaji try again please, edited.
    – zx8754
    Nov 19 at 17:01










  • Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
    – Hiba Al-khaffaji
    Nov 19 at 17:07










  • @HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
    – zx8754
    Nov 19 at 17:55










  • I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
    – Hiba Al-khaffaji
    Nov 19 at 20:14

















up vote
1
down vote













No need for forloops, try something like this (not tested, as there is no example data):



# get all combos
x <- expand.grid(
p.values = c(0.001, 0.005, 0.01, 0.05),
log.fcs = rev(c(0.5, 1, 1.5, 2)))

# loop rowby then get length of unique genes
apply(x, 1, function(i){
length(unique(df3[ df3$adj.P.Val <= i[ 1 ] & df3$logFC >= i[ 2 ], "Gene.symbol" ]))
})





share|improve this answer























  • Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
    – Hiba Al-khaffaji
    Nov 19 at 16:52












  • @HibaAl-khaffaji try again please, edited.
    – zx8754
    Nov 19 at 17:01










  • Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
    – Hiba Al-khaffaji
    Nov 19 at 17:07










  • @HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
    – zx8754
    Nov 19 at 17:55










  • I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
    – Hiba Al-khaffaji
    Nov 19 at 20:14















up vote
1
down vote










up vote
1
down vote









No need for forloops, try something like this (not tested, as there is no example data):



# get all combos
x <- expand.grid(
p.values = c(0.001, 0.005, 0.01, 0.05),
log.fcs = rev(c(0.5, 1, 1.5, 2)))

# loop rowby then get length of unique genes
apply(x, 1, function(i){
length(unique(df3[ df3$adj.P.Val <= i[ 1 ] & df3$logFC >= i[ 2 ], "Gene.symbol" ]))
})





share|improve this answer














No need for forloops, try something like this (not tested, as there is no example data):



# get all combos
x <- expand.grid(
p.values = c(0.001, 0.005, 0.01, 0.05),
log.fcs = rev(c(0.5, 1, 1.5, 2)))

# loop rowby then get length of unique genes
apply(x, 1, function(i){
length(unique(df3[ df3$adj.P.Val <= i[ 1 ] & df3$logFC >= i[ 2 ], "Gene.symbol" ]))
})






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 19 at 17:01

























answered Nov 19 at 14:26









zx8754

28.6k76394




28.6k76394












  • Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
    – Hiba Al-khaffaji
    Nov 19 at 16:52












  • @HibaAl-khaffaji try again please, edited.
    – zx8754
    Nov 19 at 17:01










  • Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
    – Hiba Al-khaffaji
    Nov 19 at 17:07










  • @HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
    – zx8754
    Nov 19 at 17:55










  • I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
    – Hiba Al-khaffaji
    Nov 19 at 20:14




















  • Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
    – Hiba Al-khaffaji
    Nov 19 at 16:52












  • @HibaAl-khaffaji try again please, edited.
    – zx8754
    Nov 19 at 17:01










  • Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
    – Hiba Al-khaffaji
    Nov 19 at 17:07










  • @HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
    – zx8754
    Nov 19 at 17:55










  • I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
    – Hiba Al-khaffaji
    Nov 19 at 20:14


















Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
– Hiba Al-khaffaji
Nov 19 at 16:52






Thanks for the response, unfortunately the second park did not work - Error in [.data.frame(df3, df3$adj.P.Val <= i[1] & logFC >= i[2], "Gene.symbol") : object 'logFC' not found. This is the message that came up, any ideas what I need to alter?
– Hiba Al-khaffaji
Nov 19 at 16:52














@HibaAl-khaffaji try again please, edited.
– zx8754
Nov 19 at 17:01




@HibaAl-khaffaji try again please, edited.
– zx8754
Nov 19 at 17:01












Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
– Hiba Al-khaffaji
Nov 19 at 17:07




Second time lucky! Thank you so much, just one final question if you don't mind. How can I carry this out a second time round for the down regulated genes? What I find is that when R executes the command, I get the same values as the up regulated genes so I am assuming I need to make it clear somehow that I now want the genes that are down regulated to be used?
– Hiba Al-khaffaji
Nov 19 at 17:07












@HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
– zx8754
Nov 19 at 17:55




@HibaAl-khaffaji please define what you mean by "down regulated genes". It would make it so much easier if you can provide example input data, and expected output.
– zx8754
Nov 19 at 17:55












I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
– Hiba Al-khaffaji
Nov 19 at 20:14






I am looking at a huge gene expression dataset from GEO2R (GSE108363) - In the RScript I have been working on I have written code to extract genes that are up regulated and down regulated # Upregulated genes: up.df <- subset(df3, adj.P.Val <= 0.05 & logFC >= 1) # Downregulated genes: down.df <- subset(df3, adj.P.Val <= 0.05 & logFC <= -1) This is the code I used for that particular part.
– Hiba Al-khaffaji
Nov 19 at 20:14












Hiba Al-khaffaji is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















Hiba Al-khaffaji is a new contributor. Be nice, and check out our Code of Conduct.













Hiba Al-khaffaji is a new contributor. Be nice, and check out our Code of Conduct.












Hiba Al-khaffaji is a new contributor. Be nice, and check out our Code of Conduct.















 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53373588%2fusing-nested-loops-to-analyse-up-regulated-and-down-regulated-genes%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

404 Error Contact Form 7 ajax form submitting

How to know if a Active Directory user can login interactively

Refactoring coordinates for Minecraft Pi buildings written in Python