|
|
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Возникла задача расчитать коэффициент инбридинга для животного. Fx=0.5*SUM(0.5^n), где n- число путей инбридинга от общего предка, через животное X по отцовской стороне родословной к общему предку с материнской стороны, исключая пути от самого общего предка. Задачу удалось решить, но решение не кажет простым и достаточно быстрым. Есть ли идеи как улучшить его. DDL исходной таблицы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Моё решение: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2012, 21:55:57 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Ух ты какой тут цирк с конями! Мон пардон за оффтопег. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 06:23:16 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
ВечностьУх ты какой тут цирк с конями! Ну да прога предназначена для учёта породистых лошадей в институте коневодства. Но задача такая встречается не только у коней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 09:16:42 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, я бы в табличку ввел поле с коэффициентом и пересчитывал его при модификации данных. Тогда время выборки будет минимальным. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 15:26:18 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, а нельзя ли поясняющую диаграмму-пример? Fx=0.5*SUM(0.5^n), где n- число путей инбридинга от общего предка, через животное X по отцовской стороне родословной к общему предку с материнской стороны, исключая пути от самого общего предка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 16:04:25 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
vvmа нельзя ли поясняющую диаграмму-пример Можно. пояснения vvmя бы в табличку ввел поле с коэффициентом и пересчитывал его при модификации данных. Проблема в том что в табличке HORSE уже давно есть данные ~500000 записей. Если так делать то, он должен быть посчитан для всех них. Пробовал расчитать для 1000 записей. Это заняло 6,5 сек. Но время увеличивается не линейно и боюсь, что обсчитать 500000 нереально. Если бы алгоритм был более прост возможно воспользовался бы вашим советом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 16:33:43 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
В такой форме формула более понятна. Fx=0.5*SUM(0.5 n1+n2-1 ), где n1 - ряд предков, в котором общий предок встречается в отцовской части родословной n2 - ряд предков, в котором общий предок встречается в материнской части родословной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 17:02:27 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
если вдруг Таблоида заинтересуется, то вот что должно получиться Отчёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 16:32:46 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Симонов Денисесли вдруг Таблоида заинтересуется Я не Таблоид, но мне интересно. Попробую заняться. Можно как-то получить большой пример базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 17:52:13 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений, хм... ну ту базу на которой у меня это реализовано естественно нет (это всё таки собственность ВНИИКа). Но я попробую накатать портянку с данными на котором можно будет экспериментировать. Вообще эта штука общая и часто применяется в племенном животноводстве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 18:02:06 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Допустим, есть вот это: ddl: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. data: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. В статье про этот самый инцест сказано:Если в родословной встречается только один общий предок (в свою очередь, неинбредный), то коэффициент инбридинга равен 1\2 в степени n + n1 - 1, где n – колено, в котором он встречается в родословной со стороны отца , а n1 – колено, в котором он встречается в родословной со стороны матери . Если общих предков несколько, то вычисленные по каждому из них коэффициенты суммируются.Вышеприведенным данным соотв-вует схема в аттаче. Что в этом примере будет означать "коэффициент инбридинга для особи с id = 60 " ? Или тут надо всегда считать " по отношению к ", т.е. коэффициент инбридинга особи 60 по отношению к особи 10 етц ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 19:55:04 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Симонов Денисесли вдруг Таблоида заинтересуется, то вот что должно получиться Отчёт Симонов Денисесли вдруг Таблоида заинтересуется, то вот что должно получиться Отчёт в этом примере посчитано по отношению к лошади Mr. Prospector и Neactretic, а потом они суммируются. Обрати внимание, что если по одному из предков инбридинг уже есть, то по его предкам считать не надо, т.е. для Mr. Prospector инбринг считается, то для Raise A native и Gold Digger уже нет. Я попозже попробую очистить БД от реальных данных и лишних таблиц и выложить пример с данными. Для интереса можно пользоваться всеми плюшками FB3, хотя сейчас это у меня функционирует на FB2.5. По хорошему надо не только коэффициент посчитать но и родословную вывести, а также индекс для таблицы цветов, чтобы раскрасить инбредные лошади. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:07:40 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
я там НХНП. Каким образом особь "Nearctic (CAN)" является предком господина Проспектора ("Mr. Prospector (USA)") ? она (или он) никого же из его предков не произвела, от неё на свет появились только "Northern Dancer (CAN)" и "Icecapade (USA)"... Хотелось бы какой-то графический пример, простой и наглядный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:17:07 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
Таблоид, никаким. господина Проспектора, также как и Неаретик является предком Акбаш Казаха. Тут педигри развёрнуто. Сама лошадь написана на верху отчёта в родословной Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Собственно в данном Проспектор встречается по одному разу в предках отца и предках матери, но это не обязательно. Далее в зависимости от того в каких рядах родословной это произошло назначаются коэффциенты. Здесь для Проспектора в 3 и 3, т.е. F = 0.5 * 0.5 3+3-1 = 0,015625, для Неаретик 5 и 5 - F = 0.5 * 0.5 5+5-1 = 0,0009765625. Потом эти величины суммируются. Вот более сложный случай https://cloud.mail.ru/public/482dc38706f0/Abadan.pdf Вот скрипт по созданию БД. Только там без кличек и данных, одни коды https://cloud.mail.ru/public/aadbe59ef49a/horse.7z ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:41:41 |
|
||
|
Коэффициент инбридинга
|
|||
|---|---|---|---|
|
#18+
вот полная процедура для тех кому интересно блок Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. DML Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 22:57:39 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=103&tid=1563882]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
314ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 604ms |

| 0 / 0 |
