A low-cost open-source SNP genotyping platform for association mapping applications

An efficient, cost-effective and open-source approach is described for high-throughput genotyping of large fixed panels of diploid individuals.


1.
Add 100 µl ice-cold cell lysis solution to a 1.5 ml tube containing a single fly 2.
Homogenize fly for ~5 sec with a motor-driven pestle 3.
Cool sample to room temperature
Mix sample by inverting tube 25 times, and incubate at 37°C for 40 min 7.
Cool sample to room temperature

Protein precipitation
8. Add 33 µl protein precipitation solution to the RNase-treated cell lysate 9.
Vortex on high speed for 10 sec, and place sample on ice for 5 min 10. Centrifuge at 14,000 rpm for 3 min DNA precipitation 11. Move supernatent to a new 1.5 ml eppendorf containing 100 µl isopropanol 12. Mix by inverting tube gently 50 times 13. Centrifuge at 14,000 rpm for 5 min, and gently pour off supernatent 14. Add 100 µl 70% ethanol, and invert tube a few times to wash pellet 15. Centrifuge at 14,000 rpm for 1 min, and remove supernatent with pipette 16. Invert tube on absorbant paper and leave to air dry for 20 min DNA resuspension 17. Add 20 µl sterile-filtered 1X TE (pH 8.0) to tube 18. Resuspend overnight at room temperature 19. Add 180 µl ddH 2 0 to tube. 0.5-1 µl of this DNA is suitable for a standard 5 µl PCR reaction Finding polymorphisms: SNPatron

1.
Generate a standard multiple FASTA file of aligned sequences using the normal IUB nucleotide codes (gaps should be identified with hyphens "-"): Pass file through custom SNPatron perlscript to extract all biallelic SNPs and insertion/deletion polymorphisms, and the 16 bases flanking each side of the polymorphic site, which are used as the sequence-specific portion of the genotyping oligos → the software will fail to run if the aligned sequences are not of identical length Designing genotyping oligos

3.
Once a set of SNPs/InDels have been selected for genotyping, two upstream allelespecific oligos, and a single common downstream oligo, are designed as follows: UPSTREAM "a" 5′-M13F + C + BARCODE "a" + U.FLANK allele 1 -3′ Once print run is complete, wait 10 min for printed samples to dry, label membranes using a pencil, and carefully remove from printing robot deck 9.
UV cross-link samples onto the membranes at 50 mJ 10. Gently shake membranes in a bath of neutralization buffer at 40 rpm for at least 30 min 11. Membranes can then be stored in neutralization buffer at 4°C until hybridization
Add membrane(s) to a hybridization tube → membranes can be stacked, provided they are slightly offset, and two stacks of 6 (= 12 total) membranes can be effectively hybridized/washed in a single hybridization tube 2. Expose membrane to phosphor screen 11. Place washed membranes on surface of the phosphor screen cassette, cover with a layer of transparent food wrap, and remove all bubbles by wiping surface with a Kimwipe 12. Close cassette with phosphor screen, and leave in dark for 3-4 nights 13. Scan phosphor screen using a phosphor imager → image pixel size should be at most 88 microns

Membrane stripping
14. Move probed/exposed membranes from cassette to bath of neutralization buffer, then add membranes to hybridization tube with ~50ml of stripping buffer preheated to 80°C → membranes are added to neutralization buffer before stripping to keep them wet -drying membranes before stripping risks permanently fixing probe to membrane 15. Spin tube in hybridization oven for 15 min at 80°C and 4 rpm 16. Discard buffer to waste, remove membranes from tube and either store in neutralization buffer at 4°C, or briefly rinse in neutralization buffer before reprobing 17. Clean hybridization tube and screw-cap with water to remove residual salts/radiation. Clear phosphor screen on light box for 12 min to eliminate previous image Data Analysis (

data acquisition and genotype calling)
Generating Data Files * spot.position, blanks, and plate are various indicator columns -any number of these are possible, BUT for subsequent calling using our R script the columns "plate" and "blanks" are essential → none of these indicator columns should contain non-standard symbols or whitespaces * the four data columns represent two SNPs (snp01 and snp02), with a column for each allele of the two SNPs (i.e. snp01 is an AG polymorphism, and snp02 is a TC polymorphism) 4. This file is now ready to be run though our custom SNP genotype calling code using R

5.
The code is written in the statistical programming language R (www.R-project.org), and a description of the calling routine is described in Genissel et al. 2004