bio-ucsc-api 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. data/Gemfile +4 -3
  2. data/Gemfile.lock +31 -20
  3. data/README.md +224 -0
  4. data/Rakefile +5 -8
  5. data/VERSION +1 -1
  6. data/bio-ucsc-api.gemspec +39 -122
  7. data/lib/bio-ucsc.rb +10 -5
  8. data/lib/bio-ucsc/ailmel1.rb +5 -3
  9. data/lib/bio-ucsc/anocar2.rb +7 -6
  10. data/lib/bio-ucsc/anogam1.rb +7 -5
  11. data/lib/bio-ucsc/anogam1/chaindm3.rb +11 -8
  12. data/lib/bio-ucsc/anogam1/chaindm3link.rb +11 -8
  13. data/lib/bio-ucsc/anogam1/est.rb +11 -8
  14. data/lib/bio-ucsc/anogam1/gap.rb +11 -8
  15. data/lib/bio-ucsc/anogam1/gold.rb +11 -8
  16. data/lib/bio-ucsc/anogam1/intronest.rb +11 -8
  17. data/lib/bio-ucsc/anogam1/mrna.rb +11 -8
  18. data/lib/bio-ucsc/anogam1/rmsk.rb +10 -7
  19. data/lib/bio-ucsc/apimel2.rb +5 -3
  20. data/lib/bio-ucsc/apimel2/chaindm2.rb +11 -8
  21. data/lib/bio-ucsc/apimel2/chaindm2link.rb +11 -8
  22. data/lib/bio-ucsc/aplcal1.rb +5 -3
  23. data/lib/bio-ucsc/aplcal1/chaincaepb1.rb +11 -8
  24. data/lib/bio-ucsc/aplcal1/chaincaepb1link.rb +11 -8
  25. data/lib/bio-ucsc/aplcal1/chaincaerem2.rb +11 -8
  26. data/lib/bio-ucsc/aplcal1/chaincaerem2link.rb +11 -8
  27. data/lib/bio-ucsc/aplcal1/chaincb3.rb +11 -8
  28. data/lib/bio-ucsc/aplcal1/chaincb3link.rb +11 -8
  29. data/lib/bio-ucsc/aplcal1/chaince6.rb +11 -8
  30. data/lib/bio-ucsc/aplcal1/chaince6link.rb +11 -8
  31. data/lib/bio-ucsc/aplcal1/gap.rb +11 -8
  32. data/lib/bio-ucsc/aplcal1/gold.rb +11 -8
  33. data/lib/bio-ucsc/aplcal1/rmsk.rb +10 -7
  34. data/lib/bio-ucsc/bostau4.rb +5 -3
  35. data/lib/bio-ucsc/braflo1.rb +5 -3
  36. data/lib/bio-ucsc/braflo1/chaingalgal3.rb +11 -8
  37. data/lib/bio-ucsc/braflo1/chaingalgal3link.rb +11 -8
  38. data/lib/bio-ucsc/braflo1/chainhg18.rb +11 -8
  39. data/lib/bio-ucsc/braflo1/chainhg18link.rb +11 -8
  40. data/lib/bio-ucsc/braflo1/chainmm9.rb +11 -8
  41. data/lib/bio-ucsc/braflo1/chainmm9link.rb +11 -8
  42. data/lib/bio-ucsc/braflo1/chainpetmar1.rb +11 -8
  43. data/lib/bio-ucsc/braflo1/chainpetmar1link.rb +11 -8
  44. data/lib/bio-ucsc/braflo1/gap.rb +11 -8
  45. data/lib/bio-ucsc/braflo1/gold.rb +11 -8
  46. data/lib/bio-ucsc/caejap1.rb +5 -3
  47. data/lib/bio-ucsc/caejap1/chaince6.rb +11 -8
  48. data/lib/bio-ucsc/caejap1/chaince6link.rb +11 -8
  49. data/lib/bio-ucsc/caejap1/gap.rb +11 -8
  50. data/lib/bio-ucsc/caejap1/gold.rb +11 -8
  51. data/lib/bio-ucsc/caepb2.rb +6 -4
  52. data/lib/bio-ucsc/caepb2/chaince6.rb +11 -8
  53. data/lib/bio-ucsc/caepb2/chaince6link.rb +11 -8
  54. data/lib/bio-ucsc/caepb2/gap.rb +11 -8
  55. data/lib/bio-ucsc/caepb2/gold.rb +11 -8
  56. data/lib/bio-ucsc/caerem3.rb +5 -3
  57. data/lib/bio-ucsc/caerem3/chaince6.rb +11 -8
  58. data/lib/bio-ucsc/caerem3/chaince6link.rb +11 -8
  59. data/lib/bio-ucsc/caerem3/gap.rb +11 -8
  60. data/lib/bio-ucsc/caerem3/gold.rb +11 -8
  61. data/lib/bio-ucsc/caljac3.rb +7 -4
  62. data/lib/bio-ucsc/canfam2.rb +5 -3
  63. data/lib/bio-ucsc/canfam2/chainbostau4.rb +11 -8
  64. data/lib/bio-ucsc/canfam2/chainbostau4link.rb +11 -8
  65. data/lib/bio-ucsc/canfam2/chainmm9.rb +11 -8
  66. data/lib/bio-ucsc/canfam2/chainmm9link.rb +11 -8
  67. data/lib/bio-ucsc/canfam2/chainrn4.rb +11 -8
  68. data/lib/bio-ucsc/canfam2/chainrn4link.rb +11 -8
  69. data/lib/bio-ucsc/canfam2/chainself.rb +11 -8
  70. data/lib/bio-ucsc/canfam2/chainselflink.rb +11 -8
  71. data/lib/bio-ucsc/canfam2/est.rb +11 -8
  72. data/lib/bio-ucsc/canfam2/gap.rb +11 -8
  73. data/lib/bio-ucsc/canfam2/gold.rb +11 -8
  74. data/lib/bio-ucsc/canfam2/intronest.rb +11 -8
  75. data/lib/bio-ucsc/canfam2/mrna.rb +11 -8
  76. data/lib/bio-ucsc/canfam2/rmsk.rb +10 -7
  77. data/lib/bio-ucsc/cavpor3.rb +6 -4
  78. data/lib/bio-ucsc/cb3.rb +5 -3
  79. data/lib/bio-ucsc/cb3/chaincaepb1.rb +11 -8
  80. data/lib/bio-ucsc/cb3/chaincaepb1link.rb +11 -8
  81. data/lib/bio-ucsc/cb3/chaincaerem2.rb +11 -8
  82. data/lib/bio-ucsc/cb3/chaincaerem2link.rb +11 -8
  83. data/lib/bio-ucsc/cb3/chaince6.rb +11 -8
  84. data/lib/bio-ucsc/cb3/chaince6link.rb +11 -8
  85. data/lib/bio-ucsc/cb3/chainpripac1.rb +11 -8
  86. data/lib/bio-ucsc/cb3/chainpripac1link.rb +11 -8
  87. data/lib/bio-ucsc/cb3/est.rb +11 -8
  88. data/lib/bio-ucsc/cb3/gap.rb +11 -8
  89. data/lib/bio-ucsc/cb3/gold.rb +11 -8
  90. data/lib/bio-ucsc/cb3/intronest.rb +11 -8
  91. data/lib/bio-ucsc/cb3/mrna.rb +11 -8
  92. data/lib/bio-ucsc/cb3/rmsk.rb +10 -7
  93. data/lib/bio-ucsc/ce6.rb +8 -4
  94. data/lib/bio-ucsc/ce6/chaincaejap1.rb +11 -8
  95. data/lib/bio-ucsc/ce6/chaincaejap1link.rb +11 -8
  96. data/lib/bio-ucsc/ce6/chaincaepb2.rb +11 -8
  97. data/lib/bio-ucsc/ce6/chaincaepb2link.rb +11 -8
  98. data/lib/bio-ucsc/ce6/chaincaerem3.rb +11 -8
  99. data/lib/bio-ucsc/ce6/chaincaerem3link.rb +11 -8
  100. data/lib/bio-ucsc/ce6/chaincb3.rb +11 -8
  101. data/lib/bio-ucsc/ce6/chaincb3link.rb +11 -8
  102. data/lib/bio-ucsc/ce6/chainpripac1.rb +11 -8
  103. data/lib/bio-ucsc/ce6/chainpripac1link.rb +11 -8
  104. data/lib/bio-ucsc/ce6/chainself.rb +11 -8
  105. data/lib/bio-ucsc/ce6/chainselflink.rb +11 -8
  106. data/lib/bio-ucsc/ce6/est.rb +11 -8
  107. data/lib/bio-ucsc/ce6/gap.rb +11 -8
  108. data/lib/bio-ucsc/ce6/gold.rb +11 -8
  109. data/lib/bio-ucsc/ce6/intronest.rb +11 -8
  110. data/lib/bio-ucsc/ce6/mrna.rb +11 -8
  111. data/lib/bio-ucsc/ce6/rmsk.rb +11 -8
  112. data/lib/bio-ucsc/ce6/t25mersrepeats.rb +7 -4
  113. data/lib/bio-ucsc/ci2.rb +6 -3
  114. data/lib/bio-ucsc/danrer7.rb +6 -3
  115. data/lib/bio-ucsc/{apimel2/db_connection.rb → db_connector.rb} +33 -23
  116. data/lib/bio-ucsc/dm3.rb +6 -4
  117. data/lib/bio-ucsc/dm3/chainanogam1.rb +11 -8
  118. data/lib/bio-ucsc/dm3/chainanogam1link.rb +11 -8
  119. data/lib/bio-ucsc/dm3/chainapimel3.rb +11 -8
  120. data/lib/bio-ucsc/dm3/chainapimel3link.rb +11 -8
  121. data/lib/bio-ucsc/dm3/chaindp3.rb +11 -8
  122. data/lib/bio-ucsc/dm3/chaindp3link.rb +11 -8
  123. data/lib/bio-ucsc/dm3/chaindroana2.rb +11 -8
  124. data/lib/bio-ucsc/dm3/chaindroana2link.rb +11 -8
  125. data/lib/bio-ucsc/dm3/chaindroere1.rb +11 -8
  126. data/lib/bio-ucsc/dm3/chaindroere1link.rb +11 -8
  127. data/lib/bio-ucsc/dm3/chaindroper1.rb +11 -8
  128. data/lib/bio-ucsc/dm3/chaindroper1link.rb +11 -8
  129. data/lib/bio-ucsc/dm3/chaindrosec1.rb +11 -8
  130. data/lib/bio-ucsc/dm3/chaindrosec1link.rb +11 -8
  131. data/lib/bio-ucsc/dm3/chaindrosim1.rb +11 -8
  132. data/lib/bio-ucsc/dm3/chaindrosim1link.rb +11 -8
  133. data/lib/bio-ucsc/dm3/chaindroyak2.rb +11 -8
  134. data/lib/bio-ucsc/dm3/chaindroyak2link.rb +11 -8
  135. data/lib/bio-ucsc/dm3/est.rb +11 -8
  136. data/lib/bio-ucsc/dm3/gap.rb +11 -8
  137. data/lib/bio-ucsc/dm3/gold.rb +11 -8
  138. data/lib/bio-ucsc/dm3/intronest.rb +11 -8
  139. data/lib/bio-ucsc/dm3/mrna.rb +11 -8
  140. data/lib/bio-ucsc/dm3/rmsk.rb +11 -8
  141. data/lib/bio-ucsc/dp3.rb +6 -4
  142. data/lib/bio-ucsc/dp3/chaindm3.rb +11 -8
  143. data/lib/bio-ucsc/dp3/chaindm3link.rb +11 -8
  144. data/lib/bio-ucsc/dp3/est.rb +11 -8
  145. data/lib/bio-ucsc/dp3/gap.rb +11 -8
  146. data/lib/bio-ucsc/dp3/gold.rb +11 -8
  147. data/lib/bio-ucsc/dp3/intronest.rb +11 -8
  148. data/lib/bio-ucsc/dp3/mrna.rb +11 -8
  149. data/lib/bio-ucsc/dp3/rmsk.rb +10 -7
  150. data/lib/bio-ucsc/droana2.rb +6 -4
  151. data/lib/bio-ucsc/droere1.rb +6 -4
  152. data/lib/bio-ucsc/drogri1.rb +6 -4
  153. data/lib/bio-ucsc/dromoj2.rb +7 -5
  154. data/lib/bio-ucsc/droper1.rb +7 -5
  155. data/lib/bio-ucsc/drosec1.rb +6 -4
  156. data/lib/bio-ucsc/drosim1.rb +6 -4
  157. data/lib/bio-ucsc/drosim1/chaindm3.rb +11 -8
  158. data/lib/bio-ucsc/drosim1/chaindm3link.rb +11 -8
  159. data/lib/bio-ucsc/drosim1/est.rb +11 -8
  160. data/lib/bio-ucsc/drosim1/gap.rb +11 -8
  161. data/lib/bio-ucsc/drosim1/gold.rb +11 -8
  162. data/lib/bio-ucsc/drosim1/intronest.rb +11 -8
  163. data/lib/bio-ucsc/drosim1/mrna.rb +11 -8
  164. data/lib/bio-ucsc/drosim1/rmsk.rb +10 -7
  165. data/lib/bio-ucsc/drovir2.rb +6 -4
  166. data/lib/bio-ucsc/droyak2.rb +6 -4
  167. data/lib/bio-ucsc/droyak2/chaindm3.rb +11 -8
  168. data/lib/bio-ucsc/droyak2/chaindm3link.rb +11 -8
  169. data/lib/bio-ucsc/droyak2/est.rb +11 -8
  170. data/lib/bio-ucsc/droyak2/gap.rb +11 -8
  171. data/lib/bio-ucsc/droyak2/gold.rb +11 -8
  172. data/lib/bio-ucsc/droyak2/intronest.rb +11 -8
  173. data/lib/bio-ucsc/droyak2/mrna.rb +11 -8
  174. data/lib/bio-ucsc/droyak2/rmsk.rb +10 -7
  175. data/lib/bio-ucsc/equcab2.rb +7 -4
  176. data/lib/bio-ucsc/equcab2/est.rb +11 -8
  177. data/lib/bio-ucsc/equcab2/gap.rb +11 -8
  178. data/lib/bio-ucsc/equcab2/gold.rb +11 -8
  179. data/lib/bio-ucsc/equcab2/intronest.rb +11 -8
  180. data/lib/bio-ucsc/equcab2/mrna.rb +11 -8
  181. data/lib/bio-ucsc/equcab2/rmsk.rb +10 -7
  182. data/lib/bio-ucsc/felcat4.rb +7 -4
  183. data/lib/bio-ucsc/file.rb +10 -0
  184. data/lib/bio-ucsc/file/bytequeue.rb +28 -0
  185. data/lib/bio-ucsc/file/twobit.rb +174 -0
  186. data/lib/bio-ucsc/fr2.rb +5 -3
  187. data/lib/bio-ucsc/fr2/chaingalgal3.rb +11 -8
  188. data/lib/bio-ucsc/fr2/chaingalgal3link.rb +11 -8
  189. data/lib/bio-ucsc/fr2/chaingasacu1.rb +11 -8
  190. data/lib/bio-ucsc/fr2/chaingasacu1link.rb +11 -8
  191. data/lib/bio-ucsc/fr2/chainmm9.rb +11 -8
  192. data/lib/bio-ucsc/fr2/chainmm9link.rb +11 -8
  193. data/lib/bio-ucsc/fr2/chainorylat2.rb +11 -8
  194. data/lib/bio-ucsc/fr2/chainorylat2link.rb +11 -8
  195. data/lib/bio-ucsc/fr2/est.rb +11 -8
  196. data/lib/bio-ucsc/fr2/gap.rb +11 -8
  197. data/lib/bio-ucsc/fr2/gold.rb +11 -8
  198. data/lib/bio-ucsc/fr2/intronest.rb +11 -8
  199. data/lib/bio-ucsc/fr2/mrna.rb +11 -8
  200. data/lib/bio-ucsc/fr2/rmsk.rb +10 -7
  201. data/lib/bio-ucsc/galgal3.rb +8 -5
  202. data/lib/bio-ucsc/galgal3/chainanocar1.rb +11 -8
  203. data/lib/bio-ucsc/galgal3/chainanocar1link.rb +11 -8
  204. data/lib/bio-ucsc/galgal3/chainbraflo1.rb +11 -8
  205. data/lib/bio-ucsc/galgal3/chainbraflo1link.rb +11 -8
  206. data/lib/bio-ucsc/galgal3/chaincavpor3.rb +11 -8
  207. data/lib/bio-ucsc/galgal3/chaincavpor3link.rb +11 -8
  208. data/lib/bio-ucsc/galgal3/chaindanrer4.rb +11 -8
  209. data/lib/bio-ucsc/galgal3/chaindanrer4link.rb +11 -8
  210. data/lib/bio-ucsc/galgal3/chainfr2.rb +11 -8
  211. data/lib/bio-ucsc/galgal3/chainfr2link.rb +11 -8
  212. data/lib/bio-ucsc/galgal3/chaingasacu1.rb +11 -8
  213. data/lib/bio-ucsc/galgal3/chaingasacu1link.rb +11 -8
  214. data/lib/bio-ucsc/galgal3/chainmm9.rb +11 -8
  215. data/lib/bio-ucsc/galgal3/chainmm9link.rb +11 -8
  216. data/lib/bio-ucsc/galgal3/chainornana1.rb +11 -8
  217. data/lib/bio-ucsc/galgal3/chainornana1link.rb +11 -8
  218. data/lib/bio-ucsc/galgal3/chainpetmar1.rb +11 -8
  219. data/lib/bio-ucsc/galgal3/chainpetmar1link.rb +11 -8
  220. data/lib/bio-ucsc/galgal3/chainrn4.rb +11 -8
  221. data/lib/bio-ucsc/galgal3/chainrn4link.rb +11 -8
  222. data/lib/bio-ucsc/galgal3/chaintaegut1.rb +11 -8
  223. data/lib/bio-ucsc/galgal3/chaintaegut1link.rb +11 -8
  224. data/lib/bio-ucsc/galgal3/chainxentro2.rb +11 -8
  225. data/lib/bio-ucsc/galgal3/chainxentro2link.rb +11 -8
  226. data/lib/bio-ucsc/galgal3/est.rb +11 -8
  227. data/lib/bio-ucsc/galgal3/gap.rb +11 -8
  228. data/lib/bio-ucsc/galgal3/gold.rb +11 -8
  229. data/lib/bio-ucsc/galgal3/intronest.rb +11 -8
  230. data/lib/bio-ucsc/galgal3/mrna.rb +11 -8
  231. data/lib/bio-ucsc/galgal3/rmsk.rb +10 -7
  232. data/lib/bio-ucsc/gasacu1.rb +6 -4
  233. data/lib/bio-ucsc/gasacu1/chainanocar1.rb +11 -8
  234. data/lib/bio-ucsc/gasacu1/chainanocar1link.rb +11 -8
  235. data/lib/bio-ucsc/gasacu1/chainfr2.rb +11 -8
  236. data/lib/bio-ucsc/gasacu1/chainfr2link.rb +11 -8
  237. data/lib/bio-ucsc/gasacu1/chaingalgal3.rb +11 -8
  238. data/lib/bio-ucsc/gasacu1/chaingalgal3link.rb +11 -8
  239. data/lib/bio-ucsc/gasacu1/chainmm9.rb +11 -8
  240. data/lib/bio-ucsc/gasacu1/chainmm9link.rb +11 -8
  241. data/lib/bio-ucsc/gasacu1/chainorylat2.rb +11 -8
  242. data/lib/bio-ucsc/gasacu1/chainorylat2link.rb +11 -8
  243. data/lib/bio-ucsc/gasacu1/est.rb +11 -8
  244. data/lib/bio-ucsc/gasacu1/intronest.rb +11 -8
  245. data/lib/bio-ucsc/gasacu1/mrna.rb +11 -8
  246. data/lib/bio-ucsc/gasacu1/rmsk.rb +10 -7
  247. data/lib/bio-ucsc/gi.rb +27 -0
  248. data/lib/bio-ucsc/go.rb +7 -4
  249. data/lib/bio-ucsc/hg18.rb +7 -4
  250. data/lib/bio-ucsc/hg18/chainanocar1.rb +11 -8
  251. data/lib/bio-ucsc/hg18/chainbostau4.rb +11 -8
  252. data/lib/bio-ucsc/hg18/chainbraflo1.rb +11 -8
  253. data/lib/bio-ucsc/hg18/chaincaljac1.rb +11 -8
  254. data/lib/bio-ucsc/hg18/chaincanfam2.rb +11 -8
  255. data/lib/bio-ucsc/hg18/chaincavpor3.rb +11 -8
  256. data/lib/bio-ucsc/hg18/chaindanrer5.rb +11 -8
  257. data/lib/bio-ucsc/hg18/chainequcab1.rb +11 -8
  258. data/lib/bio-ucsc/hg18/chainfelcat3.rb +11 -8
  259. data/lib/bio-ucsc/hg18/chainfr2.rb +12 -9
  260. data/lib/bio-ucsc/hg18/chaingalgal3.rb +11 -8
  261. data/lib/bio-ucsc/hg18/chaingasacu1.rb +11 -8
  262. data/lib/bio-ucsc/hg18/chainmm9.rb +11 -8
  263. data/lib/bio-ucsc/hg18/chainmondom4.rb +11 -8
  264. data/lib/bio-ucsc/hg18/chainornana1.rb +11 -8
  265. data/lib/bio-ucsc/hg18/chainorylat2.rb +11 -8
  266. data/lib/bio-ucsc/hg18/chainpantro2.rb +11 -8
  267. data/lib/bio-ucsc/hg18/chainpetmar1.rb +11 -8
  268. data/lib/bio-ucsc/hg18/chainponabe2.rb +11 -8
  269. data/lib/bio-ucsc/hg18/chainrhemac2.rb +11 -8
  270. data/lib/bio-ucsc/hg18/chainrn4.rb +11 -8
  271. data/lib/bio-ucsc/hg18/chainself.rb +11 -8
  272. data/lib/bio-ucsc/hg18/chainstrpur2.rb +11 -8
  273. data/lib/bio-ucsc/hg18/chaintaegut1.rb +11 -8
  274. data/lib/bio-ucsc/hg18/chaintetnig2.rb +11 -8
  275. data/lib/bio-ucsc/hg18/chainxentro2.rb +11 -8
  276. data/lib/bio-ucsc/hg18/gap.rb +11 -8
  277. data/lib/bio-ucsc/hg18/gold.rb +11 -8
  278. data/lib/bio-ucsc/hg18/intronest.rb +11 -8
  279. data/lib/bio-ucsc/hg18/rmsk.rb +10 -7
  280. data/lib/bio-ucsc/hg18/rmskrm327.rb +10 -7
  281. data/lib/bio-ucsc/hg19.rb +7 -6
  282. data/lib/bio-ucsc/hg19/description.rb +1 -1
  283. data/lib/bio-ucsc/hg19/gbcdnainfo.rb +2 -2
  284. data/lib/bio-ucsc/hgfixed.rb +7 -4
  285. data/lib/bio-ucsc/loxafr3.rb +7 -4
  286. data/lib/bio-ucsc/mm9.rb +7 -12
  287. data/lib/bio-ucsc/mm9/chainbraflo1.rb +11 -8
  288. data/lib/bio-ucsc/mm9/chainbraflo1link.rb +11 -8
  289. data/lib/bio-ucsc/mm9/chaincanfam2.rb +11 -8
  290. data/lib/bio-ucsc/mm9/chaincanfam2link.rb +11 -8
  291. data/lib/bio-ucsc/mm9/chaincavpor3.rb +11 -8
  292. data/lib/bio-ucsc/mm9/chaincavpor3link.rb +11 -8
  293. data/lib/bio-ucsc/mm9/chainfr2.rb +11 -8
  294. data/lib/bio-ucsc/mm9/chainfr2link.rb +11 -8
  295. data/lib/bio-ucsc/mm9/chaingalgal3.rb +11 -8
  296. data/lib/bio-ucsc/mm9/chaingalgal3link.rb +11 -8
  297. data/lib/bio-ucsc/mm9/chaingasacu1.rb +11 -8
  298. data/lib/bio-ucsc/mm9/chaingasacu1link.rb +11 -8
  299. data/lib/bio-ucsc/mm9/chainornana1.rb +11 -8
  300. data/lib/bio-ucsc/mm9/chainornana1link.rb +11 -8
  301. data/lib/bio-ucsc/mm9/chainorylat2.rb +11 -8
  302. data/lib/bio-ucsc/mm9/chainorylat2link.rb +11 -8
  303. data/lib/bio-ucsc/mm9/chainpetmar1.rb +11 -8
  304. data/lib/bio-ucsc/mm9/chainpetmar1link.rb +11 -8
  305. data/lib/bio-ucsc/mm9/chainponabe2.rb +11 -8
  306. data/lib/bio-ucsc/mm9/chainponabe2link.rb +11 -8
  307. data/lib/bio-ucsc/mm9/chainrhemac2.rb +11 -8
  308. data/lib/bio-ucsc/mm9/chainrhemac2link.rb +11 -8
  309. data/lib/bio-ucsc/mm9/chainrn4.rb +11 -8
  310. data/lib/bio-ucsc/mm9/chainrn4link.rb +11 -8
  311. data/lib/bio-ucsc/mm9/est.rb +11 -8
  312. data/lib/bio-ucsc/mm9/gap.rb +11 -8
  313. data/lib/bio-ucsc/mm9/gold.rb +11 -8
  314. data/lib/bio-ucsc/mm9/intronest.rb +11 -8
  315. data/lib/bio-ucsc/mm9/mrna.rb +11 -8
  316. data/lib/bio-ucsc/mm9/rmsk.rb +10 -7
  317. data/lib/bio-ucsc/mondom5.rb +7 -4
  318. data/lib/bio-ucsc/ornana1.rb +6 -3
  319. data/lib/bio-ucsc/orycun2.rb +5 -3
  320. data/lib/bio-ucsc/orylat2.rb +7 -5
  321. data/lib/bio-ucsc/oviari1.rb +6 -4
  322. data/lib/bio-ucsc/pantro3.rb +7 -5
  323. data/lib/bio-ucsc/petmar1.rb +6 -5
  324. data/lib/bio-ucsc/ponabe2.rb +6 -4
  325. data/lib/bio-ucsc/ponabe2/chainmm9.rb +11 -8
  326. data/lib/bio-ucsc/ponabe2/chainmm9link.rb +11 -8
  327. data/lib/bio-ucsc/ponabe2/chainornana1.rb +11 -8
  328. data/lib/bio-ucsc/ponabe2/chainornana1link.rb +11 -8
  329. data/lib/bio-ucsc/ponabe2/chainrhemac2.rb +11 -8
  330. data/lib/bio-ucsc/ponabe2/chainrhemac2link.rb +11 -8
  331. data/lib/bio-ucsc/ponabe2/est.rb +11 -8
  332. data/lib/bio-ucsc/ponabe2/gap.rb +11 -8
  333. data/lib/bio-ucsc/ponabe2/gold.rb +11 -8
  334. data/lib/bio-ucsc/ponabe2/intronest.rb +11 -8
  335. data/lib/bio-ucsc/ponabe2/mrna.rb +11 -8
  336. data/lib/bio-ucsc/ponabe2/rmsk.rb +10 -7
  337. data/lib/bio-ucsc/pripac1.rb +7 -5
  338. data/lib/bio-ucsc/pripac1/chaincaepb1.rb +11 -8
  339. data/lib/bio-ucsc/pripac1/chaincaepb1link.rb +11 -8
  340. data/lib/bio-ucsc/pripac1/chaincaerem2.rb +11 -8
  341. data/lib/bio-ucsc/pripac1/chaincaerem2link.rb +11 -8
  342. data/lib/bio-ucsc/pripac1/chaincb3.rb +11 -8
  343. data/lib/bio-ucsc/pripac1/chaincb3link.rb +11 -8
  344. data/lib/bio-ucsc/pripac1/chaince6.rb +11 -8
  345. data/lib/bio-ucsc/pripac1/chaince6link.rb +11 -8
  346. data/lib/bio-ucsc/pripac1/gap.rb +11 -8
  347. data/lib/bio-ucsc/pripac1/gold.rb +11 -8
  348. data/lib/bio-ucsc/pripac1/rmsk.rb +10 -7
  349. data/lib/bio-ucsc/proteome.rb +7 -4
  350. data/lib/bio-ucsc/reference.rb +5 -160
  351. data/lib/bio-ucsc/rhemac2.rb +5 -5
  352. data/lib/bio-ucsc/rhemac2/chainmm9.rb +11 -8
  353. data/lib/bio-ucsc/rhemac2/chainmm9link.rb +11 -8
  354. data/lib/bio-ucsc/rhemac2/chainponabe2.rb +11 -8
  355. data/lib/bio-ucsc/rhemac2/chainponabe2link.rb +11 -8
  356. data/lib/bio-ucsc/rhemac2/chainrn4.rb +11 -8
  357. data/lib/bio-ucsc/rhemac2/chainrn4link.rb +11 -8
  358. data/lib/bio-ucsc/rn4.rb +6 -8
  359. data/lib/bio-ucsc/rn4/chaincanfam2.rb +11 -8
  360. data/lib/bio-ucsc/rn4/chaincanfam2link.rb +11 -8
  361. data/lib/bio-ucsc/rn4/chaincavpor3.rb +11 -8
  362. data/lib/bio-ucsc/rn4/chaincavpor3link.rb +11 -8
  363. data/lib/bio-ucsc/rn4/chaindanrer4.rb +11 -8
  364. data/lib/bio-ucsc/rn4/chaindanrer4link.rb +11 -8
  365. data/lib/bio-ucsc/rn4/chainequcab1.rb +11 -8
  366. data/lib/bio-ucsc/rn4/chainequcab1link.rb +11 -8
  367. data/lib/bio-ucsc/rn4/chaingalgal3.rb +11 -8
  368. data/lib/bio-ucsc/rn4/chaingalgal3link.rb +11 -8
  369. data/lib/bio-ucsc/rn4/chainmm9.rb +11 -8
  370. data/lib/bio-ucsc/rn4/chainmm9link.rb +11 -8
  371. data/lib/bio-ucsc/rn4/chainmondom4.rb +11 -8
  372. data/lib/bio-ucsc/rn4/chainmondom4link.rb +11 -8
  373. data/lib/bio-ucsc/rn4/chainpantro2.rb +11 -8
  374. data/lib/bio-ucsc/rn4/chainpantro2link.rb +11 -8
  375. data/lib/bio-ucsc/rn4/chainrhemac2.rb +11 -8
  376. data/lib/bio-ucsc/rn4/chainrhemac2link.rb +11 -8
  377. data/lib/bio-ucsc/rn4/est.rb +11 -8
  378. data/lib/bio-ucsc/rn4/gap.rb +11 -8
  379. data/lib/bio-ucsc/rn4/gold.rb +11 -8
  380. data/lib/bio-ucsc/rn4/intronest.rb +11 -8
  381. data/lib/bio-ucsc/rn4/mrna.rb +11 -8
  382. data/lib/bio-ucsc/rn4/rmsk.rb +10 -7
  383. data/lib/bio-ucsc/saccer2.rb +6 -4
  384. data/lib/bio-ucsc/saccer2/est.rb +11 -8
  385. data/lib/bio-ucsc/saccer2/gap.rb +11 -8
  386. data/lib/bio-ucsc/saccer2/gold.rb +11 -8
  387. data/lib/bio-ucsc/saccer2/intronest.rb +11 -8
  388. data/lib/bio-ucsc/saccer2/mrna.rb +11 -8
  389. data/lib/bio-ucsc/saccer2/t2micron_est.rb +4 -4
  390. data/lib/bio-ucsc/saccer2/t2micron_gap.rb +4 -4
  391. data/lib/bio-ucsc/saccer2/t2micron_gold.rb +4 -4
  392. data/lib/bio-ucsc/saccer2/t2micron_intronEst.rb +4 -4
  393. data/lib/bio-ucsc/saccer2/t2micron_mrna.rb +4 -4
  394. data/lib/bio-ucsc/strpur2.rb +7 -15
  395. data/lib/bio-ucsc/susscr2.rb +6 -4
  396. data/lib/bio-ucsc/susscr2/est.rb +11 -8
  397. data/lib/bio-ucsc/susscr2/intronest.rb +11 -8
  398. data/lib/bio-ucsc/susscr2/mrna.rb +11 -8
  399. data/lib/bio-ucsc/table_class_detector.rb +250 -475
  400. data/lib/bio-ucsc/taegut1.rb +6 -4
  401. data/lib/bio-ucsc/taegut1/chaingalgal3.rb +14 -13
  402. data/lib/bio-ucsc/taegut1/chaingalgal3link.rb +13 -10
  403. data/lib/bio-ucsc/taegut1/est.rb +13 -10
  404. data/lib/bio-ucsc/taegut1/gap.rb +13 -10
  405. data/lib/bio-ucsc/taegut1/gold.rb +13 -10
  406. data/lib/bio-ucsc/taegut1/intronest.rb +13 -10
  407. data/lib/bio-ucsc/taegut1/mrna.rb +13 -10
  408. data/lib/bio-ucsc/taegut1/rmsk.rb +12 -9
  409. data/lib/bio-ucsc/tetnig2.rb +6 -4
  410. data/lib/bio-ucsc/tetnig2/mrna.rb +11 -8
  411. data/lib/bio-ucsc/uniprot.rb +7 -4
  412. data/lib/bio-ucsc/visigene.rb +6 -3
  413. data/lib/bio-ucsc/xentro2.rb +6 -12
  414. data/samples/num-gene-exon.rb +1 -2
  415. data/samples/snp2genes.rb +1 -7
  416. data/samples/symbol2summary.rb +7 -1
  417. data/spec/ailmel1_spec.rb +245 -245
  418. data/spec/aplcal1_spec.rb +0 -30
  419. data/spec/braflo1_spec.rb +1 -1
  420. data/spec/canfam2_spec.rb +6 -6
  421. data/spec/danrer7_spec.rb +6 -6
  422. data/spec/file/twobit.rb +167 -0
  423. data/spec/galgal3_spec.rb +12 -12
  424. data/spec/gasacu1_spec.rb +6 -6
  425. data/spec/hg18/find_by_spec.rb +14 -20
  426. data/spec/hg19/all_mrna_spec.rb +0 -8
  427. data/spec/hg19/altseqliftoverpsl_spec.rb +0 -8
  428. data/spec/hg19/altseqpatches_spec.rb +0 -8
  429. data/spec/hg19/{chainanocar1_spec.rb → chainanocar2_spec.rb} +2 -2
  430. data/spec/hg19/{chainbostau4_spec.rb → chainbostau6_spec.rb} +2 -2
  431. data/spec/hg19/{chainxentro2_spec.rb → chainxentro3_spec.rb} +2 -2
  432. data/spec/hg19/connect_spec.rb +20 -0
  433. data/spec/hg19/find_by_spec.rb +14 -14
  434. data/spec/hg19/gwascatalog_spec.rb +0 -7
  435. data/spec/hg19/hgikmcextra_spec.rb +2 -1
  436. data/spec/hg19/mrnaorinetinfo_spec.rb +0 -8
  437. data/spec/hg19/{netanocar1_spec.rb → netanocar2_spec.rb} +2 -2
  438. data/spec/hg19/{netbostau4_spec.rb → netbostau6_spec.rb} +2 -2
  439. data/spec/hg19/{netxentro2_spec.rb → netxentro3_spec.rb} +2 -2
  440. data/spec/hg19/sibtxgraph_spec.rb +0 -8
  441. data/spec/hg19/snp132_spec.rb +9 -0
  442. data/spec/hg19/xenorefflat_spec.rb +0 -8
  443. data/spec/hg19/xenorefgene_spec.rb +0 -8
  444. data/spec/hg19/xenorefseqali_spec.rb +0 -8
  445. data/spec/mm9_spec.rb +32 -32
  446. data/spec/ornana1_spec.rb +12 -12
  447. data/spec/{named_scope_spec.rb → relation_objects_spec.rb} +14 -0
  448. data/spec/rhemac2_spec.rb +16 -6
  449. data/spec/rn4_spec.rb +12 -12
  450. data/spec/spec_helper.rb +3 -1
  451. data/spec/susscr2_spec.rb +6 -6
  452. data/spec/taegut1_spec.rb +8 -8
  453. data/spec/xentro2_spec.rb +6 -6
  454. metadata +63 -138
  455. data/README.rdoc +0 -202
  456. data/lib/bio-ucsc/ailmel1/db_connection.rb +0 -57
  457. data/lib/bio-ucsc/anocar2/db_connection.rb +0 -57
  458. data/lib/bio-ucsc/anogam1/db_connection.rb +0 -57
  459. data/lib/bio-ucsc/aplcal1/db_connection.rb +0 -57
  460. data/lib/bio-ucsc/bostau4/db_connection.rb +0 -57
  461. data/lib/bio-ucsc/braflo1/db_connection.rb +0 -57
  462. data/lib/bio-ucsc/caejap1/db_connection.rb +0 -57
  463. data/lib/bio-ucsc/caepb2/db_connection.rb +0 -57
  464. data/lib/bio-ucsc/caerem3/db_connection.rb +0 -57
  465. data/lib/bio-ucsc/caljac3/db_connection.rb +0 -55
  466. data/lib/bio-ucsc/canfam2/db_connection.rb +0 -57
  467. data/lib/bio-ucsc/cavpor3/db_connection.rb +0 -57
  468. data/lib/bio-ucsc/cb3/db_connection.rb +0 -57
  469. data/lib/bio-ucsc/ce6/db_connection.rb +0 -55
  470. data/lib/bio-ucsc/ci2/db_connection.rb +0 -55
  471. data/lib/bio-ucsc/danrer7/db_connection.rb +0 -57
  472. data/lib/bio-ucsc/dm3/db_connection.rb +0 -55
  473. data/lib/bio-ucsc/dp3/db_connection.rb +0 -57
  474. data/lib/bio-ucsc/droana2/db_connection.rb +0 -57
  475. data/lib/bio-ucsc/droere1/db_connection.rb +0 -57
  476. data/lib/bio-ucsc/drogri1/db_connection.rb +0 -57
  477. data/lib/bio-ucsc/dromoj2/db_connection.rb +0 -57
  478. data/lib/bio-ucsc/droper1/db_connection.rb +0 -57
  479. data/lib/bio-ucsc/drosec1/db_connection.rb +0 -57
  480. data/lib/bio-ucsc/drosim1/db_connection.rb +0 -57
  481. data/lib/bio-ucsc/drovir2/db_connection.rb +0 -57
  482. data/lib/bio-ucsc/droyak2/db_connection.rb +0 -57
  483. data/lib/bio-ucsc/equcab2/db_connection.rb +0 -57
  484. data/lib/bio-ucsc/felcat4/db_connection.rb +0 -57
  485. data/lib/bio-ucsc/fr2/db_connection.rb +0 -57
  486. data/lib/bio-ucsc/galgal3/db_connection.rb +0 -57
  487. data/lib/bio-ucsc/gasacu1/db_connection.rb +0 -57
  488. data/lib/bio-ucsc/go/db_connection.rb +0 -55
  489. data/lib/bio-ucsc/hg18/db_connection.rb +0 -59
  490. data/lib/bio-ucsc/hg19/db_connection.rb +0 -61
  491. data/lib/bio-ucsc/hgfixed/db_connection.rb +0 -55
  492. data/lib/bio-ucsc/loxafr3/db_connection.rb +0 -57
  493. data/lib/bio-ucsc/mm9/chainanocar1.rb +0 -79
  494. data/lib/bio-ucsc/mm9/chainanocar1link.rb +0 -79
  495. data/lib/bio-ucsc/mm9/chainbostau4.rb +0 -79
  496. data/lib/bio-ucsc/mm9/chainbostau4link.rb +0 -79
  497. data/lib/bio-ucsc/mm9/chainpantro2.rb +0 -81
  498. data/lib/bio-ucsc/mm9/chainpantro2link.rb +0 -82
  499. data/lib/bio-ucsc/mm9/chainxentro2.rb +0 -81
  500. data/lib/bio-ucsc/mm9/chainxentro2link.rb +0 -81
  501. data/lib/bio-ucsc/mm9/db_connection.rb +0 -55
  502. data/lib/bio-ucsc/mondom5/db_connection.rb +0 -57
  503. data/lib/bio-ucsc/ornana1/db_connection.rb +0 -57
  504. data/lib/bio-ucsc/orycun2/db_connection.rb +0 -57
  505. data/lib/bio-ucsc/orylat2/db_connection.rb +0 -55
  506. data/lib/bio-ucsc/oviari1/db_connection.rb +0 -57
  507. data/lib/bio-ucsc/pantro3/db_connection.rb +0 -55
  508. data/lib/bio-ucsc/petmar1/db_connection.rb +0 -57
  509. data/lib/bio-ucsc/ponabe2/db_connection.rb +0 -55
  510. data/lib/bio-ucsc/pripac1/db_connection.rb +0 -57
  511. data/lib/bio-ucsc/proteome/db_connection.rb +0 -59
  512. data/lib/bio-ucsc/rhemac2/chainpantro2.rb +0 -81
  513. data/lib/bio-ucsc/rhemac2/chainpantro2link.rb +0 -81
  514. data/lib/bio-ucsc/rhemac2/db_connection.rb +0 -55
  515. data/lib/bio-ucsc/rn4/chainbostau3.rb +0 -79
  516. data/lib/bio-ucsc/rn4/chainbostau3link.rb +0 -79
  517. data/lib/bio-ucsc/rn4/chainxentro2.rb +0 -81
  518. data/lib/bio-ucsc/rn4/chainxentro2link.rb +0 -81
  519. data/lib/bio-ucsc/rn4/db_connection.rb +0 -55
  520. data/lib/bio-ucsc/saccer2/db_connection.rb +0 -55
  521. data/lib/bio-ucsc/strpur2/chaingalgal3.rb +0 -81
  522. data/lib/bio-ucsc/strpur2/chaingalgal3link.rb +0 -81
  523. data/lib/bio-ucsc/strpur2/chainhg18.rb +0 -81
  524. data/lib/bio-ucsc/strpur2/chainhg18link.rb +0 -81
  525. data/lib/bio-ucsc/strpur2/chainmm9.rb +0 -81
  526. data/lib/bio-ucsc/strpur2/chainmm9link.rb +0 -81
  527. data/lib/bio-ucsc/strpur2/chainpetmar1.rb +0 -81
  528. data/lib/bio-ucsc/strpur2/chainpetmar1link.rb +0 -81
  529. data/lib/bio-ucsc/strpur2/db_connection.rb +0 -57
  530. data/lib/bio-ucsc/strpur2/gap.rb +0 -81
  531. data/lib/bio-ucsc/strpur2/gold.rb +0 -81
  532. data/lib/bio-ucsc/susscr2/db_connection.rb +0 -57
  533. data/lib/bio-ucsc/taegut1/db_connection.rb +0 -57
  534. data/lib/bio-ucsc/tetnig2/db_connection.rb +0 -57
  535. data/lib/bio-ucsc/uniprot/db_connection.rb +0 -59
  536. data/lib/bio-ucsc/visigene/db_connection.rb +0 -55
  537. data/lib/bio-ucsc/xentro2/chaingalgal3.rb +0 -81
  538. data/lib/bio-ucsc/xentro2/chaingalgal3link.rb +0 -81
  539. data/lib/bio-ucsc/xentro2/db_connection.rb +0 -57
  540. data/lib/bio-ucsc/xentro2/est.rb +0 -81
  541. data/lib/bio-ucsc/xentro2/gap.rb +0 -81
  542. data/lib/bio-ucsc/xentro2/gold.rb +0 -81
  543. data/lib/bio-ucsc/xentro2/intronest.rb +0 -81
  544. data/lib/bio-ucsc/xentro2/mrna.rb +0 -81
  545. data/lib/bio-ucsc/xentro2/rmsk.rb +0 -78
  546. data/spec/hg19/chainaplcal1_spec.rb +0 -16
  547. data/spec/hg19/netaplcal1_spec.rb +0 -16
@@ -12,25 +12,28 @@ module Bio
12
12
  module SusScr2
13
13
 
14
14
  class Mrna
15
+ include DBConnector
16
+ DBConnection.database "susScr2"
17
+
15
18
  KLASS = "Mrna"
16
19
  KLASS_S = "mrna"
17
20
 
18
21
  Bio::Ucsc::SusScr2::CHROMS.each do |chr|
19
22
  class_eval %!
20
23
  class #{chr[0..0].upcase + chr[1..-1]}_#{KLASS} < DBConnection
21
- set_table_name "#{chr[0..0].downcase + chr[1..-1]}_#{KLASS_S}"
22
- set_primary_key nil
23
- set_inheritance_column nil
24
+ self.table_name = "#{chr[0..0].downcase + chr[1..-1]}_#{KLASS_S}"
25
+ self.primary_key = nil
26
+ self.inheritance_column = nil
24
27
 
25
- def self.find_by_interval(interval, opt = {:partial => true})
28
+ def self.find_by_interval(interval, opt = {:partial => true}); interval = Bio::Ucsc::Gi.wrap(interval)
26
29
  find_first_or_all_by_interval(interval, :first, opt)
27
30
  end
28
31
 
29
- def self.find_all_by_interval(interval, opt = {:partial => true})
32
+ def self.find_all_by_interval(interval, opt = {:partial => true}); interval = Bio::Ucsc::Gi.wrap(interval)
30
33
  find_first_or_all_by_interval(interval, :all, opt)
31
34
  end
32
35
 
33
- def self.find_first_or_all_by_interval(interval, first_all, opt)
36
+ def self.find_first_or_all_by_interval(interval, first_all, opt); interval = Bio::Ucsc::Gi.wrap(interval)
34
37
  zstart = interval.zero_start
35
38
  zend = interval.zero_end
36
39
  if opt[:partial] == true
@@ -63,13 +66,13 @@ AND (tEnd BETWEEN :zstart AND :zend))
63
66
  !
64
67
  end # each chromosome
65
68
 
66
- def self.find_by_interval(interval, opt = {:partial => true})
69
+ def self.find_by_interval(interval, opt = {:partial => true}); interval = Bio::Ucsc::Gi.wrap(interval)
67
70
  chrom = interval.chrom[0..0].upcase + interval.chrom[1..-1]
68
71
  chr_klass = self.const_get("#{chrom}_#{KLASS}")
69
72
  chr_klass.__send__(:find_by_interval, interval, opt)
70
73
  end
71
74
 
72
- def self.find_all_by_interval(interval, opt = {:partial => true})
75
+ def self.find_all_by_interval(interval, opt = {:partial => true}); interval = Bio::Ucsc::Gi.wrap(interval)
73
76
  chrom = interval.chrom[0..0].upcase + interval.chrom[1..-1]
74
77
  chr_klass = self.const_get("#{chrom}_#{KLASS}")
75
78
  chr_klass.__send__(:find_all_by_interval, interval, opt)
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # = table_class_detector.rb
3
3
  #
4
- # Copyright:: Copyright (C) 2011
4
+ # Copyright:: Copyright (C) 2011, 2012
5
5
  # MISHIMA, Hiroyuki
6
6
  # <missy at be.to / hmishima at nagasaki-u.ac.jp>
7
7
  # License:: The Ruby licence (Ryby's / GPLv2 dual)
@@ -24,13 +24,21 @@ module Bio
24
24
  ['HInv', 'NIAGene']
25
25
  COMMON_CLASS_METHODS = %!
26
26
  def self.find_by_interval(interval, opt = {:partial => true})
27
+ interval = Bio::Ucsc::Gi.wrap(interval)
27
28
  find_first_or_all_by_interval(interval, :first, opt)
28
29
  end
29
30
 
30
31
  def self.find_all_by_interval(interval, opt = {:partial => true})
32
+ interval = Bio::Ucsc::Gi.wrap(interval)
31
33
  find_first_or_all_by_interval(interval, :all, opt)
32
34
  end
33
35
  !
36
+ PARAMETERS = %!
37
+ { :chrom => interval.chrom,
38
+ :bins => interval.bin_all,
39
+ :zstart => interval.zero_start,
40
+ :zend => interval.zero_end, }
41
+ !
34
42
 
35
43
  def const_missing(sym)
36
44
  module_eval generic(sym)
@@ -39,35 +47,26 @@ module Bio
39
47
  case
40
48
  when (["bin", "tName", "tStart", "tEnd"] - col_names).empty?
41
49
  module_eval psl(sym, :bin => true)
42
- const_get(sym)
43
50
  when (["bin", "tName", "tStart", "tEnd"] - col_names) == ["bin"]
44
51
  module_eval psl(sym, :bin => false)
45
- const_get(sym)
46
52
 
47
53
  when (["bin", "chrom", "chromStart", "chromEnd"] - col_names).empty?
48
54
  module_eval bed(sym, :bin => true)
49
- const_get(sym)
50
55
  when (["bin", "chrom", "chromStart", "chromEnd"] - col_names) == ["bin"]
51
56
  module_eval bed(sym, :bin => false)
52
- const_get(sym)
53
57
 
54
58
  when (["bin", "chrom", "txStart", "txEnd"] - col_names).empty?
55
59
  module_eval genepred(sym, :bin => true)
56
- const_get(sym)
57
60
  when (["bin", "chrom", "txStart", "txEnd"] - col_names) == ["bin"]
58
61
  module_eval genepred(sym, :bin => false)
59
- const_get(sym)
60
62
 
61
63
  when (["bin", "genoName", "genoStart", "genoEnd"] - col_names).empty?
62
64
  module_eval rmsk(sym, :bin => true)
63
- const_get(sym)
64
65
  when (["bin", "genoName", "genoStart", "genoEnd"] - col_names) == ["bin"]
65
66
  module_eval rmsk(sym, :bin => false)
66
- const_get(sym)
67
-
68
- else
69
- const_get(sym)
70
67
  end
68
+
69
+ const_get(sym)
71
70
  end
72
71
 
73
72
  # generic: tables without interval serarch supported
@@ -75,7 +74,7 @@ module Bio
75
74
  def generic(sym)
76
75
  %!
77
76
  class #{uphead(sym)} < DBConnection
78
- set_table_name "#{downhead(sym)}"
77
+ self.table_name = "#{downhead(sym)}"
79
78
  #{delete_reserved_methods}
80
79
  end
81
80
  !
@@ -84,511 +83,287 @@ module Bio
84
83
  # PSL: Pattern Space Layout
85
84
  # interval search using tName/tStart/tEnd
86
85
  def psl(sym, opts={:bin => true})
87
- case opts[:bin]
88
- when true
89
- %!
90
- class #{uphead(sym)} < DBConnection
91
- set_table_name "#{downhead(sym)}"
92
- #{delete_reserved_methods}
93
- #{COMMON_CLASS_METHODS}
94
-
95
- where = <<-SQL
96
- tName = :chrom
97
- AND bin in (:bins)
98
- AND ((tStart BETWEEN :zstart AND :zend)
99
- OR (tEnd BETWEEN :zstart AND :zend)
100
- OR (tStart <= :zstart AND tEnd >= :zend))
101
- SQL
102
- scope(:with_interval,
103
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
104
- :bins => gi.bin_all,
105
- :zstart => gi.zero_start,
106
- :zend => gi.zero_end,}]}})
107
- where = <<-SQL
108
- tName = :chrom
109
- AND bin in (:bins)
110
- AND ((tStart BETWEEN :zstart AND :zend)
111
- AND (tEnd BETWEEN :zstart AND :zend))
112
- SQL
113
- scope(:with_interval_excl,
114
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
115
- :bins => gi.bin_all,
116
- :zstart => gi.zero_start,
117
- :zend => gi.zero_end,}]}})
118
-
119
- def self.find_first_or_all_by_interval(interval, first_all, opt)
120
- zstart = interval.zero_start
121
- zend = interval.zero_end
122
-
123
- if opt[:partial] == true
124
- where = <<-SQL
125
- tName = :chrom
126
- AND bin in (:bins)
127
- AND ((tStart BETWEEN :zstart AND :zend)
128
- OR (tEnd BETWEEN :zstart AND :zend)
129
- OR (tStart <= :zstart AND tEnd >= :zend))
130
- SQL
131
- else
132
- where = <<-SQL
133
- tName = :chrom
134
- AND bin in (:bins)
135
- AND ((tStart BETWEEN :zstart AND :zend)
136
- AND (tEnd BETWEEN :zstart AND :zend))
137
- SQL
138
- end
139
- cond = {
86
+ if opts[:bin]
87
+ chrom_bin = "tName = :chrom AND bin in (:bins) "
88
+ else
89
+ chrom_bin = "tName = :chrom "
90
+ end
91
+
92
+ %!
93
+ class #{uphead(sym)} < DBConnection
94
+ self.table_name = "#{downhead(sym)}"
95
+ #{delete_reserved_methods}
96
+ #{COMMON_CLASS_METHODS}
97
+
98
+ def self.with_interval(interval)
99
+ interval = Bio::Ucsc::Gi.wrap(interval)
100
+ where(
101
+ "#{chrom_bin}" +
102
+ "AND ( " +
103
+ "(tStart BETWEEN :zstart AND :zend) " +
104
+ "OR (tEnd BETWEEN :zstart AND :zend) " +
105
+ "OR (tStart <= :zstart AND tEnd >= :zend) )",
106
+ #{PARAMETERS})
107
+ end
108
+
109
+ def self.with_interval_excl(interval)
110
+ interval = Bio::Ucsc::Gi.wrap(interval)
111
+ where(
112
+ "#{chrom_bin}" +
113
+ "AND ( " +
114
+ "(tStart BETWEEN :zstart AND :zend)" +
115
+ "AND (tEnd BETWEEN :zstart AND :zend) )",
116
+ #{PARAMETERS})
117
+ end
118
+
119
+ def self.find_first_or_all_by_interval(interval, first_all, opt)
120
+ interval = Bio::Ucsc::Gi.wrap(interval)
121
+ zstart = interval.zero_start
122
+ zend = interval.zero_end
123
+
124
+ if opt[:partial] == true
125
+ where =
126
+ "#{chrom_bin}" +
127
+ "AND ( " +
128
+ "(tStart BETWEEN :zstart AND :zend) " +
129
+ "OR (tEnd BETWEEN :zstart AND :zend) " +
130
+ "OR (tStart <= :zstart AND tEnd >= :zend) )"
131
+ else
132
+ where =
133
+ "#{chrom_bin}" +
134
+ "AND ( " +
135
+ "(tStart BETWEEN :zstart AND :zend) " +
136
+ "AND (tEnd BETWEEN :zstart AND :zend) )"
137
+ end
138
+ cond = {
140
139
  :chrom => interval.chrom,
141
140
  :bins => Ucsc::UcscBin.bin_all(zstart, zend),
142
141
  :zstart => zstart,
143
- :zend => zend,
144
- }
145
- self.find(first_all,
146
- { :select => "*",
147
- :conditions => [where, cond], })
148
- end
142
+ :zend => zend,}
143
+ self.find(first_all,
144
+ { :select => "*",
145
+ :conditions => [where, cond], })
149
146
  end
150
- !
151
- when false
152
- %!
153
- class #{uphead(sym)} < DBConnection
154
- set_table_name "#{downhead(sym)}"
155
- #{delete_reserved_methods}
156
- #{COMMON_CLASS_METHODS}
157
-
158
- where = <<-SQL
159
- tName = :chrom
160
- AND ((tStart BETWEEN :zstart AND :zend)
161
- OR (tEnd BETWEEN :zstart AND :zend)
162
- OR (tStart <= :zstart AND tEnd >= :zend))
163
- SQL
164
- scope(:with_interval,
165
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
166
- :zstart => gi.zero_start,
167
- :zend => gi.zero_end,}]}})
168
- where = <<-SQL
169
- tName = :chrom
170
- AND ((tStart BETWEEN :zstart AND :zend)
171
- AND (tEnd BETWEEN :zstart AND :zend))
172
- SQL
173
- scope(:with_interval_excl,
174
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
175
- :zstart => gi.zero_start,
176
- :zend => gi.zero_end,}]}})
177
-
178
- def self.find_first_or_all_by_interval(interval, first_all, opt)
179
- zstart = interval.zero_start
180
- zend = interval.zero_end
181
- if opt[:partial] == true
182
- where = <<-SQL
183
- tName = :chrom
184
- AND ((tStart BETWEEN :zstart AND :zend)
185
- OR (tEnd BETWEEN :zstart AND :zend)
186
- OR (tStart <= :zstart AND tEnd >= :zend))
187
- SQL
188
- else
189
- where = <<-SQL
190
- tName = :chrom
191
- AND ((tStart BETWEEN :zstart AND :zend)
192
- AND (tEnd BETWEEN :zstart AND :zend))
193
- SQL
194
- end
195
- cond = {
196
- :chrom => interval.chrom,
197
- :zstart => zstart,
198
- :zend => zend,
199
- }
200
- self.find(first_all,
201
- { :select => "*",
202
- :conditions => [where, cond], })
203
- end
204
- end
205
- !
206
- end # case opts[:bin]
147
+ end
148
+ !
207
149
  end # def psl
208
150
 
209
151
  # BED: Browser Extensible Description format
210
152
  # interval search using chrom/chromStart/chromEnd
211
153
  def bed(sym, opts={:bin => true})
212
- case opts[:bin]
213
- when true
214
- %!
215
- class #{uphead(sym)} < DBConnection
216
- set_table_name "#{downhead(sym)}"
217
- #{delete_reserved_methods}
218
- #{COMMON_CLASS_METHODS}
154
+ if opts[:bin]
155
+ chrom_bin = "chrom = :chrom AND bin in (:bins) "
156
+ else
157
+ chrom_bin = "chrom = :chrom "
158
+ end
159
+
160
+ %!
161
+ class #{uphead(sym)} < DBConnection
162
+ self.table_name = "#{downhead(sym)}"
163
+ #{delete_reserved_methods}
164
+ #{COMMON_CLASS_METHODS}
219
165
 
220
- where = <<-SQL
221
- chrom = :chrom
222
- AND bin in (:bins)
223
- AND ((chromStart BETWEEN :zstart AND :zend)
224
- OR (chromEnd BETWEEN :zstart AND :zend)
225
- OR (chromStart <= :zstart AND chromEnd >= :zend))
226
- SQL
227
- scope(:with_interval,
228
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
229
- :bins => gi.bin_all,
230
- :zstart => gi.zero_start,
231
- :zend => gi.zero_end,}]}})
232
- where = <<-SQL
233
- chrom = :chrom
234
- AND bin in (:bins)
235
- AND ((chromStart BETWEEN :zstart AND :zend)
236
- AND (chromEnd BETWEEN :zstart AND :zend))
237
- SQL
238
- scope(:with_interval_excl,
239
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
240
- :bins => gi.bin_all,
241
- :zstart => gi.zero_start,
242
- :zend => gi.zero_end,}]}})
243
-
244
- def self.find_first_or_all_by_interval(interval, first_all, opt)
245
- zstart = interval.zero_start
246
- zend = interval.zero_end
247
-
248
- if opt[:partial] == true
249
- where = <<-SQL
250
- chrom = :chrom
251
- AND bin in (:bins)
252
- AND ((chromStart BETWEEN :zstart AND :zend)
253
- OR (chromEnd BETWEEN :zstart AND :zend)
254
- OR (chromStart <= :zstart AND chromEnd >= :zend))
255
- SQL
256
- else
257
- where = <<-SQL
258
- chrom = :chrom
259
- AND bin in (:bins)
260
- AND ((chromStart BETWEEN :zstart AND :zend)
261
- AND (chromEnd BETWEEN :zstart AND :zend))
262
- SQL
263
- end
264
- cond = {
166
+ def self.with_interval(interval)
167
+ interval = Bio::Ucsc::Gi.wrap(interval)
168
+ where(
169
+ "#{chrom_bin}" +
170
+ "AND ( " +
171
+ "(chromStart BETWEEN :zstart AND :zend)" +
172
+ "OR (chromEnd BETWEEN :zstart AND :zend)" +
173
+ "OR (chromStart <= :zstart AND chromEnd >= :zend) )",
174
+ #{PARAMETERS})
175
+ end
176
+
177
+ def self.with_interval_excl(interval)
178
+ interval = Bio::Ucsc::Gi.wrap(interval)
179
+ where(
180
+ "#{chrom_bin}" +
181
+ "AND ( " +
182
+ "(chromStart BETWEEN :zstart AND :zend) " +
183
+ "AND (chromEnd BETWEEN :zstart AND :zend) )",
184
+ #{PARAMETERS})
185
+ end
186
+
187
+ def self.find_first_or_all_by_interval(interval, first_all, opt); interval = Bio::Ucsc::Gi.wrap(interval)
188
+ interval = Bio::Ucsc::Gi.wrap(interval)
189
+ zstart = interval.zero_start
190
+ zend = interval.zero_end
191
+
192
+ if opt[:partial] == true
193
+ where =
194
+ "#{chrom_bin}" +
195
+ "AND ( " +
196
+ "(chromStart BETWEEN :zstart AND :zend) " +
197
+ "OR (chromEnd BETWEEN :zstart AND :zend) " +
198
+ "OR (chromStart <= :zstart AND chromEnd >= :zend) )"
199
+ else
200
+ where =
201
+ "#{chrom_bin}" +
202
+ "AND ( " +
203
+ "(chromStart BETWEEN :zstart AND :zend)" +
204
+ "AND (chromEnd BETWEEN :zstart AND :zend))"
205
+ end
206
+ cond = {
265
207
  :chrom => interval.chrom,
266
208
  :bins => Ucsc::UcscBin.bin_all(zstart, zend),
267
209
  :zstart => zstart,
268
- :zend => zend,
269
- }
270
- self.find(first_all,
271
- { :select => "*",
272
- :conditions => [where, cond], })
273
- end
274
- end
275
- !
276
- when false
277
- %!
278
- class #{uphead(sym)} < DBConnection
279
- set_table_name "#{downhead(sym)}"
280
- #{delete_reserved_methods}
281
- #{COMMON_CLASS_METHODS}
282
-
283
- where = <<-SQL
284
- chrom = :chrom
285
- AND ((chromStart BETWEEN :zstart AND :zend)
286
- OR (chromEnd BETWEEN :zstart AND :zend)
287
- OR (chromStart <= :zstart AND chromEnd >= :zend))
288
- SQL
289
- scope(:with_interval,
290
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
291
- :zstart => gi.zero_start,
292
- :zend => gi.zero_end,}]}})
293
- where = <<-SQL
294
- chrom = :chrom
295
- AND ((chromStart BETWEEN :zstart AND :zend)
296
- AND (chromEnd BETWEEN :zstart AND :zend))
297
- SQL
298
- scope(:with_interval_excl,
299
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
300
- :zstart => gi.zero_start,
301
- :zend => gi.zero_end,}]}})
302
-
303
- def self.find_first_or_all_by_interval(interval, first_all, opt)
304
- zstart = interval.zero_start
305
- zend = interval.zero_end
306
- if opt[:partial] == true
307
- where = <<-SQL
308
- chrom = :chrom
309
- AND ((chromStart BETWEEN :zstart AND :zend)
310
- OR (chromEnd BETWEEN :zstart AND :zend)
311
- OR (chromStart <= :zstart AND chromEnd >= :zend))
312
- SQL
313
- else
314
- where = <<-SQL
315
- chrom = :chrom
316
- AND ((chromStart BETWEEN :zstart AND :zend)
317
- AND (chromEnd BETWEEN :zstart AND :zend))
318
- SQL
319
- end
320
- cond = {
321
- :chrom => interval.chrom,
322
- :zstart => zstart,
323
- :zend => zend,
324
- }
325
- self.find(first_all,
326
- { :select => "*",
327
- :conditions => [where, cond], })
328
- end
210
+ :zend => zend, }
211
+ self.find(first_all,
212
+ { :select => "*",
213
+ :conditions => [where, cond], })
329
214
  end
330
- !
331
- end # case opts[:bin]
215
+ end
216
+ !
332
217
  end # def bed
333
218
 
334
219
  # genePred: Gene and gene-prediction features
335
220
  # interval search using chrom/txStart/txEnd
336
221
  def genepred(sym, opts={:bin => true})
337
- case opts[:bin]
338
- when true
339
- %!
340
- class #{uphead(sym)} < DBConnection
341
- set_table_name "#{downhead(sym)}"
342
- #{delete_reserved_methods}
343
- #{COMMON_CLASS_METHODS}
344
-
345
- where = <<-SQL
346
- chrom = :chrom
347
- AND bin in (:bins)
348
- AND ((txStart BETWEEN :zstart AND :zend)
349
- OR (txEnd BETWEEN :zstart AND :zend)
350
- OR (txStart <= :zstart AND txEnd >= :zend))
351
- SQL
352
- scope(:with_interval,
353
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
354
- :bins => gi.bin_all,
355
- :zstart => gi.zero_start,
356
- :zend => gi.zero_end,}]}})
357
-
358
- where = <<-SQL
359
- chrom = :chrom
360
- AND bin in (:bins)
361
- AND ((txStart BETWEEN :zstart AND :zend)
362
- AND (txEnd BETWEEN :zstart AND :zend))
363
- SQL
364
- scope(:with_interval_excl,
365
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
366
- :bins => gi.bin_all,
367
- :zstart => gi.zero_start,
368
- :zend => gi.zero_end,}]}})
369
-
370
- def self.find_first_or_all_by_interval(interval, first_all, opt)
371
- zstart = interval.zero_start
372
- zend = interval.zero_end
373
- if opt[:partial] == true
374
- where = <<-SQL
375
- chrom = :chrom
376
- AND bin in (:bins)
377
- AND ((txStart BETWEEN :zstart AND :zend)
378
- OR (txEnd BETWEEN :zstart AND :zend)
379
- OR (txStart <= :zstart AND txEnd >= :zend))
380
- SQL
381
- else
382
- where = <<-SQL
383
- chrom = :chrom
384
- AND bin in (:bins)
385
- AND ((txStart BETWEEN :zstart AND :zend)
386
- AND (txEnd BETWEEN :zstart AND :zend))
387
- SQL
388
- end
389
- cond = {
222
+ if opts[:bin]
223
+ chrom_bin = "chrom = :chrom AND bin in (:bins) "
224
+ else
225
+ chrom_bin = "chrom = :chrom "
226
+ end
227
+
228
+ %!
229
+ class #{uphead(sym)} < DBConnection
230
+ self.table_name = "#{downhead(sym)}"
231
+ #{delete_reserved_methods}
232
+ #{COMMON_CLASS_METHODS}
233
+
234
+ def self.with_interval(interval)
235
+ interval = Bio::Ucsc::Gi.wrap(interval)
236
+ where(
237
+ "#{chrom_bin}" +
238
+ "AND ( " +
239
+ "(txStart BETWEEN :zstart AND :zend) " +
240
+ "OR (txEnd BETWEEN :zstart AND :zend) " +
241
+ "OR (txStart <= :zstart AND txEnd >= :zend) )",
242
+ #{PARAMETERS})
243
+ end
244
+
245
+ def self.with_interval_excl(interval)
246
+ interval = Bio::Ucsc::Gi.wrap(interval)
247
+ where(
248
+ "#{chrom_bin}" +
249
+ "AND ( " +
250
+ "(txStart BETWEEN :zstart AND :zend) " +
251
+ "AND (txEnd BETWEEN :zstart AND :zend) )",
252
+ #{PARAMETERS})
253
+ end
254
+
255
+ def self.find_first_or_all_by_interval(interval, first_all, opt); interval = Bio::Ucsc::Gi.wrap(interval)
256
+ interval = Bio::Ucsc::Gi.wrap(interval)
257
+ zstart = interval.zero_start
258
+ zend = interval.zero_end
259
+ if opt[:partial] == true
260
+ where =
261
+ "#{chrom_bin}" +
262
+ "AND ( " +
263
+ "(txStart BETWEEN :zstart AND :zend)" +
264
+ "OR (txEnd BETWEEN :zstart AND :zend)" +
265
+ "OR (txStart <= :zstart AND txEnd >= :zend))"
266
+ else
267
+ where =
268
+ "#{chrom_bin}" +
269
+ "AND ( " +
270
+ "(txStart BETWEEN :zstart AND :zend)" +
271
+ "AND (txEnd BETWEEN :zstart AND :zend) )"
272
+ end
273
+ cond = {
390
274
  :chrom => interval.chrom,
391
275
  :bins => Bio::Ucsc::UcscBin.bin_all(zstart, zend),
392
276
  :zstart => zstart,
393
277
  :zend => zend,
394
278
  }
395
- self.find(first_all,
396
- { :select => "*",
397
- :conditions => [where, cond], })
398
- end
279
+ self.find(first_all,
280
+ { :select => "*",
281
+ :conditions => [where, cond], })
399
282
  end
400
- !
401
- when false
402
- %!
403
- class #{uphead(sym)} < DBConnection
404
- set_table_name "#{downhead(sym)}"
405
- #{delete_reserved_methods}
406
- #{COMMON_CLASS_METHODS}
407
-
408
- where = <<-SQL
409
- chrom = :chrom
410
- AND ((txStart BETWEEN :zstart AND :zend)
411
- OR (txEnd BETWEEN :zstart AND :zend)
412
- OR (txStart <= :zstart AND txEnd >= :zend))
413
- SQL
414
- scope(:with_interval,
415
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
416
- :zstart => gi.zero_start,
417
- :zend => gi.zero_end}]}})
418
- where = <<-SQL
419
- chrom = :chrom
420
- AND ((txStart BETWEEN :zstart AND :zend)
421
- AND (txEnd BETWEEN :zstart AND :zend))
422
- SQL
423
- scope(:with_interval_excl,
424
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
425
- :zstart => gi.zero_start,
426
- :zend => gi.zero_end}]}})
427
-
428
- def self.find_first_or_all_by_interval(interval, first_all, opt)
429
- zstart = interval.zero_start
430
- zend = interval.zero_end
431
- if opt[:partial] == true
432
- where = <<-SQL
433
- chrom = :chrom
434
- AND ((txStart BETWEEN :zstart AND :zend)
435
- OR (txEnd BETWEEN :zstart AND :zend)
436
- OR (txStart <= :zstart AND txEnd >= :zend))
437
- SQL
438
- else
439
- where = <<-SQL
440
- chrom = :chrom
441
- AND ((txStart BETWEEN :zstart AND :zend)
442
- AND (txEnd BETWEEN :zstart AND :zend))
443
- SQL
444
- end
445
- cond = {
446
- :chrom => interval.chrom,
447
- :zstart => zstart,
448
- :zend => zend,
449
- }
450
- self.find(first_all,
451
- { :select => "*",
452
- :conditions => [where, cond], })-u
453
- end
454
- end
455
- !
456
- end # case opts[:bin]
283
+ end
284
+ !
457
285
  end # def genepred
458
286
 
459
287
  # rmsk: Repeatmasker .out file
460
288
  # interval search using genoName/genoStart/genoEnd
461
289
  def rmsk(sym, opts={:bin => true})
462
- case opts[:bin]
463
- when true
464
- %!
465
- class #{uphead(sym)} < DBConnection
466
- set_table_name "#{downhead(sym)}"
467
- #{delete_reserved_methods}
468
- #{COMMON_CLASS_METHODS}
290
+ if opts[:bin]
291
+ chrom_bin = "genoName = :chrom AND bin in (:bins) "
292
+ else
293
+ chrom_bin = "genoName = :chrom "
294
+ end
295
+
296
+ %!
297
+ class #{uphead(sym)} < DBConnection
298
+ self.table_name = "#{downhead(sym)}"
299
+ #{delete_reserved_methods}
300
+ #{COMMON_CLASS_METHODS}
469
301
 
470
- where = <<-SQL
471
- genoName = :chrom
472
- AND bin in (:bins)
473
- AND ((genoStart BETWEEN :zstart AND :zend)
474
- OR (genoEnd BETWEEN :zstart AND :zend)
475
- OR (genoStart <= :zstart AND genoEnd >= :zend))
476
- SQL
477
- scope(:with_interval,
478
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
479
- :bins => gi.bin_all,
480
- :zstart => gi.zero_start,
481
- :zend => gi.zero_end,}]}})
482
- where = <<-SQL
483
- genoName = :chrom
484
- AND bin in (:bins)
485
- AND ((genoStart BETWEEN :zstart AND :zend)
486
- AND (genoEnd BETWEEN :zstart AND :zend))
487
- SQL
488
- scope(:with_interval_excl,
489
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
490
- :bins => gi.bin_all,
491
- :zstart => gi.zero_start,
492
- :zend => gi.zero_end,}]}})
493
-
494
- def self.find_first_or_all_by_interval(interval, first_all, opt)
495
- zstart = interval.zero_start
496
- zend = interval.zero_end
497
- if opt[:partial] == true
498
- where = <<-SQL
499
- genoName = :chrom
500
- AND bin in (:bins)
501
- AND ((genoStart BETWEEN :zstart AND :zend)
502
- OR (genoEnd BETWEEN :zstart AND :zend)
503
- OR (genoStart <= :zstart AND genoEnd >= :zend))
504
- SQL
505
- else
506
- where = <<-SQL
507
- genoName = :chrom
508
- AND bin in (:bins)
509
- AND ((genoStart BETWEEN :zstart AND :zend)
510
- AND (genoEnd BETWEEN :zstart AND :zend))
511
- SQL
512
- end
513
- cond = {
302
+ def self.with_interval(interval)
303
+ interval = Bio::Ucsc::Gi.wrap(interval)
304
+ where(
305
+ "#{chrom_bin}" +
306
+ "AND ( " +
307
+ "(genoStart BETWEEN :zstart AND :zend)" +
308
+ "OR (genoEnd BETWEEN :zstart AND :zend)" +
309
+ "OR (genoStart <= :zstart AND genoEnd >= :zend) )",
310
+ #{PARAMETERS})
311
+ end
312
+
313
+ def self.with_interval_excl(interval)
314
+ interval = Bio::Ucsc::Gi.wrap(interval)
315
+ where(
316
+ "#{chrom_bin}" +
317
+ "AND ( " +
318
+ "(genoStart BETWEEN :zstart AND :zend)" +
319
+ "AND (genoEnd BETWEEN :zstart AND :zend) )",
320
+ #{PARAMETERS})
321
+ end
322
+
323
+ def self.find_first_or_all_by_interval(interval, first_all, opt); interval = Bio::Ucsc::Gi.wrap(interval)
324
+ interval = Bio::Ucsc::Gi.wrap(interval)
325
+ zstart = interval.zero_start
326
+ zend = interval.zero_end
327
+ if opt[:partial] == true
328
+ where =
329
+ "#{chrom_bin}" +
330
+ "AND ( " +
331
+ "(genoStart BETWEEN :zstart AND :zend) " +
332
+ "OR (genoEnd BETWEEN :zstart AND :zend) " +
333
+ "OR (genoStart <= :zstart AND genoEnd >= :zend) )"
334
+ else
335
+ where =
336
+ "#{chrom_bin}" +
337
+ "AND ( " +
338
+ "(genoStart BETWEEN :zstart AND :zend) " +
339
+ "AND (genoEnd BETWEEN :zstart AND :zend) )"
340
+ end
341
+ cond = {
514
342
  :chrom => interval.chrom,
515
343
  :bins => Bio::Ucsc::UcscBin.bin_all(zstart, zend),
516
344
  :zstart => zstart,
517
345
  :zend => zend,
518
346
  }
519
- self.find(first_all,
520
- { :select => "*",
521
- :conditions => [where, cond], })
522
- end
523
- end
524
- !
525
- when false
526
- %!
527
- class #{uphead(sym)} < DBConnection
528
- set_table_name "#{downhead(sym)}"
529
- #{delete_reserved_methods}
530
- #{COMMON_CLASS_METHODS}
531
-
532
- where = <<-SQL
533
- genoName = :chrom
534
- AND ((genoStart BETWEEN :zstart AND :zend)
535
- OR (genoEnd BETWEEN :zstart AND :zend)
536
- OR (genoStart <= :zstart AND genoEnd >= :zend))
537
- SQL
538
- scope(:with_interval,
539
- Proc.new{|gi|{:conditions => [where, {:chrom => gi.chrom,
540
- :bins => gi.bin_all,
541
- :zstart => gi.zero_start,
542
- :zend => gi.zero_end,}]}})
543
- where = <<-SQL
544
- genoName = :chrom
545
- AND ((genoStart BETWEEN :zstart AND :zend)
546
- AND (genoEnd BETWEEN :zstart AND :zend))
547
- SQL
548
- scope(:with_interval_excl,
549
- Proc.new{|gi|{:conditions => [where,{:chrom => gi.chrom,
550
- :zstart => gi.zero_start,
551
- :zend => gi.zero_end,}]}})
552
-
553
- def self.find_first_or_all_by_interval(interval, first_all, opt)
554
- zstart = interval.zero_start
555
- zend = interval.zero_end
556
- if opt[:partial] == true
557
- where = <<-SQL
558
- genoName = :chrom
559
- AND ((genoStart BETWEEN :zstart AND :zend)
560
- OR (genoEnd BETWEEN :zstart AND :zend)
561
- OR (genoStart <= :zstart AND genoEnd >= :zend))
562
- SQL
563
- else
564
- where = <<-SQL
565
- genoName = :chrom
566
- AND ((genoStart BETWEEN :zstart AND :zend)
567
- AND (genoEnd BETWEEN :zstart AND :zend))
568
- SQL
569
- end
570
- cond = {
571
- :chrom => interval.chrom,
572
- :zstart => zstart,
573
- :zend => zend,
574
- }
575
- self.find(first_all,
576
- { :select => "*",
577
- :conditions => [where, cond], })
578
- end
347
+ self.find(first_all,
348
+ { :select => "*",
349
+ :conditions => [where, cond], })
579
350
  end
580
- !
581
- end # case opts[:bin]
351
+ end
352
+ !
582
353
  end # def rmsk
583
354
 
584
355
  private
585
356
 
357
+ #
358
+ # This hack works only for ActiveRecord version <=3.0
359
+ #
586
360
  def delete_reserved_methods
587
361
  codes = Array.new
588
- codes << "set_primary_key nil"
589
- codes << "set_inheritance_column nil"
590
- RESERVED_METHODS.each do |reserved|
591
- codes << "columns_hash.delete('#{reserved}')"
362
+ unless ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR > 0
363
+ codes << "include SafeAttributes"
364
+ RESERVED_METHODS.each do |reserved|
365
+ codes << "bad_attribute_names :#{reserved}"
366
+ end
592
367
  end
593
368
  codes.join("\n")
594
369
  end