Skip to content

Commit

Permalink
Merge pull request #200 from dib-lab/fix/query-rc
Browse files Browse the repository at this point in the history
Fix problem with toggling query sequence strand
  • Loading branch information
standage committed Feb 3, 2018
2 parents ba54493 + 3634e70 commit a6a5a65
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 0 deletions.
4 changes: 4 additions & 0 deletions kevlar/call.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,10 @@ def call(targetlist, querylist, match=1, mismatch=2, gapopen=5, gapextend=0,
query.sequence = kevlar.revcom(query.sequence)
for varcall in make_call(besttarget, query, bestcigar, ksize):
yield varcall
if bestorientation == -1:
# Change it back!
# There's a better way to do this, but this works for now.
query.sequence = kevlar.revcom(query.sequence)


def main(args):
Expand Down
2 changes: 2 additions & 0 deletions kevlar/tests/data/multibestrc.contig.fa
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
>contig1
TCAGGCGGGTCCCCAAAGGACACACAAGCAAAACCCTCTGCCCAAGAGGGGTCATCCCAGGGCAATGGCTGGGGCTCAGGCCCAGCCTCATGGGCAGACCGGGCCAGGACCCGACTTGAGAGGGCTCAGGGAAGCCTCAAGCCCTGGGCAAGCCCCTCTCTCCAGGAGCCACATCCCCACTCAAATGAGTGCC
22 changes: 22 additions & 0 deletions kevlar/tests/data/multibestrc.gdna.fa
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
>17_5040570-5040785
GCCCACAGGAGGCTCAGGCGGGTCCCCGAAGGACACACAAGCAAAACCCTCTGCCCAAGAGGGGTCATCCCAGGGCAATGGCTGGGACTCAGGTCCAGCCTCATGGGCAGACTGGGTCAGGACCCAACTTGAGAGGGCTCAGGGAAGCCTCAAGCCCTGGGCAAGCCCCTCTCTCCAGGAGCCACATACCCACTCAAATGAGTACCCCCCCATGA
>17_18303281-18303424
AGCCCACAGGAGGCTCAGGCGGGTCCCCGAAGGACACACAAGCAAAACCCTCTGCCCAAGAGGGGTCATCCCAGGGCAATGGCTGGGGCTCAGGCCCAGCCTCATGGGCAGACTGGGCCAGGACCCAACTTGAGAGGGCTCAG
>17_20447649-20447781
CCCTCTCAAGTTGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGCCCCAGCCATTGCCCTGGGATGACCCCTCTTGGGCAGAGGGTTTTGCTTGTGTGTCCTTCGGGGACCCGCCTGAGCCTCCTG
>17_34495668-34495912
AAGGTCTTGAAGCTCCTCATGGGGGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGCCCCAGCCATTGCCCTGGGATGACCCCTCTTGGGCAGAGGGTTTTGCTTGTGTGTCCTTTGGGGACCCGCCTGAGCCTCCTGTGGGCTGGGAGTGAGCCAG
>17_34583711-34583957
CAAGGTCTTGAAGCTCCTCATGGGGGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGCCCCAGCCATTGCCCTGGGATGACCCCTCTTGGGCAGAGGGTTTTGCTTGTGTGTCCTTTGGGGACCCGCCTGAGCCTTCTGTGGGCTGGGAGTGAGCCAGA
>17_34748730-34748868
ACAAGGTCTTGAAGCTCCTCATGGGGGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGG
>17_34799780-34799928
GACAAGGTCTTGAAGCTCCTCATGGGGGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGCC
>17_36292137-36292277
GGGCTCAGGCCCAGCCTCATGGGCAGACTGGGCCAGGACCCGACTTGAGAGGGCTCAGGGAAGCCTCAAGCCCTGGGCAAGCCCCTCTCTCCAGGAGCCACATCCCCACTCAAATGAGTGCCCCCCATGAGGAGCTTCAA
>17_36340338-36340486
AGACAAGGTCTTGAAGCTCCTCATGGGGGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGC
>17_58088156-58088408
CAGACAAGGTCTTGAAGCTCCTCATGGGAGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGCCCCAGCCATTGCCCTGGGATGACCCCTCTTGGGCAGAGGGTTTTGCTTGTGTGTCCTTTGGGGACCCGCCTGAGCCTCCTGTGGGCTGGGAGTGAGCCAGACC
>17_60344730-60344982
TCAGACAAGGTCTTGAAGCTCCTCATGGGGGGCACTCATTTGAGTGGGGATGTGGCTCCTGGAGAGAGGGGCTTGCCCAGGGCTTGAGGCTTCCCTGAGCCCTCTCAAGTCGGGTCCTGGCCCAGTCTGCCCATGAGGCTGGGCCTGAGCCCCAGCCATTGCCCTGGGATGACCCCTCTTGGGCAGAGGGTTTTGCTTGTGTGTCCTTTGGGGACCCGCCTGAGCCTCCTGTGGGCTGGGAGTGAGCCAGAC
20 changes: 20 additions & 0 deletions kevlar/tests/test_call.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,3 +288,23 @@ def test_perfect_match():
assert calls[0].seqid == 'chr99'
assert calls[0].position == 2899377
assert calls[0].info['NC'] == 'perfectmatch'


def test_multibest_revcom():
contigfile = data_file('multibestrc.contig.fa')
contigstream = kevlar.parse_augmented_fastx(kevlar.open(contigfile, 'r'))
contigs = list(contigstream)

gdnafile = data_file('multibestrc.gdna.fa')
targets = list(khmer.ReadParser(gdnafile))

calls = list(call(targets, contigs))
assert len(calls) == 4

coordinates = [c.position + 1 for c in calls]
assert coordinates == [34495786, 34583830, 58088279, 60344854]
for c in calls:
assert c._refr == 'A'
assert c._alt == 'G'
assert c.window == ('CCTGAGCCCTCTCAAGTCGGGTCCTGGCCCGGTCTGCCCATGAGGCTGG'
'GCCTGAGCCCCA')

0 comments on commit a6a5a65

Please sign in to comment.