एकल अणुओं की एक छवि से डीएनए फाइबर की लंबाई मापना


14

मैं इमेज प्रोसेसिंग के साथ बहुत कम अनुभव वाला एक जीवविज्ञानी हूं लेकिन MATLAB का पर्याप्त ज्ञान है और इमेज प्रोसेसिंग टूलबॉक्स है। आदर्श रूप से मैं एक MATLAB आधारित समाधान की तलाश कर रहा हूं, लेकिन इसके बारे में कैसे जाना जाए, इसका एक तरीका भी उपयोगी होगा।

अद्यतन (28 नवंबर 2011) यह प्रतीत होता है कि मिश्रित छवियों का उपयोग करते समय कुछ समस्याएं (जैसे सिग्नल में ओवरलैप और रंग की परिभाषा) होती हैं (जो कि मैंने प्रारंभिक प्रश्न में प्रस्तुत की है)। मैं 2 चैनलों से अलग-अलग छवियां संलग्न कर रहा हूं: हरा यहाँ छवि विवरण दर्ज करेंऔर लाल यहाँ छवि विवरण दर्ज करें(मिश्रित छवि में फ़िरोज़ा क्षेत्रों को अनदेखा किया जा सकता है), और कोपोसिट छवि यहाँ छवि विवरण दर्ज करें। लाल चैनल 2 कारणों से खराब है: 1. इसकी पृष्ठभूमि अधिक होने के कारण इसके विपरीत खराब होता है, 2. चूंकि लाल रंग की पृष्ठभूमि स्तर पर हरे रंग में रक्तस्राव होता है।

एक विशेषता को समग्र छवि पर एक क्षेत्र के रूप में परिभाषित किया गया है जिसमें ग्रीन-रेड-फ़िरोज़ा-रेड-ग्रीन है या समकक्ष हरे और लाल रंग पर 2 आसन्न रैखिक खंड हैं जो कॉलिनियर और संक्रामक हैं।

मुझे उम्मीद है कि दो अलग-अलग चैनलों से छवियों को देखने से सुविधाओं की पहचान आसान हो जाती है।

एल्गोरिथ्म के लिए मेरे पास निम्नलिखित सुझाव हैं:

  1. पहले सह-रेखीय हरे खंडों की पहचान करें (और हरे खंडों की लंबाई निर्धारित करें)

  2. निर्धारित करें कि लाल चैनल में आसन्न संक्रामक और कॉलिनियर सेगमेंट एक दूसरे की ओर (यानी हरा-> लाल-> <-red <-ग्रीन) का सामना कर रहे हैं। यदि हाँ उस बिंदु से लाल खंड की लंबाई परिभाषित करें, जहां हरे खंड खंड (क्योंकि वे हरे खंडों के साथ ओवरलैप होंगे) तब तक लाल खंड पर बिंदु है जो कि सुविधा के अन्य लाल खंड के सबसे करीब है। (यानी लाल खंड के सिरों में से एक अतिव्यापी हरे खंड के अंत में सेट है)।

बहुत धन्यवाद!

पृष्ठभूमि :

मेरा सवाल एक छवि से सुविधा निकालने से संबंधित है:

यहाँ छवि विवरण दर्ज करें

मूल छवि (tif) यहां स्थित है:

छवि उदाहरण 1 (ड्रॉपबॉक्स)

यह छवि 3 चैनलों का एक संयोजन है (tif प्रारूप में): लाल, हरा और फ़िरोज़ा। फ़िरोज़ा रंग के तंतुओं में हमारे द्वारा कवर किए गए सभी डीएनए होते हैं। ब्याज की विशेषता ग्रीन-रेड - फ़िरोज़ा - रेड-ग्रीन फीचर है जो एकल डीएनए स्ट्रैंड पर है जो छवि के बीच में है।

लाल आम तौर पर नीर है। यह उदाहरण अच्छा है क्योंकि इसके विपरीत अच्छा है। हालांकि, कभी-कभी छवियां इतनी अच्छी नहीं होती हैं और पूरी छवि में धुंध होती है, इसलिए हरे और लाल रंग के लिए एक विशिष्ट आरजीबी मूल्य को हार्ड-कोडिंग करना सभी छवियों के लिए काम नहीं कर सकता है। इसके अलावा, ध्यान दें कि फाइबर जरूरी क्षैतिज नहीं हैं, उन्हें घुमाया जा सकता है (लेकिन कभी ऊर्ध्वाधर नहीं)।

कृपया इस छवि को एक उदाहरण के लिए देखें:

यहाँ छवि विवरण दर्ज करें मूल छवि (tif) यहां स्थित है:

छवि उदाहरण 2 (ड्रॉपबॉक्स)

इसके अलावा, कभी-कभी एक छवि में कई ऐसी विशेषताएं होती हैं और कभी-कभी एक ही डीएनए स्ट्रैंड पर कई विशेषताएं होती हैं। अंत में कभी-कभी केवल आंशिक विशेषताएं हो सकती हैं (यानी अलग-थलग हरे या अलग-थलग लाल या अलग-थलग हरे-लाल खंड, लेकिन अनपेक्षित)।

सवाल:

मैं आभारी रहूंगा अगर कोई मुझे हरे और लाल खंडों के अलग-अलग खंडों की लंबाई प्राप्त करने में मदद कर सकता है, क्योंकि ब्याज की सुविधा ग्रीन-रेड - फ़िरोज़ा - रेड-ग्रीन है, प्रत्येक सुविधा में 5 मानों की एक सरणी होगी (पहले हरित खंड की लंबाई, पहले लाल खंड की लंबाई, फ़िरोज़ा खंड की लंबाई, दूसरे लाल खंड की लंबाई और दूसरे हरित खंड की लंबाई)।


3
नमस्कार, यह प्रश्न सिग्नल प्रोसेसिंग में माइग्रेट होने वाला है । हमारा ध्यान छवि प्रसंस्करण और एल्गोरिदम पर है, और मैंने आपके प्रश्न को उसी के लिए संपादित किया है। यद्यपि MATLAB में लोग जानकार हो सकते हैं, आपको अन्य भाषाओं (या स्यूडोकोड) में समाधान मिल सकता है, जो आपको उत्तर के लिए मार्गदर्शन करेगा। यदि आप अभी भी MATLAB में समाधान को लागू करने में फंस गए हैं (यह मानते हुए कि आपने पहले से MATLAB उत्तर नहीं दिया है), तो आप अनुवाद करने में मदद माँगने के लिए हमेशा स्टैक ओवरफ़्लो पर वापस आ सकते हैं ।
लोरेम इप्सुम

अपने स्वतंत्र चैनल में प्रत्येक सिग्नल को स्टोर करने के लिए पहला कदम होना चाहिए। हां, सीएफपी फ़िरोज़ा है, लेकिन आपको ग्रीन चैनल से इसके सिग्नल को अनमिक्स नहीं करना चाहिए।
जोनास

जवाबों:


11

गणित में उदाहरण:

(* 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
@ निश्चित रूप से यह संभव है! एक बार जब आपके पास हूप ट्रांसफ़ॉर्म हो जाए, तो एक पतले लाइन को मास्क के रूप में उपयोग करें और पास के लाल बिंदुओं को मापें।
डॉ। बेलीज़ेरियस

@ मुझे लगता है कि केवल देखभाल करने के लिए "लाल" की एक अच्छी परिभाषा है :) :)
डॉ। बेलिसरियस

@ अगर आपके पास गणितज्ञ की पहुंच है, तो मैं सेगमेंट को अलग करने के लिए कुछ और कोड पोस्ट कर सकता हूं
डॉ। बेलिसरियस

आपकी प्रतिक्रिया के लिए बहुत धन्यवाद। मुझे आपकी प्रतिक्रिया से एहसास हुआ कि लाल चैनल समस्याग्रस्त है और निकटवर्ती हरे क्षेत्र को ओवरलैप करने वाले सिग्नल को छोटा करना होगा। मैंने समस्या को अद्यतन किया है - क्या आप कृपया देख सकते हैं और मुझे बता सकते हैं कि क्या यह समझ में आता है?
ली सैंड नोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.