SDGen is a superdonor generator program for experimental research on human chemosignals (body odor) communication. Body odor superdonors are defined here (based on current body odor literature) as a super sample containing 4 pad pieces (odor samples), each from a different individual (donor), with 2 pad pieces from the right armpit and 2 from the left.
The program samples two different random left armpit sweat pads and two different random right armpit sweat pads and picks a pad piece from them to create a mixed superdonor of four different donors. The program gives a list of possible random combinations of donors for each superdonor with no waste of pad pieces.
Run SDGen.py
with python 3.
The dialog offers 3 input boxes (with default input suggestions):
- Select input type with 3 options: -- List of Donors -- Number of Donors -- Desired number of Superdonors
- Number of pieces to cut each pad into - specifying the number of pieces in which the sweat pads will be cut.
- Output file name - specifying the name of the output file generated by the program after running the program with Run.
When selecting the Number of Donors or the Desired number of Superdonors input types, a number should be specified in the input box. If the List of Donors input type is selected, the donors ID's should be specified separated by commas (,
) as shown by the input example D1,D2,D3,D4,D5,D6,D7,D8
in default.
After clicking Run the output .csv
file will be generated at the same directory of SDGen.py
. By default, the output file is SD.csv
.
The SD.csv
file can be opened with any Microsoft Excel-like software. Each line presented in the sheet gives a four-donor combination of pad pieces specifying a particular superdonor. The first column indicates the superdonors ID's and columns named L1
, L2
, R1
and L2
indicate the donors selected for the first left armpit pad piece, second left armpit pad piece, first right armpit pad piece and second right armpit pad piece, respectively.
For example, for the default input with input type specified by the Number of Donors, if the first line in the output file looks like follows
SD1| D2,D6,D4,D1
it indicates that the superdonor 1 (SD1) is made of one of the left pad pieces of donor 2, one of the left pad pieces of donor 6, one of the right pad pieces of donor 4 and one of the right pad pieces of donor 1. All the lines after follow the same logic.
In addition to the left/right armpit factor, if you intend to balance male/female, although the script is not currently ready to do this automatically, you can do it yourself by generating two independent files and altering the output.
As an example, consider that you have 8 donors, 4 females (F1,F2,F3,F4
) and 4 males (M1,M2,M3,M4
). Firstly you need to execute the script twice, once for the females and once for the males. You should then have an output for the males and one for the females. In a separate Excel file you will create 4 column headers (aside from the initial SD ID) representing the right and left armpits of male and female donors (e.g., SD; Male_left; Male_right; Female_left; Female_right). Afterwards, you choose one of the outputs you created (male or female) and stack the two right and two left armpit columns, transforming it into a two column output (doubling its vertical size). Then transfer this to the respective column in the Excel file you created. Do this for the other output you generated. You should end up with 32 superdonors, with an equally represented male/female and right/left armpit that is randomly distributed.
Please cite SDGen if you use the program:
David Sousa, & Fábio Silva. (2019, September 23). davidnsousa/SDGen: First release of SDGen (Version v1.0.0). Zenodo. http://doi.org/10.5281/zenodo.3458002
For further questions contact us.