সিতে প্রোটিন কাঠামোর ডেটা পার্স করা হচ্ছে


17

আমার পটভূমি জিনোমিক্সে রয়েছে তবে আমি সম্প্রতি প্রোটিন কাঠামো সম্পর্কিত সমস্যা নিয়ে কাজ করছি। আমি সিটিতে কয়েকটি প্রাসঙ্গিক প্রোগ্রাম লিখেছি, প্রক্রিয়ায় স্ক্র্যাচ থেকে নিজের পিডিবি ফাইল পার্সার তৈরি করছি। আমি সত্যিই শক্তিশালী পার্সার তৈরির বিষয়ে চিন্তা করিনি, আমি কেবল জানতাম যে নিজেকে তৈরি করা হ'ল পিডিবি ফর্ম্যাটটি বোঝার জন্য নিজেকে বাধ্য করার সেরা উপায়।

এখন যেহেতু আমি এই প্রক্রিয়াটি পেরিয়ে এসেছি, আমি কিছুটা শক্তিশালী এবং পরিণত হতে চাই for সি তে কি কোনও ওপেন সোর্স প্রোটিন স্ট্রাকচার লাইব্রেরি প্রয়োগ করা হয়েছে? আমি গুগলে কয়েকটি খুঁজে পেতে সক্ষম হয়েছি, তবে এর আগে আমি এর আগে কখনও শুনিনি এবং এগুলি খুব পরিণত বা স্থিতিশীল বলে মনে হয় না। একটি সামান্য সম্পর্কিত প্রশ্ন: সবাই কি পাইথন ব্যবহার করে এই ধরণের কম্পিউটারের সমস্ত কাজ করছে? বা হোমব্রু কোড?

পুনশ্চ. আমি মূলত একটি লাইব্রেরির সন্ধান করছি যাতে একটি পিডিবি ফাইল পার্সার, বন্ড কোণ গণনা করার জন্য কার্যাদি, বন্ড দৈর্ঘ্য, টোড়েশন কোণ, পৃষ্ঠের অ্যাক্সেসযোগ্য পৃষ্ঠের অঞ্চল ইত্যাদি অন্তর্ভুক্ত থাকে includes

উত্তর:


8

এখানে একটি সি ++ গ্রন্থাগার রয়েছে যা যথেষ্ট পরিপক্ক। এটি সম্ভবত সি হিসাবে পৌঁছানোর মতোই কাছাকাছি আমি নিজে এখনও কোনও ব্যবহারযোগ্য সি লাইব্রেরি পাইনি। আপনি সি ++ লাইব্রেরি ব্যবহার করতে পারেন এবং এখনও extern C { }সি ++ কোড ব্যবহার করে সিতে আপনার বেশিরভাগ কোড লিখতে পারেন ।


1
লিঙ্কটি অপ্রচলিত
xhg

এখানে ডিএসআর পিডিবি লাইব্রেরির বর্তমান বাড়ি: গ্রাফিক্স.স্তানফোর্ড.ইডু
স্টিভেন ডার্নেল

6

ওপেনবেল সি ++, তবে এটি সাধারণ কাঠামোগত জিনিসের জন্য সাধারণত ব্যবহৃত হয় - এর মূল ফোকাস হ'ল রূপান্তর এবং বিস্তৃত বিন্যাসগুলি পড়ার দক্ষতার মধ্যে রূপান্তর। আমি যতদূর জানি এটিতে এসএএস অঞ্চলগুলি গণনা করার ক্ষমতা নেই।


3
শুধু একটি নোট. আমি জানাতে পারি যে ওপেনবেল দুর্দান্ত, তবে জিপিএল, এটির সাহায্যে তৈরি সফ্টওয়্যারটি বাণিজ্যিকভাবে যেতে হলে সমস্যা হতে পারে।
স্টেফানো বোরিনি

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

4

আপনার "সম্পর্কিত প্রশ্ন" দিয়ে শুরু করতে: আমি পাইথনে পিডিবি পার্সিং করি, এমনকি পরবর্তী গতিবেগের জন্য কিছু সংকলিত ভাষায় প্রসেসিং করা দরকার হলেও। পার্সিংয়ের জন্য সি কেবল ভাল ভাষা নয়, বিশেষত পিডিবির মতো অগোছালো বিন্যাসগুলির জন্য নয়। এবং সম্ভবত সে কারণেই সি-তে কোনও স্থিতিশীল এবং পরিপক্ক পিডিবি পার্সার নেই

আপনার লক্ষ্যটি ধরে নেওয়া, পিডিবি থেকে কাঠামোগুলি নিয়ে কাজ করা অনুমান করা অন্য কিছু, পিডিবি ফর্ম্যাটের পরিবর্তে এমএমসিআইএফ ফর্ম্যাটটি ব্যবহার করা। মিমিসিএফ আরও নিয়মিত এবং পার্স করা সহজ। আপনি পিডিবির সংস্করণগুলির চেয়ে পিডিবি এন্ট্রিগুলির এমএমসিআইএফ সংস্করণ থেকে আরও বিশ্লেষণযোগ্য তথ্য পাবেন। আপনি পিএমবি ওয়েব সাইটে এমএমসিআইএফ-এর জন্য একটি সি পার্সার খুঁজে পেতে পারেন (এটি সিআইফ্পারসই বলা হয়), তবে আপনি খেয়াল করবেন যে এর বিকাশ সিআইফ্পারসই-ওবিজে নামক সি ++ রাইটরাইটের পক্ষে ফেলে দেওয়া হয়েছে।


3

আমি জানি এটি সি সম্পর্কে, তবে জিএলগ্রাফিক্স লাইব্রেরি ব্যবহার করে এটি করার একটি দুর্দান্ত উপায় রয়েছে, যা প্রসেসিংয়ে ওপেনজিএল প্রয়োগ করে (সিনট্যাক্সের মতো সি ++ সহ একটি জাভা ভিত্তিক কাঠামো)। ওপেনজিএল মূলত আপনি কোন ভাষা ব্যবহার করেন তা নির্বিশেষে একই, তাই জাভা কোনও পারফরম্যান্সের পার্থক্য তৈরি করে না। যাইহোক, জিএলগ্রাফিক্স লাইব্রেরিতে একটি পিডিবি ভিউয়ার উপস্থিত রয়েছে যা বাক্সটির বাইরে কাজ করে। এর দুর্দান্ত টুইঙ্ক করা সহজ এবং প্রসেসিং ফোরামটিতে সত্যই প্রতিক্রিয়াশীল নিম্নলিখিত রয়েছে has এটি একটি ভাল সূচনা পয়েন্ট হতে পারে।

জিএলজিগ্রাফিকস লাইব্রেরি http://sourceforge.net/projects/gl رافics/files/glرافics/1.0/ GLGRAPHICS / উদাহরণ / PDBview দেখুন

প্রসেসিং http://processing.org/

শেষ অবধি, আপনি এটি পরীক্ষা করে দেখতে চাইতে পারেন (কম 3 ডি কিন্তু এখনও দুর্দান্ত উদাহরণ) http://www.mydisk.se/tgn380/webpage/RECEPTOR/


3

আপনি যদি সি ++ নিয়ে যেতে ইচ্ছুক হন, তবে আমি ESBTL এর প্রস্তাব দেব

পিডিবি ফর্ম্যাটে ফাইলগুলির সাথে ডিল করার পরিবর্তে আপনি প্রোটিন ডেটা ব্যাংক থেকে পিডিবিএমএল ফর্ম্যাটে ডাউনলোড করার কথা বিবেচনা করতে পারেন , এটি আসলে এক্সএমএল। তারপরে আপনি সি এর জন্য আপনার প্রিয় এক্সএমএল লাইব্রেরি ব্যবহার করে PDBML ফাইলগুলি পার্স করতে পারেন (উদাহরণস্বরূপ, LibxML2 সহ )।


1

যদিও এটি পূর্বের সফ্টওয়্যারটির ইচ্ছাকৃত ব্যবহার নয়, আমি ভিএমডি উত্স কোডের মধ্যে থাকা পার্সার এবং সাধারণ প্রোটিন-কাঠামো প্রক্রিয়াকরণ পদ্ধতিগুলি দৃust় এবং বিস্তৃত হিসাবে খুঁজে পেয়েছি ।

ভিএমডি একটি ওপেন-সোর্স অণু ভিজ্যুয়ালাইজেশন সরঞ্জাম। এটি উপযুক্ত হলে প্রসারিত করা তুলনামূলকভাবে স্টাইটাইট-ফরোয়ার্ড, অন্যথায় কোডটি এ থেকে নরখাদক হতে পারে।


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

@khinsen লাইসেন্স রয়েছে ks.uiuc.edu/Research/vmd/current/LICENSE.html এবং এটি আছে উপজাত কর্মসমূহ বিতরণ অনুমতি দেয়। যতদূর আমি অবগত রয়েছি উত্স কোডটি পেতে আপনার নিবন্ধভুক্ত হওয়া দরকার, তবে এটি এক্সিকিউটিয়েবল প্যাকেজ পাওয়ার মতো একটি স্বয়ংক্রিয় প্রক্রিয়া।
স্টিয়ার্ট

ডেরিভেটিভ কাজের ক্ষেত্রে কঠোর বিধিনিষেধ রয়েছে। আপনি এটিকে কেবলমাত্র বিতরণ করতে পারবেন যদি এতে ভিএমডি কোডের সর্বাধিক 10% থাকে তবে এটি ডেরাইভেটিভ কাজের 50% এর বেশি প্রতিনিধিত্ব করতে পারে না। অনুশীলনে, আপনি ভিএমডির কিছুটা পরিবর্তিত সংস্করণ বিতরণ করতে পারবেন না। আপনি কেবল একটি প্যাচ বিতরণ করতে পারেন এবং অফিসিয়াল সার্ভার থেকে লোকদের ভিএমডি পেতে জিজ্ঞাসা করতে পারেন। এটি আমার মানদণ্ডে ওপেন সোর্স নয়।
খিনসন

1

পিডিবি ফাইলগুলি ওপেন-সোর্স (বিএসডি লাইসেন্সধারী) চেমকিট লাইব্রেরি ব্যবহার করে সি ++ এ সহজেই পড়তে এবং ম্যানিপুলেট করা যায় ।

উদাহরণ হিসাবে এখানে এমন কিছু কোড রয়েছে যা হিমোগ্লোবিনের জন্য পিডিবি ফাইলে পড়বে (PDB আইডি: 2DHB ) এবং মোট পরমাণুর সংখ্যা, চেইনের সংখ্যা এবং দ্রাবক অ্যাক্সেসযোগ্য পৃষ্ঠতল অঞ্চলটি মুদ্রণ করবে:

#include <iostream>

#include <chemkit/polymer.h>
#include <chemkit/polymerfile.h>
#include <chemkit/molecularsurface.h>

using namespace chemkit;

int main()
{
    PolymerFile file("2DHB.pdb");
    bool ok = file.read();
    if(!ok){
        std::cerr << "Failed to read file: " << file.errorString() << std::endl;
        return -1;
    }

    Polymer *protein = file.polymer();
    if(!protein){
        std::cerr << "File is empty." << std::endl;
        return -1;
    }

    std::cout << "Number of Atoms: " << protein->atomCount() << std::endl;
    std::cout << "Number of Chains: " << protein->chainCount() << std::endl;

    MolecularSurface surface(protein);
    surface.setSurfaceType(MolecularSurface::SolventAccessible);

    std::cout << "Surface Area: " << surface.surfaceArea() << " A^2" << std::endl;

    return 0;
}

আউটপুট:

Number of Atoms: 2201
Number of Chains: 2
Surface Area: 14791 A^2

আরও তথ্যের জন্য উপরে উপস্থাপিত ক্লাসগুলির জন্য ডকুমেন্টেশন দেখুন:


0

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

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