(N.B. Brian Knaus is the maintainer of the vcfR package and supporter of poppr)
Hi Brian,
I think it's perfectly fine for vcfR to return the alleles according to the VCF specification. It's a perfectly cromulent way of representing allelic states in a compact way. I don't think it's worthwhile to shift the encoding by one in order to satisfy an idiosyncrasy of poppr, which is why I recommend to the users to use the return.alleles = TRUE argument. I also offer a couple of reasons why it would be a good idea for users to return alleles when converting from vcfR to genind:
1. You get the information of the allelic states, which is important for analyses such as DAPC where you can investigate the different discriminant axes and see what alleles are most 'influential'. With encoded alleles, you would have to go back to the original VCF and look up the values
2. It's immediately clear to see if the alleles are single nucleotides or indels
So, to answer your question: no, I don't think you need to do anything extra. You added the return.alleles argument in version 1.9.0, which allows users to avoid the original issue. Moreover, the recommended practices are documented in the help documentation for vcfR2genind ( see help('vcfR2genind') ).
Best,
Zhian