গ্রাফের উপত্যকাগুলি কীভাবে সন্ধান করবেন?


10

আমি কিছু জিনোমিক কভারেজ ডেটা পরীক্ষা করছি যা মূলত পূর্ণসংখ্যার দীর্ঘ তালিকা (কয়েক মিলিয়ন মান), প্রতিটি জিনোমে এই অবস্থানটি কতটা ভাল (বা "গভীর") আচ্ছাদিত তা বলেছে।

আমি এই ডেটাতে "উপত্যকাগুলি" সন্ধান করতে চাই, অর্থাত্ যে অঞ্চলগুলি আশেপাশের পরিবেশের তুলনায় উল্লেখযোগ্যভাবে "নিম্ন"।

দ্রষ্টব্য যে আমি যে উপত্যকাগুলি খুঁজছি তার আকার 50 টি বেস থেকে কয়েক হাজার পর্যন্ত হতে পারে।

এই উপত্যকাগুলি খুঁজতে আপনি কোন ধরণের দৃষ্টান্ত ব্যবহারের পরামর্শ দিচ্ছেন?

হালনাগাদ

তথ্যের জন্য কিছু গ্রাফিকাল উদাহরণ: বিকল্প পাঠ বিকল্প পাঠ

আপডেট 2

একটি উপত্যকা কী তা সংজ্ঞায়িত করা অবশ্যই আমি যে সমস্যার সাথে লড়াই করছি of এগুলি আমার কাছে সুস্পষ্ট: বিকল্প পাঠ বিকল্প পাঠ

তবে আরও কিছু জটিল পরিস্থিতি রয়েছে। সাধারণভাবে, আমি বিবেচনা করি এমন 3 টি মানদণ্ড রয়েছে: ১. বিশ্ব গড় হিসাবে উইন্ডোতে (গড়? সর্বোচ্চ?) কভারেজ। 2. এর আশেপাশের আশেপাশে উইন্ডোতে (...) কভারেজ। 3. ইপিএসে দক্ষিন কোরিয়ায় কিভাবে জানালা: যদি আমি একটি ছোট বিঘত জন্য খুব কম কাভারেজ দেখুন এটা আকর্ষণীয়, যদি আমি একটি দীর্ঘ স্প্যান জন্য খুব কম কাভারেজ দেখুন এটি আকর্ষণীয়, আমি যদি স্বল্প স্প্যান জন্য আস্তে কম কাভারেজ দেখুন এটা না সত্যিই আকর্ষণীয় , তবে যদি আমি দীর্ঘ সময়ের জন্য হালকা কম কভারেজ দেখতে পাই - এটি .. সুতরাং এটি স্যাপের দৈর্ঘ্যের এবং এটির কভারেজের সংমিশ্রণ। এটি যত দীর্ঘ হয়, তত বেশি আমি কভারেজটি হতে দেই এবং এখনও এটিকে একটি উপত্যকা হিসাবে বিবেচনা করি।

ধন্যবাদ,

ডেভ


আপনি একটি ছোট ডেটা নমুনা সরবরাহ করতে পারেন?
শেন

@ শানে আপডেট দেখুন
ডেভিড বি

@ ডেভিড ধন্যবাদ উভয় উত্তর হিসাবে বোঝা যাচ্ছে যেহেতু আপনি পর্যবেক্ষণের আদেশ দিয়েছেন তাই সময় সিরিজ বিশ্লেষণ এখানে প্রয়োগ করা যেতে পারে।
শেন

আপনি ঠিক কী খুঁজছেন তা না জেনে উত্তর দেওয়া এক ধরণের কঠিন। আপনি যে প্লটগুলি ক্যাপচার করতে চাইছেন তার মধ্যে পয়েন্টগুলি বৃত্তাকারে ফেলতে পারেন? আপনি একটি "উপত্যকা" বিবেচনা? এটি কতটা কম যেতে হবে এবং আপনি কী ফিরে যেতে চাইছেন? প্রশ্নটি, অর্থাৎ প্রান্তিকতা এবং এ জাতীয় কিছু না জেনে কোনও সমাধান তৈরি করা শক্ত।
ফালমারি

@ শেন ♦ ধন্যবাদ আমার যেমন সময়-সিরিজ বিশ্লেষণের অভিজ্ঞতা নেই, আপনি কোথায় শুরু করতে হবে সে সম্পর্কে কয়েকটি পয়েন্টার রেখে যেতে পারেন?
ডেভিড বি

উত্তর:


5

উদাহরণস্বরূপ আপনার ডেটার মুভিং এভারেজ ব্যবহার করে আপনি মন্টি কার্লো পদ্ধতির কোনও ধরণের ব্যবহার করতে পারেন।

যুক্তিসঙ্গত আকারের একটি উইন্ডো ব্যবহার করে ডেটাটির চলমান গড় নিন (আমি অনুমান করি যে এটি কত প্রশস্ত হবে তা স্থির করে)।

আপনার ডেটা জুড়ে (অবশ্যই) একটি নিম্ন গড় দ্বারা চিহ্নিত করা হবে, সুতরাং এখন "নিম্ন" সংজ্ঞায়িত করার জন্য আপনাকে কিছু "প্রান্তিক" সন্ধান করতে হবে।

এটি করার জন্য আপনি এলোমেলোভাবে আপনার ডেটার মানগুলি (যেমন ব্যবহার করে sample()) অদলবদল করুন এবং আপনার অদলিত ডেটার জন্য চলমান গড়কে পুনরায় গণনা করুন।

এই শেষ উত্তরণটি যথাযথভাবে উচ্চ পরিমাণে (> 5000) পুনরাবৃত্তি করুন এবং এই পরীক্ষার সমস্ত গড় সঞ্চয় করুন। সুতরাং মূলত আপনার কাছে 5000 টি লাইন সহ একটি ম্যাট্রিক্স থাকবে, প্রতি পরীক্ষার জন্য একটি, প্রতিটি সেই পরীক্ষার চলমান গড় সম্বলিত।

প্রতিটি কলামের জন্য এই মুহুর্তে আপনি 5% (বা 1% বা আপনি যা চান) কোয়ান্টাইল বাছাই করেন, এটি এমন মান যার অধীনে এলোমেলো উপাত্তের মাত্র 5% থাকে।

আপনার মূল তথ্যটির সাথে তুলনা করার জন্য আপনার কাছে এখন একটি "আত্মবিশ্বাসের সীমা" (এটি সঠিক পরিসংখ্যান শর্ত কিনা তা আমি নিশ্চিত নই)। যদি আপনি আপনার ডেটার এমন একটি অংশ খুঁজে পান যা এই সীমাটির চেয়ে কম থাকে তবে আপনি এটির মাধ্যমে কল করতে পারেন।

অবশ্যই, মনে রাখবেন যে এটি বা অন্য কোনও গাণিতিক পদ্ধতি আপনাকে জৈবিক তাত্পর্য সম্পর্কে কোনও ইঙ্গিত দিতে পারে নি, যদিও আমি নিশ্চিত যে আপনি এটি সম্পর্কে ভাল জানেন।

সম্পাদনা - একটি উদাহরণ

require(ares) # for the ma (moving average) function

# Some data with peaks and throughs 
values <- cos(0.12 * 1:100) + 0.3 * rnorm(100) 
plot(values, t="l")

# Calculate the moving average with a window of 10 points 
mov.avg <- ma(values, 1, 10, FALSE)

numSwaps <- 1000    
mov.avg.swp <- matrix(0, nrow=numSwaps, ncol=length(mov.avg))

# The swapping may take a while, so we display a progress bar 
prog <- txtProgressBar(0, numSwaps, style=3)

for (i in 1:numSwaps)
{
# Swap the data
val.swp <- sample(values)
# Calculate the moving average
mov.avg.swp[i,] <- ma(val.swp, 1, 10, FALSE)
setTxtProgressBar(prog, i)
}

# Now find the 1% and 5% quantiles for each column
limits.1 <- apply(mov.avg.swp, 2, quantile, 0.01, na.rm=T)
limits.5 <- apply(mov.avg.swp, 2, quantile, 0.05, na.rm=T)

# Plot the limits
points(limits.5, t="l", col="orange", lwd=2)
points(limits.1, t="l", col="red", lwd=2)

এটি কেবল আপনাকে অঞ্চলগুলি গ্রাফিকভাবে সন্ধান করার অনুমতি দেবে, তবে আপনি খুব সহজেই এগুলির সারণিতে কিছু ব্যবহার করে তা আবিষ্কার করতে পারেন which(values>limits.5)


স্পষ্টতই আপনি চলন্ত গড়ের চেয়ে অন্য কিছু ব্যবহার করে একই পদ্ধতির প্রয়োগ করতে পারেন, এটি কেবল একটি ধারণা দেওয়ার জন্য।
নিকো

+1 আপনাকে অনেক ধন্যবাদ, নিকো। আমি আপনাকে সঠিকভাবে পেয়েছি কিনা তা আমাকে দেখতে দিন: শেষে, এটি মূলত কিছু গ্লোবাল প্রান্তিক স্থাপন করা এবং কোনও উপত্যকার অংশ হিসাবে <থ্রেশহোল্ডের মান সহ কোনও পয়েন্টকে সংজ্ঞায়িত করার মতো। স্যাম্পলিং ইত্যাদি মাত্র মাত্রা নির্ধারণের জন্য কিছু অর্থপূর্ণ পরিমাপ (কোয়ান্টাইল) পেতে ব্যবহৃত হয়। আমরা কেন পুরো পয়েন্টগুলির জন্য একক থ্রোসোল্ড ব্যবহার করতে পারি না, আমি বোঝাতে চাইছি যদি আমরা যথেষ্ট সিমুলেশন করি তবে আমরা সোজা (পঠিত এবং হলুদ) লাইন পাব। এছাড়াও, আমার ভুল হয়ে থাকলে আমাকে সংশোধন করুন তবে এটি আশেপাশের পরিবেশকে বিবেচনায় না নেয় তবে প্রতিটি পয়েন্টের পরম মান পরীক্ষা করে।
ডেভিড বি

@ ডেভিড বি: অবশ্যই, আপনি একটি বিশ্বব্যাপী প্রান্তিক ব্যবহার করতে পারেন এবং এটি সম্ভবত আপনার কিছু গণনার সময় সাশ্রয় করবে। আমার ধারণা গ্লোবাল গড়ের 1/3 অংশের মতো কিছু পছন্দ করা একটি শুরু হতে পারে। এই অদলবদল প্রক্রিয়াটি সম্ভবত আরও সহায়ক যদি আপনি চলমান গড়ের তুলনায় কিছু অন্যান্য পরিসংখ্যান ব্যবহার করেন তবে বেশিরভাগই এটির ধারণা দেওয়া ছিল। যাইহোক চলমান গড় চারপাশের অ্যাকাউন্টকে বিবেচনা করবে, উদাহরণস্বরূপ এটি 10 ​​পয়েন্টের একটি উইন্ডো বিবেচনা করবে।
নিকো 21

4

আমি এই ডেটাগুলি সম্পর্কে সম্পূর্ণ অজ্ঞ, তবে ধরে নিচ্ছি যে ডেটা অর্ডার করা হয়েছে (সময় মতো নয়, তবে অবস্থানের সাথে?) সময় সিরিজের পদ্ধতিগুলি ব্যবহার করা বোধগম্য। ডেটাতে টেম্পোরাল ক্লাস্টারগুলি সনাক্ত করার জন্য প্রচুর পদ্ধতি রয়েছে। সাধারণত এগুলি উচ্চ মানের সন্ধান করতে ব্যবহৃত হয় তবে একসাথে গোষ্ঠীভুক্ত নিম্ন মানের জন্য এটি ব্যবহার করা যেতে পারে। আমি এখানে স্ক্যান পরিসংখ্যান, ক্রমসংখ্যার সমষ্টি পরিসংখ্যান (এবং অন্যদের) গণনার তথ্যগুলিতে রোগের প্রাদুর্ভাবগুলি সনাক্ত করতে ব্যবহৃত সম্পর্কে ভাবছি। এই পদ্ধতির উদাহরণগুলি নজরদারি প্যাকেজ এবং ডিসিপ্লাস্টার প্যাকেজে রয়েছে।


@cxr আপনার প্রতিক্রিয়া জন্য ধন্যবাদ। আমার এক নজর আছে surveillanceএবং DCluster আপনি কি দয়া করে কিছুটা সুনির্দিষ্ট হতে পারেন? এগুলি উভয়ই তুলনামূলকভাবে বড় প্যাকেজ এবং তাদের লক্ষ্য বেশ নির্দিষ্ট বলে মনে হয়। আমি নিশ্চিত না কোথা থেকে শুরু করব।
ডেভিড বি

2

এর জন্য অনেকগুলি বিকল্প রয়েছে তবে একটি ভাল একটি: আপনি প্যাকেজেmsExtrema ফাংশনটি ব্যবহার করতে পারেন ।msProcess

সম্পাদনা:

আর্থিক কর্মক্ষমতা বিশ্লেষণে, এই ধরণের বিশ্লেষণ প্রায়শই একটি "ড্রডাউন" ধারণাটি ব্যবহার করে সম্পাদিত হয়। PerformanceAnalyticsপ্যাকেজ কিছু আছে এই উপত্যকার এটি দরকারী ফাংশন । আপনি যদি নিজের পর্যবেক্ষণগুলিকে সময় সিরিজ হিসাবে বিবেচনা করেন তবে আপনি এখানে একই অ্যালগরিদম ব্যবহার করতে পারেন।

আপনি কীভাবে এটি আপনার ডেটাতে প্রয়োগ করতে সক্ষম হতে পারেন তার কয়েকটি উদাহরণ এখানে রয়েছে (যেখানে "তারিখগুলি অপ্রাসঙ্গিক তবে কেবল অর্ডার দেওয়ার জন্য ব্যবহৃত হয়) তবে zooঅবজেক্টের প্রথম উপাদানগুলি হ'ল আপনার ডেটা:

library(PerformanceAnalytics)
x <- zoo(cumsum(rnorm(50)), as.Date(1:50))
findDrawdowns(x)
table.Drawdowns(x)
chart.Drawdown(x)

আপনাকে ধন্যবাদ শ্যান, তবে এটি স্থানীয় মিনিমা (বা ম্যাক্সিমা) - অর্থাৎ কোনও অঞ্চলের একক পয়েন্ট খুঁজে পেতে পারে বলে মনে হচ্ছে। আমার ডেটা (যে কোনও জৈবিক ডেটা হিসাবে) নিঃসন্দেহে> আমি নিজের পয়েন্ট মিনিমাকে নিয়ে আসলে কিন্তু কম অঞ্চলগুলিতে কম যত্ন করি না।
ডেভিড বি

আপনার যদি স্থানীয় সর্বাধিক এবং ন্যূনতম পয়েন্ট থাকে তবে আপনি সহজেই পার্থক্য গণনা করতে পারেন। সুতরাং আপনি উদাহরণস্বরূপ জানতে চান যখন পার্থক্যগুলি উভয় মাত্রায় এবং "সময়কালে" বড় হয়? এই সময় সিরিজের ডেটা?
শেন

@ ডেভিড সম্ভবত, আপনি পুনরায় এই ফাংশনটি ব্যবহার করতে পারেন। একটি মিনিমা সনাক্ত করতে ফাংশনটি ব্যবহার করুন। সেই বিন্দু এবং আশেপাশের পয়েন্টগুলি ফেলে দিন (কিছুটা সহনশীলতার স্তরের মধ্যে x পয়েন্টগুলি বলুন)। আপনি সহনশীলতার স্তরটি বেছে নিতে পারেন (যেমন, + - 10 গণনা) যা আপনার আবেদনের জন্য সমতল অঞ্চলকে সংজ্ঞায়িত করবে। নতুন ডেটাসেটে একটি নতুন মিনিমা সন্ধান করুন। কাজ করবে?

@ শ্যাশন যে স্মৃতি মনে আসে তা হ'ল একটি পার্বত্য অঞ্চলের উপত্যকাগুলি। আমি মনে করি লক্ষ্যটি সমস্ত উপত্যকা চিহ্নিত করা এবং সমস্যাটি কিছু উপত্যকা 'গভীর' এবং কিছু পাহাড়ের তুলনায় 'অগভীর'।

@ শানে এটি কোনও সময়ের সিরিজ নয়, এগুলি জিনোমে ক্রোমোসোম (সমন্বয়) are
ডেভিড বি

2

কিছু Bioconductor এর প্যাকেজ (যেমন, ShortRead , Biostrings , BSgenome , IRanges , genomeIntervals ) জন্য জিনোম অবস্থানের বা কভারেজ ভেক্টর, যেমন সঙ্গে তার আচরণ জন্য অফার সুবিধা চিপ-SeQ এবং সমৃদ্ধ অঞ্চলে চিহ্নিত। অন্যান্য উত্তর হিসাবে, আমি সম্মত যে কোনও থ্রোসোল্ড-ভিত্তিক ফিল্টার সহ অর্ডার করা পর্যবেক্ষণের উপর নির্ভর করে যে কোনও পদ্ধতি নির্দিষ্ট ব্যান্ডউইথের মধ্যে কম সংকেতকে আলাদা করতে দেয়।

তথাকথিত "দ্বীপপুঞ্জ" চিহ্নিত করার জন্য ব্যবহৃত পদ্ধতিগুলিও আপনি দেখতে পারেন

জাং, সি, সোনস, ডিই, জেং, সি, কুই, কে, ঝাও, কে, এবং পেং, ডাব্লু (২০০৯)। হিস্টোন সংশোধন চিপ-সিক ডেটা থেকে সমৃদ্ধ ডোমেন সনাক্তকরণের জন্য একটি ক্লাস্টারিং পদ্ধতির । বায়োইনফরম্যাটিকস, 25 (15) , 1952-1958।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.