bio-velvet_underground 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +13 -0
  5. data/Gemfile +19 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +53 -0
  8. data/Rakefile +51 -0
  9. data/VERSION +1 -0
  10. data/ext/bioruby.patch +60 -0
  11. data/ext/mkrf_conf.rb +50 -0
  12. data/ext/src/Makefile +125 -0
  13. data/ext/src/src/allocArray.c +305 -0
  14. data/ext/src/src/allocArray.h +86 -0
  15. data/ext/src/src/autoOpen.c +107 -0
  16. data/ext/src/src/autoOpen.h +18 -0
  17. data/ext/src/src/binarySequences.c +813 -0
  18. data/ext/src/src/binarySequences.h +125 -0
  19. data/ext/src/src/concatenatedGraph.c +233 -0
  20. data/ext/src/src/concatenatedGraph.h +30 -0
  21. data/ext/src/src/concatenatedPreGraph.c +262 -0
  22. data/ext/src/src/concatenatedPreGraph.h +29 -0
  23. data/ext/src/src/correctedGraph.c +2642 -0
  24. data/ext/src/src/correctedGraph.h +32 -0
  25. data/ext/src/src/dfib.c +509 -0
  26. data/ext/src/src/dfib.h +69 -0
  27. data/ext/src/src/dfibHeap.c +89 -0
  28. data/ext/src/src/dfibHeap.h +39 -0
  29. data/ext/src/src/dfibpriv.h +105 -0
  30. data/ext/src/src/fib.c +628 -0
  31. data/ext/src/src/fib.h +78 -0
  32. data/ext/src/src/fibHeap.c +79 -0
  33. data/ext/src/src/fibHeap.h +41 -0
  34. data/ext/src/src/fibpriv.h +110 -0
  35. data/ext/src/src/globals.h +153 -0
  36. data/ext/src/src/graph.c +3983 -0
  37. data/ext/src/src/graph.h +233 -0
  38. data/ext/src/src/graphReConstruction.c +1472 -0
  39. data/ext/src/src/graphReConstruction.h +30 -0
  40. data/ext/src/src/graphStats.c +2167 -0
  41. data/ext/src/src/graphStats.h +72 -0
  42. data/ext/src/src/kmer.c +652 -0
  43. data/ext/src/src/kmer.h +73 -0
  44. data/ext/src/src/kmerOccurenceTable.c +236 -0
  45. data/ext/src/src/kmerOccurenceTable.h +44 -0
  46. data/ext/src/src/kseq.h +223 -0
  47. data/ext/src/src/locallyCorrectedGraph.c +557 -0
  48. data/ext/src/src/locallyCorrectedGraph.h +40 -0
  49. data/ext/src/src/passageMarker.c +677 -0
  50. data/ext/src/src/passageMarker.h +137 -0
  51. data/ext/src/src/preGraph.c +1717 -0
  52. data/ext/src/src/preGraph.h +106 -0
  53. data/ext/src/src/preGraphConstruction.c +990 -0
  54. data/ext/src/src/preGraphConstruction.h +26 -0
  55. data/ext/src/src/readCoherentGraph.c +557 -0
  56. data/ext/src/src/readCoherentGraph.h +30 -0
  57. data/ext/src/src/readSet.c +1734 -0
  58. data/ext/src/src/readSet.h +67 -0
  59. data/ext/src/src/recycleBin.c +199 -0
  60. data/ext/src/src/recycleBin.h +58 -0
  61. data/ext/src/src/roadMap.c +342 -0
  62. data/ext/src/src/roadMap.h +65 -0
  63. data/ext/src/src/run.c +318 -0
  64. data/ext/src/src/run.h +52 -0
  65. data/ext/src/src/run2.c +712 -0
  66. data/ext/src/src/scaffold.c +1876 -0
  67. data/ext/src/src/scaffold.h +64 -0
  68. data/ext/src/src/shortReadPairs.c +1243 -0
  69. data/ext/src/src/shortReadPairs.h +32 -0
  70. data/ext/src/src/splay.c +259 -0
  71. data/ext/src/src/splay.h +43 -0
  72. data/ext/src/src/splayTable.c +1315 -0
  73. data/ext/src/src/splayTable.h +31 -0
  74. data/ext/src/src/tightString.c +362 -0
  75. data/ext/src/src/tightString.h +82 -0
  76. data/ext/src/src/utility.c +199 -0
  77. data/ext/src/src/utility.h +98 -0
  78. data/ext/src/third-party/zlib-1.2.3/ChangeLog +855 -0
  79. data/ext/src/third-party/zlib-1.2.3/FAQ +339 -0
  80. data/ext/src/third-party/zlib-1.2.3/INDEX +51 -0
  81. data/ext/src/third-party/zlib-1.2.3/Makefile +154 -0
  82. data/ext/src/third-party/zlib-1.2.3/Makefile.in +154 -0
  83. data/ext/src/third-party/zlib-1.2.3/README +125 -0
  84. data/ext/src/third-party/zlib-1.2.3/adler32.c +149 -0
  85. data/ext/src/third-party/zlib-1.2.3/algorithm.txt +209 -0
  86. data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.pup +66 -0
  87. data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.sas +65 -0
  88. data/ext/src/third-party/zlib-1.2.3/as400/bndsrc +132 -0
  89. data/ext/src/third-party/zlib-1.2.3/as400/compile.clp +123 -0
  90. data/ext/src/third-party/zlib-1.2.3/as400/readme.txt +111 -0
  91. data/ext/src/third-party/zlib-1.2.3/as400/zlib.inc +331 -0
  92. data/ext/src/third-party/zlib-1.2.3/compress.c +79 -0
  93. data/ext/src/third-party/zlib-1.2.3/configure +459 -0
  94. data/ext/src/third-party/zlib-1.2.3/contrib/README.contrib +71 -0
  95. data/ext/src/third-party/zlib-1.2.3/contrib/ada/buffer_demo.adb +106 -0
  96. data/ext/src/third-party/zlib-1.2.3/contrib/ada/mtest.adb +156 -0
  97. data/ext/src/third-party/zlib-1.2.3/contrib/ada/read.adb +156 -0
  98. data/ext/src/third-party/zlib-1.2.3/contrib/ada/readme.txt +65 -0
  99. data/ext/src/third-party/zlib-1.2.3/contrib/ada/test.adb +463 -0
  100. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.adb +225 -0
  101. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.ads +114 -0
  102. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.adb +141 -0
  103. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.ads +450 -0
  104. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.adb +701 -0
  105. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.ads +328 -0
  106. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.gpr +20 -0
  107. data/ext/src/third-party/zlib-1.2.3/contrib/asm586/README.586 +43 -0
  108. data/ext/src/third-party/zlib-1.2.3/contrib/asm586/match.S +364 -0
  109. data/ext/src/third-party/zlib-1.2.3/contrib/asm686/README.686 +34 -0
  110. data/ext/src/third-party/zlib-1.2.3/contrib/asm686/match.S +329 -0
  111. data/ext/src/third-party/zlib-1.2.3/contrib/blast/Makefile +8 -0
  112. data/ext/src/third-party/zlib-1.2.3/contrib/blast/README +4 -0
  113. data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.c +444 -0
  114. data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.h +71 -0
  115. data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.pk +0 -0
  116. data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.txt +1 -0
  117. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLib.pas +557 -0
  118. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLibConst.pas +11 -0
  119. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/readme.txt +76 -0
  120. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/zlibd32.mak +93 -0
  121. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.build +33 -0
  122. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.chm +0 -0
  123. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.sln +21 -0
  124. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  125. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  126. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  127. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  128. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  129. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  130. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  131. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  132. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  133. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  134. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  135. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/readme.txt +58 -0
  136. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/README +1 -0
  137. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.c +608 -0
  138. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.h +37 -0
  139. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inffix9.h +107 -0
  140. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inflate9.h +47 -0
  141. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.c +323 -0
  142. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.h +55 -0
  143. data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffas86.c +1157 -0
  144. data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffast.S +1368 -0
  145. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/test.cpp +24 -0
  146. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.cpp +329 -0
  147. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.h +128 -0
  148. data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream.h +307 -0
  149. data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream_test.cpp +25 -0
  150. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/README +35 -0
  151. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/TODO +17 -0
  152. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/test.cc +50 -0
  153. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.cc +479 -0
  154. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.h +466 -0
  155. data/ext/src/third-party/zlib-1.2.3/contrib/masm686/match.asm +413 -0
  156. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/bld_ml64.bat +2 -0
  157. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.asm +513 -0
  158. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.obj +0 -0
  159. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffas8664.c +186 -0
  160. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.asm +392 -0
  161. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.obj +0 -0
  162. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/readme.txt +28 -0
  163. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/bld_ml32.bat +2 -0
  164. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.asm +972 -0
  165. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.obj +0 -0
  166. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32c.c +62 -0
  167. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.asm +1083 -0
  168. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.obj +0 -0
  169. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/mkasm.bat +3 -0
  170. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/readme.txt +21 -0
  171. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ChangeLogUnzip +67 -0
  172. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/Makefile +25 -0
  173. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/crypt.h +132 -0
  174. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.c +177 -0
  175. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.h +75 -0
  176. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.c +270 -0
  177. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.h +21 -0
  178. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/miniunz.c +585 -0
  179. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/minizip.c +420 -0
  180. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.c +281 -0
  181. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.h +31 -0
  182. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.c +1598 -0
  183. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.h +354 -0
  184. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.c +1219 -0
  185. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.h +235 -0
  186. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/example.pas +599 -0
  187. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/readme.txt +76 -0
  188. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibd32.mak +93 -0
  189. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibpas.pas +236 -0
  190. data/ext/src/third-party/zlib-1.2.3/contrib/puff/Makefile +8 -0
  191. data/ext/src/third-party/zlib-1.2.3/contrib/puff/README +63 -0
  192. data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.c +837 -0
  193. data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.h +31 -0
  194. data/ext/src/third-party/zlib-1.2.3/contrib/puff/zeros.raw +0 -0
  195. data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.c +275 -0
  196. data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.txt +10 -0
  197. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile +14 -0
  198. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile.msc +17 -0
  199. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/untgz.c +674 -0
  200. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/readme.txt +73 -0
  201. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/miniunz.vcproj +126 -0
  202. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/minizip.vcproj +126 -0
  203. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/testzlib.vcproj +126 -0
  204. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlib.rc +32 -0
  205. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
  206. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.def +92 -0
  207. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.sln +78 -0
  208. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
  209. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/miniunz.vcproj +566 -0
  210. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/minizip.vcproj +563 -0
  211. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlib.vcproj +948 -0
  212. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
  213. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlib.rc +32 -0
  214. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
  215. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.def +92 -0
  216. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.sln +144 -0
  217. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
  218. data/ext/src/third-party/zlib-1.2.3/crc32.c +423 -0
  219. data/ext/src/third-party/zlib-1.2.3/crc32.h +441 -0
  220. data/ext/src/third-party/zlib-1.2.3/deflate.c +1736 -0
  221. data/ext/src/third-party/zlib-1.2.3/deflate.h +331 -0
  222. data/ext/src/third-party/zlib-1.2.3/example.c +565 -0
  223. data/ext/src/third-party/zlib-1.2.3/examples/README.examples +42 -0
  224. data/ext/src/third-party/zlib-1.2.3/examples/fitblk.c +233 -0
  225. data/ext/src/third-party/zlib-1.2.3/examples/gun.c +693 -0
  226. data/ext/src/third-party/zlib-1.2.3/examples/gzappend.c +500 -0
  227. data/ext/src/third-party/zlib-1.2.3/examples/gzjoin.c +448 -0
  228. data/ext/src/third-party/zlib-1.2.3/examples/gzlog.c +413 -0
  229. data/ext/src/third-party/zlib-1.2.3/examples/gzlog.h +58 -0
  230. data/ext/src/third-party/zlib-1.2.3/examples/zlib_how.html +523 -0
  231. data/ext/src/third-party/zlib-1.2.3/examples/zpipe.c +191 -0
  232. data/ext/src/third-party/zlib-1.2.3/examples/zran.c +404 -0
  233. data/ext/src/third-party/zlib-1.2.3/gzio.c +1026 -0
  234. data/ext/src/third-party/zlib-1.2.3/infback.c +623 -0
  235. data/ext/src/third-party/zlib-1.2.3/inffast.c +318 -0
  236. data/ext/src/third-party/zlib-1.2.3/inffast.h +11 -0
  237. data/ext/src/third-party/zlib-1.2.3/inffixed.h +94 -0
  238. data/ext/src/third-party/zlib-1.2.3/inflate.c +1368 -0
  239. data/ext/src/third-party/zlib-1.2.3/inflate.h +115 -0
  240. data/ext/src/third-party/zlib-1.2.3/inftrees.c +329 -0
  241. data/ext/src/third-party/zlib-1.2.3/inftrees.h +55 -0
  242. data/ext/src/third-party/zlib-1.2.3/make_vms.com +461 -0
  243. data/ext/src/third-party/zlib-1.2.3/minigzip.c +322 -0
  244. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.bor +109 -0
  245. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.dj2 +104 -0
  246. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.emx +69 -0
  247. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.msc +106 -0
  248. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.tc +94 -0
  249. data/ext/src/third-party/zlib-1.2.3/old/Makefile.riscos +151 -0
  250. data/ext/src/third-party/zlib-1.2.3/old/README +3 -0
  251. data/ext/src/third-party/zlib-1.2.3/old/descrip.mms +48 -0
  252. data/ext/src/third-party/zlib-1.2.3/old/os2/Makefile.os2 +136 -0
  253. data/ext/src/third-party/zlib-1.2.3/old/os2/zlib.def +51 -0
  254. data/ext/src/third-party/zlib-1.2.3/old/visual-basic.txt +160 -0
  255. data/ext/src/third-party/zlib-1.2.3/old/zlib.html +971 -0
  256. data/ext/src/third-party/zlib-1.2.3/projects/README.projects +41 -0
  257. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/README.txt +73 -0
  258. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/example.dsp +278 -0
  259. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/minigzip.dsp +278 -0
  260. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsp +609 -0
  261. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsw +59 -0
  262. data/ext/src/third-party/zlib-1.2.3/qnx/package.qpg +141 -0
  263. data/ext/src/third-party/zlib-1.2.3/trees.c +1219 -0
  264. data/ext/src/third-party/zlib-1.2.3/trees.h +128 -0
  265. data/ext/src/third-party/zlib-1.2.3/uncompr.c +61 -0
  266. data/ext/src/third-party/zlib-1.2.3/win32/DLL_FAQ.txt +397 -0
  267. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.bor +107 -0
  268. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.emx +69 -0
  269. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.gcc +141 -0
  270. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.msc +126 -0
  271. data/ext/src/third-party/zlib-1.2.3/win32/VisualC.txt +3 -0
  272. data/ext/src/third-party/zlib-1.2.3/win32/zlib.def +60 -0
  273. data/ext/src/third-party/zlib-1.2.3/win32/zlib1.rc +39 -0
  274. data/ext/src/third-party/zlib-1.2.3/zconf.h +332 -0
  275. data/ext/src/third-party/zlib-1.2.3/zconf.in.h +332 -0
  276. data/ext/src/third-party/zlib-1.2.3/zlib.3 +159 -0
  277. data/ext/src/third-party/zlib-1.2.3/zlib.h +1357 -0
  278. data/ext/src/third-party/zlib-1.2.3/zutil.c +318 -0
  279. data/ext/src/third-party/zlib-1.2.3/zutil.h +269 -0
  280. data/lib/bio-velvet_underground.rb +12 -0
  281. data/lib/bio-velvet_underground/external/VERSION +1 -0
  282. data/lib/bio-velvet_underground/velvet_underground.rb +72 -0
  283. data/spec/binary_sequence_store_spec.rb +27 -0
  284. data/spec/data/1/CnyUnifiedSeq +0 -0
  285. data/spec/spec_helper.rb +31 -0
  286. metadata +456 -0
@@ -0,0 +1,31 @@
1
+ /*
2
+ Copyright 2007, 2008 Daniel Zerbino (zerbino@ebi.ac.uk)
3
+
4
+ This file is part of Velvet.
5
+
6
+ Velvet is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2 of the License, or
9
+ (at your option) any later version.
10
+
11
+ Velvet is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with Velvet; if not, write to the Free Software
18
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+
20
+ */
21
+ #ifndef _SPLAYTABLE_H_
22
+ #define _SPLAYTABLE_H_
23
+
24
+ SplayTable *newSplayTable(int WORDLENGTH, boolean double_strand);
25
+
26
+ void destroySplayTable(SplayTable * table);
27
+
28
+ void inputSequenceArrayIntoSplayTableAndArchive(ReadSet * reads,
29
+ SplayTable * table,
30
+ char *filename, char* seqFilename);
31
+ #endif
@@ -0,0 +1,362 @@
1
+ /*
2
+ Copyright 2007, 2008 Daniel Zerbino (zerbino@ebi.ac.uk)
3
+
4
+ This file is part of Velvet.
5
+
6
+ Velvet is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2 of the License, or
9
+ (at your option) any later version.
10
+
11
+ Velvet is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with Velvet; if not, write to the Free Software
18
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+
20
+ */
21
+ #include <stdlib.h>
22
+ #include <string.h>
23
+ #include <stdio.h>
24
+
25
+ #include "globals.h"
26
+ #include "tightString.h"
27
+ #include "utility.h"
28
+
29
+ static const Nucleotide Adenine = 0;
30
+ static const Nucleotide Cytosine = 1;
31
+ static const Nucleotide Guanine = 2;
32
+ static const Nucleotide Thymine = 3;
33
+
34
+ // Binary 11111100
35
+ static const Codon FILTER0 = ~((Codon) 3);
36
+ // Binary 11110011
37
+ static const Codon FILTER1 = ~(((Codon) 3) << 2);
38
+ // Binary 11001111
39
+ static const Codon FILTER2 = ~(((Codon) 3) << 4);
40
+ // Binary 00111111
41
+ static const Codon FILTER3 = (Codon) ~ ((Codon) 3 << 6);
42
+
43
+ //
44
+ // Adds a number into the Codon pointed to by codonPtr at the desired
45
+ // position (0, 1, 2, or 3);
46
+ //
47
+ void
48
+ writeNucleotideNumber(Nucleotide nucleotide, Codon * codonPtr,
49
+ Coordinate position)
50
+ {
51
+ if (position == 3) {
52
+ *codonPtr &= FILTER3;
53
+ *codonPtr += nucleotide << 6;
54
+ } else if (position == 2) {
55
+ *codonPtr &= FILTER2;
56
+ *codonPtr += nucleotide << 4;
57
+ } else if (position == 1) {
58
+ *codonPtr &= FILTER1;
59
+ *codonPtr += nucleotide << 2;
60
+ } else if (position == 0) {
61
+ *codonPtr &= FILTER0;
62
+ *codonPtr += nucleotide;
63
+ }
64
+ }
65
+
66
+ TightString *getTightStringInArray(TightString * tString,
67
+ IDnum position)
68
+ {
69
+ return tString + position;
70
+ }
71
+
72
+ //
73
+ // Adds a nucleotide into the Codon pointed to by codonPtr at the desired
74
+ // position (0, 1, 2, or 3);
75
+ //
76
+ void writeNucleotide(Nucleotide nucleotide, Codon * codonPtr, int position)
77
+ {
78
+ int nucleotideNum;
79
+
80
+ switch (nucleotide) {
81
+ case 'A':
82
+ nucleotideNum = Adenine;
83
+ break;
84
+ case 'C':
85
+ nucleotideNum = Cytosine;
86
+ break;
87
+ case 'G':
88
+ nucleotideNum = Guanine;
89
+ break;
90
+ case 'T':
91
+ nucleotideNum = Thymine;
92
+ break;
93
+ case 'N':
94
+ nucleotideNum = Adenine;
95
+ break;
96
+ case 'a':
97
+ nucleotideNum = Adenine;
98
+ break;
99
+ case 'c':
100
+ nucleotideNum = Cytosine;
101
+ break;
102
+ case 'g':
103
+ nucleotideNum = Guanine;
104
+ break;
105
+ case 't':
106
+ nucleotideNum = Thymine;
107
+ break;
108
+ case 'n':
109
+ nucleotideNum = Adenine;
110
+ default:
111
+ nucleotideNum = Adenine;
112
+ }
113
+
114
+ writeNucleotideNumber(nucleotideNum, codonPtr, position);
115
+ }
116
+
117
+ static void fillTightStringWithString(TightString * tString,
118
+ char *sequence,
119
+ Codon *newSequence)
120
+ {
121
+ int index;
122
+
123
+ tString->sequence = newSequence;
124
+ for (index = 0; index < tString->length; index++)
125
+ writeNucleotide(sequence[index],
126
+ &(newSequence[index / 4]),
127
+ index % 4);
128
+ free(sequence);
129
+ }
130
+
131
+ //
132
+ // Creates a tightString from an array of normal strings
133
+ //
134
+ TightString *newTightStringArrayFromStringArray(char **sequences,
135
+ IDnum sequenceCount,
136
+ char **tSeqMem)
137
+ {
138
+ IDnum sequenceIndex;
139
+ Codon *tmp;
140
+ TightString *tStringArray = mallocOrExit(sequenceCount, TightString);
141
+ Coordinate totalLength = 0;
142
+ int arrayLength;
143
+
144
+ for (sequenceIndex = 0; sequenceIndex < sequenceCount; sequenceIndex++)
145
+ {
146
+ tStringArray[sequenceIndex].length = strlen (sequences[sequenceIndex]);
147
+ arrayLength = (tStringArray[sequenceIndex].length + 3) / 4;
148
+ totalLength += arrayLength;
149
+ }
150
+ *tSeqMem = callocOrExit (totalLength, char);
151
+ tmp = (Codon*)*tSeqMem;
152
+ for (sequenceIndex = 0; sequenceIndex < sequenceCount; sequenceIndex++)
153
+ {
154
+ fillTightStringWithString (&tStringArray[sequenceIndex],
155
+ sequences[sequenceIndex],
156
+ tmp);
157
+ arrayLength = (tStringArray[sequenceIndex].length + 3) / 4;
158
+ tmp += arrayLength;
159
+ }
160
+
161
+ free(sequences);
162
+ return tStringArray;
163
+ }
164
+
165
+ char readNucleotide(Nucleotide nucleotide)
166
+ {
167
+ switch (nucleotide) {
168
+ case 0:
169
+ return 'A';
170
+ case 1:
171
+ return 'C';
172
+ case 2:
173
+ return 'G';
174
+ case 3:
175
+ return 'T';
176
+ }
177
+
178
+ return '?';
179
+ }
180
+
181
+ char *readTightString(TightString * tString)
182
+ {
183
+ Coordinate index, index4;
184
+ char *string;
185
+ Codon codon;
186
+
187
+ if (tString == NULL || tString->length == 0) {
188
+ string = callocOrExit(5, char);
189
+ strcpy(string, "VOID");
190
+ return string;
191
+ }
192
+
193
+ string = callocOrExit(tString->length + 1, char);
194
+
195
+ for (index = 0; index < tString->length / 4; index++) {
196
+ index4 = index << 2;
197
+ codon = tString->sequence[index];
198
+ string[index4] = readNucleotide(codon & 3);
199
+ string[index4 + 1] = readNucleotide((codon & 12) >> 2);
200
+ string[index4 + 2] = readNucleotide((codon & 48) >> 4);
201
+ string[index4 + 3] = readNucleotide((codon & 192) >> 6);
202
+ }
203
+
204
+ index4 = index << 2;
205
+ codon = tString->sequence[index];
206
+
207
+ switch (tString->length % 4) {
208
+ case 3:
209
+ string[index4 + 3] = readNucleotide((codon & 192) >> 6);
210
+ case 2:
211
+ string[index4 + 2] = readNucleotide((codon & 48) >> 4);
212
+ case 1:
213
+ string[index4 + 1] = readNucleotide((codon & 12) >> 2);
214
+ case 0:
215
+ string[index4] = readNucleotide(codon & 3);
216
+ }
217
+
218
+ string[tString->length] = '\0';
219
+
220
+ return string;
221
+ }
222
+
223
+ Nucleotide getNucleotide(Coordinate nucleotideIndex, TightString * tString)
224
+ {
225
+ Codon codon = tString->sequence[nucleotideIndex / 4];
226
+
227
+ switch (nucleotideIndex % 4) {
228
+ case 3:
229
+ return (codon & 192) >> 6;
230
+ case 2:
231
+ return (codon & 48) >> 4;
232
+ case 1:
233
+ return (codon & 12) >> 2;
234
+ case 0:
235
+ return (codon & 3);
236
+ }
237
+
238
+ return '?';
239
+ }
240
+
241
+ void readTightStringFragment(TightString * tString, Coordinate start,
242
+ Coordinate finish, char *string)
243
+ {
244
+ Coordinate index;
245
+ Coordinate inFinish = finish;
246
+
247
+ if (start >= tString->length) {
248
+ string[0] = '\0';
249
+ return;
250
+ }
251
+
252
+ if (inFinish > tString->length)
253
+ inFinish = tString->length;
254
+
255
+ for (index = start; index < inFinish; index++) {
256
+ string[index - start] =
257
+ readNucleotide(getNucleotide(index, tString));
258
+ }
259
+
260
+ string[inFinish - start] = '\0';
261
+ }
262
+
263
+ char getNucleotideChar(Coordinate nucleotideIndex, TightString * tString)
264
+ {
265
+ Codon codon;
266
+
267
+ codon = tString->sequence[nucleotideIndex / 4];
268
+
269
+ switch (nucleotideIndex % 4) {
270
+ case 3:
271
+ return readNucleotide((codon & 192) >> 6);
272
+ case 2:
273
+ return readNucleotide((codon & 48) >> 4);
274
+ case 1:
275
+ return readNucleotide((codon & 12) >> 2);
276
+ case 0:
277
+ return readNucleotide((codon & 3));
278
+ }
279
+
280
+ return '?';
281
+ }
282
+
283
+ TightString *newTightString(Coordinate length)
284
+ {
285
+ Coordinate arrayLength = length / 4;
286
+ Coordinate index;
287
+ TightString *newTString = mallocOrExit(1, TightString);
288
+ if (length % 4 > 0)
289
+ arrayLength++;
290
+
291
+ newTString->length = length;
292
+ newTString->sequence = callocOrExit(arrayLength, Codon);
293
+
294
+ for (index = 0; index < arrayLength; index++)
295
+ newTString->sequence[index] = 0;
296
+
297
+ return newTString;
298
+ }
299
+
300
+ void
301
+ writeNucleotideAtPosition(Nucleotide nucleotide, Coordinate position,
302
+ TightString * tString)
303
+ {
304
+ if (position >= tString->length)
305
+ return;
306
+
307
+ writeNucleotideNumber(nucleotide,
308
+ &tString->sequence[position / 4],
309
+ position % 4);
310
+ }
311
+
312
+ IDnum getLength(TightString * tString)
313
+ {
314
+ return tString->length;
315
+ }
316
+
317
+ void destroyTightString(TightString * tString)
318
+ {
319
+ free(tString->sequence);
320
+ free(tString);
321
+ }
322
+
323
+ void setTightStringLength(TightString * tString, Coordinate length)
324
+ {
325
+ Coordinate arrayLength = tString->length / 4;
326
+ Coordinate newArrayLength = length / 4;
327
+ if (tString->length % 4 > 0)
328
+ arrayLength++;
329
+ if (length % 4 > 0)
330
+ newArrayLength++;
331
+
332
+ if (newArrayLength > arrayLength) {
333
+ tString->sequence =
334
+ reallocOrExit(tString->sequence,
335
+ newArrayLength, Codon);
336
+ arrayLength = newArrayLength;
337
+ }
338
+
339
+ tString->length = length;
340
+ }
341
+
342
+ void exportTightString(FILE * outfile, TightString * sequence, IDnum index)
343
+ {
344
+ Coordinate start, finish;
345
+ char str[100];
346
+
347
+ if (sequence == NULL)
348
+ return;
349
+
350
+ velvetFprintf(outfile, ">SEQUENCE_%ld_length_%lld\n", (long) index,
351
+ (long long) getLength(sequence));
352
+
353
+ start = 0;
354
+ while (start <= getLength(sequence)) {
355
+ finish = start + 60;
356
+ readTightStringFragment(sequence, start, finish, str);
357
+ velvetFprintf(outfile, "%s\n", str);
358
+ start = finish;
359
+ }
360
+
361
+ fflush(outfile);
362
+ }
@@ -0,0 +1,82 @@
1
+ /*
2
+ Copyright 2007, 2008 Daniel Zerbino (zerbino@ebi.ac.uk)
3
+
4
+ This file is part of Velvet.
5
+
6
+ Velvet is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2 of the License, or
9
+ (at your option) any later version.
10
+
11
+ Velvet is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with Velvet; if not, write to the Free Software
18
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+
20
+ */
21
+ #ifndef _TIGHTSTRING_H_
22
+ #define _TIGHTSTRING_H_
23
+
24
+ #include <stdio.h>
25
+
26
+ typedef unsigned char Codon;
27
+
28
+ struct tString_st {
29
+ Codon *sequence;
30
+ IDnum length;
31
+ } ATTRIBUTE_PACKED;
32
+
33
+ //////////////////////////////////////////////////////////////
34
+ // Creators and destructors
35
+ /////////////////////////////////////////////////////////////
36
+
37
+ TightString *newTightString(Coordinate size);
38
+
39
+ void destroyTightString(TightString * tString);
40
+
41
+ ///////////////////////////////////////////////////////////////
42
+ // Reading
43
+ //////////////////////////////////////////////////////////////
44
+
45
+ IDnum getLength(TightString * tString);
46
+
47
+ char *readTightString(TightString * tString);
48
+
49
+ Nucleotide getNucleotide(Coordinate nucleotideIndex,
50
+ TightString * tString);
51
+
52
+ char getNucleotideChar(Coordinate nucleotideIndex, TightString * tString);
53
+
54
+ void readTightStringFragment(TightString * tString, Coordinate start,
55
+ Coordinate finish, char *string);
56
+
57
+ TightString *getTightStringInArray(TightString * tString,
58
+ IDnum position);
59
+
60
+ ///////////////////////////////////////////////////////////////
61
+ // Writing
62
+ ///////////////////////////////////////////////////////////////
63
+
64
+ void setTightStringLength(TightString * tString, Coordinate length);
65
+
66
+ void writeNucleotideAtPosition(Nucleotide nucleotide, Coordinate position,
67
+ TightString * tString);
68
+
69
+ ///////////////////////////////////////////////////////////////
70
+ // Array wide operations
71
+ ///////////////////////////////////////////////////////////////
72
+
73
+ TightString *newTightStringArrayFromStringArray(char **sequences,
74
+ IDnum sequenceCount,
75
+ char **tSeqMem);
76
+
77
+ ///////////////////////////////////////////////////////////////
78
+ // Misc
79
+ ///////////////////////////////////////////////////////////////
80
+
81
+ void exportTightString(FILE * outfile, TightString * sequence, IDnum index);
82
+ #endif