Skip to content

Commit

Permalink
Added test for amino acid translation taking strand into account
Browse files Browse the repository at this point in the history
  • Loading branch information
gkarthik committed Jun 8, 2024
1 parent cc64510 commit 14cf664
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 2 deletions.
20 changes: 20 additions & 0 deletions data/test.strand.pileup
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
test 1 G 20 GGGGGGGGGGGGGGGGGGGG ????????????????????
test 2 A 20 AAAAAAAAAAAAAAAAAAAA ????????????????????
test 3 G 20 GGGGGGGGGGGGGGGGGGGG ????????????????????
test 4 G 20 GGGGGGGGGGGGGGGGGGGG ????????????????????
test 5 C 20 CCCCCCCCCCTTTTTTTTTT ????????????????????
test 6 T 20 TTTTTTTTTTTTTTTTTTTT ????????????????????
test 7 G 20 GGGGGGGGGGGGGGGGGGGG ????????????????????
test 8 C 20 CCCCCCCCCCCCCCCCCCCC ????????????????????
test 9 C 20 CCCCCCCCCCCCCCCCCCCC ????????????????????
test 10 A 20 AAAAAAAAAAAAAAAAAAAA ????????????????????
test 11 G 20 GGGGGGGGGGGGGGGGGGGG ????????????????????
test 12 C 20 CCCCCCCCCCCCCCCCCCCC ????????????????????
test 13 C 20 CCCCCCCCCCCCCCCCCCCC ????????????????????
test 14 G 20 GGGGGGGGGGGGGGGGGGGG ????????????????????
test 15 G 20 GGGGGGGGGGCCCCCCCCCC ????????????????????
test 16 A 20 AAAAAAAAAAAAAAAAAAAA ????????????????????
test 17 C 20 CCCCCCCCCCCCCCCCCCCC ????????????????????
test 18 T 20 TTTTTTTTTTTTTTTTTTTT ????????????????????
test 19 T 20 TTTTTTTTTTTTTTTTTTTT ????????????????????
test 20 C 20 CCCCCCCCCCCCCCCCCCCC ????????????????????
3 changes: 3 additions & 0 deletions data/test_strand.gff
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## GFF3 file format
test Genbank CDS 1 9 . + . ID=test1;Note=positiveStrand;gene=A;
test Genbank CDS 11 20 . - . ID=test2;Note=negativeStrand;gene=B;
5 changes: 3 additions & 2 deletions tests/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ LIBS = -lhts -lz -lpthread

CXXFLAGS = -g -std=c++11 -Wall -Wextra -Werror

TESTS = check_primer_trim check_trim check_quality_trim check_consensus check_allele_depth check_consensus_threshold check_consensus_min_depth check_consensus_seq_id check_primer_bed check_getmasked check_removereads check_variants check_common_variants check_unpaired_trim check_primer_trim_edge_cases check_isize_trim check_interval_tree check_amplicon_search check_consensus_min_insert_threshold
check_PROGRAMS = check_primer_trim check_trim check_quality_trim check_consensus check_allele_depth check_consensus_threshold check_consensus_min_depth check_consensus_seq_id check_primer_bed check_getmasked check_removereads check_variants check_common_variants check_unpaired_trim check_primer_trim_edge_cases check_isize_trim check_interval_tree check_amplicon_search check_consensus_min_insert_threshold
TESTS = check_primer_trim check_trim check_quality_trim check_consensus check_allele_depth check_consensus_threshold check_consensus_min_depth check_consensus_seq_id check_primer_bed check_getmasked check_removereads check_variants check_common_variants check_unpaired_trim check_primer_trim_edge_cases check_isize_trim check_interval_tree check_amplicon_search check_consensus_min_insert_threshold check_strand_variants
check_PROGRAMS = check_primer_trim check_trim check_quality_trim check_consensus check_allele_depth check_consensus_threshold check_consensus_min_depth check_consensus_seq_id check_primer_bed check_getmasked check_removereads check_variants check_common_variants check_unpaired_trim check_primer_trim_edge_cases check_isize_trim check_interval_tree check_amplicon_search check_consensus_min_insert_threshold check_strand_variants
check_primer_trim_SOURCES = test_primer_trim.cpp ../src/trim_primer_quality.cpp ../src/primer_bed.cpp ../src/interval_tree.cpp
check_trim_SOURCES = test_trim.cpp ../src/trim_primer_quality.cpp ../src/primer_bed.cpp ../src/interval_tree.cpp
check_quality_trim_SOURCES = check_quality_trim.cpp ../src/trim_primer_quality.cpp ../src/primer_bed.cpp ../src/interval_tree.cpp
Expand All @@ -23,3 +23,4 @@ check_primer_trim_edge_cases_SOURCES = test_primer_trim_edge_cases.cpp ../src/tr
check_isize_trim_SOURCES = test_isize_trim.cpp ../src/trim_primer_quality.cpp ../src/primer_bed.cpp ../src/interval_tree.cpp
check_interval_tree_SOURCES = test_interval_tree.cpp ../src/primer_bed.cpp ../src/interval_tree.cpp
check_amplicon_search_SOURCES = test_amplicon_search.cpp ../src/trim_primer_quality.cpp ../src/primer_bed.cpp ../src/interval_tree.cpp
check_strand_variants_SOURCES = test_variants_reverse_strand.cpp ../src/call_variants.cpp ../src/allele_functions.cpp ../src/parse_gff.cpp ../src/ref_seq.cpp
45 changes: 45 additions & 0 deletions tests/test_variants_reverse_strand.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#include <fstream>
#include <iostream>
#include <string>

#include "../src/allele_functions.h"
#include "../src/call_variants.h"

int call_var_check_outfile(std::string prefix, uint8_t min_qual,
uint8_t min_depth, double min_threshold,
std::string out[], int len) {
std::string path = "../data/test.strand.pileup";
std::ifstream mplp(path);
call_variants_from_plup(mplp, prefix, min_qual, min_threshold, min_depth,
"../data/db/test_ref.fa", "../data/test_strand.gff");
std::ifstream outFile(prefix + ".tsv");
std::string l;
getline(outFile, l); // Ignore first line
int comp = 0, ctr = 0;

while (ctr < len) {
getline(outFile, l);
std::cout << l << std::endl;
std::cout << out[ctr] << " -> CORRECT" << std::endl;
comp += l.compare(out[ctr]);
std::cout << l.compare(out[ctr]) << "\n";
ctr++;
}
return comp;
}

int main() {
int num_success = 0;
// Quality threshold 20. Frequency threshold: 0.03. Total_DP = 3. Indel passes
// filters with total_depth 4. Has two lines.
std::string expected_out[2] = {
"test\t5\tC\tT\t10\t0\t30\t10\t0\t30\t0.5\t20\t0.000290613\tTRUE\tA:test1\tGCT\tA\tGTT\tV\t2",
"test\t15\tG\tC\t10\t0\t30\t10\t0\t30\t0.5\t20\t0.000290613\tTRUE\tB:test2\tGTC\tV\tGTG\tV\t2"
};
num_success =
call_var_check_outfile("../data/test_strand", 20, 0, 0.03, expected_out, 2);
std::cout << num_success << std::endl;

if (num_success == 0) return 0;
return -1;
}

0 comments on commit 14cf664

Please sign in to comment.