Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Aligning seqeunces with W-curve and SQL.


Published on

The W-curve converts DNA character sequences to 3D geometry. This geometry can be stored in PostGIS and queried to perform fuzzy matching on the sequences. The alignments can be multi-pass to handle sub-sequences.

Published in: Technology, Business
  • Be the first to like this

Aligning seqeunces with W-curve and SQL.

  1. 1. Standard tools analyze strings● Blast, Fasta, and ClustalW combine strings  with probability tables to compare sequences. – Assume that all differences are significant.● This works well enough in most cases: Fly,  chimp, and human genomes are easily  comparable.● Clustal­omega adds HMM to the mix. – Does a better job keeping sequences compact.● Catch: They dont handle messy DNA.
  2. 2. “Messy” sequences ● Several classes of important problems  break the string­based approaches: – Sequences which break probability tables. – Large indels. – Crossovers, inversions, and CNVs. – Discontinuous epitopes. – Microbiome studies with many source  mappings. ● These break  basic assumptions required  for character­string comparisons.
  3. 3. Example: Cancer and CNVs● At a smaller scale, CNVs look like  crossovers. – Shotgun sequencing gets partial matches on  multiple genes at the CNV boundary.● Cancer is often messy. – Nature, radiation, or chemical insults leave  the sequences scrambled. – Large indels or crossovers between  chromosomes are common.
  4. 4. Dealing with HIV-1● Non­correcting RNA virus: uniform rate of  variation. – High rate of SNPs. – Also high rate of gaps. – Strains run from 8000+ to 10 000+ bases.● Dual­strand package in viron: – Multi­strain crossovers are common.
  5. 5. Example: gp120 & CD4 Site● Try this: Align HXB2s gp120 sequence its  HXB2s genome using ClustalW2. – gp120 is ~1500 bases long. – Alignment using ClustalW2 stretches the  gene past 5000 bases.● Now try to analyze the CD4 binding site. – 60+ bases spread across a 1500­base gene in  7 groups of 6­12 bases each. – Clades based on gene use largely white noise.
  6. 6. CD4 binding site in gp120
  7. 7. Clades Based on gp120
  8. 8. Combined work cycle● Part of the problem is combining stages. – Alignment and comparison happen in one  step.● Tools only compare full sequences rather  than subsets. – Messy sequences require multi­stage  alignment. – This doesnt work with partial matches  required for crossovers, CNVs, or really large  indels.
  9. 9. Alignments with the W-curve● The W­curve was originally developed for  visual analysis of long sequences.● Later adapted to computed alignments.● The process converts DNA strings to 3D  geometry. – Local state gives more detail for analysis than  character strings. – Comparing geometry produces alignments.
  10. 10. Mapping DNA to Geometry● Geometry is produced from DNA sequence.● Successive points move halfway to the corner  associated with a DNA base.
  11. 11. Example:“CG”● First point  is halfway  from origin  to (0,­1).● Second  point is  halfway to  (­1,0).
  12. 12. Important Properties● The W­curve balances variation and convergence.● Curves vary locally due to differences in sequence  that produce them.● SNPs changes the surrounding curve.● After the sequences converge, so do the curves.● This leaves a few bases of differences after a SNP  or GAP.
  13. 13. Convergence aftera SNP● Blue &  Green  curves  converge  within a  few  bases of  the SNP  at base  3.
  14. 14. Global view: Wild, D-R HIV-1 POL
  15. 15. Local view: Wild, D-R HIV-1 POL
  16. 16. SQL & Alignments● This approach is for alignment only. – Sub­sequences can be aligned in a second  pass. – Produces clades based on clinically  significant subsets of the sequence. ● While this can be done manually with  Clustal, the W­curve can automate the  cycle. – Final alignments can be further processed for  scoring by any available method.
  17. 17. Storing Geometry● The internals of most “geocoding” rely on  geometric extensions to SQL. ● The standard is called “GIS”, implemented  as “PostGIS” with the Postgres database.● This allows storing W­curves in a  database and querying them. – Global convergence allows for comparison. – Fuzzy matching deals with variation.
  18. 18. W-curve & GIS● Due to SNPs and gaps, we need some way  to make a fuzzy comparison of the curves.● Our current approach uses simple  geometry to analyze the distances. – Template and sample vertexes are queried by  geometry. – Ultimately, the approach permits multiple  ways to store and query the curves.
  19. 19. Fixed templates, fuzzy samples● We have many, often long templates.● There is one sample, which is often short.● Solution: Attach “fuzzyness” to the  sample: – Store template vertexes as points. – Store samples as circles or polygons. – Ask which template points are within the  sample circles.
  20. 20. Fuzzy Matching
  21. 21. Query output: ID, base, offset● Select uses within lookup on X­Y plane. – Extracts template sequence ID and Z­axis (base no). – Computes the difference of sample and template base  numbers (“offset”).● Results are sorted by ID, offset, and template base. – Sequences of adjacent template base numbers with the  same offset are alignments. – No need for the sample bases since they can be re­ computed from template base + offset.
  22. 22. SQL for extraction is readable select● Only three  b.seq_id, values are  b.base_no, a.base – b.base as delta, required from  from the initial  fuzzy a, fixed b query. where st_contains● From two  ( tables. a.vertex, b.vertex● Where the  ) order by fuzzy vertex  b.seq_id, contains the, b.base_no fixed one. ;
  23. 23. Query result: “chunks”● Runs of template base numbers are collapsed into  “chunks” of alignment. – [ SeqID, Start, Stop, Offset ] describe the alignment. – Process makes allowances for small (<7 b.p.) gaps.● Amenable to parallel processing: – Database nodes perform “within” query. – Summarized into chunks. – Gathered for final processing.
  24. 24. Post-processing chunks● Sort by: start base + offset ascending. stop base  + offset descending● Chunks are ordered along the sample,  longest to shortest.● Now the chunks can be filtered depending  on their source and expected use.
  25. 25. Filtering the Chunks● Short reads, crossovers, CNVs, tag searches will  all present different patterns in the chunks. – Short reads look for start­to­end matches. – Crossovers are tiled end­to­end matches from  different sequences. – CNVs have two sequences with a break in the offsets  equal to the CNV size. – Tags show up as multiple matches of the same  length from multiple templates. – Inversions match a reversed copy of the sasmple.
  26. 26. Crossovers: Adjacent Chunks● Crossovers will have two chunks from  different sequences.● Whatever their offsets, the two chunks  add up to the full samples length with  minimal gap or overlap.
  27. 27. Example: crossover gp120 ...● Sequences with  1 6880 +93 adjacent bases and  1 6881 +93 1 6882 +93 the same offset.  ... 1 7665 +93 ... 2 6307 -82 2 6308 -82 2 6310 -82 2 6311 -82 ... 2 7054 -82
  28. 28. Example: crossover gp120● Sequences with  [ 1 6880 7665 +93 ] adjacent bases and  the same offset.● Get collapsed into  chunks. [ 2 6307 7054 -82 ]
  29. 29. Example: crossover gp120● Sequences with  [ 2 6225 6972 -82 ] adjacent bases and  [ 1 6973 7758 +93 ] the same offset. ● Get collapsed into  chunks.● Sort by sample bases  from start+offset and  stop + offset.
  30. 30. Example: crossover gp120● Sequences with adjacent  [ 2 6225 6972 -82 ] bases and the same  [ 1 6973 7758 +93 ] offset. ● Get collapsed into  chunks.● Sort by sample bases  from start+offset and  stop + offset.● Result is a tiling of  gp120: 6225 – 7758.
  31. 31. Working with short reads● The previous example shows the bases on  a known sequence, gp120.● For short reads the sample base  numbering will be 1..N. – Same basic results, with chunk start and  stop from 1 .. N and large offsets. – Known sample bases simplify searches for  tags or relative positions.
  32. 32. CNVs have a similar pattern● Three chunks with A­B­A sequence.● Base offset in second block of A is the  same size as the chunk between them.
  33. 33. Other filters● Inversions can be detected by reversing  the sample sequence.● Copies of genes will show up as multiple  sequences with full coverage.
  34. 34. Occams Razor● All of this is done with the simple  arithmetic: – Numeric sort. – Comparing integers to 1 or 7. – Subtract base numbers. – Adding offsets.● This keeps the algorithm easy to program  and validate.
  35. 35. Aligning sub-sequences● Aligning sub­sequences simply reduces the chunk  sizes. – Start with chunks that overlap the sub­sequence. – Generate new chunks with more restrictive start and  stop values. – The sequence, and offset do not change.● Again, nothing more than simple arithmetic is  required for the sub­alignments.
  36. 36. Samples start extra-fuzzy● The leading few bases of a sample are  generated from (0,0,0).● Template sequences begin at a point  within the curve.● This can be easily handled by using a  slightly larger radius for the first few  sample bases.
  37. 37. Indeterminate bases● FASTQ data includes indeterminate bases  and quality stores. – We can generate multiple points for a base. – These can be stored as “multipoint” in GIS. – Compared using a  convex hull or nearest­ neighbor to the template. – Explicit use of fuzzy math to combined with  quality values?
  38. 38. Parallel processing● Recursive algorithms in Blast, Fasta,   Clustal are not amenable to piecewise or  parallel processing.● The query used here is trivial to distribute  across mulitple servers.● Compressing rows into chunks is also  suitable for multi­node processing.● The cycle is suitable for parallel or cloud  computing environments.
  39. 39. Summary● Using a stand­alone alignment step is more  flexible for messy DNA.● The W­curve adds enough state to the DNA  sequence that we can query nearby vertexes.● A simple query and filtering allows us to  query sequences for alignment, including  post­processing for sub­sequence alignment.● This is a tool for automating alignment of  messy sequences.