HPC_Lec_3_(Week_4)___FCIS
السلام عليكم النهاردة ان شاء الله هنشرح  المحاضرة الثالثة في مادة الـHPC قبل ما نبدأ، نصلي على النبي نقول بسم الله ومتنساش تدعى لاخواتنا فى فلسطين
المحاضرة دى انت بنسبة كبيرة قرأتها و اكيد فى حاجات كتيرة مش واضحالك فيها فا ان شاء الله بقى النهاردة هنحاول نبسط المحاضرة دى بس انا مش هبدأ من الslide
اومال هبدء ب ايه انا هبدء بده ايه ده بقى ده كان research للدكتور اصلا فهو المحاضرة اغلبها اصلا من الresearch ده ف احنا هنبدء بالresearch بحيث هنخلصه مش هتحتاج ترجع للslide اصل
تمام تمام ايه بقى المحاضرة بتتكلم عن ايه هى بتتكلم على ان انا هعمل design لarchitecture هيحللى مشكلة معينة المشكلة دى لو جيت تجربها على الكمبيوتر بتاعك انك تحلها بالكمبيوتر بتاعك انت هتاخد أيام
انما احنا مش هناخد ايام ولا حاجة طيب ايه بقى المشكلة دى تعالى ده يعنى يعنى مش شرط تعرف اى حاجة من الPDF ده ده انا عملت search عليه يعنى مش اكتر تمام وهو فى الاول بيقولك ايه بقى
هو ده كان يعنى برضه كان PDF ليه علاقة بال motif finding problem دى بس طبعا بطرق تانية غير اللى هنتكلم عنها يعنى انا بس الغرض من ان انا فتحت الPDF ده عشان بس اديك خلفية ايه هو ال motive ده ماشى
طب الاول نعرف ايه هى الـ Motive Finding problem من غير ما تعرف ايه هو الmotive اصلا هى بكل بساطة انا عايز ادور على Pattern Pattern يتكرر في Sequence  
. sequence DNA يعنى انا عندى DNA
sequence في حروف. طيب? sequence بتاع الDNA بتاعك. في حروف. تمام? وانا بدور على sequence معين جوة الsequence  الكبير ده.
او pattern معين في هذا الsequence الكبير ده الpattern ده بقى انا هسميه الmotive الsize بتاعه ده أصغر من الsequence ده
انا بقيت اعمل اكني ايه اكني عندي كده حاجة كبيرة ماشى وعندي ايه حاجة الsize بتاعها كده مثلا يعني وعمال بقى بمشي بال اعتبره window في فيه الalgorithm اسمه اه sliding window مش مهم تعرفه برضو
بس انا هعتبر ان انا عندى ايه اكنى جبت زى حتة خشبة كده وعمال بمشيها على الsequence بتاعى خشبة مكتوب عليها مثلا شوية حروف وانا عمال بقارن الخشبة دى او الجزء ده او ورقة مثلا جبت ورقة عمال بمشى الورقة دى على كل الsequence هل انت
هل الpattern اللي هنا ده بيساوي الpattern اللى على الورقة؟ لا طب كمل هل الpattern اللي هنا بيساوي وهكذا بقى؟ طب تعالى بقى نتكلم على الmotive نفسه مش هنكمل اللي تحت خالص او حاجة انا بس هنا في الPDF ده عشان
اقول لك ايه الmotive finding problem وأديك بس فكرة ايه هو الmotive يعنى ايه هو بقى الmotive بيقول لك but what is a motive بيقول لك an introduction to bioinformatics هو عموما يعني محاضرة النهاردة هي mix اصلا او تقدر تقول حاجة لا علاقة بالbioinformatics هو مجال برضو بس مو
يعني بيربط الكمبيوتر بالbiology يعني. ففي ناس كتير ممكن حتى عندنا قسم موجود في الكلية يعني. ماشي? بيقول لك بقى ايه هي المmotive دي? هي binding sites فى الDNA بتactivate
gene  زى مثلا ال gene المناعة برضه مش فاهم حاجة خلينا ندخل فى مثال على طول بيقولك مثلا لما فراشة اسمها fruit fly لما تتعدى ال gene بتاع المناعة هيعمل ايه
هيبقى active وهيبدء يطلع protein اللى هيعمل ايه اللى هيقضى على ال pathogen ده مش انا عندى ميكروبات او كده فانا المناعة بتطلع protein تحارب الميكروبات اللى قدامى
ماشى الmotive ده هو اللى بيقول للgene هتشتغل ولا مش هتشتغل فدى حاجة مهمة لل biologists ان هما يعرفوا الmotives دى تمام بس احنا طبعا مش هنكمل لان ده مش الغرض بتاعنا احنا انا بس يعنى احنا الغرض الاكبر
الDesign نفسه اللى هنعمله لحل المشكلة بس ازاى هتعمل Design للمشكلة وانت مش عارف ايه هى المشكلة دى عشان كده اديتك بس introduction عنها طيب تعالى بقى ندخل فى الResearch بتاع الدكتور احنا دى كده خلاص مش هنحتجها فى حاجة يعنى ده  الأهم هو والslides بس هنخلص ده انت يعتبر مش هتحتاج الslide اصلا
تمام فهو ده عبارة عن research يعني طيب يعنى بيقولك ايه ال modets للpaper دى ان احنا هنعمل  parallel architecture لحاجة اسمها associative memory array processor
طب ايه الفرق بين الـ associative memory array و الـ processor دى عن الmemory العادية الmemory العادية انت بتوصلها عن طريق الـ address يبقى انت بتوصلها بالـ content على طول فتقدر تستخدمها بشكل parallel يعني تقدر توصل لأكثر من حاجة بشكل parallel فده يسرع أن انا اقدر اوصل للحاجة
لانه انا قادر اوصلها بشكل parallel تمام فهو يعني ال architecture اللي هنعمله ده هو قايم على فكرة ان انا هعمل comparisons بشكل parallel يعني ايه يعني انا عندي بدل ما انا عمال بقارن جزء
وامشى على اللى بعده وامشى على اللى بعده لو انا عندى مثلا اكت تخيل ان انا عندى اكتر من sequence ماشى والmotive ده انا بدور عليه فى كل الsequences اللى عندى دى فهل انا امشى على ده ولما اخلصه ادخل على اللى بعده ولما اخلصه ادخل على اللى بعده انا كده يبقى الموضوع بطيء انا بقى هنا فى الarchitecture ده لا احنا هنقارن كلهم بالmotive ده
في نفس الوقت تمام وكل ده احنا لسه يعني ما تكلمناش عن الموضوع برضو هنا بقى بيكلمك ايه هي بقى الـ Associative Memory Array Processor دي
و مهم يعنى تعرف عنها لأن الدكتور قال لي في bounce على 10 درجات ليه علاقة اصلا بالassociative memory array ده بس هبقى اتكلم عنه بعد المدى ان شاء الله
يقول لك الbasic building blocks بتاع ال architecture ده هيبقى عندنا 32 bit processing element لو مش فاهم دي هنستخدمها في اي او ال 32 bit او كل الكلام ده احنا لسه هنتكلم عنها و بس ال abstract ده بيديك لمحة كده
ايه اللى هنتكلم عنه فهي الـ Processing Elements دى هتعمل 3 حاجات Load و Comparison فهو بقى بيقولك ايه بقى ال architecture ده هيعمل ايه هيقلل الـ Time عشان نحل اللى هنحل بيه الmotive Finding Problem  وهنستخدم الbrute force algorithm
algorithm عادية بسيطة simple
بس في نفس الوقت باستخدام ال architecture ده هنسرع العملية حتى انا هقولك دلوقتى الcomplexity بتاعها عاملة ازاى تمام فهو يعنى ده بيقولك ان ده
 خطوة لحل مشاكل ليها علاقة بالـ Bioinformatics
تعالوا بقى نبدأ أول حاجة المشكلة هي مشكلة معروفة في مجال ال bioinformatics مجال يربط علم الكمبيوتر بالأحياء ودي محتاجة حسابات كتير أساسا أغلب الحاجات اللي في ال bioinformatics محتاجة حسابات كتير
هتاخد وقت كبير طيب يعنى هنا يعنى بيقولك أن احنا قلنا الmotive هو ده اللى هيقول للgene انت هتبقا active ولا مش active فهو يعنى اللى هينظم فهو  هينظم الgene exper
طيب تعالى هنا نبدأ في الجد تخيل ان انت بتsearch على motive الlength بتاعه 20 تمام with permitted mutations m4 ايه ده انا مش فاهم اي حاجة طيب تعال نفتح Microsoft white board
وقلت افتحه قبل ما ابدأ بس مش مهم.
ماشي انت عندك زي ما قلت لك DNA ماشي
اختار ان هو عبارة عن 600 الlength بتاعه 600 يعني فيه 600 حرف طب ايه الاحتمالات الحروف الممكنة الDNA اصلا هو بيتكون من 4 حروف بس الA والC والG
والT Adenine, cytosine, guanine, thymineانا اصلا كنت فاكرهم من biology لان انا كنت علمى علوم فالمهم يعني فهو دي مش بيتكون غير من الاربع حرف دول بس يعادي يقعدوا يتكرروا يعني مثلا ممكن لاقيه وليكن ايه
T A A C G C اي حاجة بقى فاهم؟ يعني انت تقعد تكرر بقى هو sequence كده انا هفترض ان هو الN ب600
تمام ده كده الsequence انت بقى بتدور على motive انت بتدور على pattern معين جواه الsequence ده طب الmotive ده ايه الحروف بتاعته برضه هم اربع حروف نفس الحاجة اللى هما ايه ال A, C, G, T طب ال length بتاعه ممكن  يتغير بقى على حسب
احنا هنا هنفترض أن الlength بتاعه ب 20 طيب انا بقى معرفش الmotive ده بيتكون من ايه يعنى انا معرفش هل هو ACGT ولا ACCG ولا ولا ايه بالظبط
طب ايه عدد الاحتمالات الممكنة؟ انا عندى الlengh بتاعه 20 صح عدد الاحتمالات لكل حرف او لكل مكان فى ال20 ده كام احتمال 4 احتمالات وينفع يتكرر يعنى ينفع احط هنا A وهنا A انا ممكن اخليه كله متكرر عادى خا
فعدد الاحتمالات قدي ايه؟ 4 يعني ايه يا احط A يا C يا G يا T يبقى 4 طب وهنا برضو 4 طب و هنا 4 لحد بقى ايه؟ حد ال برضو 4
من الـpropability يبقى كده نقدر نقول ان عدد الاحتمالات لما يكون الlength ب 20 . 4 اوس L تمام طبعا عشان برضو لو انت مش فاكر اول probability او كده تخيل انا عندي
2 في 2 مش ده عبارة عن 2 اوس 4 لا 2 اوس 2 2 اوس 2 طب لو عندك 2 في 2 في 2 2 اوس 3 اهو تمام هنا نفس الكلام أنا عندي 4 في 4 فى 4 في 4 لحد
لحد ضربتها في الاربعة دي في نفسها L مرات فبقى اقول 4 أوس L اللي هو هنا في حالتنا يعني 4 أس 20 تمام؟ تمام طيب أنا بقى ما عنديش sequence واحد يعني أنا بقولك أن الsequence  الواحد
600 انا بقى مش عندي sequence واحد للDNA لا انا عندي مثلا 20 sequence فانا هسمي عدد الsequence  بT انا عندي بقى 20 sequence تقدر تقولي الcomplexity كام؟ يلا بقى وحوش الalgorithm algorithm
اربعه اس احتمالات للmotive لان انا انا بقعد بص انا بقعد اgenerate احتمالات مختلفة للmotive ده واقعد اقارنو في الsequence واشوف ايه اكتر اكتر pattern متكرر في الsequence
تمام فاحنا هنضطر نعدي على كل الاحتمالات زى 4 اوس L هتضربها في ايه بقى؟ الاول انت هنا محتاج تعمل كام comparison يعنى مثلا ان بقولك ان الL ب20 وال N ب 600 فانت عمال بقى بتمشي على ال600 دول تأخذ مثلا اول
أول كام؟ أول 20 طيب اللي بعدهم؟ من أول هنا ال20 اللي بعدهم وهكذا يعني ايه برضو عشان أنا مش فاهم حاجة تعالي أنا أخدها على مثال أصغر تخيل أنا عندي الأرقام دي
1 2 3 4 5 ماشى أتخيل معايا بقى ان انا بقولك انا عندي 5 أرقام و بدور على رقمين معينين ورى بعض طيب أنتعشان تدور على رقمين معينين ورى بعض هتعمل ايه؟
نعمل window الsize بتاعة 2 ونقعد نمشي على كل رقمين ورى بعض هل انتوا الاتنين؟ لو اه ماشي لو لأ تعالى بقى نبدأ ناخد الاتنين اللي بعدهم اللي هيبقى من اول الاتنين لحد التلاتة ما ينفعش تعالى ناخد من اول التلاتة للاربع
من أول الأربعة للخمسة. انت هنا عملت كام مقارنة. شايف انت عملت الاول واحد واثنين. كده اتنين وتلاتة. كده تلاتة واربعة. كده أربعة وخمسة. ده كده من واحد لتنين. ادى واحد. من اتنين لتلاتة. يبقى اتنين. تلاتة لاربعة يبقى تلاتة. من أربعة لخمسة يبقى كام. أنا عملت اربع
comparison تمام طيب وانا ال n هنا كانت بكام ال n ب 5 و ال window size او ال L احنا هنا عندنا ال L كان ب 20 هنا انا بقولك ان ال window size ب 2 احنا كنا بندور على رقمين ورى بعض
فيبقى الL احنا بندور على 20 رقم ورى بعض هنا  احنا بندور على رقمين ورى بعض فال L هنا ب 2 طيب احنا بقى طلعنا عدد المقارنات ب 4 تقدر تطلعلى Relation ما بين ال N و الL تطلعلى ال 4 دى اه هتكون ايه N-L
دي هتطلع لك كام؟ هتطلع لك ثلاثة. لما تزود عليها واحد هتساوي أربعة. يبقى ده كده ثابتة. تقدر تجيب بيها عدد المقارنات. يبقى هنا بقى لما أقول لك أنت هتعمل كام كام عملية comparison للsequence ده كله بالpattern اللي عندك اللي هو بـ20 ده، هتقول إيه؟
هتقول انت عندك الN ب600 ناقص الL اللي هو ب20 زائد واحد 600 ناقص 20 ب580 اجمع لها واحد يبقى 500
81 ده كده عدد الـ comparison اللي ممكن تحصل. طيب أنا قلت لك عدد الاحتمالات هنا بتاعة الـ motive في 4^l، هعمل كام عملية comparison؟ قلنا n - l + 1. يعني أنا أقدر أقول إيه؟ إحنا عندنا هنا في الـ في الـ زي ما اتعلمت في الـ algorithms إن ما بنحطش يعني constants أو كده.
فهنحط n بس. يبقى في n. في إيه بقى؟ في عدد الـ sequence اللي موجودين. ما هو أنا ما عنديش sequence واحد أنا عندي T sequence. أنا قلت لك إن هو بـ 20. ممكن نخلي الـ l دي بـ 16 بس عشان يعني.
ما يبقاش الـ l زي الـ t وتتلخبط يعني أو حاجة أو الـ l الـ size بتاع الـ motive بـ 16 فيبقى كده احتمالات الـ motive 4^16. تمام؟ وهنا بدل ما نقول -20 نقول له -16.
-16 + 1. تمام؟ طيب. كنا في إيه بقى؟ في t. لأن أنا عندي 4^l احتمالات.
أضربه في الـ n وقلنا الـ n دي هي هي بديل لـ n - l + 1 اللي هي عدد الـ comparisons بس إحنا هنا ما بنكتبش constant constants. تمام؟ فـ 4^l في n في t اللي هم عدد الـ sequences اللي عندي.
الـ complexity زي كده تاخد أيام عقبال ما نحل المشكلة دي. تمام؟ فده اللي اضطرينا إن إحنا نعمل الـ design ده. تمام؟ هو هنا بقى ده اللي كل اللي اتكلم عليه. أنا عندي آه تمام الحمد لله إن الـ screen بتعمل share كنت خايف أنا ما كنتش بعمل share. هنا أهو بيقول لك إن الـ t.
آه إحنا كنا واقفين هنا، permitted mutation. آه الـ m بـ 4 دي دي اللي أنا قلت لك عليها عدد الحروف. أنا عندي الـ length بتاعه 20 عدد الاحتمالات في كل حرف هم 4 عشان كده قلنا إيه؟ 4^l. طيب عندي كام sequence؟ 20.
الـ size بتاع كل sequence 600. فبيقول لك بقى لو أنت هتشتغل brute force تيجي بقى تحسب الـ complexity هتطلع إيه؟ 4^l في n في t ده نفس اللي إحنا حسبناه بالضبط. 4^l ده اللي هم عدد الاحتمالات.
تمام؟ وهنا n - l + 1 ده اللي هو عدد الـ comparison. عشان كده بقى الـ complexity 4^l × n × t. أهو لو هنشغلها على جهاز زي كده أهو هتاخد 70 يوم، تقعد 70 يوم عشان تاخد النتائج.
ف إحنا عشان كده هنشتغل إيه بشكل parallel. هنعمل إحنا الـ design اللي هيحل المشكلة دي. بيقول لك يعني إن ده مشكلة زي كده ينفع يعني نحلها parallel.
الـ والـ algorithm دي مش complex أصلاً. آه هنا بيتكلم على الـ associative processing system وإيه الفرق ما بينها يعني وما بين الـ الـ اللي هو الـ لو مش associative يعني إن هنا الـ الـ memory اللي أنا بأوصل لها دي.
بأوصل لها عن طريق الـ content الـ content نفسه فأقدر أوصل بشكل parallel بدل ما أنا بستخدم الـ locations في الـ memory العادية اللي أنت عارفها يعني. تمام فـ فأنت عندك bit-parallel وبتـ serial فإحنا هنشتغل على إيه؟ على الـ bit-parallel. عشان ده أسرع.
ف هو هنستعمل يعني حاجة اسمها الـ associative associative associative memory array processor اللي هنحل بيها المشكلة دي. ماشي؟ أهو bit-parallel organization. بيتكون بقى من إيه الـ A-map ده؟ خلاص بقى نقول على طول A-map بدل ما نقول associative memory array processor هو اختصار ليها.
هي بتتكون من إيه؟ بتتكون من P-Es، إيه الـ P-Es دي؟ دي processing elements. دي بتخزن المعلومات على على specific window. يعني إيه الـ specific window دي؟ مش إحنا قلنا.
هنقسم الـ DNA ده لـ windows. اللي هم ممكن نقول عليهم اللي هم كام؟ n - l + 1 اللي هم عدد المقارنات، ما أنا هقارن الـ window الأولانية، بعد كده أshift خطوة والـ window أبدأ بقى في الـ window اللي بعدها، أshift خطوة وأبدأ في الـ window اللي بعدها وهكذا بقى، ف أنا قسمت الـ DNA بدل ما كان.
600 حرف أنا قسمته لـ window لـ windows، عددهم n - l + 1 وكل window الـ size بتاعها كام؟ l اللي هو 16. تمام؟ ف أنا عندي بقى إيه؟ ف أنا عندي B-E.
الـ اللي هي الـ processing الـ processing elements دي. تمام؟ عشان هستخدمها لكل مقارنة. ما أنا مش فاهم، يعني أنت كده هتقول لي.
إن عدد الـ P-Es ده كام بالظبط؟ n - l + 1. اللي هو عدد المقارنات اللي عندي. تمام؟ عشان كده هو بيقول لك إيه؟ هي store about specific window. ما إحنا لسه قايلين بقى إحنا طالما لكل window.
B-E يبقى عددهم كام؟ n - l + 1 اللي هم عدد الـ windows اللي عندي. يبقى كده عدد المقارنات n - l + 1، عدد الـ windows n - l + 1. ما هو هو عدد المقارنات هو هو عدد الـ windows. تمام؟ ف هو قال لك المعلومة اللي أنا قلتها.
الـ A والـ C والـ G والـ T. الـ DNA ما بيتكونش غير من الأربع حروف دول. طيب هتقول لي بقى أنت في العادي بتمثل الـ character بكام؟ الـ size بتاعه؟ بـ 1 byte اللي هو 8bit. هنا بقى اشتغلناها بشكل أذكى شوية. مش أنا عندي أربع حروف بس؟ آه. طب إيه الاحتمالات الممكنة؟
بتاعة الـ الأربع حروف دول. يا A يا C يا G يا T. طب إيه رأيك نستخدم 2bits بس بحيث أنا ممكن أقول له إيه؟ لو 00 يبقى حرف الـ A مثلا يعني، لو 01 يبقى حرف الـ C، لو 10 يبقى حرف الـ G، لو 11 يبقى حرف إيه؟ الـ T.
عشان كده إحنا هنستخدم بس 2bit لكل لكل character. تمام كده بدل ما نستخدم 8bit. ما إحنا بنعمل design وعايزين نوفر. تمام أهو عشان كده هنمثل كل character باستخدام 2bits بس. يا 00 يا يا 01 يا 10 يا 11.
طيب أنا بقى لو عندي أنا قلت لك إن الـ motive الـ length بتاعه l. يبقى أنا لكل motive محتاج كام bits؟ أنا هنا في حروف. أهو الـ l هو l. ماشي؟
الـ size بتاعه l يعني ماشي؟ l حروف. طب كل حرف محتاج يتمثل بكام bit؟ هم 2bits. عشان لو 00 مثلا يبقى الحرف اللي هنا ده حرف الـ A مثلا. لو 01 يبقى الحرف اللي هنا ده مثلا حرف الـ C. لو 10 يبقى حرف الـ G. لو 11 يبقى حرف الـ T.
يبقى كده أنا كل حرف ليه 2bits. يبقى كده عدد الـ bits الكلية هتبقى كام؟ 2l. مثال، لو أنا عندي أنا بقول لك إن الـ motive ده فيه أربعة characters بس يعني الـ length بتاعه أربعة تمام.
طيب الـ length بتاعه أربعة. وكل حرف محتاج 2bits. كل حرف محتاج 2bits. أهو. يبقى الإجمالي كام؟ 2 اللي هم عدد الـ bits لكل واحد في أربعة اللي هم العدد بتاعهم عشان كده قلنا إيه؟ إن عدد الـ bits هنا 2 في l.
في الآخر أنا هقول لك حاجة يعني هقول لك على كذا سؤال كده يجمع لك كل الـ الحاجات اللي ليها علاقة بكده بحيث إن أنت إيه؟ هتكتب ورايا. يعني إن شاء الله الدنيا تبقى بسيطة معاك يعني. طيب. إحنا كنا واقفين فين؟ آه.
ماشي. ف هو هنا عشان بيقول لك كده يبقى لكل لكل mer الـ mer ده اللي هو الsequence احتمال احتمال الـ motive اللي عندي مش أنا عندي كذا احتمال قلت لك؟ ف هو يعني بيقول لك لكل mer بقى فيهم لكل احتمال motive فيهم.
او لكل window length، ما هو إحنا قلنا الـ window length هي هي الـ length بتاع الـ motive هتبقى عبارة عن إيه؟ 2 في L binary bits. تمام؟ ف هو هنا أهو، الـ DNA قسمناه لـ n - l + 1. ده الكلام ده كله اتكلمنا عليه في الـ Microsoft Word. طيب. طيب، كل window بقى.
الـ size بتاعها l معروفة. هتتخزن فين؟ في window register. ويبقى كل window هتتخزن في register. الـ size بتاعه لازم يكون على الأقل قد إيه؟ ما إحنا إحنا لسه قايلين هنا أهو بص. الـ size بتاع الـ window دي مثلا لو l يبقى أنا محتاج كام bit? يبقى 2l. يبقى الـ size بتاع الـ register اللي هيخزن ده قد إيه؟
على الأقل 2l. أهو. 2l. تمام؟ يبقى أنا كده أول حاجة اتكلمنا عنها هي الـ register. هو ده الـ ده الـ architecture اللي موجود يعني. بس هنا بيتكلم عليه واحدة واح.
فالـ فده كده الـ register اللي هيشيل لازم يكون على الأقل 2l يعني أكبر من أو يساوي الـ 2l دي. فـ وبعد كده أنت عندك l-mer generator.
اللي هو ده. l-mer generator. الـ l-mer generator ده هيعمل إيه؟ مش أنا عندي قلت لك عدد الاحتمالات الممكنة للـ يعني أنا ما أعرفش الـ motif ده بيتكون من إيه أصلاً. طب عدد الاحتمالات الممكنة لو الـ size بـ 16.
4^16. ما هو أنا كل مكان عدد الاحتمالات بتاعة الحروف يا إيه؟ يا A يا C يا G يا T. أهو نفس اللي كنا عاملينه هنا يعني. في إيه؟ كنا كاتبينه أهو.
الـ 4^l. تمام فهو ده اللي هيعمل بقى كل الاحتمالات الممكنة اللي هم 4^l. ده الـ l-mer generator. هو عبارة عن counter يعني بيقعد يـ زي يعد وبتاع. طب كل واحد فيهم عبارة عن إيه؟
ما هو ده هيعمل لي كل الاحتمالات الممكنة للـ للmotive. طيب الـ length بتاعه قد إيه؟ بتاع كل احتمال؟ 2l bits. ما إحنا لسه قايلين. خلاص بقى اتثبتت.
يبقى كل واحد هتضرب في 2 عشان ده عدد الـ bits بحيث لو 00 يبقى A لو 01 يبقى C لو 10 يبقى G لو 11 يبقى T. خلاص كده عرفنا. الـ l-mer generator ده بقى بيـ generate الاحتمالات بتاعتي بتاعة الـ motive ده بشكل بشكل sequen.
أما بقى عملية المقارنة زي ما قلنا فوق في الأول، دي بقى بتـ بتتم بشكل concurrent. تمام؟ بشكل parallel. حتة المقارنة بقى إن أنا أقارن الـ يعني بص أنا أنا عندي أنا أنا عندي motive. جبت مثلا احتمال أول احتمال خالص اللي هو إيه
يعني بص الـ l-mer الـ l-mer generator هيقعد يطلع لي في احتمالات اللي هو مثلا إيه؟ A A A A لو مثلا أنا الـ length بتاعي بـ أربعة مثلا لو الـ l بـ 4.
تمام فالاحتمال اللي بعده A مثلا A A C. اللي بعده A A G. اللي بعده A A T. نبدأ نغير بقى نقول مثلا A A C A وهكذا بقى يقعد يحط لك كل الاحتمالات الممكنة. طب هيجيبهم لك إزاي الاحتمالات دي؟
أحنا قلنا خلاص بقى نقدر نمثل كل حرف بـ 2bits. فيبقى إزاي بقى؟ تعالى نمسك أول character مثلا نقول إن هو هيبقى 0 0. ده كده أول character. تاني character 0 0. تالت character 0 0 برضه. أنا بقول لك هنعتبر مثلا إن حرف الـ A هو 0 0. رابع character 0 0.
برضه. طب لو هنقول A A A C مثلا؟ برضه هنا 0 0 0 نيجي عند آخر واحد نقول له إيه؟ أنت 0 1 مثلا. وهكذا بقى. فـ بكل بساطة هو counter عمال بيعد فبيجيب لي كل الاحتمالات الممكنة. الـ size بتاعه قد إيه؟ 2 في l. شايف؟ هنا عندي أربع حروف.
ولكن استخدمت كام bit؟ استخدمت 8bit اللي هي الـ 2 في 4. تمام كده؟ تمام. ماشى ف أنا بقى لما مثلا بطلع ده.
ده كده احتمال أهو. أقارنه بإيه؟ أقارنه بـ window من الـ windows اللي عندي دي اللي أنا طلعتها من الـ sequence. يبقى أنا بطلع احتمال لـ motive وأقارنه بـ window موجودة في الـ DNA. تمام؟ وأقعد بقى ألف على الـ sequence كله. طب ما نفعش الاحتمال ده أجرب الاحتمال اللي بعده وأقعد أقارن
ما نفعش أجرب الاحتمال اللي بعده وأقعد أقارن. العملية بقى هتتم بشكل إيه؟ parallel. أما الـ الـ generate بتاع الـ sequen بتاع الاحتمال نفسه ده بيتم بشكل sequential. يبقى أي حاجة parallel أما الـ l-mer generator ده اللي بيشتغل بشكل إيه؟ sequen.
طيب هنا يعني كان كان بيقول لك يعني باقي الـ paper بتتكلم عن إيه أو كده. يبقى ده كده الـ organization بتاعتها. اتكلمنا على الـ l-mer ماشي؟ ده اللي هو هيطلع لي sequen.
و هنا دي الـ memory اللي أنا هعمل بيها إيه؟ أنا أنا دلوقتي عايز أقارن صح؟ ف أنا هقارن الـ كل كل sequence أو مش كل sequence كل pattern طلعناه، كل احتمال طلعناه للـ motive هنقارنه.
تمام هنقارنه بالـ sequence. وعندنا شوية outputs بص إحنا لسه هنتكلم عن كل واحدة فيهم بالتفصيل فخلينا نسيبنا من الرسمة دي وبعد كده هو الأول هيبدأ يتكلم عنهم أهو واحدة واحدة وبعد كده إيه؟ نرجع تاني للرسمة. فخليني ولا كأني قلت أي حاجة عن الرسمة دي تمام؟ طيب.
فالـ organization بيتكون من إيه؟ من input input unit أهو الـ input unit ماشي؟ إيه كمان؟ associative memory array processor اللي هو اللي في النص ده ماشي؟ وcentral control unit ماشي؟ اللي هي اللي فوق دي. وإيه كمان؟ وoutput. طيب، خلينا بقى إيه؟ هيمسك بقى كل واحدة و.
يعني يتكلم عنها بشيء من التفصيل. أول حاجة هيتكلم على الـ أهو الـ l-mer generator اللي هو اللي فوق ده. والـ window register.
window register array. إحنا اتكلمنا إن لكل يعني لكل لكل window هخزنها في register. طب هو أنا عندي window واحدة؟ لأ ده أنا عندي n - l window. يبقى أنا محتاج إيه؟ array من الـ processors. فنسميها إيه؟ هنسميها memory. حلو كده؟ يبقى ده كده الـ mer اللي هقارنه بالـ.
windows اللي موجودة كلها فين؟ في الـ memory دي. وكل window متخزنة جوة إيه؟ جوة register. الـ size بتاعه قد إيه؟ 2 في l. عايزك تقعد تجمع كده معايا. فالـ l-mer هيطلع لي احتمال من الاحتمالات الممكنة زي ما عملنا هنا كده. تمام؟ فالـ l-mer generator يقعد يطلع لي احتمالات زي كده.
ما نفعش يجرب الاحتمال الاحتمال اللي بعده ويزود دي بواحد بقى، فاهم؟ يبقى A A A C مثلا. طب المرة اللي بعدها يخلي ده مثلا 1 0 فيبقى A A A G. طب 1 1؟ A A A T. بعد كده المرة اللي بعدها يغير في ده مثلا ويثبت ده و وهكذا بقى، فاهم؟
عشان يجيب لك كل الاحتمالات الممكنة. يبقى اتكلمنا على الـ l-mer generator وأنت كده فهمته خلاص. إيه كمان؟ الـ l-mer generator هيقارن آهو هيقارن أنا طلع لي sequence من الـ l-mer generator أو patter.
أقارنه بكل الـ windows اللي موجودة عندي. أنا هو عندي memory تمام؟ عبارة عن إيه؟ عبارة عن registers. عددهم قد إيه؟ عدد الـ windows اللي عندي اللي هم عددهم قد إيه يعني؟ n - l + 1.
دي متثبتة، آه متثبتة. ما هي دي عدد المقارنات. القانون اعرفه. أهو همسك بقى الـ pattern ده وأقارنه بالـ window الأولانية، وأقارنه بالـ window التانية والتالتة والرابعة والخامسة وهكذا بقى. تمام؟ وكل ما ألاقي window نفس.
الـ pattern ده هزود الـ counter بواحد. أنت بتساوي؟ آه، طب أنا هحط واحد. خلاص زودنا واحد. أنت بتساوي؟ آه، أنا هحط واحد. أنت بتساوي؟ آه. وهكذا بقى. طب أنت هنا مثلا ده مش بيساويه خلاص حط 0. نجمع 0 يبقى ولا كأننا ضفنا حاجة. فاهمني؟ ده اللي بيحصل بالضبط. ف أنا عندي إيه؟
array زي كده، memory array زي كده، كل كل جزء فيه عبارة عن إيه؟ register. register شايل إيه؟ شايل الـ window اللي هقارنها بالـ بالـ بالـ pattern اللي أنا طلعته. طب الـ register ده أهو الـ register أهو. الـ size بتاعه قد إيه؟ 2L.
L ده الـ الـ يعني الـ length بتاعي بتاع الـ motive اللي أنا طلعته وضربته في 2 عشان إيه؟ عدد الـ bits لكل حرف هو 2. خلاص كده؟ يعني أتمنى تكون وضحت لك. لأن المحاضرة دي فيها تفاصيل كتير يعني زي ما أنت شايف إحنا بنقرأ في paper أصلاً مش.
يعني في ورقة بحث ف يلا. خلاص أنت كده عرفت إيه هو الـ l-mer generator وعرفت إيه هو الـ window register array. أهو W R window register. الـ l-mer generator بيتكون من إيه بقى؟ من counter زي ما قلت لك في الأول.
عشان يقعد يعد من أول 0 لحد 2L - 1^ 2 .  2L - 1. لأن الـ size بتاعه هو فيه 2L bits. فكده هيقدر يعد من كام؟ من 0 لحد يعني عشان برضه أفهمك الحتة دي.
أنت عارف لو أنا عندي 3 bits زي كده. فأصغر قيمة هي 000. 000. طب أكبر قيمة 111. اللي هو يعني من 0 لحد لحد 2 ^ 3 اللي هو بـ 8 - 1.
طيب أنا بقى ما عنديش 3 bits لأ أنا عندي 2L bits زي ما اتكلمنا. يبقى أنا كده أقدر أعد من 0 لحد 2^2L - 1. من 0 لحد 2^2L - 1.
طيب. الـ window array الـ window register array ده بيشيل إيه؟ بيشيل الـ generated windows. عشان أنا عمال بـ generate windows مختلفة، احتمالات مختلفة للـ motive.
اهو عشان كده بقى دي array. بتخزن لك كل window في specific window register. ف يبقى أنا عندي مجموعة من الـ register، كل register فيهم شايل window، جمعناهم كلهم في إيه؟ في array كده. طيب. فالـ input بقى هو عبارة عن إيه؟
الداتا بتاعة الـ الـ الـ l-mer ده اللي هو خلاص بقى l-mer دي يعني خلاص ده احتمال لـ motive معين ده ده أو pattern معين لـ motive إحنا طلعناه. يبقى أنا عندي الـ l-mer ده الـ motive وعندي الـ DNA sequence اللي أنا هدور فيه على الـ mer ده. تمام؟
الـ الـ DNA sequences. تمام؟ عشان نعمل بقى المقارنات بشكل إيه؟ parallel جوه الـ associative memory array processor ده. برضه هنتكلم لسه بتفصيل أكتر.
طيب. يبقى كده أنت أنت عرفت الـ l-mer generator والـ array. خلاص دول خلصنا منهم. ده كده بيشيل الـ الـ pattern اللي طالع. وده بيشيل كل الـ windows المتاحة اللي عندي. تمام؟
هو طبعًا يعني في هنا نقطة بس بسيطة كنت بأقولها للتوضيح يعني. أو لا يعني خلاص هو ده يعني 2l ده. أنا كنت أنا كنت بتكلم على ده. هو أنا فعلاً كنت بأتكلم على ده يعني بس احتياطي لا أكون كنت أقصد الـ.
اللي طالع من الـ l-mer generator. لأ إحنا إحنا اللي طالع من الـ l-mer generator بنقارنه بكل register شايل إيه؟ شايل window من windows الـ DNA نفسه. طيب. يا مسهل يا رب.
ماشي. يبقى أنت كده خلاص عرفت دول، تعالى بقى نتكلم على الـ A-map. بيتكون من إيه بقى الـ A-map دي؟ بتتكون من slices. slices طب يعني برضه قرب لي الصورة أكتر. تعالى كده نشوف أهو. شايف؟ slices أهي. كل slice شايل.
sequence. كل يعني دي كده أهو المربع ده كده slice. اللي بعده ده slice. اللي بعده ده slice. يبقى ده الـ input أهو. ماشي؟ ودول الـ slices اللي بنتكلم عليهم. مش إحنا قلنا عندنا أكتر من sequence؟ يعني هنا الـ DNA ده ده ده كده الـ sequence واحد. أنا بقى عندي DNA تاني، sequence تاني، DNA.
تمام، فالتاني ده بحطه إيه؟ في slice لوحدها. تمام؟ فالـ DNA slice ده لـ يعني بص ده كده قسمناه لـ windows لـ windows وحطيناه فين؟ في register والـ registers دي شلناها فين؟
في memory array. ده كده للـ sequence الواحد. طب إحنا الكلام ده هنعمله لكل sequence. يعني الـ sequence التاني ده. أهو ده DNA sequence برضه. برضه هنعمل له إيه؟ برضه هنقسمه لـ windows. كل window تتخزن في register. والـ register نشيلهم في memory.
خلاص؟ الكلام ده هنعمله معاهم كلهم. فيبقى فيبقى لكل DNA عندنا slice. slice فيها كل الحاجات دي متكررة بقى، تمام؟ لكل slice في عندي الـ memory الخاصة بيه. طيب، خليني نرجع تاني.
آه. كنا واقفين هنا. يبقى أنت خلاص عرفت الـ associative memory array عبارة عن إيه؟ فيها slices. طب كل slice بقى لإيه؟ لـ specific DNA sequence ده اللي لسه قايلينه. طب وكل كل كل slice s يعني.
عنده set of processing elements. الـ PEs دي عددهم قد إيه؟ ها فكر كده. أقل عدد n - l + 1. اللي هو عدد الـ windows. يبقى لكل window عندي عندي إيه؟ عندي PE. لكل window عندي processing element.
in addition to match a scoring unit. إيه بقى الـ scoring unit دي؟ مش أنا بدور على أكتر pattern متكرر؟ آه. يبقى أنا أمسك بقى كل أنا حتى الكلام ده قلته لك هنا أهو بص. قلت لك إيه؟ لو زيه هيزو.
هيزود الـ counter. أنا مسكته الpattern اللي طالع ده أقارنه بالـ window دي. أنت شبهي؟ آه. طب زود الـ counter يا ابني. اللي بعده يقارنه، يعني نفس نفس الـ pattern أهو هيلف بيه على كل الـ windows اللي عندي اللي متخزنة في الـ register. قارنته بالـ window الأولانية، أنت شبهي يا ابني؟ آه، زود. قارنته بالـ window التانية، أنت شبهي؟ آه، زود. قارنه باللي بعدها، أنت شبهي؟ زود. وهكذا .
تمام ف أنا يبقى عندي scoring unit. unit بتـ أصلاً أنا بأقول لك زود، طب أنت هتزود فين؟ فين فين الجزء المسؤول عن إن أنت عمال بتزود فيه ده؟ أو بيحسب لك العدد؟ الجزء ده هو بنسميه MSU اللي هو match scoring unit. من اسمها، match اللي هو لو متطابقين.
scoring unit. يعني بتزود في حالة إن فيه تطابق. طيب الـ S الـ S دول هم إيه؟ عدد الـ slices. لازم يكونوا أكبر من إيه؟ عدد الـ sequences. يعني هنا في الـ في المثال ده أنا قلت كنت قايل لك إن إحنا عندنا  sequence DNA  20.  فأنا هيبقى محتاج كام slice؟ على الأقل خالص 20 sli.
تمام. معلش أنا حاسس إن يعني عارف إن المحاضرة ممكن تكون دسمة شوية بس يعني حاول تجمع كده معايا أو تعيدها تاني. تمام؟ فعلى الأقل يبقى إيه؟ أكبر من عدد الـ sequences. طب number of PEs؟ لسه قايلها لك دلوقتي.
لازم يكون أكبر من n - l + 1. أهو لكل لكل window محتاج PE. ولسه يعني هنقول يعني الـ PE دي نستخدمها في إيه؟ طيب. طيب الـ M S U بقى؟ اللي هو الـ.
match scoring unit. مش هحتاج غير واحدة لكل slice. أهو for each slice أنا محتاج واحدة بس. ما هو أصلاً أنا يعني أنا هنا بص دول كده كلهم على بعضهم أهو كلهم بيروحوا يصبوا في الـ unit.
ده اهو. كل ما حد يبقى متطابق معاه يزود، يزود، يزود ويخزن في الـ unit دي بس. ف أنا محتاج unit واحدة اللي بس لكل slice. ف يبقى كده أنا لو عندي 20 slice أو 20 sequence DNA يبقى أنا محتاج كام unit من الـ MSU؟ 20 برضه. تمام؟ يعني اعتبر إن كل DNA.
لكل الحاجات الخاصة به لوحده تمام؟
أهو. طيب، الـ P... الـ PE ده بقى اللي احنا عاملينه؟ الـ PE ، الـPE  اللي هو الـ processing element ده بيعمل إيه ده بقى؟ ده بيعمل processing للdata. أيوه يعني إيه برضه؟
إن أنا هعمل load و simple comparison وبعد كده هـ match. يعني إيه برضه؟ مش أنا هنا أنا قايل لك إن الـ PE عددهم قد عدد الـ windows؟ فأنا دي window أهو، فلها PE. هتعمل إيه؟ أنا جاي لي pattern، هتعمل له loa...
أهو، هنعمل load، بعد كده نقارن، ولو هم متساويين هنعمل إيه؟ هنزود. بس، فأنا عشان كده محتاج لكل window PE. طيب.
أهو بتعمل تلات حاجات: loading، comparison، matching. أهو لكل slice فيها الـ match counter اللي بيـ represent
الـ بيعمل represent للـ motive المعين اللي ظهر لي أو الـ k-mer ده. k-mer قلنا احتمال لـ motive، احتمال ممكن للـ motive ده. أهو بص عندي تلات حاجات بتـ count أهو، L-mer count register.
الـ L-mer count logic، L-mer register. إيه الفرق ما بينهم؟ الـ L-mer count register ده بيحسب لي عدد ظهور الـ motive ده للـ single slice. أهو، مش أنا هنا كده؟
دي كده slice واحدة، فيها الـ sequence واحد، sequence DNA واحد. فأنا دي ليها بقى register عشان يحسب لي عدد احتمالات ظهور الـ sequence أو pattern جوة إيه؟ جوة الـ sequence ده.
حلو كده؟ يبقى أنا كده عندي register عشان يحسب لي عدد مرات ظهور الـ pattern اللي طلع لي ده في الـ sequence، عشان في الآخر أنا محتاج أنا يهمني أعرف إيه؟ أكتر عدد ظهور لـ pattern معين، عشان كده محتاج الـ إيه؟ الـ L-mer count regi.
الـ L-mer count logic... إحنا قلنا ده للـ slice الواحدة، طب هل أنا عندي slice واحدة؟ لأ أنا عندي 20 slice. فيبقى وكل slice فيهم ليهم.. ليهم إيه؟ ليهم MSU خاصة بيهم، صح؟
كل واحد فيهم ده مثلا طلع قيمة أو عدد مرات ظهور pattern معين جوه الـ slice دي، فإحنا عايزين نعرف بقى مجموع ظهور الـ pattern ده في كل الـ slices، في كل الـ slices، مش الـ slice دي بس. عشان كده الـ L-mer count logic ده بيحسب لك عدد مرات ظهوره في كل الـ slices.
مش الـ slice الأولانية أو التانية أو التالتة بس، لأ، بيجمع لك كل مرات ظهوره فيهم كلهم، ونخزنهم فين؟ هنا.
تمام؟
أما بقى الـ L-mer register، ده بقى الناتج خلاص النهائي اللي هيطلع على الـ output. فأنا هطلع بقى على الـ output أقول له إيه؟
الـ L-mer ده كده الـ register أو الـ... الاحتمال... أكبر احتمال عندي للـ motive أو الـ pattern اللي لقيته، وده الـ count بتاعه، بقول له ده إيه؟ ده الـ count بتاعه.
أقول له ده ده طلع كام مرة.
فيبقى في الآخر بقى إيه؟ أنا كده طلعت بالحل، أنا لقيت pattern، قال لي إيه أكبر pattern ظهر...
وظهر كام مرة. ده كده باختصار. فخلينا نكمل بقى.
أصلًا مش محتاجين نقرا خلاص، أنا قولت لك أغلب الحاجات، بس خلينا يعني إيه... عشان برضه نبقى عدّينا على كل حاجة.
 إحنا كنا واقفين فين؟
أه، young motive found in each slice provided, provides the match count that represents the occurrence of the generated L-mer into  specific DNA sequence، تمام؟ يبقى لكل DNA sequence عندي count خاص بيه.
أهو، الـ count بتاع كل slice بعد كده بيروح على الـ output... على output unit.
ماشي؟ الـ output unit اللي هي فيها إيه؟ دي كده الـ output... الـ output unit أهي. هيبدأ بقى يكلمك على كل واحد من الـ registers التلاتة اللي أنا لسه مكلمك عليهم أصلًا، تمام؟
أهو، L-mer count register. فين؟ إحنا كنا فين؟ فين؟ آه، L-mer counting logic، resulted L-mer register، و L-mer count register. الثلاثة دول أهم.
L-mer count register. والـ output device اللي هيطلع يعني عليه.
وهيمسك بقى يفنطهم واحدة واحدة. L-mer counting logic. بص، اللي آخره logic... أنا عندي بص: L-mer count logic، L-mer count logic. اللي آخره logic، ده اللي بيجمع كل الـ slices. أهو: is responsible for providing the total count of L-mer existence into all the slices.
ماشي؟ و بيعمل إيه؟ بـ excludes، يعني مش بـ... مش بـ... مش بياخد في الحسبان الـ L-mer اللي ما ظهرش في ولا DNA sequence على الأقل، تمام؟
أما بقى الـ L-mer register اللي هو الأخير ده، يبقى الـ logic... count logic ده لكل الـ sli...
ces اللي فوق ده للـ slice الواحدة، عدد مرات ظهوره للـ slice الواحدة. الـ L-mer register ده بقى الناتج النهائي، أكتر أكتر pattern اتكرر عندي، فده اللي هيطلع بقى على الـ output device.
طيب. أهو، الـ L-mer بقى register ده بيشيل إيه؟ الـ motive  of the highest occurrence.
الـ L-mer count logic ده الـ number of occurren...
occurrences of the motive...of the  motive، ماشي؟ للـ... للـ slice الواحدة، المفروض دي كانت تتزود، مش مهم، مش هنعدّل على الدكتور يعني.
طيب. فهنا بعد كده بقى الـ resulted L-mer، اللي خلاص بقى الـ pattern الـ... صاحب أكبر مرات ظهور، والـ count بتاعه هيطلعوا على الإيه؟ الـ output device، زي ما أنت شايف.
بس كده.
إحنا كده اتكلمنا على الـ input، اتكلمنا على الـ output، اتكلمنا على الـ associative memory array processor. ناقص بس إيه؟ الـ central control unit.
ماشي، بتتكون من إيه؟ من الـ program memory.
وبتتكون من sequence selector. إيه بقى الـ sequence selector ده؟ مش أنا قلت لك عندي أكتر من sequence متقسمين لـ slices؟ فدي اللي هتختار بقى، هتختار أنهي slice فيهم، بحيث نشغلهم بشكل parallel.
وبعد كده إيه...
وبعد كده عندك الـ control unit، بتقرأ البرنامج اللي متخزن في الـ memory، وبعد كده إيه؟ بتطلع لي commands، ماشي؟
بـ... يعني بتـ... بتعمل control على الـ system كله.
هنا بقى بيديك مثال يعني.
أهو، specifies the slice of the a-map. لسه قايلهولك أهو. SS عشان هنختار slice معينة. فأنا هنا هـ specify الـ slice دي للـ associative memory array processor.
تمام؟
لمين؟ للـ input pattern stored in the window register array.
فأنا هديله DNA أو slices معينة.
عشان يقارنها بالـ... أهو الـ SS. selects the slice to work with the... to work with. مين اللي هيـ work with ده؟ مع الـ pattern اللي أنا طلعته. بس كده.
أثناء عملية إيه؟ الـ load.
أه.. طيب..
يبقى كده إحنا بص اتكلمنا على كل حاجة ليها علاقة بالـ design ده. هندخل جواه بس مش هندخل جواها، يعني بص ناقص بس اللي إحنا... يعني إحنا خدنا لمحة عنه من بره، هندخل بس جواه بس مش هندخل برضه بشكل متعمق. وهتفهم برضه كل حاجة إن شاء الله.
أهو هنا برضه بيتكلم على الـ architecture يعني.
كل slice عبارة عن إيه؟ vector من الـ identical P.E.s، أهو.
أهو، شايف؟ vector من الـ P.E.s. عددهم قد إيه؟ عشان ما تنساش بس، n - l + 1. ص
ح وأنا قلت لك شوية كده هقول لك على سؤال نجمع فيه كل حاجة. تكتب بس أنت كده ورايا، تمام؟ لما أقول لك يعني السؤال ده.
والـ SS عشان يختار slice معينة. طيب إيه كمان؟
عايزين ناخد بس الحاجات الـ...
the BE ؟ آه ماشي. ده الـ processing element. هيعمل إيه؟ إحنا قلنا إنه بيقدر يعمل تلات حاجات: الـ load والـ compare ويطلع لي الناتج. هو يعني هنا قال لك إن هو بيعمل عملية الـ comparison.
تمام؟ أنا طلع لي L-mer، أقارنه بإيه؟ بالـ content بتاع الـ register. الـ register كل register موجود في الـ memory، وكل register شايل إيه؟ شايل window معينة. الـ size بتاعها نفس الـ size بتاع الـ L-mer اللي طلع لي ده. هيستخدم الـ XNOR في الـ compari.
son . ليه؟ مش زي ما أنت عارف في الـ logic إن الـ XOR كانت بتطلع واحد لو مختلفين؟ طب الـ XNOR كانت عكسها، كانت بتطلع واحد لو متشابهين، فعشان كده أنا أمسك... إحنا قلنا كل حرف هيتمثل بقد إيه؟ بـ 2 bits. فأنا أمس
ك أول2 bits من هنا مع أول 2 bits من هنا وأقارنهم ببعض باستخدام XNOR بحيث لو طلع واحد... هم لو متشابهين، لو مثلا إيه؟ أنا عندي اللي فوق 1 1 واللي تحت 1 1. طب ما هو متشابهين أهو، يبقى هيطلع لي 1 في الآخر. لسه هنشوف بقى الـ architecture بتاعة الحتة دي يعني دلوقتي.
تمام؟ فهو إيه؟ XNOR gates عشان نستخدمها في الـ exact match of the corresponding positions at both L-mer and window.
طيب.
طيب، الـ result بقى بتتخزن في...
L-bit register... يعني خلينا هنشوفها برضه دلوقتي، ماشي؟
والـ PE بـ count الـ score.
أهو هنا.
أنا كنت بقول لك كل ما يبقى فيه تشابه يزود، كل ما يبقى فيه تشابه يزود، وفي الآخر خالص نوديهم على إيه؟
على الـ unit اللي شايلة الناتج النهائي بتاع الـ slice دي.
ماشي؟ أهو الـ score.
L-bit register... using special... آه ماشي، بيقول لك هنا إن هو بيعد يعني..
وبيعد فين؟ في blocks كده في memory blocks عندي، قسمناهم لإيه؟ لجزئين.
كل جزء عبارة عن إيه؟ هو كانت هي كلها كانت عبارة عن الـ2 L power قسمناهم جزئين بقت عبارة عن إيه؟ 2 L power على الاتنين، كل جزء فيهم يعني.
بتشيل إيه؟ بتشيل number of ones. يعني... يعني إيه؟ يعني إيه بتشيل number of ones؟ مش أنا كل عملية تشابه هتطلع 1؟ كل عملية تشابه هتطلع 1، فالmemory دي هتشيل عدد الـ ones اللي عندي.
اه... طيب.
أه.. ماشي. يعني هنا بيقول لك الـ content of 2 locations... آه ماشي. الـ content بقى بتاع ال2 memory blocks دول بيحصل لهم a...
add
register عشان مش أنا عندي... بص بص خلينا نرجع للصورة عشان ما أقعدش أكلمك على الطاير كده.
خلينا نشرح هنا وبعد كده نبقى نطلع فوق. أول حاجة: أنا ده كده 2 في l bit register.
و تضع الريجستر في الويندو هذا ليس الريجستر من الاريه هذا الريجستر واحد من الاريه و انا لدي جينيريتد باترن
و هقارنه بالرجستر ده اللي فيه ويندو وبعد كده هدخل على الويندو اللي بعدها اللي هو الرجستر اللي بعد وها كذا احنا بقى اخدنا عملية مقارنة للباتريند ده مع رجستر واحد بس والباقي نفس الحاجة بقى اهو يبقى ده كده الرجستر
وهو عبارة عن window من d-nase sequence الأصلي وهذا 2L أيضاً وهو نفس الـ size وهو نفس الـ window نفس الـ window size L من register هذا هو الباترن الذي ظهر سنقوم بعمل أي شيء؟
واخذنا 2 bits لأن كل كاركتر 2 bits سأقوم بمشي على كل الكاركتر سأقوم بعمل لهم عملية X-Nur مثل الـ bits الأولانية مع الـ bits الأولانية بحيث لو كانوا متشابهين سأضع واحد
وضعت الى المتابعة المتابعة وضعت المتابعة المتابعة على XNOR ومن ثم افعل انتقال لان يجب ان يكون هنا 1 و هنا 1 وهذا و هذا هما يمثلون حرف واحد فلازم يكون هنا 0 و 0 و هنا 0 و 0
فانا بتأكد ان الاولاني زي بعض والتاني زي بعض بس كده انا بدخله التاني ده البت التانية دي هنا على اجز نور والبت التانية دي برضو على اجز نور ها هو اللقصات بعض ده دخلهم على اجز نور وبعد كده بعملهم اند لان لازم يكون ايه دي طلعت واحد
تقوم بعملية المقارنة بين البيت الأول و البيت الثاني حتى أنه عندما تدخلهم إلى النهاية سوف يظهر هنا واحد و واحدة
واحد. طب ون وزيرو. هتدخل على اند. لا هتطلع زيرو. اي حاجة تانية غير واحد واحد هتطلع ايه? هتطلع زيرو. كلام ده هو شايف. بيقول لك نقاط يعني هنقعد نكرر كل الكلام ده مع كل مع كل الحروف. لحد هنا اخر حرف اللي هو عبارة برضو عن ايه? تو بيتس. كل نفس الحاجة.
ومن الممكن أن يكون هذا الملاحظات المتجهة مع هذا الملاحظات ويكون لها تقارير لأنني أقارن أربعة ملاحظات في بعضها نخرج من تلك الملاحظات لنخزينها في الملاحظة المتجهة نحن نريد أن نخزن عدد الوحيد الذي لدينا
إن لو متشابهين هيطلع واحد. خلاص ده الحرف ده طلع بيساوي الحرف ده، خزّن يا معلم. الحرف ده طلع بيساوي الحرف ده، خزّن، خزّن، خزّن. وهكذا بقى، ونروح نخزنهم فين؟ في الـ memory بتاعتك دي. الـ memory بتاعتك دي هو قسمهم لـ... نصين. كل نص عبارة عن 2 L power على الاتنين location، لأن هي كانت 2 L power، قسمناهم لاتنين بقت 2 L power...
على الاتنين.
تمام؟
وبعد كده بجمع ده مع ده.
ما هو أنا... أنا في الآخر يعني أنا قسمتهم لـ two memories بس الـ two memories دول جمع الاتنين دول مع بعض، صح؟ ما هي هي نفس الـ register أهو بس إحنا قسمناهم على الاتنين دول.
بدل ما كان يبقى واحد بس ونحتاج أذر أكبر من أربعة bit، قلنا خلاص نقسمهم لاثنين، لجزئين، وكل جزء نجمعه على.. يعني الجزء ده نجمعه على الجزء ده، وأهو في الآخر إيه؟ نقارن بقى. هل أنت أكبر أكبر occurrence ظهر عندي؟ هل أنت أكبر...
pattern ظهر عندي ولا لأ؟ بس. ده باختصار يعني.
إحنا بقى كنا واقفين فين؟
يعني إيه؟ أهو كنا واقفين عند الحتة دي اللي هي2  power L على الاتنين.
أهو، الـ بي إيه بيقارن...
L - M. آه هنا يعني بيقول لك إن هو هيقارن بـ l - l. الـ l- يعني الـ l ده الطول، ده طول الmotive بتاع الwindows بتاعك بتاعتك هو بيقولك هنطرح منها M ايه بقى الM دى
بيقول لك يعني أنا مثلا لو عندي A A A لحد بقى بص كان كان كبير أوي كده. sequence أو pattern كبير أوي وبس اختلف حرف واحد أو كده. بيقول لك ممكن يعتبره إن هو برضه هو هو عشان كده بنطرح منه L - M. الـ M ده.
، اللي هو إيه؟ عدد الحروف اللي ممكن تختلف ويبقى برضه متطابق. فاهم الفكرة؟ بحيث لو عدد الوحايد اللي طلعت لي بتساوي L - M، عدد الوحايد اللي إحنا خزنّاها خلاص ما هو كل حرف كان بيبقى متساوي كنا بنحط واحد. فأنا بأقول له إن عدد الوحايد تكون أكبر من أو يساوي.
L-M لو ما كانش ينفع أن يحصل أي اختلاف خالص في الحرف كنا نقوله إيه؟ أنه لازم يساوي L على طول أكبر من أو يساوي L على طول يعني L L ده الطول بتاع كله فكل واحد فيهم بيطلع واحد كل واحد فيهم بيطلع واح
بيبقى الإجمالي كام؟ l وحايد. بس إحنا كنا بنطرح منه m لأن كان ممكن يحصل اختلاف ويبقى متطابق برضو. فاهمني؟ بس. أهو l - m الـ score اللي طلع لك ده.
هنا الـ MSU دي اللي بتحسب، اتكلمنا عنها هنا فمش عايزين نقعد نعيد الكلام يعني. فالtotal في الآخر بنحسبه عن طريق إيه؟ Special Parallel Adder. أهو الـ Adder اللي كان.
متقلقلش أول بس ما نخلص ده مش هتحتاج أصلاً الـ slide لنسبة كبيرة جدًا إن هو هو. طيب إيه بقى الـ equation دي؟ خلينا نروح على الرسمة وبعد كده نرجع تاني للـ equation. تمام؟ بس عشان أنت كاتب الكلام ده.
ينفع تطلع فوق بعد إذنك يعني؟ طيب أنا برضه كاتبلك أهو كلام بالعربي فوقيها عشان إيه؟
بص ده كده كان لإيه؟ ده كده الصورة من جوه. يعني إحنا كأننا دخلنا جوه كده الـ design نفسه. العملية compare واحدة لـ window واحدة. دي بقى الصورة الأكبر. عملية الـ compare اللي بتحصل يعني شايف ده كده إيه اللى مر؟
الـ master راح على BE واحدة. شايف يعني أهو، شايف ده كده؟ راح BE واحدة. اللي هي window واحدة. اللي هي دي. شايف؟ ده كده دي كده عملية المقارنة اللي بتحصل لـ window واحدة. بس هل إحنا عندنا window واحدة؟ لأ إحنا عندنا n-n ناقص l زائد واحد window. عشان كده أهو دي كده slice واحدة، sequence واحدة.
sequence 1 قسمناه لإيه؟ لـ windows. وكل window محطوطة في register هتتقارن بإيه؟ بالـ L-mer generator. باللي طالع من الـ L-mer generator pattern. الـ pattern ده هيروح إيه؟ هيروح لكل pattern موجود جوة كل slice
وهنعمل الكلام ده مع كل الـ slices اللي موجودة. فشايف؟ دي كده window 1 بتاعت sequence 1. دي window 1 بتاعت sequence 2. دي window 1 بتاعت sequence 3. لحد sequence T. إحنا عندنا أكتر من sequence. شايف؟ يبقى كل واحد كل sequence فيهم DNA؟ دي الـ registers بتاعته. ماشي؟ والـ counter اللي بيعد عدد الـ...
التشابه ظهور الـ L-mer ده في في كل في كل window. تمام؟ فهو عمال بيعد. كل sequence كل الـ sequences بقى عمالين بيعدوا. وليهم كل الحاجات الـ... ليهم كل واحد فيهم ليهم counter. وفي الآخر بنعمل إيه؟
أهو الـ L-mer counter logic اللي أنا كنت قايل لك عليه. مش أنا كنت قايل لك فوق L-mer counter register ده لكل slice، أما L-mer counter logic ده لكل الـ slices. بجيب بقى كل، يعني بجمع كل مرات الظهور في كل الـ slices اللي عندي. تمام؟ فالـ counter ده بيطلع ليها والـ counter ده بيطلع ليها والـ counter ده بيطلع ليها. وهكذا.
ده كده الـ A-MAP architecture. من الآخر أنا ده كنت كاتبه كـ- يعني كـ- note يعني. من الآخر أنا عندي input أهو. هقارنه مع كل الـ sequences اللي موجودة في كل slice مع كل الـ...
الـ sequences اللي موجودة في كل slice. ما هو كل sequence موجودة جوة جوة slice. أو كل slice جواها sequence DNA؟ بشكل إيه؟ متوازي. يعني ده هيتقارن مع ده وده وده وده كلهم في نفس الوقت. بشكل parallel. ما هو لو كان حصل بشكل sequential كنا هنطول أوي يا با.
شا تمام. بشكل متوازي اللي هو إيه؟ parallel. تمام؟ طب كل sequence بقى متقسم لمجموعة من الـ windows. أهو كل الـ sequence ده اتقسم لمجموعة من الـ windows. تمام؟ أنا بقى هقارنه بكل شباك، يعني خلينا نقول شباك بدل ما نقول window يعني. ماشي؟
أنا بقى هقارن الـ L-mer ده بكل شباك فيهم. لو بيساويه هزود العداد أهو. مين المسؤول عن كده؟ الـ PE. ما هو كل واحد أهو فيه PE. شايف؟ هزود العداد. الكلام ده بقى بيحصل بشكل متوازي في كل الـ slices اللي عندي.
وفي الآخر بقى أجيب اللي طلع في كل counter في كل slice وأحطهم فين؟ في الـ L-mer counter logic. فدي بقى الـ equation. أهو لو الـ F بـ 1 أعمل إيه؟ بـ 1. لو بـ إيه؟ يعني أنا بقول له الـ F بـ 1. لو ب ايه
لو الـ L-mer أهو الـ L-mer عملت له XOR XNOR. أهو. شايف؟ summation. L- من أول واحد لحد  2L. ده عدد الـ bits بتاعتك. تمام؟ فلو الـ L-mer of I عملت له XNOR مع L مع مع..
window register of I and L-mer of I+1 XNOR window register of I+1. أنا عمال بقارن كل دول. خدت الـ summation بتاعهم، ماشي؟ ولازم يكون أكبر من أو يساوي L - M. دي القيمة اللي قلنا عليها. إن عدد الوحايد يكون أكبر من L - M.
أكبر من أو يساوي. لو فعلاً بكده ف أنا بقول له بـ 1. غير كده بقول له 0. تمام؟ تمام. طب الـ L-mer of S ده اللي هو بقى إيه؟ يعني لكل sequence.
لكل sequence. لكل sequence هعمل إيه؟ هجيب اللي طلع من كل PE. اهو. كل اللي طلع من كل PE. اهو. شايف؟ أنا ده slice أهو فيها PE. F و PE. طب وهم من كام لكام؟ من واحد لحد N - L + 1. لإن ده عددهم. طيب الـ total بقى؟
من من كام لكام؟ الـ total اللي أنا جبته من الـ L-mer اللي هو كان الـ count بتاع كل sequence فيهم. ماشي؟ وأقعد أمشي من واحد لحد T. T دي اللي هو عدد الـ sequences. فأنا خدت الـ counter بتاع الأولاني جمعته على الـ counter بتاع الثاني وعلى الثالث وعلى الثالث جبت إيه؟ الناتج النهائي.
بس. إحنا كنا فين؟ إحنا كنا خلصنا ده باين. آه ماشي خلاص. إحنا كنا هنا أصلاً. خلاص شبه خلصنا يعني. إيه؟ يعني هنا بيقول الـ PE بيعمل إيه؟ بـ load و بـ compare و بـ match. كل الكلام اللي قلناه أصلاً.
اهو الـ window بيحصل لها compare بشكل concurrently. اهو exact match score اللي إحنا كنا حاطينه L - M. هتختار الـ slice باستخدام إيه؟ بالـ SS اللي كانت في الـ control أهي.
اللي كانت هنا دي أهي الـ SS. هنختار بيها الـ se.. هنختار بيها slice. ماشي؟ بعد كده بيقولك هتـ repeat step 1. يبقى أنت أول حاجة يعني بيقولك إيه يعني طريقة العمل بتاعتها هنختار slice ماشي؟
وبعد كده الـ... وكل slice هنديها الـ DNA لـ sequence DNA. أهو. يبقى بعد كده load الـ DNA sequence. windows. إحنا قسمنا الـ DNA لـ windows خلاص. هنسجلهم فين؟ في الـ window regis. window registers.
ters بتاع الـ slice اللي إحنا اخترناها. وبعد كده زود الـ SS عشان تدخل على الـ slice اللي بعدها وهكذا بقى. اهو attribute step 1. لحد ما تخلص كل الـ sequences اللي عندك. هتبدأ بقى تعمل إيه؟ تبدأ generate L-mer. باستخدام الـ L-mer generator اللي هو عبارة عن counter هيقعد يزيد بقى فاهم.
تكلمنا برضه عن الكلام ده في الأول. اقعد بقى اعمل إيه؟ parallel comparison. قارن كل ده بشكل parallel كده بالـ بالـ pattern اللي طلع عندك. وتسمح للـ للـ MSU اللي كان اسمها إيه؟ أهي كانت فوق هنا...
بص كان اسمها match scoring unit. عشان كانت من اسمها زي ما قلنا اللي هي إيه؟ بتحسب عدد الـ matches. لكل slice بقى.
هما خطوات هم من 1 لـ 8 ماشي؟ ف خلاص هنحسب الـ MSU بالـ MSU يعني. بعد كده حسبنا لكل slice؟ آه، احسب لي بقى لكل الـ slices اللي طلعت عندك. لكل الـ slices اللي طلعت عندك.
بعد كده هتقارن بقى ماشي؟ اللي طلع معاك ده باللي موجود عندك. ما هو أنت قلت مثلاً أنا كنت جايب قيمة من قبل كده pattern معين وليه قيمة كذا. وكنت قايل إن ده أكبر حاجة. لو أنا جالي واحد تاني أكبر منه هشيل الأولاني وأقول إن ده كده الـ...
max مفيش، يبقى القديم ده هو الـ maximum. وأفضل أكرر أكرر لحد ما أخلص كل الـ 4^L احتمالات. وأشوف في الآخر بقى إيه؟ أنهي pattern كان ليه أكبر مرات ظهور. أهو وهيتخزن في الـ L-mer register ويطلعلي على الـ output devices.
أهو هنقعد بقى نكرر من 3 لـ 7 لحد ما نخلص إيه؟ الـ generated L-mers. هنا بقى ليه علاقة بالـ performance. فيعني ما اعتقدش إن هنا هنا يعني بيقولك الـ execution بقى المرة دي هيبقى قد إيه؟ إحنا هنتكلم عن دي وخلاص على كده مش هندخل على الـ slice بقى يا دوبك إحنا مش هنتكلم عن حاجة في الـ slice أصلاً يعتبر. إحنا بس هنعدي عليها عشان تتأكد إن أنت كده خلا.
ص الـ execution بقى هيبقى عبارة عن إيه؟ الـ time بتاع الـ load. ماشي؟ مش أنا قلت لك بنـ load الأول الـ data؟ آه. وبعد كده 4^L لكل mer. أنا عندي كام mer هيطلعوا؟ 4^L. لكل واحد فيهم أنا بعمل إيه بقى؟
الـ time بتاع الـ L... الـ time بتاع الـ... أهو بصوا أنا كاتبهم بشيء من التفصيل أهو. الـ T load ده الـ time بتاع إيه؟ بس عايز أيوه. أهو. الـ T load. إحنا قلنا أول حاجة T load. الـ time بتاع الـ execution اللي هيعملي الـ problem دي. أول حاجة الـ T load. ده الـ time عشان نـ load.
كل الـ window بتاعت الـ DNA في الـ slice. بعد كده 4^L قلنا ده عشان عدد الاحتمالات. نضربها في إيه بقى؟ في ده كله. اللي هو عبارة عن إيه؟ T L-mer. طب الـ time بتاع الـ L-mer ده عبارة عن إيه؟ ده الـ time اللي أنت محتاجه عشان generate mer واحد. ما هو الـ L-mer generator ده بيطلع لك كذا mer. فده بيقول لك الـ time بتاع الـ mer الواحد الـ...
والـ time بتاع الـ comparison. مش أنا هعمل عملية comparison؟ والـ time بتاع الـ match. عشان يقولك هل الـ يعني الناتج من عملية الـ compare ده هل هو بيـ match فعلاً ولا لأ؟ والـ time بتاع الـ slice. ما هو أنا عندي أكتر من slice. فأنا بشوف بقى الـ time بتاع الـ slice الواحدة كمان قد إيه؟
الـ time بتاع كل slice والـ time بتاع الـ sequence هنا بقى أنا بشوف الـ time لكل الـ total occurrence of the L-mer أنا عايز أشوف الـ L-mer ده عدد مرات ظهو
ره تمام، زائد الـ time بتاع الـ display result بتاعتك دي. مش أنت في الآخر عايز نتائج تطلعلك؟ ما هو ظهور النتائج دي برضه بياخد time. أنت لو جيت تعمل جملة cout دي لوحدها بتاخد time عادي خالص. هنا بقى يعني إيه؟ بيوريك النتائج اللي طلعت لما استخدمنا.
data مختلفة L و M ماشي؟ لو 9 و 2 مثلاً. فـ الـ time بتاع الـ load كان بكذا والـ L-mer كان بكذا والـ compare والـ match في الآخر طلعلك إيه؟ شايف بالثواني مش بالأيام بالثواني. ده الـ time بتاع الـ execution اللي طالع يعني. ده الـ time النهائي شايف؟ الـ time بتاع الـ execution.
و عبارة عن جمع كل دول. يعني احتياطي اعرفوه برضه عشان لو جه في مسألة أو كده. تمام؟ بس كده ده يعني إيه؟ الحمد لله وصلنا لآخر البحث، الحمد لله. طبعاً حاجة زي كده أنت ممكن تعملها بالـ VHDL أو الـ FPGA اللي إحنا أصلاً كل اللي اتكلمنا عنه في الـ Arci
لو تفتكر بس آه ناقص بقى آخر حاجة السؤال اللي قلتلك عليه اللي هو هيجمعلك أكتر من حاجة، فيعني اكتب ورايا الحاجات دي. فاعتبره quiz مفاجئ كده ليك، ماشي؟ لو أنا عندي motive طوله L. خلينا نكتبها هنا.
Motive. أنا بدور على motive. طوله L. الـ L بكام؟ بـ 10. وعندي DNA. ماشي؟ الـ N بتاعته اللي هو الـ برضه الـ...
الـ length بتاع الـ DNA ده بكام؟ بـ 400. دي مسألة من عندي ماشي؟ ما لهاش علاقة بحاجة يعني. طب أنا بقى عندي عدد الـ sequences بتاع الـ DNA ده. number of DNAs. هنسميه T. هيساوي كام؟.
30 مثلاً. يبقى كده أنا عندي 20-30 sequence DNA. والـ length بتاع كل sequence فيهم 400. أما الـ motive اللي أنا بدور عليه 10. حلو كده؟ جاوب لي بقى على الأسئلة اللي هقولها.
قولى كده عدد احتمالات motive اديك بتختبر نفسك اعتبر نفسك بتختبر نفسك. عرفت حلو، معرفتش تسجل السؤال والإجابة بتاعته يعنى ايه ده يعتبر هيجمعلك كل الحسابات اللي احنا حسبناها واحنا بنشرح.
خلاص. مش عارف بصراحة كل ولا لأ بس يعني على قد ما نقدر  إن شاء الله. فأول سؤال أنا بقول لك إيه؟ قول لي عدد احتمالات الـ motives. اللي هو الـ L-mers. عدد احتمالاتهم قد إيه اللي هيطلعوا من الـ L-mer generator. ممكن الدكتور يجيبلك سؤال زي كده ويقول لك طب أنا عندي كذا وكذا طب قول لي بقى الـ L-mer generator هيطلع كام احتمال.
كان عدد الاحتمالات، القانون بتاعه عبارة عن إيه؟ 4^L. طب أنا الـ L بـ 10، يبقى 4^10. طب عدد الـ comparisons اللي هتحصل؟ عدد المقارنات، n - l + 1. الـ n بـ 400 والـ l بـ 10 + 1.
يبقى 400 ناقص 10 بكم؟ 390 زائد 1 يبقى 391 دي عدد المقارنات اللي الـ pattern كل pattern هيعملها مع الـ DNA. طيب، بأقول لك بقى احسب لي الـ complexity. ها؟ الـ complexity. أهو، O of.
أول حاجة، احتمالات الـ motive، يبقى 4^L. فى عدد المقارنات، وقلنا إن إحنا ما بنحسبش الـ... يعني الـ...
الـ constants أو كده، وبناخد أكبر factor، فأكبر factor هو الـ N يعني. ما الـ N طبيعي يبقى أكبر من الـ L، فمش هاخد الـ L معايا. يبقى في N. في إيه كمان؟ في عدد الـ sequences اللي عندي، وأنا قلت لك إن عدد الـ sequences هو الـ T. ده كده إيه؟ الـ comple.
Complexity. طب قولي كده الـ window size بكام؟ الـ window size هو نفس طول الـ pattern أو الـ motive اللي أنا بدور عليه، يبقى هو ده. طب قولي كده عدد الـ bits لكل window؟ إحنا قلنا لكل، هما أربع حروف اللي هيبقوا موجودين، الـ A والـ C والـ G والـ T.
نقدر نمثلهم في كام bits؟ في 2 bit. طيب، وأنا وأنا بقى عندي L. يبقى عندي كام bit؟ كام bits؟ 2 في L. طيب، تقدر تقول لي أقل عدد من الـ slices؟ أقل عدد slices كام؟
كل slice بتشيل sequence DNA، يبقى عدد الـ slices نفس عدد الـ sequences اللي عندي أو الـ DNA اللي عندي. طيب، تقدر تقول لي أقل عدد من الـ Match Scoring Unit؟ اللي هي الـ MSU.
لكل slice، كام؟ شايف أنا بقول لك لكل slice، واحد. طب عددهم كلهم؟ 30، لأن أنا عندي 30 slices. طب قول لي أقل عدد من الـ PE، اللي هي الـ processing elements؟ كام؟
إحنا قلنا لكل window فيه processing element، برضه للslice الواحدة، تمام؟ في الـ slice الواحدة أقل عدد كام؟ n - l + 1، ده في الـ slice الواحدة. طب عايز في الـ slices كلهم؟ n - l + 1 في 30، أو في أو في t يعني كـ general.
تمام؟ طيب، الـ L-mer، إحنا كده خلاص، يعني أنا كده قلت كل المسائل اللي هي بصراحة يعني جت على بالي يعني. ماشي؟ وإن شاء الله تكون مجمعة نسبة كبير، يعني أغلب الحاجات اللي قلناها يعني. طيب، الـ L-mer counter register ده كان بيعمل إيه؟
شايف آخره register، count وآخره register يبقى بيحسب إيه؟ عدد ظهور الـ pattern ده أو الـ L-mer للـ single slice للـ slice الواحدة أو للـ DNA الواحد. طب L-mer count logic، شايف آخره logic، يبقى ده بيحسب لكل الـ slices اللي عندي.
بيجمعهم كلهم. طب الـ L-mer register؟ ده الـ resulting motive. ده اللي شايل أكبر occurrences ظهر. تمام؟ الـ motives اللي ليه أعلى occurrence. طيب، خلينا بقى نروح على الـ slide اللي إن شاء الله مش هنطول فيها.
ماشي؟ هو هنا يعني في الأول بيكلمك على الـ الـ motive finding problem اللي إحنا كده كده خلاص خدنا فكرة عنها يعني. فبيقول لك إن لكل جـ لكل gene ليه الـ المناطق اللي هي بنسميها regularity region. طبعًا إحنا مش هنتكلم، يعني بص هنا
الحـ الـ حتت الـ 2 slides دول، دول أصلا كانوا درس كامل عندنا في في تالتة ثانوي. فـ أنا أكيد مش هشرح كل الكلام ده أنا بس هديك فكرة لأن ده مش الغرض من المحاضرة، الغرض من المحاضرة إن أنت تـ design. تمام؟ بس في الأول اديتك فكرة بس كده عن إيه هو الـ motive وهي المشكلة نفسها والكلام ده.
اهو شايف؟ دي هي المناطق أهي وبرضه بتتكون من الأربع حروف اللي قلنا عليهم، الـ A والـ C والـ G والـ T. بيقعدوا يتكرروا بقى. تمام؟ تكلمنا بقى في الأول على الموضوع الـ gene اللي في اللي في الفراشة اللي اتصابت، فالـ فـ فـ الـ motive هو اللي مسؤول عن إن هو يقول
الgene يشتغل ولا ما يشتغلش، كل الكلام ده أهو، شايف؟ وهم كانوا بيختلف طبعا، بيتحط في أي مكان في الـ R R. بس يعني، وده الاسم بتاعه التاني يعني اللي هو الـ transcription factor binding. خلينا إحنا بهدلنا الـ slide. يعني ندخل على اللي بعده. عشان مفيش وقت، أهو G on and off. وقلنا اللي مسؤول عنها هو إيه؟
الmotive الـ هنا بقى بيكلمك على الـ motive finding problem نفسها اللي أنا بدور على الmotive في multiple genes. تمام؟ بعدها دخل بقى في الـ يعني ده بيقول لك فوايد
الـ problem دي ليها هيحتاجوها يعني. زي ما اتفقنا بقى عشان هيحتاجوها العلماء هيحتاجوها مثلا لـ لإزاي يردوا على أمراض وإزاي الgene بتـ تتجمع عشان تعمل function معينة وإزاي أصلا العضو بيـ بيتاثر بالـ
الأمراض أو كده يعني. فهنا مثلا دي DNA sequence، برضه لو قعدت تلف كده مش هتلاقي غير الأربع حروف اللي قلنا عليهم، الـ A والـ C والـ G والـ T. أنت بقى في الـ sequence ده عايز تدور على motive. تمام؟ فـ بيبقى عندك أكتر من من sequence بقى، أكتر من DNA seq
أو الـ hidden sequence في length 8 يعني الـ L بـ 8 أو بيقولك الpattern بقى مش دايما نفس الحاجة
أو هو وهو نفسه يعني ما يعرفش الـ motive عشان كده بنستخدم الـ L-mer generator، وهو بيقعد يجرب كل الاحتمالات الممكنة للـ motif عشان يجيب لك أعلى واحد بنسبة الظهور. أهو شايف؟ أهو هنا هنا مثلًا عمال يدور على الـ pattern ده، أهو، لقاه هنا، ولقاه هنا.
ولقاه هنا، لإن إحنا كنا قايلين إن الـ size بتاعه 8. أدي 1، 2، 3، 4، 5، 6، 7، 8. هو بقى إيه هيقعد يعمل العملية دي مع كل الـ motives أو الـ L-mers اللي طالعة لي مع كل الـ sequences اللي موجودة ويقعد يعد. أهو.
هنا ما كانش فيه no mutations. الـ mutations دي اللي هو إيه؟ أهي، يعني بص 1، 2، 3، 4، 5، 6، 7، 8. هتلاقي إن ده بيقول لك هو هو زي ده. يعني ده مطابق لده. هتقول لي إزاي ده فيه حروف حتى مختلفة اللي هو ده وده. ما هو دي بقى L - M اللي اتكلمنا عنها.
اللي هو الـ L ده طوله أهو. ممكن نطرح منه M، هو هنا اعتبرها بـ 2. الـ two-point mutations دي هي M هى 2 قصدي. فلو طرح الـ 8 من الـ 2 بـ 6، فهو بقى قال لك بقى إيه لو عدد الوحايد هتبقى بـ 6 أو أكبر من أو يساوي الـ 6، ده اعتبره إن هو إيه، ده بيساوي
ده. فهمت الفكرة؟ فهو مختلف بحرفين بس، ده هنعتبره متساوي، أما هنا كان متطابق بالمللي. هنا برضو نفس الحاجة، أنا عندي pattern generator 4^8 فمرة A A A A، مرة A A A A A لحد يعني سبعة A وبعد كده C، سبعة A وبعد كده G، وسبعة A وبعد كده T، لحد ما يلاقي.
الـ pattern اللي بندور عليه أهو ده مثلًا، وهو هنا عمال بيقارن في الـ sequence بتاعي. أهي comparison processor- comparison process، عملية المقارنة، وكل ما ألاقي حاجة موجودة أقعد أزود الـ score بتاعها. فأنا لقيت دول zero، ما لقتش. ده بـ zero، لحد ما جيت عند ده.
لقيته اتكرر خمس مرات أهو. الـ ACGT ACGT. لإنها اتكررت خمس مرات مع إن فيه حروف مختلفة، بس لأ ده إحنا، إحنا قلنا هنزود في حالة إن هو أكبر من أو يساوي 
L-M، والـ M هنا بـ 2. فهو عدد التطابق كام حرف؟ ست حروف.
عادي، هنزود الـ counter برضو. أهو، شايف أنت هنا ما تعرفش أصلًا الـ motive sequence بتاعك، عشان كده بنستخدم الـ L-mer generator. ولا حتى تعرف هو موجود فين. تمام؟ وبرضه الـ motive ده ممكن يختلف بشكل.
بشكل بسيط من gene للتاني، زينا مثلًا هتلاقي فيه اختلافات أهي. فإحنا عايزين نجيب بقى إيه من الـ random motive. دي مشكلة، دي أصلًا المسألة اللي إحنا اتكلمنا عنها في الـ PDF اللي كنا بنتكلم عنه، واتكلمنا عن الـ complexity اللي هي عبارة عن 4 power L في T.
في N اللي هو الـ sequence بتاعي، الطول بتاعه، في الـ T اللي هما عدد الـ sequences اللي عندي. فهو هنا يعني بيقول لك هو هنا complexity. أما هنا بيقول لك الـ computation time اللي على الجهاز بتاعك ما هو 600. 600 ده اللي هو إيه؟ الـ N.
في الـ 20. الـ T اللي هو عدد الـ sequences اللي عندي، فـ 4^16، ما أنا قلت لك إن الـ L بـ 16. تمام؟ هو هنا على جهاز 3 gigahertz. 3 gigahertz عدد عدد الـ clocks اللي بتحصل في الثانية الواحدة. طب 3 gigahertz يعني 3 في 10 ^ 9، خلاص اقسم على 3 في 10 ^ 9.
أنا عايز أعرف لكل clock، تمام؟ وأضربها في الـ cycles per computation، لإن أنا أنا هنا قسمت عشان أعرف في الـ cycle الواحدة هياخد قد إيه، فبضرب إيه في الـ cycles لكل clock يعني أو كل computation. ماشي؟
فبيقول لك افرض بقى إن أنت عندك DNA sequences كتيرة جدًا. تعمل إيه؟ ومتوزعين بشكل dynamic بقى والـ motive ده عنده random point mutations، اللي هو نفس الكلام يعني اللي هو مش زيه بالظبط فأنت بتقول L - M وكل الكلام ده. يعني نفس اللي كل اللي اتكلمنا عليه هو هو حرفيًا فمش هنعيد تاني اكيد.
وبرضو نفس الرسمة دي اتكلمنا عنها فمش هنعيد تاني. واتكلمنا على الـ equation دي والـ equation دي والـ equation دي، التلاتة كانوا موجودين في الـ research أصلًا. هنا كانت الخطوات وبرضو اتكلمنا عنها بالتفصيل، أهو من واحد لتمانية هي هي بالظبط، عشان كده قلت لك إحنا أصلًا مش هنحتاج نرجع للـ slide.
هو الدكتور أصلًا هنا ما جاش للـ slide دي باين. بس يعني، أنا ما قريتش دي بس خلينا كده نقراها: "A simple macro-scale implementation of the stages of the EMA is implemented on..."
exact execution time. آه يعني ده هي ده هنا يعني المكونات اللي موجودة عندي فخلاص اتكلمنا عنهم برضو. الـ L-mer generator والـ window register وكل الكلام ده. هنا الـ time بتاع الـ execution اللي برضو حسبناه اتكلمنا عنه في الـ resea.
ch وهنا برضو لما جرب L و M مختلفين طلع له إيه؟ execution time مختلف. هنا طبعًا استخدم MATLAB. على فكرة الدكتور أصلًا كان آخره، كان آخره يعني فين؟ تقريبًا كان آخره هنا غالبًا. يعني بس خلينا إيه أدينا يعني خلاص إحنا يعتبر بنفن.
ش هنا لما استخدم برنامج اسمه MATLAB، هو برنامج يعني tool تقدر تقول إن هو للـ simulation أو كده. بس وهنا يعني خلاص اللي هو نهاية الـ research يعني. بس يعني كده مبروك عليك، أنت كده خلصت بسلام المحاضرة الـ...
الدسمة دي، وقرأنا، عملنا نفسنا يعني ناس مثقفين وقرأنا research للدكتور. بس يعني أتمنى تكون المحاضرة دي فادتكم. يعني عارف إن هي ممكن تكون تقيلة شوية فممكن تعيد الفيديو تاني وإن شاء الله تبقى بالنسبة لك إيه سهلة. قريب إن شاء الله هنزلكوا...
المحاضرة، يا ريت دي الكام؟ آه دي التالتة، فهنزل الرابعة إن شاء الله. ولو الـ mid داخل للخامسة هنحاول برضو يعني ننزل الخامسة قبل الـ mid-term بحيث نبقى إيه نزلنا كل حاجة. بس كده، والسلام.