bio-ucsc-api 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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