পোস্টগ্রিজ এসকিউএল-এ ইউনিপ্রোটের বায়োলজিকাল সিকোয়েন্সেস


11

পোস্ট্রেএসকিউএলে ইউনিপ্রোট জৈবিক ক্রমগুলি সংরক্ষণ করার সর্বোত্তম উপায় কী?

তথ্য বিশদ

  • আমরা ইউনিপ্রোট থেকে 12 মিলিয়ন সিকোয়েন্স টানছি - প্রতি 3-10 মাসে এই সংখ্যাটি দ্বিগুণ হওয়ার সম্ভাবনা রয়েছে।
  • সিকোয়েন্সের দৈর্ঘ্য 10 থেকে 50 বিলিয়ন অক্ষর থেকে পৃথক হতে পারে
  • সিকোয়েন্সগুলির 1% এরও কম 10 হাজার অক্ষরের বেশি are
    • এটি দীর্ঘতর ক্রমগুলি আলাদাভাবে সংরক্ষণ করার জন্য কর্মক্ষমতা উন্নত করবে?
  • একটি ক্রম প্রোটিন বা ডিএনএ বর্ণমালা হতে পারে
    • ডিএনএ বর্ণমালায় 5 টি অক্ষর রয়েছে (এ, টি, সি, জি, বা -)।
    • প্রোটিন বর্ণমালার প্রায় 30 টি অক্ষর থাকবে।
    • দুটি ভিন্ন বর্ণমালার সিকোয়েন্সটি বিভিন্ন কলাম বা এমনকি আলাদা আলাদা টেবিলগুলিতে সংরক্ষণ করার জন্য আমরা আপত্তি করি না। যে সাহায্য করবে?

ডেটা অ্যাক্সেসের বিশদ

জেরেমিয়া পেশকার মন্তব্যের জবাব দিতে:

  • প্রোটিন এবং ডিএনএ সিকোয়েন্সগুলি বিভিন্ন সময়ে অ্যাক্সেস করা হত
  • অনুক্রমের মধ্যে অনুসন্ধান করার প্রয়োজন হবে না (এটি ডিবি এর বাইরে সম্পন্ন হয়েছে)
  • ইথার একবারে একক সারিগুলিতে অ্যাক্সেস করতে পারে বা আইডি দ্বারা সারিগুলির সেট টেনে আনবে। আমাদের সারি স্ক্যান করার প্রয়োজন হবে না। সমস্ত সিকোয়েন্সগুলি অন্য টেবিলগুলি দ্বারা রেফারেন্স করা হয় - বেশ কয়েকটি জৈবিক এবং কালানুক্রমিকভাবে অর্থবহ শ্রেণিবদ্ধতা ডেটাবেজে বিদ্যমান।

পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ

সিকোয়েন্সগুলিতে নিম্নলিখিত হ্যাশিং ফাংশন (এসইজিইউডি - সিকোয়েন্স গ্লোবালি ইউনিক আইডেন্টিফায়ার) প্রয়োগ করতে সক্ষম হতে পেরে ভাল লাগবে।

CREATE OR REPLACE FUNCTION gfam.get_seguid(p_sequence character varying)
  RETURNS character varying AS
$BODY$
declare
  result varchar := null;
  x integer;
begin

  select encode(gfam.digest(p_sequence, 'sha1'), 'base64')
  into   result;

  x := length(result);
  if substring(result from x for 1) = '=' then

     result := substring( result from 1 for x-1 );

  end if;

  return result;

end;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

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

1
আপনাকে এই নবজাতক সম্প্রদায়ের সাথে পরামর্শ থেকে বিরত রাখতে হবে না, তবে একটি বায়োইনফরম্যাটিক্স প্রশ্নের জন্য, বায়োস্টার.স্ট্যাকেক্সেঞ্জের ডট কমের উত্তর আপনি সন্ধান করতে পারেন। আশা করি এইটি কাজ করবে!
গৌরব

বায়োস্টারের পক্ষে +1 তবে আমি এই অনুসন্ধানটি কঠোরভাবে ডিবি রাখছি।
আলেকসান্দ্র লেভুকুক

@ Jcolebrand, এটি ব্লাস্টের সাথে সম্পর্কিত। আমাদের একটি রফতানি ফাংশন রয়েছে যা FASTA ফর্ম্যাটের ক্রমগুলি লিখে দেয় এবং এটি ব্লাস্টের জন্য একটি বৈধ ইনপুট। তারপরে বিস্ফোরণটি সিকোয়েন্সগুলির বিপরীতে বা বৃহত্তর ডাটাবেসের বিরুদ্ধে হাই-থ্রুপুট সমতুল্য অনুসন্ধান করতে পারে (তবে কেবল ইউনিক্রট তখন ইউনিকপোর্টের চেয়ে বড় হতে পারে)। আমরা সিকোয়েন্স সেট থেকে এইচএমএমও তৈরি করি এবং সাদৃশ্য অনুসন্ধানের জন্য এইচএমএমইআর 2 ব্যবহার করি।
আলেকসান্দ্র লেভুকুক

উত্তর:


7

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

ডকুমেন্টেশন অনুযায়ী :

দীর্ঘতর স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে সিস্টেমটি সংকুচিত হয়, সুতরাং ডিস্কে শারীরিক প্রয়োজন কম হতে পারে। খুব দীর্ঘ মানগুলি ব্যাকগ্রাউন্ড সারণিতেও সংরক্ষণ করা হয় যাতে তারা সংক্ষিপ্ত কলাম মানগুলিতে দ্রুত অ্যাক্সেসে হস্তক্ষেপ না করে। যে কোনও ক্ষেত্রে, সর্বাধিক দীর্ঘতম সম্ভাব্য অক্ষরের স্ট্রিংটি প্রায় 1 গিগাবাইট।

সুতরাং, উত্সর্গীকৃত হার্ডওয়্যারটিতে টেবিলটিকে তার নিজস্ব খুব বড় টেবিল স্পেসে রেখে আপনার কার্য সম্পাদনের লক্ষ্যের জন্য যথেষ্ট হওয়া উচিত। যদি আপনার ডেটাটির জন্য 1 জিবি খুব ছোট হয়, তবে প্রোটবিওর মধ্যবর্তী অভ্যন্তরটি দুর্দান্ত পারফরম্যান্স সরবরাহ করবে:

একটি সিকোয়েন্স বৈশিষ্ট্যটি একটি ট্রিপলেট (আইডি, প্রাচ্য, ii) এর সাথে সম্পর্কিত যেখানে আইডি একটি সিকোয়েন্স সনাক্তকারী (সম্ভবত সিক্যুঞ্জ টেবিলের জন্য প্রাথমিক কী), প্রাচ্যটি একটি বুলিয়ান যা নির্দেশ করে যদি বৈশিষ্ট্যটি ক্রমের একই বা বিপরীত দিকনির্দেশে থাকে, এবং ii হ'ল অন্তঃসত্তা অন্তর্ভুক্ত যা বৈশিষ্ট্যটিকে উপসর্গ হিসাবে উপস্থাপন করে।

অনুক্রমের সম্ভাব্য দৈর্ঘ্য বিবেচনা করে sha1-এ সিকোয়েন্সটি এনকোড করা জিইউইডি তৈরির জন্য খুব বেদনাদায়ক উপায় বলে মনে হচ্ছে।

বিভিন্ন সিকোয়েন্স যদি সম্পর্কিত না হয় তবে সর্বাধিক পারফরম্যান্সের জন্য এগুলি বিভিন্ন ডিস্কে বিভিন্ন টেবিল স্পেসে সংরক্ষণ করুন।


1

আমি মনে করি 50 বিলিয়ন অক্ষর সম্ভবত পোস্টগ্র্রেএসকিউএল দিয়ে আপনার রেকর্ডগুলি কোনওভাবে বিভক্ত না করে আপনি যা করতে পারেন তার সীমাটিকে সীমাবদ্ধ করে দেবে। আমার সন্দেহ হয় যে আপনাকে কিছু উপায়ে কিছু ভাঙার উপায় খুঁজে পেতে হবে। আমি জানি না পোষ্টবিও কোন ধরণের এনকোডিংয়ের অনুমতি দেয় তবে ....

এখানে দ্রুত গণনা: 5 টি অক্ষর এনকোড করতে 3 বিট পুনরুদ্ধার করে, তবে 4 বিট অনুসন্ধান সহজ করে তুলবে কারণ প্রতি বাইটে দুটি অক্ষর এনকোড করা যায়। অন্যদিকে 3 পর্যাপ্ত হতে পারে যদি আপনি 10 বা ততোধিক অক্ষরের গোষ্ঠী অনুসন্ধান করছেন যেহেতু আপনি প্রতি 4 বাইটে 10 টি অক্ষর করতে পারেন। সংক্ষিপ্ত স্ট্রিং অনুসন্ধানের জন্য অনুকূলিত, 50 বিলিয়ন অক্ষরগুলি প্রায় 25gb স্টোরেজ নেয়, একটি কলামে আপনি যা করতে পারেন তার থেকেও ভাল। সংক্ষেপণ সাহায্য করতে পারে, তবে এটি ন্যূনতম সঙ্কুচিত বাইনারি প্রতিনিধিত্বের বাইরে প্রয়োজনীয় একটি বিশাল সংক্ষেপণ স্কেল1GB তে নামার জন্য। দীর্ঘ অনুসন্ধানের জন্য অনুকূলিত হয়েছে, আমরা কেবল 20 জিবি পাই। সুতরাং আমি মনে করি আপনার জিনগত তথ্য ধরণের থাকলেও আপনি জিনিসগুলি ভেঙে ফেলেছিলেন। সেই জটিলতায় থাকা প্রোটিনগুলি আরও একটি চ্যালেঞ্জ হয়ে উঠবে যেহেতু আপনি সবচেয়ে ভাল আশা করতে পারেন 5 বিট নোটেশন যার অর্থ আপনার 32 পিছু 6 রয়েছে, যার অর্থ স্টোরেজের জন্য আপনার সর্বোত্তম কেস প্রতি কলামে 30 গিগাবাইট। সুতরাং যদি না আপনি কম্প্রেশন না পেয়ে আবার সহায়তা করতে পারেন তবে এটি প্রয়োজন একটি বৃহত সংকোচনের হার। আমি ভাল কম্প্রেশন রেট দেখেছি, তবে মনে রাখবেন আপনি এটি চাপ দিচ্ছেন।

সুতরাং আমার প্রস্তাবনাটি এই সমস্যাটি সম্পর্কে সচেতন এবং বাস্তব ডেটা দিয়ে কিছু পরীক্ষা করুন। কিছু ক্ষেত্রে আপনার পঠন পচে যাওয়ার জন্য প্রস্তুত হন।

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