Вимірювання довжини волокон ДНК з зображення одиночних молекул


14

Я біолог з дуже невеликим досвідом обробки зображень, але володію достатніми знаннями про MATLAB і маю інструментарій для обробки зображень. В ідеалі я шукаю рішення, засноване на MATLAB, але корисним би також був підхід, який окреслює шляхи його досягнення.

Оновлення (28 листопада 2011 р.) Здається, що при використанні складених зображень є певні проблеми (наприклад, перекриття сигналу та визначення кольору) (це те, що я представив у початковому запитанні). Я додаю окремі зображення з двох каналів: зеленого введіть тут опис зображеннята червоного введіть тут опис зображення(бірюзові області в складеному зображенні можна ігнорувати) та складеного зображення введіть тут опис зображення. Червоний канал поганий з 2 причин: 1. У нього поганий контраст через більш високий фон, 2. Оскільки червоний колір начебто кровоточить у зелене.

Функція визначається як область на складеному зображенні , який має зелено-червоно-бірюзовий-червоний-зелений або , що еквівалентно 2 суміжних лінійних сегментів на зелений і червоний , які колінеарні і заразним.

Я сподіваюся, що перегляд зображень з двох окремих каналів полегшує ідентифікацію особливостей.

У мене є такі пропозиції щодо алгоритму:

  1. Спочатку визначте колінійні зелені сегменти (і визначте довжини зелених сегментів)

  2. Визначте, чи є в червоному каналі сусідні контагіозні та колінеарні сегменти, звернені один до одного (тобто зелений-> червоний-> <-зелений <-зелений). Якщо так, визначте довжину червоного сегмента від точки, в якій закінчуються зелені сегменти (оскільки вони будуть перетинатися із зеленими сегментами) до точки на червоному сегменті, яка є найближчою до іншого червоного сегмента функції. (тобто один з кінців червоного сегмента встановлений в кінці зеленого сегмента, що перекривається).

Велике дякую!

Фон :

Моє запитання стосується вилучення функції з зображення:

введіть тут опис зображення

Оригінальне зображення (tif) розміщене тут:

Приклад зображення 1 (dropbox)

Це зображення є композицією з 3-х каналів (у форматі tif): червоного, зеленого та бірюзового. Білок бірюзового кольору просто позначає всю ДНК, яку ми маємо на покривалі. Цікавою особливістю є зелено-червоний - бірюзово - червоно-зелений особливість на одній нитці ДНК, яка є серединою зображення.

Червоний - це взагалі найшуміше. Цей приклад хороший тим, що контраст хороший. Однак іноді зображення не такі приємні, і на всьому зображенні є відтінок, тому жорстке кодування конкретного значення RGB для зеленого та червоного кольору може працювати не для всіх зображень. Також зауважте, що волокна не обов'язково горизонтальні, вони можуть бути оберненими (але ніколи вертикальними).

Перегляньте це зображення для прикладу:

введіть тут опис зображення Оригінальне зображення (tif) розміщене тут:

Приклад зображення 2 (dropbox)

Крім того, іноді одне зображення має безліч таких особливостей, а іноді на одній ланцюжку ДНК є кілька ознак. Нарешті, іноді можуть бути лише часткові ознаки (наприклад, ізольований зелений або ізольований червоний або ізольований зелено-червоний сегменти, але не парний).

Питання:

Буду вдячний, якщо хтось може допомогти мені отримати довжину окремих сегментів зеленого та червоного сегментів, тобто оскільки особливість, яка цікавить, зелено-червона - бірюза - червоно-зелена, кожна функція мала б масив із 5 значень (довжина першого зеленого сегмента, довжина першого червоного сегмента, довжина бірюзового сегмента, довжина другого червоного сегмента і довжина другого зеленого сегмента).


3
Привіт, це питання буде перенесено на обробку сигналів . Наша увага зосереджена на обробці зображень та алгоритмах, і я відредагував ваше запитання, щоб задати це питання. Хоча в MATLAB можуть бути відомі люди, ви можете отримати рішення іншими мовами (або псевдокодом), які допоможуть вам відповісти. Якщо ви все ще застрягли у впровадженні рішення в MATLAB (якщо припустити, що ви ще не отримали відповідь MATLAB), ви завжди можете повернутися до переповнення стека і попросити допомоги в перекладі.
Lorem Ipsum

Першим кроком має бути збереження кожного сигналу в його незалежному каналі. Так, CFP є бірюзовим, але вам не доведеться змішувати його сигнал із зеленого каналу.
Йонас

Відповіді:


11

Приклад в Mathematica:

(* Get your image*)
img = Import["http://dl.dropbox.com/u/18072545/c_29.tif"];
(*Detect the extended minima and remove background*)
nB = ImageSubtract[img, ColorNegate@FillingTransform@ColorNegate[img]]  

введіть тут опис зображення

(*Separate RGB channels*)
cS = ImageAdjust /@ ColorSeparate[img]

введіть тут опис зображення

(*Binarize*)
bcS = Binarize[#, .4] & /@ cS  

введіть тут опис зображення

(*Remove large elements*)
tH = TopHatTransform[#, DiskMatrix[2]] & /@ bcS  

введіть тут опис зображення

(*Detect lines using a Hough Transform*)
lines = ImageLines[#, .01, .8] & /@ tH
(*Plot them*)
Show[img, Graphics[{
   Thickness[.01], Red, Line /@ (lines[[1]]),
   Thickness[.006], Green, Line /@ (lines[[2]]),
   Thickness[.004], Blue, Line /@ (lines[[3]])}]]
(*Red and green are superimposed*)  

введіть тут опис зображення

Редагувати

Тут ви можете бачити червоні та зелені скупчення. Як ви можете собі уявити, ви повинні вирішити, коли порція червона!

введіть тут опис зображення


Велике спасибі за вашу відповідь. Мені не зрозуміло, що, як передбачається, представляє синя лінія, оскільки в цьому зображенні є лише одна особливість. Чи можна отримати довжину лише червоного та зеленого сегментів на лінії, де ви наклали червоний / зелений ?.
Лі Санде

1
@Lee Звичайно, це можливо! Після того, як ви перетворитеся на Хоф, використовуйте розведену лінію як маску і вимірюйте червоні точки поблизу.
Доктор Белісарій

@Lee Єдине, про що варто потурбуватись - це чітке визначення "червоного" :)
Dr. belisarius

@Lee Якщо у вас є доступ до Mathematica, я можу опублікувати ще якийсь код, щоб розділити сегменти
доктор belisarius

Велике спасибі за вашу відповідь. З вашої відповіді я зрозумів, що червоний канал є проблематичним і сигнал, що перекриває сусідній зелений сегмент, повинен бути усічений. Я оновив проблему - чи можете ви, будь ласка, погляньте і скажіть, чи є це сенс?
Лі Санде
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.