whitlock / OutFLANK

A procedure to find Fst outliers based on an inferred distribution of neutral Fst
18 stars 9 forks source link

Integrating outflank function into adegenet #3

Open green-striped-gecko opened 9 years ago

green-striped-gecko commented 9 years ago

Hi Michael,

I recently contacted Katie Lotterhus and asked her if she is fine to incorporate outflank to work with adegenet. She was happy with this suggestion, but asked me to contact you as well. Thibaut (author of adegenet) and 2 more people have asked me already how far I am done with it. Basically the function is written (minus the help file). Could you please let me know if you are fine with this then I would go ahead and obviously send you the help file before I submit it to the adegenet package.

Sorry to contact you this way, but I was not sure if I found the right email.

Cheers, Bernd

whitlock commented 9 years ago

Hi Bernd,

Sorry to take so long to get back to you. It has been a busy beginning of term.

I'm curious about what this would mean about any future updates or corrections to OutFLANK. Would those get automatically incorporated, or would it add extra steps to the process of making corrections? What is the protocol on that? I'm worried about an outdated version of the procedure getting locked into a bit of software that I can't access.

Perhaps I misunderstand. Does your protocol duplicate OutFLANK, or call the version from Github that we posted?

Thanks, Mike

Michael Whitlock whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 6, 2015, at 5:48 PM, Bernd Gruber notifications@github.com wrote:

Hi Michael,

I recently contacted Katie Lotterhus and asked her if she is fine to incorporate outflank to work with adegenet. She was happy with this suggestion, but asked me to contact you as well. Thibaut (author of adegenet) and 2 more people have asked me already how far I am done with it. Basically the function is written (minus the help file). Could you please let me know if you are fine with this then I would go ahead and obviously send you the help file before I submit it to the adegenet package.

Sorry to contact you this way, but I was not sure if I found the right email.

Cheers, Bernd

— Reply to this email directly or view it on GitHub.

green-striped-gecko commented 9 years ago

Hi Michael,

No worries I know how it is. I had a lot of teaching last week as well.

Regarding your question, basically my function is a simple wrapper around your function (and I use your library outflank and the functions therein such as they are).

If you would add extra steps (but the function do return the same objects) then a new version would simply be incorporated.

What my function and adegenet would do, simply ask the user to install outflank (if not on cran, then via Github) and then the user can use your function from a genlight object.

If you would rather cooperate with Thibeaut directly, fine with me and happy also for you to use my code to get it integrated.

Another way would be to simply to create a switch for your outflank functions so they work with genlight objects.

So really up to you if you think it would be beneficial to be integrated into adegenet or into outflank.

I copied the code I currently have below.

Basically it reformats the NAs to 9s and then plot your plot if specified (plot=TRUE). Output currently is an index that specifies loci as non-outliers (as true and falses), as I use this kind of filtering approach in my framework, but obviously it is easy to return all your outputs within a list so users can do whatever they like afterwards.

Let me know if you have further questions….

Cheers, Bernd

outflank function to identify loci under selection

loci under selection

using outflank

install outflank; see readme at github

install qvalue from bioconductor

source("http://bioconductor.org/biocLite.R")

biocLite("qvalue")

install_github("Whitlock/OutFLANK")

outflank <- function(genl, plot=TRUE) { library(OutFLANK)

outflank requires (of course) a different format

missing value is 9!!! tempted to rewrite their model to be able to use genlight directly....

snpmat <- as.matrix(genl)#(matrix(NA, nrow=nind, ncol=nsnp) snpmat <- replace(snpmat, is.na(snpmat), 9) mdfm <- MakeDiploidFSTMat(SNPmat = snpmat, list(colnames(snpmat)), list(as.character(genl@pop)))

run outflank

outf <- OutFLANK(mdfm, LeftTrimFraction = 0.05, RightTrimFraction = 0.05, Hmin = 0.1, NumberOfSamples = length(levels(genl@pop)), qthreshold = 0.05) if (plot) OutFLANKResultsPlotter(outf)

the filter if we believe in Whitlock and why wouldn't we?

index.outflank <- !(outf$results$OutlierFlag) ## 6650 inliers and 188 outliers index.outflank

sum(!index.outflank) #number of outliers

}

From: whitlock [mailto:notifications@github.com] Sent: Sunday, 20 September 2015 6:43 To: whitlock/OutFLANK Cc: Bernd Gruber Subject: Re: [OutFLANK] Integrating outflank function into adegenet (#3)

Hi Bernd,

Sorry to take so long to get back to you. It has been a busy beginning of term.

I'm curious about what this would mean about any future updates or corrections to OutFLANK. Would those get automatically incorporated, or would it add extra steps to the process of making corrections? What is the protocol on that? I'm worried about an outdated version of the procedure getting locked into a bit of software that I can't access.

Perhaps I misunderstand. Does your protocol duplicate OutFLANK, or call the version from Github that we posted?

Thanks, Mike

Michael Whitlock whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 6, 2015, at 5:48 PM, Bernd Gruber notifications@github.com<mailto:notifications@github.com> wrote:

Hi Michael,

I recently contacted Katie Lotterhus and asked her if she is fine to incorporate outflank to work with adegenet. She was happy with this suggestion, but asked me to contact you as well. Thibaut (author of adegenet) and 2 more people have asked me already how far I am done with it. Basically the function is written (minus the help file). Could you please let me know if you are fine with this then I would go ahead and obviously send you the help file before I submit it to the adegenet package.

Sorry to contact you this way, but I was not sure if I found the right email.

Cheers, Bernd

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/whitlock/OutFLANK/issues/3#issuecomment-141706065.

whitlock commented 9 years ago

Hi Bernd-Sounds good. Go for it. Thanks. How can I help?

mike Michael Whitlock whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 20, 2015, at 5:39 PM, Bernd Gruber notifications@github.com wrote:

Hi Michael,

No worries I know how it is. I had a lot of teaching last week as well.

Regarding your question, basically my function is a simple wrapper around your function (and I use your library outflank and the functions therein such as they are).

If you would add extra steps (but the function do return the same objects) then a new version would simply be incorporated.

What my function and adegenet would do, simply ask the user to install outflank (if not on cran, then via Github) and then the user can use your function from a genlight object.

If you would rather cooperate with Thibeaut directly, fine with me and happy also for you to use my code to get it integrated.

Another way would be to simply to create a switch for your outflank functions so they work with genlight objects.

So really up to you if you think it would be beneficial to be integrated into adegenet or into outflank.

I copied the code I currently have below.

Basically it reformats the NAs to 9s and then plot your plot if specified (plot=TRUE). Output currently is an index that specifies loci as non-outliers (as true and falses), as I use this kind of filtering approach in my framework, but obviously it is easy to return all your outputs within a list so users can do whatever they like afterwards.

Let me know if you have further questions….

Cheers, Bernd

outflank function to identify loci under selection

loci under selection

using outflank

install outflank; see readme at github

install qvalue from bioconductor

source("http://bioconductor.org/biocLite.R")

biocLite("qvalue")

install_github("Whitlock/OutFLANK")

outflank <- function(genl, plot=TRUE) { library(OutFLANK)

outflank requires (of course) a different format

missing value is 9!!! tempted to rewrite their model to be able to use genlight directly....

snpmat <- as.matrix(genl)#(matrix(NA, nrow=nind, ncol=nsnp) snpmat <- replace(snpmat, is.na(snpmat), 9) mdfm <- MakeDiploidFSTMat(SNPmat = snpmat, list(colnames(snpmat)), list(as.character(genl@pop)))

run outflank

outf <- OutFLANK(mdfm, LeftTrimFraction = 0.05, RightTrimFraction = 0.05, Hmin = 0.1, NumberOfSamples = length(levels(genl@pop)), qthreshold = 0.05) if (plot) OutFLANKResultsPlotter(outf)

the filter if we believe in Whitlock and why wouldn't we?

index.outflank <- !(outf$results$OutlierFlag) ## 6650 inliers and 188 outliers index.outflank

sum(!index.outflank) #number of outliers

}

From: whitlock [mailto:notifications@github.com] Sent: Sunday, 20 September 2015 6:43 To: whitlock/OutFLANK Cc: Bernd Gruber Subject: Re: [OutFLANK] Integrating outflank function into adegenet (#3)

Hi Bernd,

Sorry to take so long to get back to you. It has been a busy beginning of term.

I'm curious about what this would mean about any future updates or corrections to OutFLANK. Would those get automatically incorporated, or would it add extra steps to the process of making corrections? What is the protocol on that? I'm worried about an outdated version of the procedure getting locked into a bit of software that I can't access.

Perhaps I misunderstand. Does your protocol duplicate OutFLANK, or call the version from Github that we posted?

Thanks, Mike

Michael Whitlock whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 6, 2015, at 5:48 PM, Bernd Gruber notifications@github.com<mailto:notifications@github.com> wrote:

Hi Michael,

I recently contacted Katie Lotterhus and asked her if she is fine to incorporate outflank to work with adegenet. She was happy with this suggestion, but asked me to contact you as well. Thibaut (author of adegenet) and 2 more people have asked me already how far I am done with it. Basically the function is written (minus the help file). Could you please let me know if you are fine with this then I would go ahead and obviously send you the help file before I submit it to the adegenet package.

Sorry to contact you this way, but I was not sure if I found the right email.

Cheers, Bernd

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/whitlock/OutFLANK/issues/3#issuecomment-141706065. — Reply to this email directly or view it on GitHub.

green-striped-gecko commented 9 years ago

Thanks Michael,

Just to clarify I mentioned two different ways how to proceed and now I am a bit lost and want to make sure that was your intention. So are you fine to have it integrated into adegenet? (as a wrapper around your functions)

Cheers, Bernd

From: whitlock [mailto:notifications@github.com] Sent: Monday, 21 September 2015 12:37 To: whitlock/OutFLANK Cc: Bernd Gruber Subject: Re: [OutFLANK] Integrating outflank function into adegenet (#3)

Hi Bernd-Sounds good. Go for it. Thanks. How can I help?

mike Michael Whitlock whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 20, 2015, at 5:39 PM, Bernd Gruber notifications@github.com<mailto:notifications@github.com> wrote:

Hi Michael,

No worries I know how it is. I had a lot of teaching last week as well.

Regarding your question, basically my function is a simple wrapper around your function (and I use your library outflank and the functions therein such as they are).

If you would add extra steps (but the function do return the same objects) then a new version would simply be incorporated.

What my function and adegenet would do, simply ask the user to install outflank (if not on cran, then via Github) and then the user can use your function from a genlight object.

If you would rather cooperate with Thibeaut directly, fine with me and happy also for you to use my code to get it integrated.

Another way would be to simply to create a switch for your outflank functions so they work with genlight objects.

So really up to you if you think it would be beneficial to be integrated into adegenet or into outflank.

I copied the code I currently have below.

Basically it reformats the NAs to 9s and then plot your plot if specified (plot=TRUE). Output currently is an index that specifies loci as non-outliers (as true and falses), as I use this kind of filtering approach in my framework, but obviously it is easy to return all your outputs within a list so users can do whatever they like afterwards.

Let me know if you have further questions….

Cheers, Bernd

outflank function to identify loci under selection

loci under selection

using outflank

install outflank; see readme at github

install qvalue from bioconductor

source("http://bioconductor.org/biocLite.R")

biocLite("qvalue")

install_github("Whitlock/OutFLANK")

outflank <- function(genl, plot=TRUE) { library(OutFLANK)

outflank requires (of course) a different format

missing value is 9!!! tempted to rewrite their model to be able to use genlight directly....

snpmat <- as.matrix(genl)#(matrix(NA, nrow=nind, ncol=nsnp) snpmat <- replace(snpmat, is.na(snpmat), 9) mdfm <- MakeDiploidFSTMat(SNPmat = snpmat, list(colnames(snpmat)), list(as.character(genl@pop)))

run outflank

outf <- OutFLANK(mdfm, LeftTrimFraction = 0.05, RightTrimFraction = 0.05, Hmin = 0.1, NumberOfSamples = length(levels(genl@pop)), qthreshold = 0.05) if (plot) OutFLANKResultsPlotter(outf)

the filter if we believe in Whitlock and why wouldn't we?

index.outflank <- !(outf$results$OutlierFlag) ## 6650 inliers and 188 outliers index.outflank

sum(!index.outflank) #number of outliers

}

From: whitlock [mailto:notifications@github.com] Sent: Sunday, 20 September 2015 6:43 To: whitlock/OutFLANK Cc: Bernd Gruber Subject: Re: [OutFLANK] Integrating outflank function into adegenet (#3)

Hi Bernd,

Sorry to take so long to get back to you. It has been a busy beginning of term.

I'm curious about what this would mean about any future updates or corrections to OutFLANK. Would those get automatically incorporated, or would it add extra steps to the process of making corrections? What is the protocol on that? I'm worried about an outdated version of the procedure getting locked into a bit of software that I can't access.

Perhaps I misunderstand. Does your protocol duplicate OutFLANK, or call the version from Github that we posted?

Thanks, Mike

Michael Whitlock whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.ca%3cmailto:whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 6, 2015, at 5:48 PM, Bernd Gruber notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:

Hi Michael,

I recently contacted Katie Lotterhus and asked her if she is fine to incorporate outflank to work with adegenet. She was happy with this suggestion, but asked me to contact you as well. Thibaut (author of adegenet) and 2 more people have asked me already how far I am done with it. Basically the function is written (minus the help file). Could you please let me know if you are fine with this then I would go ahead and obviously send you the help file before I submit it to the adegenet package.

Sorry to contact you this way, but I was not sure if I found the right email.

Cheers, Bernd

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/whitlock/OutFLANK/issues/3#issuecomment-141706065. — Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/whitlock/OutFLANK/issues/3#issuecomment-141862362.

whitlock commented 9 years ago

Hi Bernd-

YEs, sorry for the overly quick reply. I am happy to have OutFLANK included in adegenet, and grateful that you do so.

Thanks,Mike Michael Whitlock whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 20, 2015, at 7:40 PM, Bernd Gruber notifications@github.com wrote:

Thanks Michael,

Just to clarify I mentioned two different ways how to proceed and now I am a bit lost and want to make sure that was your intention. So are you fine to have it integrated into adegenet? (as a wrapper around your functions)

Cheers, Bernd

From: whitlock [mailto:notifications@github.com] Sent: Monday, 21 September 2015 12:37 To: whitlock/OutFLANK Cc: Bernd Gruber Subject: Re: [OutFLANK] Integrating outflank function into adegenet (#3)

Hi Bernd-Sounds good. Go for it. Thanks. How can I help?

mike Michael Whitlock whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 20, 2015, at 5:39 PM, Bernd Gruber notifications@github.com<mailto:notifications@github.com> wrote:

Hi Michael,

No worries I know how it is. I had a lot of teaching last week as well.

Regarding your question, basically my function is a simple wrapper around your function (and I use your library outflank and the functions therein such as they are).

If you would add extra steps (but the function do return the same objects) then a new version would simply be incorporated.

What my function and adegenet would do, simply ask the user to install outflank (if not on cran, then via Github) and then the user can use your function from a genlight object.

If you would rather cooperate with Thibeaut directly, fine with me and happy also for you to use my code to get it integrated.

Another way would be to simply to create a switch for your outflank functions so they work with genlight objects.

So really up to you if you think it would be beneficial to be integrated into adegenet or into outflank.

I copied the code I currently have below.

Basically it reformats the NAs to 9s and then plot your plot if specified (plot=TRUE). Output currently is an index that specifies loci as non-outliers (as true and falses), as I use this kind of filtering approach in my framework, but obviously it is easy to return all your outputs within a list so users can do whatever they like afterwards.

Let me know if you have further questions….

Cheers, Bernd

outflank function to identify loci under selection

loci under selection

using outflank

install outflank; see readme at github

install qvalue from bioconductor

source("http://bioconductor.org/biocLite.R")

biocLite("qvalue")

install_github("Whitlock/OutFLANK")

outflank <- function(genl, plot=TRUE) { library(OutFLANK)

outflank requires (of course) a different format

missing value is 9!!! tempted to rewrite their model to be able to use genlight directly....

snpmat <- as.matrix(genl)#(matrix(NA, nrow=nind, ncol=nsnp) snpmat <- replace(snpmat, is.na(snpmat), 9) mdfm <- MakeDiploidFSTMat(SNPmat = snpmat, list(colnames(snpmat)), list(as.character(genl@pop)))

run outflank

outf <- OutFLANK(mdfm, LeftTrimFraction = 0.05, RightTrimFraction = 0.05, Hmin = 0.1, NumberOfSamples = length(levels(genl@pop)), qthreshold = 0.05) if (plot) OutFLANKResultsPlotter(outf)

the filter if we believe in Whitlock and why wouldn't we?

index.outflank <- !(outf$results$OutlierFlag) ## 6650 inliers and 188 outliers index.outflank

sum(!index.outflank) #number of outliers

}

From: whitlock [mailto:notifications@github.com] Sent: Sunday, 20 September 2015 6:43 To: whitlock/OutFLANK Cc: Bernd Gruber Subject: Re: [OutFLANK] Integrating outflank function into adegenet (#3)

Hi Bernd,

Sorry to take so long to get back to you. It has been a busy beginning of term.

I'm curious about what this would mean about any future updates or corrections to OutFLANK. Would those get automatically incorporated, or would it add extra steps to the process of making corrections? What is the protocol on that? I'm worried about an outdated version of the procedure getting locked into a bit of software that I can't access.

Perhaps I misunderstand. Does your protocol duplicate OutFLANK, or call the version from Github that we posted?

Thanks, Mike

Michael Whitlockwhitlock@zoology.ubc.camailto:whitlock@zoology.ubc.camailto:whitlock@zoology.ubc.ca%3cmailto:whitlock@zoology.ubc.ca

Department of Zoology - University of British Columbia 6270 University Blvd, Vancouver, BC V6T 1Z4 CANADA phone: (604) 822-2069 FAX: (604) 822-2416

On Sep 6, 2015, at 5:48 PM, Bernd Gruber notifications@github.com<mailto:notifications@github.com<mailto:notifications@github.com%3cmailto:notifications@github.com>> wrote:

Hi Michael,

I recently contacted Katie Lotterhus and asked her if she is fine to incorporate outflank to work with adegenet. She was happy with this suggestion, but asked me to contact you as well. Thibaut (author of adegenet) and 2 more people have asked me already how far I am done with it. Basically the function is written (minus the help file). Could you please let me know if you are fine with this then I would go ahead and obviously send you the help file before I submit it to the adegenet package.

Sorry to contact you this way, but I was not sure if I found the right email.

Cheers, Bernd

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/whitlock/OutFLANK/issues/3#issuecomment-141706065. — Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/whitlock/OutFLANK/issues/3#issuecomment-141862362. — Reply to this email directly or view it on GitHub.