Cattle Breed Identification Tool (CBIT)
Cattle is an important livestock that provides meat, milk, and other products to humans. Identifying cattle breeds is essential for breeding, management, and conservation.
Here, we provide CBIT to help you identify different cattle breeds and the genomic breed content based on genotypic data. For more information on breed identification and GBC analysis functions, please refer to the usage instructions of each tool.
There is a total of 2913 samples in our dataset, including 49 breeds from Asia and Europe. The details of the sample information are as follows.
Breed identification
This tool is designed to help you identify different breeds of cattle. To determine the best machine learning classification model, we collected 49 breeds and 2913 samples mentioned on the home page.
After comparing the performance of different models, we found the workflow using RF as feature selector and SVM as classifier has the best performance. For more detailed information on the accuracy of different models and factors influencing the accuracy, please refer to our paper.
Here, we provide the classification models with 500 and 2000 SNPs, respectively. You can choose the model according to your data and expectations.
1. Preparing the genotype file.
- The genotype file must contain and only contain the SNPs we specify. The locations of them based on ARS-UCD2.0 are available here for fast model and accurate model.
- Recoded by 0, 1, and 2, representing the genotypes AA, AB, and BB, respectively.
- One individual per line and one SNP per column.
- The first column should be the sample name, which is used as index and displayed in the results.
- Space or tab-separated text file.
- Missing values (NA) do not affect the analysis, but affect the accuracy. We still highly recommend performing imputation with BEAGLE before analysis if your data contains missing values.
- If you don't have a genotype file now or want to see the details of the file format, you can download the example file here for fast model and accurate model.
2. Uploading the genotype file.
- Click the 'Choose a file' button on the page and select your genotype file.
3. Select the model to use for analysis.
- There are two models available: 'fast' and 'accurate'.
- The 'fast' model uses 100 SNPs, while the 'accurate' model uses 1000 SNPs.
- The 'fast' model is recommended for quick analysis, while the 'accurate' model provides more accurate results.
4. Click the 'Analyze' button to predict the breed.
- You can use the demo file mentioned above to test the tool and see the output details.
GBC estimation
We estimate the GBC using a linear model based on the genotype data:
y = Fb + e
where y is the genotype vector (M × 1) of all M SNPs of the individual to be estimated, and the SNP genotypes are represented by 0 (AA), 1 (AB), and 2 (BB) respectively. F is the allele frequency matrix with M × T, where T is the number of breeds in the reference population. The regression coefficient vector b (T × 1) is the GBC of each breed to the individual to be estimated. e is the error term.
Then, we solve the linear model using ordinary least squares (OLS) regression, where b̂ = (F′F)−1F′y.
Finally, we normalize the regression coefficients to sum to 1 and filter out minor contributions based on a confidence threshold.
1. Upload the genotype file.
- A genotype file (recoded by 0, 1 and 2) is needed with one individual per column and one SNP per line. The first column should be the SNP ID (CHR:POS) based on ARS-UCD2.0 and the first row should be the sample ID.
- The file should be in the format of a space or tab-separated text file.
- More accurate results depend on more SNPs. We recommend using a file with at least 1000 SNPs, and 50,000 SNPs above are highly recommended.
- Missing values (NA) do not affect the analysis, but the more missing values, the less accurate the results. So, we highly recommend performing imputation with BEAGLE before analysis if your data contains missing values.
- If you don't have a genotype file now or want to see the details of the file format, you can download the example file here.
2. Set the confidence threshold to filter out minor contributions.
- The minor contributions will be filtered out based on the confidence threshold you set.
- A larger threshold will exclude the interference from irrelevant breeds, but there is also a risk of overestimating the true contributions of some breeds. Smaller thresholds have the opposite effect.
- By experience, a threshold between 0.02 (using about 200,000 SNPs) and 0.1 (5,000 SNPs below) is appropriate. We recommend a threshold of 0.05 by default, it can be changed according to your data and expectations.
3. Click the 'Analyze' button to estimate the GBC.
- The analysis will take a few seconds to complete, depending on the size of the genotype file.
- Based on prior exprience, a file with 100 samples and 200,000 SNPs will take about 150 seconds (one sample every 1.5 seconds).
- Smaller sample size and SNPs dataset will take less time.
4. The results will be displayed as a table, showing the GBC of each breed for each individual.
- Only breeds in our reference population can be estimated and displayed, details can be found in sample info table of the home page.
- You can save the results as a CSV file by click the download button in the upper right corner.
- A demo result file can be downloaded here.
About
Summary
We developed CBIT to help users perform breed identification and GBC estimation.
For breed identification, we compared the identification accuracies of different machine learning models. We selected the SVM model as the best model and applied in this tool. More details can be accessed in our paper.
For GBC estimation, we used the LR model to inference the GBC of each breed. There two pros compared to the supervised admixture model: (1) Reference free. We use all samples in our dataset as the reference population, and users only need to provide the genotype file of the individual to be tested to perform GBC estimation. (2) Fast speed. Results can be obtained in few seconds for each sample.
Contact
If you have any questions, please contact us at: yingwei.guo@foxmail.com