Repository navigation
Test 2 Wiki template rendered
Instructions: Copy each the template to your own github wiki. You are welcome to break into multiple pages if that makes it easier for you, just keep all the sections.
Every command must be copy-pasteable and complete. Not ran fastp on the samples. The actual command, with the actual arguments, in a formatted code block.
Each command needs a comment. What are you running and why? No need to be too long, but something like "Running FastQC to check the quality of the reads."
Your Name: -
Server: -
Repository URL: -
Create directory and symbolically link provided files.
commandsComments
commands
MultiQC gives a rounded number for total reads and does not report total bases per sample. To find out those numbers use this:
for f in *.fastq.gz; do
echo -ne "$f\t"
zcat "$f" | awk 'NR%4==2{r++; b+=length($0)} END{printf "%d\t%d\t%.1f\n", r, b, b/r}'
done | column -t
This gives the total reads, then the total bases, then the average read length for each file.
MultiQC report path and name: _______
One sample has adapter and polyG issues, one sample has low quality, one sample has low coverage, and one is problem free. Label each sample below with its quality issues. For each sample, report R1 + R2.
| Sample | Total reads | Total bases | Quality issues? |
|---|---|---|---|
| A | - | - | - |
| B | - | - | - |
| C | - | - | - |
| D | - | - | - |
WARNING: Because these reads are simulated, fastp fails to identify that they need poly-G tail trimming. Turn that on with a flag.
ADVICE: Its easier to compare the reads pre and post trimming if you run multiqc on the results of fastqc of the trimmed files (and do not use the .json files from fastp).
Comments
commands
MultiQC gives a rounded number for total reads and does not report total bases per sample. To find out those numbers use this:
for f in *.fastq.gz; do
echo -ne "$f\t"
zcat "$f" | awk 'NR%4==2{r++; b+=length($0)} END{printf "%d\t%d\t%.1f\n", r, b, b/r}'
done | column -t
This gives the total reads, then the total bases, then the average read length for each file.
MultiQC report path and name: _______
For each sample, report R1 + R2.
| Sample | Reads before | Reads after | Mean length before | Mean length after |
|---|---|---|---|---|
| A | - | - | - | - |
| B | - | - | - | - |
| C | - | - | - | - |
| D | - | - | - | - |
Comments
commands
MultiQC report path and name: _______
| Sample | % mapped | % properly paired | Mean depth |
|---|---|---|---|
| A | - | - | - |
| B | - | - | - |
| C | - | - | - |
| D | - | - | - |
Comments
commands
bcftools stats report path and name: _______
I am going to try a gentle filtering and more stingent filtering. (WARNING: These are different filters than what we have seen in class.)
Gentle: exclude variants with a QUAL less than 20 or less than 5 total read depth across all samples.
Stringent: exclude variants with a QUAL less than 30 or less than 10 total read depth across all samples or a site level mapping quality (root mean square) of less than 40
#filtering gentle
#filtering stringent# bcftools stats on gentle
# bcftools stats on stringentbcftools stats report path and name for gentle filtering: _______
bcftools stats report path and name: for stringent filtering: _______
| VCF | number of SNPs |
|---|---|
| raw | - |
| gentle | - |
| stringent | - |
Link to the provided evaluate_snps_v4.py and truth_snps.vcf. Find the precision, recall and F1 for gently filtered and stringently filtered SNP sets.
Example of how to run evaluate_snps_v4.py:
python3 evaluate_snps_v4.py \
--truth truth_snps.vcf --calls <yourvcffile> \
--all-samples --tag strict --outdir outdircode
From this folder that holds all my analysis, here is the directory structure (paste the output of: tree .):
#output of tree command:
| Sample | Filter | TP | FP | FN | Precision | Recall | F1 |
|---|---|---|---|---|---|---|---|
| A | raw | - | - | - | - | - | - |
| A | gentle | - | - | - | - | - | - |
| A | strict | - | - | - | - | - | - |
| B | raw | - | - | - | - | - | - |
| B | gentle | - | - | - | - | - | - |
| B | strict | - | - | - | - | - | - |
| C | raw | - | - | - | - | - | - |
| C | gentle | - | - | - | - | - | - |
| C | strict | - | - | - | - | - | - |
| D | raw | - | - | - | - | - | - |
| D | gentle | - | - | - | - | - | - |
| D | strict | - | - | - | - | - | - |
Minimum one paragraph each.
How did samples differ from each other in read count versus in read quality? Why does each matter for SNP calling?
What are the relative merits and drawbacks of filtering? Interpret the above chart in terms of the original quality issues, and how those yielded different outcomes. When is filtering a good idea vs when it is it a bad idea? Think specifically about false positives vs false negatives.
Pick two false negatives and two false positives, from any sample. For each, tell me the sample, tell me the chromosome and coordinate location, put in a screenshot of IGV or JBrowse, and explain the specific cause of the FN or FP call.
This is an evaluation of the pipeline you generated at the beginning of the learning module. Provide full sentences and thoughtful rationale.
Model used:
Date generated:
Exact prompt:
Minimum one paragraph each.
Three things it got right.
Three things you don't understand and would want to learn more about before using. Or do you understand all of it? If so be ready to answer questions about it.
How specifically would you assess the results of this pipeline for accuracy?
What did the labs teach you that turned out to matter for evaluating the AI-generated code?
What is the value of learning about a computational genomics task before using AI for it — or is there none?