 اس نکس فلو اور نیف کور سمجھتا ہے دوارہ آئیو جیت اون لین پرسکشن میں آپ کا پھر سے بہت بہت سوگت ہے آج ہم چوتھے سیشن کی ستارٹ کریں گے اس سے پہلے کچھ میرے بارے میں میرا نام ابھینف شرمہ ہے اور میں فلحال دو افیلیشنٹ رکھتا ہوں میرے پہلی افیلیشن ہے پیشتی پرسو کر رہا ہوں، سٹیلن بوش اونیوورسٹی ساوت افریکا میں توبر کلوس اس جی نومیکس کو لے کر اور اس کے ساتھ ساتھ میں بائن فرمادکس کنسلٹنسی اوفر کرتا ہوں بایو شارپ ڈوٹ نیٹ کی مادہم سے اگر آپ ہندی میں بائن فرمادکس ٹوٹوریل کو دیکھنے میں انترسٹڈ ہے تو آپ پلیس ہمارے چانل کو فلو کریے اس کے ساتھ ہم ابھی تک جو بھی ہم نے کور کرا ہے دوسرے سیشنٹ میں اس کا کوئی کری کاب کرتے ہیں پہلے سیشن میں ہم نے آپ کو نکس فلو اور نکس فلو اور سائنس کے بارے میں بتایا تھا اس کے بعد ہم نے ساتھ میں ایک ہیلو ڈوٹ نیٹ سکریپ پر کام کرا تھا جس کے طرح ہم نے جو نکس فلو کے کوئر بیلڈنگ بلوکس ہیں ان کے ساتھ آپ کا پہلی بار انتردکچن کرا تھا اس کے بعد ہم نے ایک پروف آرین ایسیک پائیپلین کو لے کر سٹپ بای سٹپ اس پائیپلین کو دیولب کرا تھا اس کے ساتھ دوسرے سیشن میں ہم نے nfcore کمونٹی کے بارے میں آپ کو بتایا تھا اس کے بعد ہم نے ہم نے یہ بھی بتایا تھا کہ آپ اس nfcore کمونٹی دوارہ پنائے گئے ٹولز اور بیس پرکٹیسز کو as a user کیسے use کر سکتے ہیں اور as a developer کیسے use کر سکتے ہیں اس کے ساتھ ہم نے اس سیشن کا انت nfcore موڈیولز اور سب workflow کے پروڈیٹ کو کو ایکسپلور کرنے کے ساتھ کرا تھا کل یعنی تیسے سیشن میں ہم نے workflow کے concept کو پھر سے ایک بار دیکھا تھا اس بار ہم نے start کرا تھا dependencies اور containers کے ساتھ جس میں ہم نے خود کا ایک container بنایا تھا اور جو rna seek کی جو scripts ہیں ان میں سے ایک میں وہ container use کرا تھا اس کے بعد ہم نے channels processors اور operators کے بارے میں پھر سے دیکھا تھا اور ان دپت cover کرنے کی پوری کوشش کری تھی اس کے بعد اگر ہم دیان دیں تو ہم نے groovy اور modularization کے بارے میں دیکھا تھا modularization جو ہے جو ہم نے کل cover کرا تھا اس کا direct correlation ہے سیشن دو کے آخری موڈیولز ہے جو کی ہے nfcore موڈیولز اور سب workflow جو ہم چاہتے ہم چاہتے سیشن میں next floor کی pipe lines کی configuration کے بارے میں دیکھیں گے اس کے ساتھ ہم دیکھیں گے کہ اگر آپ اسے دوسرے environment میں deploy کرنا چاہتے ہیں تو آپ کو minimal changes کیا کرنے ہوں گے اور آپ design considerations کیا دھیان میں آپ کو رکھنا چاہیے اس کے ساتھ ہم cover کریں گے next floor pipe lines کو troubleshoot کرا جس میں ہم caching اور resumability کے بارے میں دیکھیں گے اور troubleshooting کے بارے میں دیکھیں گے اس کے ساتھ ہم آج کی final station کی طرف پڑیں گے جو کی ہے next floor tower کا ایک brief introduction آپ دیکھ سکتے ہیں tower کو use کر کے کہ آپ اپنے team کے ساتھ اور اپنے collaborators کے ساتھ کسی easily in pipe lines کو لیکے collaborate کر سکتے ہیں تو آئے اس کے ساتھ ہم آپ کو یہ بھی بتانا چاہیں گے کہ اگر آپ کے پاس کوئی بھی دویدہ ہے کوئی بھی question ہے تو آپ ہمارے ساتھ connect کر سکتے ہیں اور in slack channels پر ہمیں اپنے سوال بھیت سکتے ہیں ہمارے volunteers پوری کوشش کریں گے کہ آپ کے سوالوں کا جواب دے سکیں ہمارے volunteers ان سارے channels پر available ہوں گے اور آپ چاہیں تو ہمیں اندی میں کونٹاک کر سکتے ہیں یا پھر اگر آپ انگلیش میں ٹیکنیکل کمینکیشن کو لیکر زیادہ کمفٹ بل ہیں تو آپ ہمیں اس چانل میں بھی کونٹاک کر سکتے ہیں اس کے ساتھ آئے شروعات کرتے ہیں ہم آج فرصے training.nextflow.io کے training material کو access کریں گے اور ہم وہاں سے اپنے session کی شروعات کریں گے تو جب ہم nextflow configuration کی بات کرتے ہیں تو ہم ایک specific file extension سے deal کرتے ہیں جس کا extension مجھا ہوگا .config. جب آپ nextflow script کا logic دیکھیں گے جب آپ nextflow scripts کو لکھیں گے یا ریٹ کریں گے ان فائلز کو تو زادتر ان کا جو صفق ہوگا وہ ہوگا .nf. تو .nf اور .config file یہ nextflow کی repository میں آپ کو زادتر ملیں گی تو آئے دیکھتے ہیں کہ nextflow جو ہے اس وہ configuration کے ساتھ کیسے deal کرتا ہے تو پہلے conceptually سمجھتے ہیں اس کے بعد میں آپ کو کچھ specific topics کے بارے میں بتا ہوں گا تو اگر آپ اسے visual format میں سمجھنا چاہے ہیں تو ایسے دیکھ سکتے ہیں جو pipeline کا code ہے جو کہ آپ کا domain یا bioinformatics کا logic کапچر کرتا ہے کہ اب آپ کو tool 1 کے بعد number 2 کو چلانا ہے یا tool number 3 کو چلانا ہے تو وہ جو logic ہے اسے ہم کہتے ہیں pipeline code اور جو آپ کا infrastructure سے related logic ہے اسے وہ ہم کапچر کرتے ہیں جب nextflow execution start کرتا ہے تو وہ نیچے سے اوپر تک جاتا ہے اس کا مطلب پہلے وہ parameter کی values ہیں یا پھر جو بھی configuration کی values ہیں executer سے related values ہیں وہ سب resolve کرے گا اس کے بعد اس کو مدے نظر اکتے ہوئے وہ pipeline کے code کو execute کرے گا اس لیے یہ ایک two layer process ہے دو دو layer کا process ہے اور جو پہلی layer ہے اسے ہم کہتے ہیں configuration layer تو اب اگر آپ configuration کے tutorial page پہلے جائیں تو آپ دیکھ سکتے ہیں کہ زادتر nextflow کی configuration file آپ کو nextflow.config نام سے ملے گی لیکن شاید آپ یاد کر سکیں کہ جو second session تھا ہمارا اس میں ہم نے nf code کی configuration nf code کی rnc pipeline download کری تھی locally or flying use کیلئے اور اس کے اس سے related جو بھی ہمارے پاس configuration تھیں جو common infrastructure configuration nf code کی اندر وہ بھی ہم نے ساتھ میں download کری تھی تو ہم نے دیکھا تھا کہ جیسے azure batch کیلئے a configuration ہے chan zaka book کیلئے configuration ہے aws batch کیلئے configuration ہے google batch کیلئے ہے اور ہر ایک institute نے اپنے حصاب سے a common configuration منای اور nf code میں contribute کری ہوئی ہے تو اس کے ساتھ ساتھ ایک nextflow.config file بھی تھی جو کی باکی سارے configuration files کو import کرتی ہے تو آپ یہ سمجھ سکتے ہیں کہ configuration کی layers ہیں جو final layer اور main file ہے nextflow.config یہ file خود میں باکی configuration files کو import کر سکتے ہیں اس کا مطلب آپ اگر nextflow کی documentation کو دیکھیں جو configuration کی page ہے ہم اسے کھول لیتے ہیں reference documentation میں آپ دیکھ سکتے ہیں کہ جو hierarchy ہے اس configuration in configurations کی layer کو results کرنے کی وہ ایسی ہے اور یہ priority order میں لکھا ہوا ہے تو سب سے پہلے parameters کو priority دی جائے گی اس کے بعد جو آپ کی home.nextflow level پرconfig file ہے اس کو priority دی جائے گی تو اس کا مطلب آپ یہاں پر کوئی value سیٹ کر سکتے ہیں یا یہاں پر سیٹ کر سکتے ہیں اور اگر آپ یہاں اس level سے override کرتے ہیں تو یہ value مانے جائے گی اس pipeline کو run کرنے کے سامے اس کے ساتھ ہم نے جیسے configuration files کی hierarchy کی بات کری آپ میں جلدی سے اس بارے میں بات کرنا چاہتا ہوں یہ جو ایک طرح سے ہمارا note ہے اس note میں ہم ہم نے یہ highlight کرنے کی کوشش کری ہے کہ اگر آپ کے پاس کوئی بھی pipeline ہے جو آپ جس کا pipeline کا logic change نہیں کرنا چاہتے آپ اسے run کر سکتے ہیں ایک custom configuration کے ساتھ تو اس کا مطلب ہے کہ آپ دینامیکلی ایک configuration کو انجیکٹ کر سکتے ہیں کسی بھی pipeline میں تو ابھی ہم اس کے بارے میں اور دیکھیں گے لیکن میں فلحال کے لئے highlight کرنا چاہتا ہوں configuration override کرنے کے آپ کے پاس دو طریقے ہیں یہ جو طریقہ ہے minus small c اسے ہم کہتے ہیں soft override اور ایک اور طریقہ ہے minus capital c جسے ہم کہتے ہیں hard override تو جیسے یہ soft configuration override ہے تو آپ اسے اپنی خود کی ایک configuration فائل بنا سکتے ہیں جسے آپ کسی بھی run command کے ساتھ یا کسی بھی pipeline کے ساتھ use کر سکتے ہیں اگر آپ hard configuration کو دیکھیں اس کا مطلب ہے کہ آپ next flow کو یہ بتا رہے ہیں کہ جو بھی configuration آپ خلی ایک فائل میں بتا رہے ہیں خلی وہ ہی consider ہو اور کچھ consider نہ ہو تو اس کا مطلب یہ ہے کہ یہ جو فائل ہے ہوسکتا ہے کہ اس کا سائز بہت بڑا ہو کیونکہ آپ next flow کو یہ بول رہے ہیں کہ وہ کسی بھی higher r کی کو follow نہ کرے وہ بس خلی اس فائل کو consider کرے اور اس کے علام اور کسی configuration فائل کو consider نہ کرے تو آئیے واپس چلتے ہیں tutorial docs کی طرف اور دیکھنے ہیں configuration syntax تو شاید آپ کو یاد ہو ہم نے جب بھی configuration configuration file میں چینجز کرے تھے تو ہم equal to sign کا use کرتے ہیں جیسے اگر میں آپ کو اس گٹپوڈ میں دکھا ہوں اگر میں reload کروں میں نے start کرا ہے ہوسکتا ہے کہ تھوڑا سا time لگے لیکن جیسے ہی start ہوتا ہے تو میں آپ کو دکھاتا ہوں کہ آپ configuration file configuration file کے اندر field کو override کیسے کر سکتے ہیں تو جیسے کہ اب آپ دیکھ رہے ہیں میرا گٹپوڈ پوری طرح سے اگر آپ کے ساتھ بھی آپ کا گٹپوڈ انسٹنس ریڈی ہونے میں تھوڑا time لے رہا ہے تو آپ ہمیشہ نیا انسٹنس کرت کر سکتے ہیں آپ کو بس training material کے environment setup پر جانا ہے اور اس پیج پر اس لنگ اس لنگ کو اس ایکن کو کلک کرنا ہے اور آپ کے لئے ایک نیا گٹپوڈ انوائیمنٹ ریڈی ہو جائے گا جو کی آپ استعمل کر سکتے ہیں training کے لئے ہم ان چیزوں کو بند کریں گے ابھی ہمارے پاس documentation ہے ہمیں بس .config file کو کھولنے کی ضرورت ہے تو ابھی ہم یہ دیکھ سکتے ہیں کہ اگر آپ config file کے اندر کسی بھی چیز کو override کرنا چاہتے ہیں یا پر specify کرنا چاہتے ہیں تو آپ equal to sign کا use کر سکتے ہیں آپ ایک بار یہ دیکھ لیتے ہیں کہ آپ کے پاس کون کون سے ہم نے پہلے بھی ایک سیشن میں cover کرا تھا آج میں تھوڑا سروایس کرا دیتا ہوں کہ configuration files کے بارے میں جو syntax ہے اور جو include کرنے کا syntax ہے وہ سب ہماری reference documentation میں mention ہے اس کے علاوہ اگر آپ دیکھنا چاہتے ہیں scope کو تو اس کو سمجھنے کے لئے آپ کو configuration file کے scope کے page کے scopes والے menu کو پوری تر expand کرنا ہوگا تو آپ دیکھ سکتے ہیں کہ this configuration file جو ہے اس کے اندر بہت سارے scopes available ہیں اور ہر ایک scope کے کچھ values ہے جو آپ set کر سکتے ہیں جیسے docker enabled ہو گیا یا پھر docker legacy sudo temp remove یہ سارے ہمارے variables ہیں ایک docker scope کے اندر جنے آپ استعمال کر سکتے ہیں اپنے configuration file میں تو آئیے دیکھتے ہیں docker enable docker enable variable کو اب ہم enable کر دیتے ہیں اسے اور ports اس side کو بند کر کے ہم اس ایریا کو بڑا کر سکتے ہیں ہمارے terminal کے ایریا کو اب ہم اسے run کریں گے next flow run دیکھتے ہیں ہم چاہیں تو خالی hello script کو run کر سکتے ہیں اور کیونکی اب ہم نے docker کو enable کر دیا ہے next flow اس script کو اس container کے اندر run کرے گا تو container container start ہوگا اس کے اس کے اندر یہ ہمارا file system load ہوگا تاکی آپ کی normal files پر operate کر سکے اور جیسے ہی وہ operate کر سکے گا اس کے بعد container بند کر کے اب آپ file system پے اپنا جو result ہے وہ آپ دیکھ سکتے ہیں جیسے کہ ہم یہاں دیکھ سکتے ہیں کی ہمارا process complete ہوا میں آپ کو ہمارا ایک بہر پھر یاد دلان کر چاہوں گا کہ آپ اس format کے استعمال کر سکتے ہیں چاہے اگر آپ ان settings کو کو bundle کرنا چاہے تاکی readability کی مدت ہو تو آپ ایسے کر کے bundle بھی کر سکتے ہیں ایک scope کے اندر اس کی settings کو تو آپ اگر دیکھنا چاہے کہ اور کون کون scopes available ہیں تو آپ اس list کو refer کر سکتے ہیں ایک mail scope کو دیکھا ہے پہلے ہم نے executor scope کو دیکھا ہے docker scope کو دیکھا ہے condo scope کو دیکھا ہے اور process scope کو بھی دیکھا ہے پہلے لیکن اس کے علاوہ بہت ساری scopes available ہیں جیسے ہم نے parameter scopes کو بھی دیکھا ہے ایسے ہی notification scope بھی available ہے اور environment scope ہے اور dag scope ہے جس کا آپ استعمال کر سکتے ہیں next flow کا behavior modify کرنے کے لیے تو اب ہم اپنے tutorial کی طرف فاپس چلتے ہیں اور دیکھتے ہیں کہ ہم کس scope کو relevant کس scope میں relevant variable enable یا disable کر سکتے ہیں تو دیکھیں اگر میں یہ بتا ہوں آپ کو کی config file declarative ہے اس کا مطلب یہ ہے کہ آپ کو بہت سارا logic add نہیں کرنا آپ کو next flow کو یہ بتانا ہے کہ docker ہے اسے enable کرنا ہے آپ کو یہ نہیں بتانا کیسے enable کرنا ہے تو وہ سب جو وہ سب کام ہے وہ next flow اپنے آپ کرتا ہے اور اگر وہ configuration file میں in settings کو دیکھیں گا next flow جو جو بھی کام کرنا پڑے گا ان settings کو enforce کرنے کے لیے next flow وہ کام کرے گا ایک .config file جو ہے خود میں ایک script کی طرح ہے تو اس کے اندر بھی پاس variables ہوتے ہیں جیسے کہ آپ یہاں دیکھ رہے ہیں اس کے ساتھ آپ اس میں comments بھی use کر سکتے ہیں جیسے کہ آپ اس example میں دیکھ رہے ہیں single line comment or multiple line comment اس کے ساتھ جو scopes ہوتے ہیں جیسا کہ میں آپ کو پہلے دکھایا next flow کی reference documentation میں وہ scopes آپ use کر سکتے ہیں تو ایک parameters کے scopes ہے آپ اس parameters کے scopes کو use کر کر اپنے اپنے pipeline کو وہ parameters Provide کر سکتے ہیں تو آئیے ہم ایک چھوٹا سا experiment کرتے ہیں اس configuration file میں دو parameters add کرتے ہیں تاکی ہم جو priority list اور جو configuration resolution ہے اس کے بارے میں تھوڑا اور دیکھ سکیں اب ہم hello script کو modify کریں گے اور اس کا سب content replace کرتے ہیں تو آئیے یہ دیکھتے ہیں کہ ابھی ہمارا situation کیا ہے ہمارے situation کیا ہے پہلا point ہے جو میں highlight کرنا چاہوں گا کہ یہ hello.nf pipeline کے اندر یا script کے اندر ہمارے پاس parameters دو parameters ہیں لیکن ان دونا parameters کو ہم نے ایک configuration file کے اندر بھی specify کرا ہے تو اصل میں ہمارا سوال یہ ہے ہمیں یہ دیکھنا ہے کہ kiss parameter کو next flow overall priority دیتا ہے تو آئیے اسے run کرتے ہیں یا hello world print ہوگا یا تو bonjour lemon تو ہم دیکھ سکتے ہیں آپر کہ bonjour lemon print ہوا ہے hello world print نہیں ہوا یہ اس لے ہے کیونکی جو .config file کے اندر parameters ہیں ان کے priority جو script کے اندر آپ نے parameters لکے ہیں اسے زادہ ہے تو ہم نے یہ topic جو ہے کل بھی دیکھا تھا لیکن آج جو ہے ہم اسے ایک بھی پھر سے تچ کرتے ہیں پھر سے تچ کرتے ہیں تو آئیے آگے بڑتے ہیں میں آپ کو یہاں ذات دلانا چاہوں گا کہ اس پوری tutorial documentation میں ہم نے exercise زاد کری ہیں اگر آپ اس video کو pause کر کے exercise کرنا چاہیں تاکہ آپ ان concept کو اچھے سے سمجھتے ہیں یہ بہت بڑیہ ہوگا تو چلیے ہم ایک config scope کو دیکھتے ہیں جس کا نام ہے env جو environment scope ہے اس کا مطلب یہ ہے کہ آپ اپنے normal terminal environment میں کچھ variable ہو سکتا ہے نہ رکنا چاہیں لیکن کچھ variables ہو سکتا ہے کہ آپ اپنے environment میں میں تب ہی رکنا چاہیں جب next flow pipeline run ہوتی ہے تو next flow ایک config scope کا use کرتا ہے جس کا نام ہے env اور جیسے یہ آپ وہاں پر یہ دونوں variables paste کرتے ہیں اب یہ variables جب آپ next flow script کو run کریں گے اس کے environment میں available ہوں گے تو آئیے دیکھنے ہمیں script میں کیا content چاہی ہے ہم اس script کے content کو completely override کرتے ہیں اور اس کے بعد واپس جاکر ان دونوں ان دونوں lines کو comment out کرتے ہیں تاکہ ہم دیکھ سکیں کہ بنا env scope کے کیا behavior ہے اس script کا ایک ہمارا جو ہے deplicate ہو چکا ہے تو اس کے جکے ہم debug کرتے ہیں اور ایک پر فرصہ run کرتے ہیں results same آئے گا لیکن میں بس وہ warning ہٹا نا چاہتا تھا تو دیکھیں اس بار جو ہمار پاس لیکن error messager same ہے تو ہم یہاں دیکھ سکتے ہیں کی error messager ہمیں یہ بتا رہا ہے کی ہمارے پاس وہ tool نہیں ہے یا تو e-grip چیک کرتے ہیں کی ہمارے پاس یہ tool ہے کی نہیں ہم عصل میں اس کمان کو درک لی یہاں پر بھی run کر سکتے ہیں دیکھنے کے لے کیا behavior ہے تو یہ کمان run ہوتی ہے اور اگر ہم اپنے environment variable میں environment scope میں ان دونوں parameters کو enable کرتے ہیں اس بار اگر ہم اسے run کریں اس pipeline کو اور script کو تو دیکھیں کہ اس بار کیا behavior ہے دیکھیں اس بار ہمارے script اچھی سے execute ہوتی ہے تو اس کا مطلب یہ ہے کی جو ہمارے hello کی script ہے وہ alpha اور beta کو ہمارے script کے environment میں سرچ کرتا ہے جب اسے نہیں ملتا تو یہ process fail ہوتا ہے تو اس وجہ سے ہم یہ دیکھ سکتے ہیں کی جو ہمارا config file کا env scope ہے وہ کیسے impact کرتا ہے ہمارے script کے scope کو script کے run time پر تو اب اس کے ساتھ ہم اگلے section کی طرف بڑتے ہیں اور دیکھتے ہیں کہ ہم اپنے script کو کسٹرم کنفیکریشن فائل کیسے دے سکتے ہیں تو دیکھئے ہم ایک اور کنفیکر ہم ایک اور فائل بنایں گے یہاں پر جہاں پر ہم بولیں گے custom.config اور اس فائل کے اندر ہم کھالی env والے scope کو override کریں گے تاکہ ہم دیکھ سکیں کہ overall change کیا ہوگا اگر ہم ہم کسٹرم alpha اور ہم پر کہتے ہیں اگر custom beta اب اگر ہم اس normal nextflow جو ہماری script تھی nextflow run hello.nf اگر ہم کھالی وہ use کریں تو اس script کو run کرے گا لیکن nextflow.config کو use کرے گا اگر ہم اسے override کرنا چاہتے ہیں تو ہمیں یہاں پر یا تو soft override کو specify کرنا ہے یا پھر hard override کو specify کرنا ہے جب آپ soft override کرتے ہیں تو اس کا مطلب یہ ہے کہ آپ کچھ specify fields کو ہی override کرنا چاہتے ہیں لیکن باقی سب جو اس configuration میں اس pipeline کی configuration میں ہے آپ اسے use کرنا چاہتے ہیں تو اگر ہم اپنا soft override کرتے ہیں یہاں پر تو آئیے دیکھتے ہیں کہ ہمارا overall behavior کیا ہوگا تو اس کے بعد میں soft override اور ہر hard override کا a concrete example لے کر باتا ہوں تو اس کے حصاب سے ہماری file یہاں پر نہیں ہے custom.config ایک بر یہاں میں ls کرکے دیکھتا ہوں کہ ہماری میں نے نام گلتیا ہے تو آئیے نام کرکتے ہیں پہلے اس file کا اس کے بعد ہم continue کر سکتے ہیں یہاں پر اب میں اسے run کروں گا اور اس بار ہمارا alpha اور beta کی value normal سے different ہوگی میں اس file کو یہاں پر کھولنا چاہتا ہوں custom.config code custom.config تو اب آپ دیکھ سکتے ہیں کہ اگر میں سے split کرتا ہوں اور یہاں nextflow.config file کو کھلتا ہوں تو nextflow.config file کے اندر جو ہم نے environment variable کی values دی ہے وہ ہم نے soft override کری تھی اپنے custom.config file کے ساتھ لیکن اگر میں hard override کرتا ہوں minus small c کی جگہ میں capital C use کرتا ہوں تو دیکھتے ہیں کہ کیا ہوگا تھوڑا سا میں نے بڑا کرا ہے screen تو دیکھئے اس بار جو ہے ہمارا پورا process پھر سے run ہوا اور ہمارا اس بار بھی custom beta اور custom alpha print ہوا کیونکہ اس کس میں ہم نے docker کا کہیں استعمال نہیں کرا ہے لیکن اگر ہم docker کو تو ہمیں تھوڑا سا چینج کرنا ہوں گا چھلی میں آپ کو یہ دوسری سکریپ میں دکھا ہوں گا کہ کیسے کر سکتے ہیں لیکن ابھی میں آپ کو ایک ٹریک بتاتا ہوں جو کی ہے next flow config سکوپ کمانڈ تو اگر آپ اس کمانڈ کا استعمال کرتے ہیں تو آپ ایک یہ دے سکتے ہیں کہ جو resolve کنفگریشن ہے وہ کیسے دیکھئے گی کیونکہ میں اس جگہ میں ہوں جہاں پر دو میں next flow config type کرتا ہوں config کمانڈ کا use کرتا ہوں تو میں یہ دیکھ سکوں گا کہ جو ابھی resolve کنفگریشن ہے وہ کیسے ہے یہ دیکھئے یہاں پر resolve کنفگریشن میں مجھے یہ بتا رہا ہے next flow کی اس میں alpha اور beta کی یہ value ہے لیکن اگر آپ اس کنفگریشن اس کستم کنفگ کو اس فائل میں کستم کنفگ تو آئیے اب دیکھتے ہیں کہ ہماری جو resolve کنفگریشن ہے وہ کیسے آئی گی اس بار آپ دیکھ سکتے ہیں کہ ہماری resolve کنفگریشن کے اندر کستم alpha اور کستم beta آیا ہے یہ اس لے ہے کیونکہ یہاں پر جو value تھی وہ اس انکلوڈ کے ترو ہم نے override کر دی ہے next flow کنفگ کمانڈ کا تو اس کے بارے میں اور بھی ہم نے information بتائی ہے وہ ہے next flow cli کے documentation کے اندر تو آئیے واپس ہم اپنی training کے طرف چلتے ہیں اور بات کرتے ہیں config process کی تو ہماری جو ہم نے اس field کو اس code کو copy کرا اور اگر ہم واپس اپنے کنفگریشن فائل میں جاکے دیکھیں تو جو پہلے پہلی اس لائن کو comment کر دیتا ہوں اور خالی process کو ایسے process scope کی اندر میں cpu's memories and memory اور container کو اسپیفائے کرتا ہوں تو آئیے دیکھیں ہمارا process ہماری script کا کیا behavior ہوگا کیونکی process کے اندر میں بہت سارے directives آٹ کر سکتا ہوں جو کی ہم نے process کے page پر دیکھا تھا اور process اگر آپ یہاں کلک کریں تو آپ کو complete list ہے وہ آپ کو process کے page پر ملے گی اور آپ وہاں پر جو بھی process آپ use کرنا چاہتے ہیں جو بھی directives use کرنا چاہتے ہیں اس process میں آٹ کر سکتے ہیں دیکھیں آپ یہاں پر اتنی جلدی سے execution نہیں ہوا کیونکی وہ container next floor download کر رہا ہے جیسے ہی download ہوگا next floor اس container کو 10 cpu دیکھا اور 8 gb memory دیکھا اور limit کرے گا کہ وہ اس سے زادہ use نہ کریں تو دیکھیں اس بار جو ہے ہمارا execution ہو گیا ہے complete پہلے کی طرح لیکن اس بار ہمارا docker کا container ہے وہ دوسرہ container تھا اور ہم نے 10 cpu اور 8 gb memory memory کیا استعمال کرا آپ یہ same information جو ہے اپنے process کے اندر بھی رکھ سکتے ہیں جیسے یہاں پر ہے لیکن آپ کو syntax تھوڑا چنچ کرنا پڑے گا جیسے ہم نے بات کر دیتی پہلے آپ کو یہ equal to sign ہٹانا ہوگا ادھر سے ہٹا ادھر سے ہٹا ادھر سے ہٹا اور اگر آپ اس تینوں چیزوں کو یہاں سے ہٹا دیں تو وہ بھی برابر ہے اس کا مطلب ہے کہ آپ next flow کے اندر process level کے بھی اپنی configuration کو لکھ سکتے ہیں لیکن وہ best practice نہیں ہے کیونکی اب جو ہے آپ کے process کے اندر یہ جو تین چیزیں mention ہے انہیں overwrite کرنا بہت مشکل ہے کیونکی جو next flow کا overwrite میکانیزم ہے وہ config فائل کے ساتھ کام کرنے کیلے design ہے وہ ایک حتک process کے ساتھ بھی کام کرتا ہے لیکن جب آپ اپنے infrastructure اور pipeline کی code کو علاق لگ رکھنا چاہتے ہیں تو یہ بہتر ہے کہ آپ جو pipeline کا code اس کے اندر infrastructure کی چیزیں نہ لکھیں سب سے بہتر یہ ہے کہ آپ infrastructure کی باتیں وہ configuration configuration فائل کے اندر ہی کبر کریں تو آئیے اب ہم ایک جلدی سے جلدی سے ایک اور process ایک اور process کی feature کے بارے بات کرتے ہیں جو کی ہے process selector تو process selector جو ہے وہ بہتی کام کا feature ہے جس کا آپ use کر سکتے ہیں اس سنٹکس کے ساتھ تو اب ہم واپس اپنے configuration فائل میں چاہیں گے اور ہم یہ کہیں گے کی process کا جو scope ہے اس scope کے اندر جو full اس scope کے اندر جو بھی full نام کا process ہوگا اس میں ہم 4 CPU use کرنا چاہتے ہیں sorry 4 GB use کرنا چاہتے ہیں multiplied by number of CPUs ابھی کے لیے اگر ہم اسے تھوڑا سرل بنایا تو ہم خلی یہ بھی کہہ سکتے ہیں 4 GB use کرنا چاہتے ہیں لیکن جو بھی اگر اس پائیپلین میں ہم ایک اور process define کرے یہاں میں ان چیزوں کو ہٹا دوں گا یہاں سے اور اس پائیپلین میں ایک اور process define کرنا چاہتا ہوں جو خالی ایک کو hello print کرے گا اور اگر میں یہ چاہتا ہوں کہ اس process کے ساتھ اس process کا نام بھی علک ہونا چاہیے تو میں وہ بھی علک کروں گا ہمارا یہ process one ہو گیا process full process two ہو گیا process bar اگر میں چاہتا ہوں کہ process one جو ہے process full جو ہے وہ 4 GB memory کے ساتھ رن ہو اور جو process bar ہے وہ 10 GB کے ساتھ رن ہو تو میں وہ بھی اس process selector کے concept کا استعمال کر کے next flow کو بتا سکنا ہوں next flow میں دو ترے کے process selector ہیں جو پہلا ہے process پہلا ہے with name دوسرا ہے with label ان کے بارے میں ہم نے اور بھی information دی ہے ہم اس information کو ہمارے process کی definition میں دیکھ سکتے ہیں configuration file کے under process میں دیکھ سکتے ہیں جیسے process selector with label تو آپ ہر ایک process کو ایک label بھی دے سکتے ہیں اور آپ next flow configuration میں یہ بول سکتے ہیں کہ اس label کے جیسنے بھی process ہیں ان سب کو next flow ایک اگر آپ hpc میں کام کر رہا ہے تو ایک queue میں بھیجے یا پھر دوسری queue میں بھیجے یا پھر تیسری queue میں بھیجے تو یہ جو چیزیں آپ کو بہت فلکسی بلیٹی دیتا ہے کہ آپ بنا پائیپلین کے code کو چینج کرے اپنے configuration کے کسی بھی pipeline کو اپنے environment میں رن کر سکے ہیں تو آئیے اب ہم واپس اپنے process اپنے script میں چلتے ہیں اور اسے label دیتے ہیں label low cpu یا high memory کتنے بھی label آپ provide کر سکتے ہیں ایک process کے اندر low cpu اور جب آپ اپنے process selector کو design کر رہے ہیں اس میں اس کے ساتھ آپ ایک SPECIFIC DIRECTIVE کو associate کر سکتے ہیں جو کیا آپ use کرنا چاہتے ہیں اس process کے ساتھ اگر میں یہاں کہوں label high cpu تو یہاں پر cpu's 10 ایسے کر کے آپ اپنے processes کو customize کر سکتے ہیں configuration file کے درو تو آئیے اب ہم آگے بڑھتے ہیں کچh process selectors یا کچh directives ہیں sorry ان کا ان کا جو input ہے آپ map کے دروٹ دے سکتے ہیں map سمنے کل groovy کے سیکشن میں cover کرا تھا تو maps کا بھی استمال جو ہے next flow scripts or configuration file کیاندر ہو سکتا ہے ایسے ہی جو ہمارا docker کا configuration scope ہے اس میں بھی ہم similar operations execute کر سکتے ہیں تو جو بھی آپ configuration scope configuration کی documentation میں دیکیں گے اسی ساب سے ہے اور آپ کنٹول کر سکتے ہیں تو آئیے اب ہم دیکھتے ہیں conda کے اس کوپ کو آپ کو شاہد یاد ہو کہ ہم نے پہلی ہم نے کل جو ہے جو ہماری script number 2 ہے اس کے لیے a specific conda environment بنایا تھا اور اس environment کے ساتھ ہم نے script کو run کرا تھا تو ہم اس script کا a specific conda environment بنا کر اپنے configuration file کے اندر بھی اسے specify کر سکتے ہیں اگر آپ کہیں کہ جو phoo name کے processes ہیں خالی وہ اس environment کے ساتھ run ہونے چاہئے phoo process یا پھر اگر آپ کہیں کہ جو bar name کے process ہیں خالی وہ اس phoo یا bar process کے ساتھ run ہونے چاہئے تو آپ وہ بھی specify کر سکتے ہیں process selector استعمال کرکے اگر آپ default define کرنا چاہتے ہیں کہ اگر اس کسی process میں یا تو label define نہیں ہے یا پھر اس کا name لیکی کسی نے specify نہیں کرا تو آپ default values بھی here define کر سکتے ہیں تو اسے ساب سے آپ آپ کے پاس بہت flexibility ہے ان چیزوں کو کنٹول کرنے کے لیے اس کے ساتھ ہم آگے بڑتے ہیں deployment scenario اس کوئی طرح جب آپ next flow pipelines کو اپنے execution environment میں deploy کرنا چاہتے ہیں تو سب سے پہلے آپ کو infrastructure کی knowledge ہونی چاہیے جیسے جیسے کہ وہ infrastructure ہو سکتا ہے کہ وہ hpc orchestrator ہو یا پھر وہ ایک server environment ہو یا پھر وہ a cloud execution environment ہو یا پھر Kubernetes environment ہو next flow جیسے ہم نے بات کری تھی next flow جو ہے infrastructure layer کو pipeline کے logic سے علاگ رہتنے ہمیں دیتا ہے اور اگر ہم نے pipeline کو اچیسے design کرا ہے یا پھر ہم کوئی best practices pipeline use کرتے ہیں جیسے nf core کی pipeline تو ہمیں خالی configuration file میں ہی چینج کرنے کی ضرورت ہے نہ کی pipeline کے logic میں تو جب آپ اپنے environment میں pipeline کو deploy کرنا چاہتے ہیں تو سب سے پہلے آپ آپ جو ہے executor کو specify کریں گے کیس طرح کا executor ہے آپ کے پاس next flow جو ہے بہت سارے batch executors کو batch schedulers کو deploy کرتا ہے جیسے کی اگر آپ اس لسٹ پے جاکے دیکھیں تو آپ کو پوری لسٹ ملے کیا جیسے aws batch azure batch bridge gf4 ch google cloud batch google life sciences hyper queue ایسے کر کے بہت سارے executors ہیں جن کا آپ استعمال کر سکتے ہیں تو آئے دیکھتے ہیں کہ اگر آپ خود کی pipeline develop کر رہے ہیں یا پھر ایک standard pipeline use کرنا چاہتے ہیں تو اسے جیسے کی ہم نے دیکھا پہلے کی next flow جو ہے pipeline کا logic اور infrastructure کی جو configuration ہے وہ separate رکھنے میں help کرتا ہے اس کا فائد ہے یہ ہے کہ آپ اپنی جو pipeline کا logic ہے وہ implement کر سکتے ہیں اپنے computer پر locals laptop پر لیکن جب آپ ready ہیں پورے full fledged analysis کے لیے تب آپ اسے اپنے cluster یا پھر cloud environment میں deploy کر سکتے ہیں اس کا آپ کو benefit یہ ہے کہ آپ کو resource heavy resources کی ضرورت نہیں ہے next flow pipelines کے ساتھ کام کرنے کے لئے آپ ایک simple چھوٹے laptop کے ساتھ ستاٹ کر سکتے ہیں اور جب آپ اپنی pipeline کو دوسرے environment میں run کرنے کے لئے ready ہیں آپ کو configuration file میں صرف ایک line کا change کرنا ہے اور آپ کی pipeline اس environment میں run next flow کر دے گا اگر آپ جاننا چاہتے ہیں کہ کون کون سے cluster کے resources ہیں جو آپ کنٹرول کر سکتے ہیں configuration say تو میں یہ ہلٹرنا چاہتا ہوں کہ کچھ directives ہیں process کے اندر جو کی آپ پر executor customize کر سکتے ہیں جیسے q cpu's memory time disk تو یہ ساری چیزیں آپ یا تو process اب ہم بات کر رہے ہیں next flow config file کے اندر کے changes کی تو یہ ساری چیزیں آپ process میں as a default value add کر سکتے ہیں کہ ہر process میں apply ہوگا یا پھر آپ جو ہے اگر ہم تھوڑا نیچے جائیں اتھر تو آپ ہر process process selector کیا use کر کے ہر ایک process کے لیے a specific set of resources specify کر سکتے ہیں جیسے یہاں پر ہم نے with name process selector کیا use کرا اور ہم بول رہے ہیں next flow یہ جو بھی ہمارے processes ہیں جن کا phoo ہے انہیں 2 cpu's Provide کرے ان کے لیے allocate کرے اور انہیں short queue میں send کرے ایسے ہی with name bar process کے لیے لیکن جو جو process ہم نے specifically select نہیں کرے ہیں ان سب کے لیے default یہ values ہوں گی ایسے ہی آپ name کے ساتھ ساتھ labels کبھی استعمال کر سکتے ہیں جیسے کیا ہم پچھلے video میں تو ہم next flow configuration میں اور یہاں پر just executor کا نام ہمیں بدلنا ہوگا اب اگر آپ چاہے تو next flow کے جو head job ہے اسے بھی اپنے cluster میں submit کر سکتے ہیں کیونکہ جو login node ہوتا ہے زادتر اس پر limitations ہوتی ہیں اور اس کو ہم use نہیں کرنا چاہتے next flow کے long running process کو start کرنے کے لیے تو جیسے اس کیس میں ہم slum job job's کے dealer کے لیے sorry یہ head it's add کرتے ہیں script میں اور script کو launch کر دیتے ہیں اس batch tool کے ساتھ جس کی وجہ سے ہماری next flow کا trigger process ہے next flow run جو command ہے وہ run ہوتی ہے ایک job کے اندر naki login node میں اس کے ساتھ ساتھ چانی ہیں next flow کو hpc پر چلانے کے لیے تو ہماری دو block post کا refer کر سکتے ہیں اور اس کے ساتھ ساتھ اگر آپ cloud میں بھی اپنی pipeline کو test کرنا چاہتے ہیں یا پھر آپ کے پاس multiple execution environment ہیں تو آپ ایک specific feature کر سکتے ہیں جو کی ہے configuration profile تو آپ ایک profile جو ہے آپ کا alias ہے کچھ settings کیلئے جو کی ایک environment کیلئے کریکٹ ہے یا valid ہے جیسے جو standard ہے وہ default ہوتا ہے next flow کیلئے تو اگر آپ کوئی بھی custom کوئی بھی profile invoke نہیں کرتے تو next flow آپ نے آپ standard profile کے ساتھ run کرے گا لیکن اگر آپ cluster profile یا cloud profile کو ان میں سے ایک کو include کرتے ہیں یا دونوں کو include کرتے ہیں تو next flow ان دونوں settings کو merge کرے گا اس کے بعد ایک final configuration کو بنائے گا اور اس کے ساتھ run کرے گا اب بات آتی ہے کیا جو آپ نے configuration design کری ہے کیا وہ mutually exclusive ہے یا پھر overlapping ہے اگر overlapping ہے تو problematic cases جو ہیں arise ہو سکتے ہیں کیونکی جو عظمشر آپ نے اپنے cluster profile میں کری ہے ہو سکتا ہے وہ cloud میں بہتر ہے کیا آپ profiles کو design کریں دیتا کے perspective سے جیسے nf core میں ہم نے test profile دیکھی اور اگر میں آپ کو یہاں پر دکھا ہوں ہم چلتے ہیں nf core rna seek pipeline پر اور میں یہاں پر آپ کو کچھ configuration files دیکھاتا ہوں جو data سے related ہیں اور جو execution environment سے related ہیں آئیے دیکھتے ہیں ہم configuration folder کے اندر دیکھتے ہیں تو ہم ہم یہاں پر دیکھ سکتے ہیں کہ ایک test profile ہے test config ہے جس کے اندر ایک profile ہوگی test name کی ایک test full config ہے تو اگر ہم کوئی بھی ان میں سے file کھولیں ہم دیکھ سکتے ہیں کہ اس کے اندر ہم نے params set کرے ہیں اور process set کرا ہے لیکن اگر آپ دوسری file کھولیں جیسے test full ہے اس میں ہم نے انفرسٹرکہ سپیسیفائی کرا ہے test کا مطلب ہے کہ یہ بس چھوٹے سے انفرسٹرکٹر پی بھی رند ہو سکتا ہے لیکن اگر آپ چاہیں تو test full کو بھی دیکھ سکتے ہیں جس میں تھوڑا زادہ انفرسٹرکٹر ہوا ہے لیکن ہمارا پوری pipeline بڑے data set کے ساتھ test ہو اب یہ nf core کا pattern ہے اگر آپ اپنی کوئی pipeline design کر رہے ہیں تو ہو سکتا ہے آپ کچہ اور pattern کا idea دینا چاہتا ہوں تا کہ آپ اپنے pattern کو best practices پے کساہت design کر سکتے ہیں تو جیسے modules.config file ہے اس کے اندر آپ دیکھیں گے کہ process publish dir select کر کے publish dir یہ default value ہے ہر ایک process کے لئے لیکن آپ process کے حصاب ہر ایک process کے حصاب سے آپ publish dir set کر سکتے ہیں تو یہ global publish dir value ہے اور یہ local publish dir value ہے تو یہاں پر ہم دیکھ رہے ہیں کہ with name process selector use کر کے publish dir کی value set ہوئی ہے یہ file بڑی ہے تو اس کے ساتھ آپ اگر اسے scroll کرے تو اسے study بھی کر سکتے ہیں process dir common ہے لیکن ہر ایک module کے لئے آپ customize کر سکتے ہیں اس کے arguments کو کیونکہ nf core کے modules جتے ہیں جتنے تو اب اگر میں آپ کو دکھا ہوں جیسے base ہماری یہ config file ہمارے labels کو define کرتی ہے جیسے process single کا label جو ہے اس میں cpus maximum cpus one ہو سکتا ہے اور memory maximum cpus 6 gb ہو سکتا ہے تو یہ process single low medium high long high memory error ignore error retry ان کے بیسیس پر یہ labels define کرے ہیں base config میں ہر ایک pipeline nf core کی انکہ استعمال کرتی ہے اب ہم واپس چلتے ہیں اپنے ہمیں executors کی بات کرنی ہے میں کو آپ کو دکھا نا چاہتا ہوں ایک اور project nf core کا جو کی اگر آپ شاہد یاد کریں تو میں نے اس کے بارے میں دسکس کراتا دوسرے ستیشن میں اپنے nf core config شاہد اس کا نام configs ہے نام ہے اس project کا تو اس project کے اندر کھالی configuration files ہیں جو کی جو کی بہت سارے انسٹیوٹس نے کنٹریبوٹ کری ہے nf core project کی لئے تو جب nf core pipeline run ہوتی ہے تو وہ ان ساری configuration کو enable کرتی ہے تو اگر آپ چاہیں تو اور جیسے مان لیتے ہیں آپ Cambridge انسٹیوٹ میں کام کرتے ہیں تو آپ Cambridge کی profile درکلی use کر سکتے ہیں nf core کی pipeline کے ساتھ تو اس کے علاوہ آپ کو بہت بہت کچھ customize کرنے کی ضرورت نہیں ہے آپ n pipelines کو دیکھ سکتے ہیں study کر سکتے ہیں کیسے حصاب سے انہوں نے configuration files design کریں اپنے infrastructure کے لیے اور ان کا use کر کے آپ اپنے infrastructure کے لیے configuration file design کر سکتے ہیں تو آئے آگی بڑتے ہیں اگر آپ ہماری training material میں ایک section SPECIFIC ہے cloud deployment کیلئے جس میں ہم نے ابھی aws batch کو cover کرا ہے تو اگر آپ کے پاس aws batch کا access ہے تو یہ جو section ہے آپ کے لے بہت use فل ہو سکتا ہے ہم اس میں بات کرتے ہیں کہ اگر آپ volume کو volume کو mount کرنا چاہتے ہیں اپنے work flows میں تو کیسے کر سکتے ہیں custom job definition define کرنا چاہیں تو کیسے کر سکتے ہیں custom image ac to instance کی کیسے use کرنا چاہیں تو وہ بھی define کر سکتے ہیں launch template بھی define کر سکتے ہیں اس کے ساتھ ساتھ next flow کا ایک بہت بہترین feature ہے جو کہ ہے hybrid deployments تو ہو سکتا ہے کچھ processes آپ اپنے laptop میں run کرنا چاہیں کچھ processes آپ ایک cluster میں run کرنا چاہیں کچھ processes آپ cloud میں run کرنا چاہیں اس case میں جب آپ اپنے execution environment کو hybrid طریقے سے deploy کرنا اپنے pipeline کو execution environment میں hybrid طریقے سے deploy کرنا چاہیں تو اس میں بھی آپ labels or names نام کے process select اس کا استعمال کر سکتے ہیں تو جیسے کی آپ دیکھ سکتے ہیں next flow بہت ہی versatile tool ہے اور اسے بہت سارے environment میں deploy کر سکتے ہیں لیکن آپ جس بھی environment میں deploy کریں گے ہو سکتا ہے کہ pipeline جیسے ہی complete ہوتی ہے یا unsuccessful complete ہوتی ہے تو آپ کو اسے debug کرنے کی ضرورت ہوگی یا پھر اسے بس resume کرنے کی ضرورت ہوگی کچھ کچھ cases میں تو آئیے ہم دیکھتے ہیں کہ resumption or troubleshooting کیسے کام کرتا ہے تو ہم چلتے ہیں next section کی طرف چکی ہے cash and resume next flow کی design میں cash ability or resume ability ایک major role پلے کرتی ہے اور آئیے اب ہم اس کے بارے میں کچھ گہرائی سے جانتے ہیں تو next flow جو ہے caching mechanism کیسے کام کرتا ہے caching mechanism کا مطلب ہے جیسے ہی آپ نے کوئی pipeline run کری next flow اپنا ایک database بناتا ہے اس database کی اندر وہ یہ دیکھتا ہے کہ جو process کا blueprint تھا اسے جب ایک file یا اس کے input سے کممائن کرا تو اس کا جو fingerprint بنا جو نیا task بنا وہ کہاں پے کہاں پے run ہوا اور اس کے بارے میں جو بھی information ہے وہ ایک database میں سیب ہوتی ہے تو اگر میں آپ کو ہم شاید آپ کو یاد ہو اس سے کہ ہم نے یہ بات کرے تھے کہ process جو ہے ان tasks کا task 1, task 2 اور task 3 کا ایک طرح سے blueprint ہے اور جب آپ یہ blueprint کا use کرتے ہیں ایک data point سے ایک data input data سے کممائن کر کے یہ blueprint جو ہے ایک specific task بناتا ہے تو ہر ایک task کا ایک fingerprint ہے جو کی caching mechanism میں use ہوتا ہے تو یہ ہر ایک task کے لیے ایک 128 bit کی hash value generate ہوتی ہے اس کے elements کو join کر کے تو شاید آپ کو یاد ہو کہ ہم نے بات کرے تھے کہ کچھ superficial changes ہوتے ہیں next flow script میں اور کچھ core changes ہیں تو اگر آپ جیسے publish dir add کریں کسی process میں اور resume کریں pipeline کو تو وہ پوری طرح سے resume ہوگی لیکن اگر آپ اس pipeline کا command string change کریں جیسے کہ fastqc کو ہم نے ایک script میں convert کر دیا تھا shell script میں اور shell script کو fastqc کے process میں use کرا تھا تو وہ ایک important change تھا core change تھا اس کی وجہ سے next flow نے اس process کو پھر سے run کرا تھا لیکن جب ہم خالی task کی id کی بات کریں تو task کی id ہوتی ہے جب آپ next flow pipeline کو run کرتے ہیں یہ جو section ہے اسے task کی id کیا سکتے ہیں آپ تو ہم نے پہلے یہ دیکھا ہے کہ اس task کی id کو آپ ایک اگر آپ یہاں دیکھیں چلے ایک process run کرکے دیکھتے ہیں اس کے بعد ہم id generate کر لیں گے id کو id کو use کریں گے اس کی work directory دیکھنے کے لیے تو یہ hello process ہے hello script ہے یہ run ہوئی اور ایک task run ہوا full process کی blueprint کو use کر کے ایک task run ہوا bar process کی blueprint کو use کر کے چلیے ہم full process کی work directory کے اندر شل کے دیکھتے ہیں اب میں یہاں پر sorry میں work لکھ کر یہ paste کرتا ہوں اور tab دباتا ہوں تو میں پوری طرح سے اس area کو expand کر سکتا ہوں اور اس foldر کے اندر آگیا تو یہ وہ foldر ہے جہاں پر full process کا جو اکلوطہ task تھا وہ execute ہوا اور اگر میں minus la h کرتا ہوں تو میں دیکھ سکتا ہوں جی جہاں dot files بنی ہیں اس کے اندر کچھ shell script ہے کچھ output file ہے کچھ log file ہے کچھ error file ہے اور جو ایک طرح سے اس کا ستردھار ہے جو اس پورے dot commands کا یا dot command files کا leadership کرتا ہے وہ a dot command dot run تو یہ ایک طرح سے leader dot file ہے چلیے اس کے بارے میں پھر سے بات کریں گے لیکن ابھی کے لئے work directory کے سٹرکچر کے ساتھ تو یہ جو سٹرکچر ہے شاید آپ نے آپ ابھی دیکھ سکیں work کے اندر ایک دو کریکٹرز کا کیونکہ ہر بار یہ نمبر نہیں ہوتے ہو سکتا ہے a ہو b ہو تو دو کریکٹرز کا ایک foldر بنتا ہے اس کے اندر پھر سے hash use ہوتا ہے ایک اور task کا اس کے بعد اس task کے اندر جو بھی task آپ نے run کرا ہے وہ چیزیں ہوتی ہیں اب اس task میں اگر آپ نے سٹرٹیجی use کرے گے ہے کی ڈیٹا کوپی نہ ہوں لیکن کھالی سیمبالک لنک بن کے ڈیٹا وہاں تک رکھیا جائے تو آپ کو وہ بھی دکتا ہے تو اب ہم آگے چل سکتے ہیں یہاں پر آپ اگر اس کمان اگر اس فائل ڈری کو دیکھنا چاہا ہے یا پر جو work directory اسے دیکھنا چاہے تو آپ ڈری کمانٹ کا استعمال کر سکتے ہیں اگر آپ کو ڈری کمانٹ اپنے کمپوٹر پر انسٹول کرنی ہے گیٹپوٹ پر تو آپ یہ کمانٹ ڈیشو کر سکتے ہیں ڈری تو ڈری ہمارے ڈری میں انسٹول ہے اور ہم ڈری work کریں گے تو ہم دیکھ سکتے ہیں کی کتنے ساری work ڈریکٹریز ہیں ہماری اور ان کا ڈریکٹریز کیا ہے میں یہ ڈریکٹریز ہمارے work ڈریکٹریز ہمارے publish ڈریکٹریز سے ہر Nós ڈریکٹریز ہمارے ڈریکٹریز ہمارے یہ دیتا جنریٹ ہو رہا ہے اسے ہم کہتے ہیں work ڈیریکٹری by default next flow ایک work ڈیریکٹری بناتا ہے جو آپ یہاں دیکھ سکتے ہیں work لیکن اگر آپ چاہیں تو اسے customize بھی کر سکتے ہیں اور اگر ہم ایک پار next flow کمانٹ کو فرصہ رن کریں تو ہم اس پار یہ کہہ سکتے ہیں work dir work ڈیریکٹری یہ ہمیں پورا پاتھ ستنائے ہو سکتا ہے ہم یہ کہیں اور رکھنا چاہیں جیسے میں ایک ریلیٹف پاتھ use کروں گا اور میں کہوں گا my work dir تو آئیے رن کر کے دیکھتے ہیں کہ اب ہمارا ریزلٹ کیسا ہوتا ہے ہمارے جو ریزلٹس ہے اس میں کوئی بھی فرق نہیں آئے گا لیکن جو بھی intermediate files ہے یا جہاں پہ بھی task کی دیریکٹری بنتی ہے وہ location ہم نے customize کری ہے تو آپ اگر میں ls کرتا ہوں تو میں دیکھ سکتا ہوں کہ ایک my work ڈیریکٹری folder بن چکا ہے اب ہم آگے چلتے ہیں اور دیکھتے ہیں کہ اگر آپ اپنے experiments کو organize کرنا چاہیں تو کیسے کر سکتے ہیں دیکھیں سب سے پہلے جو ہم rnseq nf pipeline ہے جو کی ایک طرح سے full version ہے ہماری جو ہمارا tutorial pipeline ہے جو ہم نے tutorial میں use کرا تھا simple rnseq یہ اس کا full version ہے جو کی ہم بہت سارے platform پر run کر سکتے ہیں ابھی کے لئے ہم اسے یہاں پر run کر کے دیکھتے ہیں اور ایک docker profile جو ہے اس کی enable کریں گے تو اس پر میں نے directly rnseq نام دیا ہے کیونکی اگر آپ اس کا کوئی proper یا full نام نہیں دیتے تو next flow assume کرتا ہے کہ یہ گٹھپ پے ہے اور گٹھپ پر اس location کے اندر یہ rnseq nf ملے گی لیکن جب آپ pipeline run کریں گے third party pipeline جیسے nf code کی ہو گئی یا کچھ بھی ہو گئی اس کے لئے آپ کو پورا آپ یا تو پورا نام دے سکتے ہیں اور یا تو آپ nf core slash rnseq یا پھر کچھ بھی pipeline کا نام دیکھے اس پر ان کو run کر سکتے ہیں یہ جو complain آئے ہمارے پاس یہ جو warning آئی یہ اس لئے آئی ہے کیونکی next flow نے ہمارے next flow.config file ہے اسے بھی pick کرا ہے اس کا مطلب یہ ہے کہ ہمارے یہ جو dot next flow file تھی dot next flow.config file ہے یہ ایک remote pipeline کی execution میں contribute کر رہی ہے اس کیس میں ہم یہ نہیں چاہتے تو میں اس run کو کانسل کر کے ایک نیا فولڈو بنا ہوں گا جس کا نام دوں گا rnseq nf experiments اب ہم اس کے اندر چلیں گے اور میں same command کو فرصہ دیتا ہوں یہاں پر تاکہ ہم اپنے experiments کے ساتھ آگی بڑھ چکیں اس پر وہ pipeline download نہیں ہوئی کیونکی وہ پہلے سے downloaded ہے اور جو ہم اس کے pretty formatted parameters کو print کرتے ہیں تو ہم دیکھ سکتے ہیں کہ اپنے assets نام کے home.nextflow assets folder کے اندر یہ pipeline saved ہے اور جیسے یہ pipeline run ہو رہی ہے ہو سکتا ہے تھوڑا سا time لکے اس لیے ہم اپنے tutorial کی طرف پہپس چلتے ہیں اس کے بعد میں آپ کو یہ دکھا ہوں گا کہ آپ nextflow lock command کا کیسے use کر سکتے ہیں کیونکی nextflow اگر آپ اپنے ایک ہی folder میں بہت طریقے سے nextflow pipeline کو run کرتے ہیں تو nextflow lock command کا use کر کے آپ history nextflow کا دیتہ بیس ہے اس سے آپ انٹریکٹ کر سکتے ہیں تو آئے دیکھتے ہیں کہ ہمارا ایکزیکیوشن پورا ہوا ہے نہیں ہوا اس سے موف کرتا ہوں اور اب ہمارا ایکزیکیوشن لگ بھر پورا ہو چکا ہے اور ہم دیکھتے ہیں کہ ہماری ملٹیکیوز رپورٹ ہے وہ بھی generate ہو چکی ہے اب ہم دیکھتے ہیں nextflow lock ابھی تک ہم نے اس folder کے اندر ایک ہی بار pipeline کو run کرا ہے اس لیے ہمارا ایک ہی انٹری ہے اس لوگ command کے اندر لیکن اگر میں فرصے اس pipeline کو run کرو رزیوم option کے ساتھ تو آئے دیکھتے ہیں کیسا behavior ہوگا اہلی بات کچھ بھی فرصے run نہیں ہوگا کھالی cast result use ہوگا کیونکہ ہم نے کچھ بھی change نہیں کرا ہے pipeline میں کوئی change نہیں ہے configuration میں کوئی change نہیں ہے تو سب کچھ cast ہے جیسا کہ ہم نے بات کری اور اس بار اگر میں nextflow lock run کروں گا تو میں دیکھتے ہوں کہ دو processes دیکھتے ہیں اگر میں یہ چھوٹا کرتا ہوں شاید پورا ایک لائن میں دیکھے لکھ بھگ ایک لائن میں دیکھ رہا ہے لیکن آپ دیکھ سکتے ہیں کہ یہ time stamp ہے دوریشن ہے ہمارے پاس پہلے ایک منٹ لگا تھا لکھ بھگ اس بار تین منٹ میں ہمارا execution کمپلیٹ ہوگا اس run کا نام کیا ہے اس نام کو بھی آپ customize کر سکتے ہیں آپ ایسے کہہ سکتے ہیں جیسے name experiment exp one اب آپ اسے run کریں گے تو آپ نے custom name کے ساتھ run کرا ہے اور اپنے experiment آپ ایسے save کر سکتے ہیں پھر سے اس بار ایک منٹ لگے گا تو ہم واپس tutorial کی طرف جاتے ہیں اور تھوڑی دیر میں واپس آئیں گے تو آپ یہ دیکھ سکتے ہیں کہ آپ specific resume کے ساتھ ایک specific name use کر سکتے ہیں یا پھر session id بھی use کر سکتے ہیں اب session id کیا ہے یہ آپ نے log کے output میں دیکھتا پہلے تو جب آپ resume کمان resume کر رہے ہیں کچھ تب آپ جو ہے یا تو صرف resume لکھ سکتے ہیں جو کی by default previous run کو resume کرتا ہے لیکن اگر آپ چاہیں تو ایک specific name کی run کو بھی resume کر سکتے ہیں جیسے ہم ہم یہاں پر exp1 کو resume کرنا چاہتے ہیں تو اس پی one کو resume کرنا چاہتے ہیں تو ہمیں بس یہ name دینا ہے اور resume کر سکتے ہیں اگر آپ کے پاس session id ہے تو آپ session id کے ساتھ پر resume کر سکتے ہیں یہ آپ کے اوپر ہے اس کے بعد اب اگر آپ دیکھنا چاہیں کہ ایک run سے related کتنی سارے task directries ہیں تو آپ اسے بھی چک کر سکتے ہیں آپ nextflow lock کمانٹ کا ہی استعمال کریں گے پھر سے اور اس run کا نام دیں گے تو آپ کو nextflow یہ بتا دے گا کہ یہ یہ جو folders ہیں ایک run سے related ہیں نہیں تو اگر آپ ایک specific informat میں اس information کو دیکھنا چاہیں آپ nextflow سے وہ بھی بول سکتے ہیں اب ہم یہاں پر ایسا کریں گے کہ tiny format کی جگہ ہم اسے e میں کلتا ہے تھوڑا گلتی ہوئی ہے یہاں پر ہم یہاں پر tiny format کی جگہ ہم یہاں پر ڈائپ کریں گے ہم e xp one اب دیکھتے ہیں کہ ہمارا overall statistics کیا ہے اس پیپلنٹ کو لکر دیکھے ہمارا نام ہر process کا نام اس با پرنت ہوا ہے hash print ہوا ہے duration print ہوا ہے کہ اس process میں کتنا ٹائم لگا تو ایسے کر کے آپ idea لے سکتے ہیں کہ جو آپ کے سارے tasks ڈریکٹریز ہیں ان کا information کیا ہے ان کے statistics کیا ہے اس کے ساتھ آپ جو ہے اب کچھ folder کو وہ کو filter بھی کر سکتے ہیں جیسے اگر ہم کہیں کہ ہمیں اس case میں ہمیں پوری کمان لکنی ہے یہاں پر next flow log e xp one اور آگے جاکے ہم گہ سکتے ہیں ڈاش minus if پرہاں پرسیس ڈاش اتنا ہی information مانکتے ہیں ابھی کے لیے یہ capital f ہے یہ filter ہے اور یہ minus minus small f ہے وہ filter ہمیں کر کے بتا سکتا ہے چیزوں کو ایک پر میں سے آ یہ pattern پورا نہیں ہمارا اس کے اس میں کیونکہ ہمارا small میں fast qc نہیں ہے ہمارا fast qc capital ہے آپ کو شاید یاد ہو کہ یہ ہے slashy string جو ہم نے کل گرو بی میں کرا تھا تو اس میں سے capture نہیں ہوا ہے امرہ کو جب ہم دیکھتے ہیں کھالی اس کو رن کر کے ابھی بھی ہمارا capture نہیں ہوا ہے شاید ہم کوئی گلٹی کر رہے ہیں لیکن ایک بر ہم multi qc کے ساتھ اسے کنفرم کر سکتے ہیں ملٹی qc اس کے بعد process hash اب دیکھتے ہیں ایک بار دیکھیں ملٹی qc کا نام آیا اور task directory جو کی process کے has سے ڈرائب ہوتی ہے وہ بھی آیا اب ہم واپس جاکے اپنے pattern کو correct کرتے ہیں کیونکی یہاں پر ہمارے pattern میں اس کا پورا نام ہے rnc fast qc تو ہمیں ان کا دھیان دینا ہے چلی ایک بار پورا نام دیکھے دیکھتے ہیں دیکھیں اس بار ہمارے پاس سارے information آئی ہے اور ہم now process اور hash ان دونوں کو پرنٹ کرنا چاہتے ہیں تو ہم جو ہے جو بھی ہمارے processes run ہوئے ہیں ایک execution میں انہیں filter کر سکتے ہیں ان کے بار میں information extract کر سکتے ہیں next floor lock کمانٹ کا use کمانٹ کا use کر کے اب اب ان ساری چیزوں کو ایک SPECIFIC html format میں بھی use کر سکتے ہیں کیونکی next floor lock کمانٹ جو ہے template accept کرتا ہے تو آئیے ایک template بناتے ہیں اور اس کے اندر ہم یہ information دیتے ہیں ہمیں ہم یہاں پر next floor lock exp one کیونکی ہمارے پہلے experiment سے related ہے ہم اسے run کرتے ہیں اور دیکھیں گے کہ جو ہمارا prop file بنی ہے اس کے اندر values کیا آئی ہیں آپ یہ دیکھ سکتے ہیں کہ جو template میں ہم نے set کرا تھا script exit code status work tr وہ سب ہمارا prop file میں provenance file میں replace ہو گا ہے اس کے ساتھ ہم دیکھتے ہیں کچھ ٹیکنیکس جو آپ کی resume ability کو break کرتی ہیں جب آپ اسے troubleshoot کرنا چاہیں تب اگر آپ میں یہ حلٹ کرنا چاہوں گا اگر آپ troubleshooting کر رہے ہیں resume ability کی سب سے پہلے آپ کو ہمارے تین block post کو پڑھنا چاہے پہلہ block post ہم نے پچھلے نویمبر میں publish کرا تھا اس کے علاوہ یہ یہ ایک تیس رہا یہ ایک تین part کے block series کا حصہ ہے تو پہلہ block تھا وہ تھا resume functionality کو لیکن دوسرا تھا troubleshooting strategies کو لیکن اور تیس رہا ہے یہ analyzing catching behavior of 5 lines. so اس block میں ہم نے پورا explain کرنے کی کوشش کر رہے ہیں کہ آپ کس سسٹماتک طریقے سے دیکھ سکتے ہیں کہ آپ کی catching کیس وجہ سے break ہو رہی ہے اور کہاں break ہو رہی ہے تو اس کے ساتھ ہم آگے بڑھتے ہیں resume troubleshooting کے ساتھ اگر آپ کا resume ability break ہوئی ہے تو اس کے کچھ common reasons ہے جیسے input file change ہوئی ہے یا آپ نے sample sheet میں اپنے نئی samples ڈالے ہیں اور input file بھی کل چینج ہو گئے اس کا مطلب کہ جب input file change ہوئے تو اس کا ہر task کا unique hash جو ہے وہ بھی چینج ہوا اس کا مطلب اب جو ہے blueprint اور process کا blueprint ہے وہ نئے input کے ساتھ کمبائن ہو رہا ہے وہ نیا task وہ نیا hash create کرے گا اس لیے وہ نیا task ہے اس کے ساتھ ساتھ آپ نے کوئی process ایسا run کرا ہے جو modify کرتا ہے input کو دوسرے process کے دوسرے process کے انپوٹ کو ہو سکتا ہے اس کی وجہ سے cashing break ہو رہی ہو یا پھر اگر آپ نے اگر آپ کوئی network file system use کر رہے ہیں تو ہوسکتا ہے کہ آپ کا time stamp ہے file کا وہ تھوڑا سے different ہو اس کی وجہ سے cashing strategy break کر سکتی ہے لیکن next flow میں آپ cashing strategy کو control کر سکتے ہیں اور اس کی جگہ آپ strict کی جگہ linient use کر سکتے ہیں جو کیا آپ کی مدد کر سکتا ہے کہ آپ deep کی جگہ linient use کر سکتے ہیں جو آپ کے مدد کر سکتا ہے کہ آپ next flow کی next flow کو بولیں کی تھیک ہے آپ کے لیے اتنا tolerance آپ نے network file system کی وجہ سے آپ کے پاس file system کا tolerance ہے تو race condition ہو سکتا ہے کسی global variable میں جیسے اگر آپ یہ جو دو یہ جو دو channels ہیں یہاں پر آپ نے یہ x declare کرا ہے ادھر x declare کرا ہے اور یہاں پر same variable use ہو رہا ہے تو جو problem ہے یہاں پر وہ ہے scope کی کیونکی شاید آپ کو یاد ہو کہ ہم نے جب groovy کی بات کر رہی تھی اور ہم نے اس سے پہلے closures کی بات کر رہی تھی next flow میں بھی تو ہم نے بولا تھا کہ آپ کو depth use کرنا چاہیے جب آپ scope کو limit کرنا چاہتے ہیں تو ابھی یہ جو x ہے یہ global scope میں ہے اس کا مطلب یہ ایک اس کلوزر کا access جو ہے اور اس کلوزر کا access جو ہے same x کو لکر ہے تو overwrite کرنے کی possibility ہے race condition کی وجہ سے کیونکی اب آپ serial environment میں کام نہیں کر رہے آپ کام کر رہے ہیں parallel computing environment میں اس کے لئے آپ کو depth add کرنا چاہیے اس کلوزر کے اندر اس کے بعد non-deterministic input channel اس کا مطلب یہ ہے کہ شاید آپ کا جو output ہے وہ output ہمیشہ ایک random value generate کرتا ہے جس کی وجہ سے جو باکی processors ان کا input change ہوتا ہے جس کی وجہ سے پورا کا پورا جو pipeline ہے وہ resumability کا فیضہ نہیں ہوتا سکتی تو آپ کو ان چیزوں کا دیان دے نا چاہیے لیکن اس کے بعد بھی اگر آپ کچھ problems face کرتے ہیں اپنے کاشنگ بیحیوئر کو لکے تو ہمارے next flow blog پر آپ آ کر اس next flow blog پر کلک کر کر آپ ہمارے blog post کا دیان دے سکتے ہیں اور جو blog post میں آپ کو دکھانا چاہتا ہوں وہ ہے کاشنگ بیحی analyzeing کاشنگ بیحیوئر of pipeline آپ یہاں کلک کریں گے آپ اس کے بارے پڑھ سکتے ہیں اس کے ساتھ ہم cash ability اور resumability of pipeline کے سیکشن کو کمپلیٹ کرتے ہیں اور اب ہم آگے جائیں گے troubleshooting کے سیکشن پر next لو کاشنگ کے انالیسیز کے ساتھ ساتھ اگر آپ ریگلرلی ان پیپلائنس کا use کرتے ہیں تو ہوسکتا ہے کہ آپ کچھ errors کیا کروس ہے یا پھر آپ کو کچھ troubleshooting کرنے پڑے تو ان cases میں آپ کچھ best practices کا استعمال کر سکتے ہیں جیسے کی execution error debugging یہ ہمارا troubleshooting کا سیکشن ہے ہمارے tutorial website پر اور آپ اگر یہاں پر plus پر کلک کریں تو آپ تک سکتے ہیں کہ اس کی explanation کیا ہے اس کے ساتھ میں آپ کو یہ بتانا چاہوں گا کہ ہم نے جب ہم پہلی جب ہم simple rns seek کی دوسری script کام کر رہے تھے تو ہم نے یہ ایرر دیکھا تھا اور تب میں آپ کو یہ بتانے بتانے کی کوشش کری تھی کی جب جب next flow جو لنگویج ہے اس سے سب کچھ translate ہو کر shall script میں convert ہو جاتا ہے اگر کوئی ایرر اس level سے generate ہوتا ہے تو آپ کو ایک ایک formatted error ملتا ہے یہ سب کچھ red color سے پرنٹ ہوگا آپ کی سکرین پر اگر color printing enabled ہے نہیں تو آپ آپ سب کچھ یہ سارے messages جو ہیں آپ اپنے سکرین پر دیکھ سکتے ہیں اس کے ساتھ ساتھ یہ جو output ہے come on exit status come on executed caused by come on output come on error یہ سب اگر آپ دیان دیں ایک ایک ایک task directory کے اندر جاکر اچھا لیے چل ہم چلتے ہیں c5 اس directory کے اندر sorry cd work c5 اب ہم اس کے اندر آتے ہیں اور la h کر کے دیکھتے ہیں تو جو content آپ اتھر دیکھیں گے in scripts پر in this formatted output پر جیسے caused by command executed یہ سب نیکس پلو جو ہے in hidden scripts مے سے لیتا ہے جیسے اگر آپ کمان اس اچھ کا output دیکھیں تو آپ یہاں دیکھ سکتے ہیں کہ سکرپٹ actually میں کیا تھی اور اس کا لوک کیا ہے اور اس کا ایرر کیا ہے c8 اٹ کمان اٹ ایرر تو آپ اس کے اس میں کو ایرر messages نہیں ہے امارا سپیسفیک آپ یہاں پر لیکن لوک کو دیکھ سکتے ہیں اور یہاں کیونکہ یہ دوسرہ تاسک ہے اس لے یہاں پر ہمارا ایرر اور لوک میں کوئی انٹری نہیں ہے کیونکہ یہ کمپیٹ ہوا تھا یہ یہ سیکس فلی کمپیٹ ہوا تھا لیکن اگر آپ کا process feel ہوتا ہے تو آپ کے لیے نیکس فلو اون فائل سے relevant information نکال کر سکریم پر دیکھاتا ہے اس کے ساتھ ساتھ آپ کو نیکس فلو یہ بھی بتاتا ہے ہے کہ کونسی دریکٹری میں وہ تاسک ایکزیکوٹ ہوا تھا اور آپ اس تاس اس دریکٹری میں جاکر اس تاسکو سٹڑیکر سکتے ہیں تو آئی ہم دیکھتے ہیں ایک سکریپ نمبر ڈو کے کونٹیکس میں انٹیکنیکس کو ہم جو ہے نیکس فلو ڈاٹ کمان فائل میں جھو بھی چینج کرتے ہیں ہم اندو کریں گے تاکی ہم جو ہے ایک نور مل آرین ایسی نور مل ہماری سکریپٹ جو ہے انہیں رنٹ کر سکیں اس کے ساتھ اسل میں ڈاکر ڈاٹ انیبل ڈرو ہمارے لے ضروری ہے تو اب ہم اپنی سکریپٹ کو رنٹ کرنے کیلے ریڈی ہیں ہم رنٹ کر کے دیکھتے ہیں سکریپٹ ڈو ڈنیب کو آئی ایک پر فرصے دیکھتے ہیں اس سکریپٹ کی اندر کیا ہے ایک ویکفلو ہے تو اگر میں configuration file پر جا کر اسے docker enable کو comment کر دیتا ہوں یا پھر docker enable کو یہاں پر false ڈیتا ہوں تو ہمیں یہ ایرر ملے گا کیوں کیوں کہ ہمارے computer میں یہ جو get pod نے ہمیں computer دیا ہے اس میں ہم نے salman install نہیں کرا ہے لیکن اگر آپ docker کو enable کریں گے تو آپ دیکھ سکتے ہیں کی جو یہ rnc کا container ہے وہ use ہوگا اور اس container میں salman tool install ہے اب ہم اس working directory کے اندر جاکے دیکھتے ہیں کہ ہم ہمیں own dot files میں کیا information ملتی ہے دیکھتے ہیں dot sh پہلے اس کے بعد dot err اس میں ہمیں یہ دیکھا کہ ایرر میسج کیا ہے اس کے بعد ہم دیکھ سکتے ہیں log اور اگر آپ next flow کے ایرر میسج پر دیحان دیں جیسے troubleshooting میں لکھا ہے آپ اسے try کر سکتے ہیں پر سے اسے reproduce کر سکتے ہیں کیوں کہ اس کو reproduce کرنے کے لئے جو بھی چیز آپ کو چیئے وہ سب next flow نے command run میں add کر دیتے ہیں تو اب آپ bash command run کریں گے اور آپ ایرر اپنا reproduce کر سکتے ہیں تو یہ ایک troubleshooting ٹیکنیک ہے جس کا استعمال کر کے آپ جو ہے اپنے اپنے pipeline کے issues کو debuck کر سکتے ہیں اس کے ساتھ ہم آگے بڑھتے ہیں ہم نے in files کے بارے میں کچھ information یہاں پر بھی add کری ہے اور اس کے ساتھ ہم آگے بڑھ سکتے ہیں ignore errors میں تو کچھ processes ایسے ہوتے ہیں جو آپ ignore کرنا چاہیں جیسے کی مان لیتے ہیں کہ اگر ایک آپ کے پاس ہزار سامپلٹ ہیں اور آپ چاہتے ہیں کہ ہزار میں سے جتنے بھی پہلی run میں پہلے execution میں آپ کی pipeline کے کمپلیٹ ہو جکیں ان کو بس کمپلیٹ کریں آپ کی pipeline اور باکے سب کو ignore کر دے تو اس میں کوئی problem نہیں ہے ہمیں بس ایک edit strategy directive کا استعمال کرنا ہے جس کا جس کا use یہ ہے کہ آپ next flow کے یہ بتا رہے ہیں کہ اگر اس process میں سے generated کوئی بھی task میں error آتا ہے تو اسے ignore کر کے آپ آگے بڑھ سکتے ہیں تو اگر ہم یہاں پر دیکھیں اس index process کو ہم ignore کرنا چاہیں دیکھتے ہیں کیا ہوگا کیونکی اگر آپ دھیان دیں کہ اس پورے script میں ایک ہی process use ہو رہا ہے اور اگر یہ process ہی fail ہو جائے ہم یہاں پر ایسے کر سکتے ہیں اگر یہ process ہی fail ہو جائے تو ہمارے لیے problem کی بات ہے اور ان تینوں میں سے flow run script 2 اب ہم اسے enable کریں گے اور اس execution کو cancel کر کے فرصہ رن کریں گے تو pipeline آگے نہیں بڑے گی کیونکی ایک ہی ہمارے پاس example ہے اس کا کیونکی ایک ہی ہمارے پاس transcript file ہے لیکن اگر آپ اس میں ہم نے اس کا reads میں کہیں use نہیں کرا تو اس جو change میں نے کرا تھا اس کا کوئی use نہیں ہے تو ابھی کے لیے ہم بس یہ دسکرس کر رہے ہیں کہ error strategy کا آپ use کر سکتے ہیں لیکن error strategy بہت useful directive ہے کیونکی آپ اس میں closure کا استعمال کر کر اسے ایسے نہ بتا کر اس میں proper condition اور اپنا logic add کر سکتے ہیں جیسے کہ ہم نے troubleshooting میں آگے mention کرا ہے کہ آپ یا تو اسے ignore کریں یا تو retry کریں لیکن اگر آپ انہیں combine کرنا چاہتے ہیں تو آپ error strategy میں کچھ اس طرح سے logic use کر سکتے ہیں جیسے کہ اگر آپ کا process جو ہے fail ہو گیا پہلی بار میں تو آپ اسے sorry تو آپ اسے فرصہ اپنے execution environment میں بھیج کر اس کو اس کا فرصہ submission کرت سکتے ہیں اگر اس بھر بھی fail ہوتا ہے تو اس کا duration بڑھا کر submission کا duration بڑھا کر اسے فرصہ retry کر سکتے ہیں لیکن اس کے ساتھ ساتھ آپ ایک max retry's directive کا use کر کر آپ یہ دیکھ سکتے ہیں کہ آپ کا process unlimited یا infinite retry's loop میں نافہ سے تو اس اس closure کا یہ closure کا ایک example ہے لیکن اس کے لابا آپ بہت طریقے سے اپنا error strategy کو customize کر سکتے ہیں تو آئیے دیکھتے ہیں اور اس closure کے use کیا کیا ہیں جیسے dynamic resource allocation کی کبھی کبھی ایسا ہوتا ہے کہ آپ کچھ processes use کرتے ہیں جن میں آپ نے default cpu memory بتایا ہے لیکن کچھ samples ایسے آجاتے ہیں جو کی اور بھی زادہ cpu یا memory اس task میں مانگتے ہیں تو ان کیسے میں آپ کیا کر سکتے ہیں ایک dynamic resource allocation use کر سکتے ہیں جیسے task ہر ایک attempt ہر ایک failed attempt کے ساتھ اس کی جو memory ہے دوگنا ہو جاتی ہے تو جیسے پہلے attempt میں 2gb ہے دوسرے attempt میں 4gb ہو جائے گی اور پھر سے next flow try کرے گا کہ یہ task submit ہو 3 بات try کرے گا اس کے بعد next flow بولے گا کہ یہ task کسی وجہ سے کمپلیٹ نہیں ہوتا اور وہ پوری pipeline کو terminate کرتے گا لیکن اگر آپ یہاں پر ignore ڈالتے ہیں اس کا مطلب یہ ہوگا کہ next flow this particular task اس process سے generated task کو ignore کرے گا اور باقی جو اس process سے generated tasks ہوں گے انہیں کمپلیٹ کر کے pipeline کو آگے بڑھائے گا تو یہ کچھ strategy ہے جو آپ اپنے pipeline کو intelligent behavior یا پھر error ڈالتے ہیں کے لیے Provide کر سکتے ہیں اور یہ کچھ troubleshooting ٹیکنیکتیں جو ہم نے دیسکرس کریں اس کے ساتھ اب ہم اگلے section کی طرف بڑھنے کے لیے تیار ہے ابھی تک ان سارے سیشنس میں ہم نے یہ دیکھا ہے کہ آپ next flow کی pipeline کو build کیسے کر سکتے ہیں next flow میں لکھی pipeline کا use کیسے کر سکتے ہیں لیکن جب آپ اپنی team کے ساتھ کلابریٹ کرنا چاہتے ہیں تب آپ کچھ اور abilities چاہتے ہیں جیسے کی دوسروں کو visibility ہو کی آپ نے کیا parameters use کرے ہیں یا پھر آپ کس environment میں pipeline کو run کر رہے ہیں ان چیزوں کو مدن اظرقتے ہوئے سیکرہ lapse جو کی next flow open source project کی ایک leading contributor ہے اس نے ایک product پنایا جس کا نام ہے next flow tower اور اس طاور product کی خود کی website ہے جس کا نام ہے tower.nf جیسے یہ آپ cloud.tower.nf یا پھر طاور.nf پر آئیں گے آپ کو کچھ اپنی screen پر ایسے دیکھے گا لیکن ابھی ہم واپل جاتے ہیں اور طاور کے بارے میں theoretical introduction دیکھتے ہیں تو tower جو ہے آپ کا ایک centralized command post ہے data management اور pipelines کو لیکر اس کا ایک آپ اسے monitoring کے لے use کر سکتے ہیں logging کے لے use کر سکتے ہیں اور observability کے لے use کر سکتے ہیں اپنی next flow pipeline کو لیکر بہت سارے infrastructure میں جیسے cloud ہو گیا cluster ہو گیا اور جہاں تک کی یہاں تک کی آپ کا کھود کا laptop تو اس کے کچھ خاص features ہیں جیسے کہ آپ pre configured pipelines کو لانچ کر سکتے ہیں تو آپ یہ imagine کر سکتے ہیں کہ آپ کا آپ کے گروپ میں ایک یا دو by informaticians ہیں جنہوں نے pipelines بنائیں یا جو pre existing pipelines کو صحیح طریقے سے configure کر کے آپ کے لیے ایک easy to launch configuration بنا سکتے ہیں اس کے ساتھ آپ اپنے شاہد آپ کے organization میں کچھ ایسے systems ہو جس کے ساتھ آپ tower کو connect کرنا چاہیں تو یہ بھی possible ہے اس کے ساتھ آپ اپنے شاہد work spaces بنا سکتے ہیں جس کا مطلب ہے کہ اگر آپ کی by informatics کا گروپ پورا علگ ہے تو وہ اپنے ایک workspace بنائ کر جو بھی pipeline بناتے ہیں وہ باقی سارے work spaces سے شاہر کر سکتے ہیں میں work spaces کے بارے میں اور بات کروں گا جب ہم tower کی website کو دیکھیں گے اس کے ساتھ ساتھ آپ انفرس سکتے ہیں تو پہلے ابھی کس دے پہلے ہم نے cloud deployment کی بارے میں بات کرے تھی تو cloud جو ہے بہت پایوپل کنسپٹ ہے لیکن اس کے ساتھ ساتھ آپ کو بہت سارے checks and balances کرنے پڑتے ہیں تاکی آپ کا expenditure out of control نہ ہو اور آپ resource اس کا اچھے سے use کریں اس کے لیے tower جو ہے آپ کو automations offer کرتا ہے لیکن آئے دیکھتے ہیں کہ ہم سب سے simplest use کیا ہے tower کا اس سے ہم start کرتے ہیں سب سے پہلے اگر آپ tower کا استعمال کرنا چاہتے ہیں تو آپ کو بس next flow command لائن میں with tower add کرنا ہوگا اس کے بعد آپ tower کے اندر اپنے next flow pipelines کو monitor کر سکیں گے اس سے پہلے کہ ہم تھوڑا سا آگے پڑے میں آپ کو ایک diagram دکھانا چاہتا ہوں جس کے درو میری کوشش یہ ہے کہ میں آپ کو سمجھا سکوں tower کے کتنے طریقے use cases ہیں تو دیکھے اگر آپ ایک next flow pipeline کو run کرتے ہیں آپ اسے خالی monitor کر سکتے ہیں tower کے درو اور یہ tower کا پہلے use case ہے اور سب سے simplest use case ہے جس میں آپ tower کا اور کسی ability کا use نہیں کرتے آپ جو ہے جو آپ کی pipeline ہے چاہتے آپ اس اپنے laptop پر run کر رہے ہیں یا پھر a cluster میں run کر رہے ہیں ہم ایک cloud میں run کر رہے ہیں اور وہ آپ کی responsibility ہے کہ آپ جہاں پر بھی pipeline کو run کر رہے ہیں اس environment کو آپ نے کیسے manage کرا ہے configure کرا ہے وہ آپ کے responsibility ہے اگر آپ کو سب کا اس سب کے ساتھ comfort ہے تو آپ کیا کر سکتے ہیں آپ اس pipeline کو monitor کر سکتے ہیں tower کے ذریعے تو آئیے دیکھتے ہیں کہ ہم یہ کیسے achieve کر سکتے ہیں ہم جو ہے کیا کرنا چاہتے ہیں ہم with tower کا استعمال کریں گے ہمارے simple RNA seek pipeline کی script کے ساتھ لیکن اس سے پہلے ہمیں کیا ضرورت ہے ہمیں tower کی website پر جانا ہوگا اور جو پہلے ہم cookies کو accept کر لیتے ہیں یہ آپ کے اوپر ہے ہم ہم کیا کریں گے ہم sign in کریں گے جیسے ہی آپ sign in کریں گے آپ کے پاس options آئیں گے کہ آپ جو ہے گٹپ کے ساتھ sign in کرنا چاہتے ہیں یا گوگل کے ساتھ یا پھر email کے ساتھ اصل میں میں آپ کو ایک اور چیز بتانا چاہوں گا میں آپ کو طاور کی website کا overview دیتا ہوں تاکہ آپ جو ہے اور اچھے سے سمجھ سکیں کی طاور کا استعمال کیا ہے میں پیچھے جانگوں گا ایک پار اور میں نیچے سکرول کروں گا تو آپ دیکھ سکتے ہیں کہ طاور کا motto یہ ہے maximize productivity by enabling collaborative data analysis at any scale on premise or in cloud اس کا مطلب any scale کا مطلب ہے کہ آپ ایک cpu سے لیکے 10,000 cpu یا کچھ بھی number of cpu's کا استعمال کر سکتے ہیں لیکن آپ کو طاور اور next flow ایسے features Provide کرے گا جو آپ اسے use کر سکتے ہیں آپ دیکھ سکتے ہیں طاور کا ایک user interface کا ایک screenshot ہے جو کی شاہد آپ کے لئے informative ہو ہم آگے چلیں تو دیکھ سکتے ہیں کہ آپ اس طاور کی جو پیچ ہے وہ ہے کہ آپ اسے productivity improve کر سکتے ہیں اپنے optimize کر سکتے ہیں کلاوٹ کے اکسپینڈیچر کو کیونکی طاور جیسے ساب سے آپ کے infrastructure کو manage کرتا ہے وہ آپ کا سب سے cost effective طریقہ ہے اور وہ automated طریقہ ہے اس کے ساتھ آپ complexity کو remove کر سکتے ہیں کیونکی آج کے time پر اگر آپ ایک ہی انسان سے امید رکھتے ہیں کہ وہ by informatics بھی سمجھے وہ biology بھی سمجھے وہ cloud infrastructure کو بھی سمجھے تو وہ بہت complex complexity ہے تو جسنا ہم چیزوں کو automate کر سکتے ہیں اتنا ہی بڑیہ ہے اس کے ساتھ ساتھ آپ compliance کو simplify کر سکتے ہیں جیسے آپ کو اگر آپ کسی pharmaceutical industry میں کام کر رہے ہیں یا کسی sensitive context کے اندر کام کرتے ہیں اور آپ کو ہر بار predictable reproducible or auditable pipeline execution چاہیے تاکہ آپ چاہے دو مہنے بعد تین مہنے بعد واپس آکے دیکھ سکیں کیو اس execution میں ہوا کیا تھا تو اس کے لئے آپ کو طاور کا طاور کے features کا بہت بینفٹ ہوگا اس کے ساتھ ہم دیکھ سکتے ہیں اگر ہم نیچے جائے تو طاور کو بہت سرے popular companies use کرتی ہیں جیسے نانوپور ہو گیا انویٹے ہو گیا جانسن جانسن روش سانگر اس کے ساتھ آپ deployment کی طرف دیکھیں تو طاور جو ہے next flow کی deployment کو simplify کرتا ہے اور آپ کو بہت طریقے کے انٹفیس ملتے ہیں جیسے آپ کو ایک API ملتی ہے ایک CLI ملتا ہے اور ایک GUI ملتا ہے جو کیا ہے website ہے اس کے ساتھ آپ productivity اور collaboration کو اپنے گروپ کے اندر بڑھا سکتے ہیں جیسے آپ کو اس طرح سے pipeline ملیں گی اور اس کے ساتھ آپ جو ہے non-technical users کے لئے آپ نے simplify کر دیا کہ وہ اب command line پرامیٹرز دینے کی جگہ ان کے پاس ایک form ہے وہ اس form کو use کر کر پرامیٹرز دے سکیں اس کے ساتھ اگر ہم آگے جاتے ہیں تو ہم دیکھ سکتے ہیں کہ compute platform جو طاور سپورٹ کرتا ہے وہ بہت سارے compute platform سے جیسے grid ڈلٹر google life sciences next flow اس سے بھی زادہ compute platform کو سپورٹ کرتا ہے لیکن طاور ان سب features کو ابھی testing stage پے رکھر آگے بڑھتا ہے تو آئے دیکھتے ہیں container technologies تو طاور آپ کی مدد کرتا ہے کہ آپ کسی بھی container registry جو ہے خاص کر داکر container registry اس کا use کر سکیں اپنی pipeline میں اس کے ساتھ source کو اس management tool سے this طاور انٹگرٹ کرتا ہے تو اس کا مطلب یہ ہے کہ آپ کو اپنے credentials جو ہے اپنی تیم کے ہر ایک ممبر کو دینے کی جگہ خالی طاور میں ایٹ کرنے ہیں اور ان credentials کے استعمال آپ کی تیم کا کوئی ممبر کر سکے گا آگے جلتے ہیں اور دیکھتے ہیں کہ طاور کے کیا کیا features ہیں اور طاور کے ایک features کی listing یہاں پر ہے لیکن ابھی ہم اس کے انٹفیس کو دیکھیں گے اندر سے اپلکیشن کے اندر سے تو ہم دیکھ سکتے ہیں کہ اس کے کیا کیا use کر سکتے ہیں اس کے علاوہ اگر آپ کے پاس کچھ اور سوال ہے آپ کو case studies دیکھنی ہے تو آپ ان یہاں پر انہیں دھون سکتے ہیں documentation ہے white papers ہیں next floor resources training اور e books بھی ہے podcast بھی ہے اور blog بھی ہے طاور کا تو اب ہم اوپر جاتے ہیں اور login کر کے دیکھیں گے کہ ہم طاور کو اندر طاور کو اپنے next floor execution سے کیسے کنک کر سکتے ہیں تو آئیے یہاں پر بھی ہم sign in کریں گیٹھپ کا استعمال کر کے اور جیسے کیا آپ دیکھ سکتے ہیں کہ میرا جو پہلا پیج کھولا ہے وہ ہے community showcase لیکن میرے پاس بہت سارے work spaces کا access ہے work spaces کا مطلب ہے کہ آپ ایک group of resources کو ایک logical collection میں رکھنا چاہتے ہیں تو work space آپ کا وہ طریقہ ہے اور بہت سارے work spaces کو آپ ایک logical group میں رکھ سکتے ہیں جس کا نام ہے organization تو یہاں پر آپ دیکھ سکتے ہیں کہ ابھی نب کا ایک آپ کو use work space ملتا ہے اور organization work space ملتا ہے تو آپ دیکھ سکتے ہیں کہ آپ کو community work space a community organization میں automatically showcase کا access ہوگا اس کے علاوہ آپ nf core اور aws mega tests کا work space دیکھ سکتے ہیں یہاں پہ اس کے ساتھ ایک bio informatics mtb tuberculosis related work space دیکھ سکتے ہیں آپ یہاں سے کسی بھی work space میں کلک کر کے جمپ کر سکتے ہیں لیکن ابھی کے لئے ہم صرف community showcase میں بات کریں گے تو یہاں پر جیسے ہی ہم لانٹ کرتے ہیں ہم نے یہ کھولا تو آپ دیکھ سکتے ہیں یہاں پر کچھ تابس ہمارے پاس جیسے launch pad اگر ہم launch pad کو explore کریں پہلے تو آپ دیکھ سکتے ہیں کہ یہاں پر کچھ pipeline سے ہیں جو ready to launch ہیں اگر آپ یہاں پر کلک کریں جیسے nanoseq پر کلک کریں تو آپ کو یہ دیکھ سکتا ہے کہ کیا آپ جو بھی پرامیٹر کسٹمائس کرنا چاہیں اس pipeline کا یہ جو format ہے پرامیٹر کا یہ جیسن سکیما سے بنا ہے جو کیا ہم نے پہلے کور کرا تھا next low جیسن سکیما جو ہم نے session 2 میں کور کرا ہے یہ سب اس سے automatically generate ہوتا ہے تو آپ یہاں دیکھ سکتے ہیں کہ اگر آپ کا ایک user جو ہے آپ اسے ability دینا چاہتے ہیں کہ وہ default value اس کو چینج کریں تو وہ تو انہیں جو ہے command line پر جانے کی ضرورت نہیں ہے تو اب جو non-technical bio informatics users ہیں آپ ان کے لئے آپ نے pipeline's کی pipeline's کا usage simplify کر سکتے ہیں اور کچھ پرامیٹرز ہیں جیسے Boolean ہے اس نے آپ user interface کی طرف اپنے user step پروایٹ کرا سکتے ہیں اس کے ساتھ اگر آپ ایک pipeline کو out dir دینا چاہیں جیسے یہاں پر ہم دینگے results اور اس کے ساتھ ہم اسے launch کرنے کی لئے تیار ہیں تو ہم بس launch پر تندبانا ہے اور ہماری جو pipeline ہے وہ launch ہو جائے گی اب دیکھتے ہیں یہ کہاں پر launch ہوئی ہے اور یہ experience کیسا ہے اگر آپ یہاں پر click کریں آپ یہ دیکھ سکتے ہیں میرا user name جو میرا social media handle ہے ہر چکے وہ یہاں پر بھی دیکھ رہا ہے اور اس سے ہم دیکھ سکتے ہیں کہ کس نے کونسی pipeline launch کری اور cup کر launch کری تو اب ہم بات کر رہے ہیں pipeline page کی جیسے ہی آپ نیچے آتے ہیں آپ دیکھ سکتے ہیں کہ ابھی pipeline start نہیں ہوئی ہے لیکن اس کے علاوہ اس سے پہلے بھی آپ کے پاس کافی چیزیں ہیں جیسے آپ دیکھ سکتے ہیں کہ یہ work directory ہے آپ کی یہ batch operation ڈی ہے aws batch پر یہ run ہو رہا ہے اس کے ساتھ آپ دیکھ سکتے ہیں کہ جو next flow command run ہوگی وہ یہ ہے تو یہ ایک چھوٹا سے experience تھا جو آپ کو دیکھانا چاہتا تھا کہ next flow pipelines کو launch کرنا کتنا آسان ہے اب ہم واپس جاتے ہیں اپنے پہلے topic کی طرف جو کی ہے ایک pipeline کو معلیٹر کرنا ہے تو اس کے لیے آپ کو کیا کرنا ہوگا آپ کو ایک secret بنانا ہوگا secret نہیں آپ کو ایک token بنانا ہوگا sorry اب وہاں پہ جائیں گے اور اسے کلک کر سکتے ہیں add token آپ اسے بھولیں گے temporary token آپ نے جیسے ہی add کرا آپ کو یہ پرنٹ ہو کے مل جائے کا اب آپ اسے آپ نے get pod environment میں جا کر export tower api token میں export کر سکتے ہیں میں بس یہ کنپرم کرنا چاہتا ہوں کہ میرا variable کا نام صحیح ہے اب ہم دیکھیں یہاں پر tower access token نام ہونا چاہیے tower access token اور جیسے ہی ہم یہ access token اپنے environment میں سیف کریں گے اس کے بعد ہمارے ہمارے ہمارے computer پہ انسٹول نیکس فلو کا monitoring perspective سے ہم connection منا سکتے ہیں tower.nf کے ساتھ تو ایک بار ہم واپس instructions کو دیکھ لیتے ہیں میں یہ ہیلٹ کرنا چاہوں گا کہ آپ یہ version نہ use کریں کیونکہ یہ پرانا version ہے آپ جو default version ہم نے install کرا ہے get pod پر آپ اسے use کر سکتے ہیں جو کی ہے میں ایک بار آپ کو دکھا دیتا ہوں version آپ دیکھ سکتے ہیں کہ 22.10 version ہے آپ اسے use کریے اس کے بعد اگر آپ کوئی بھی pipeline run کریں تو آپ دیکھ سکتے ہیں جس ہم اگر hello world pipeline run کریں تو ہم دیکھ سکتے ہیں اگر ہم hello world pipeline run کریں تو ہم دیکھ سکتے ہیں کہ جو اس بار next flow کیسے بھیپ کرے گا next flow نے ہمیں یہ ہم ابھی دیبک کریں گے کیونکہ ہمارا یہ hello world pipeline جو ہم نے بہت چینج کر رکھی ہے چلے اسے اندو کرتے ہیں پہلے تو ہم کھالی ہمیں کھالی فوپ روصیس رکنا ہے اس کے اندر اب اگر ہم اسے run کریں تو آپ دیکھ سکتے ہیں کہ ہر بار next flow جو ہے ایک لنک دیکھا آپ کو طاور کا تو آپ اگر اس لنک پہ کلک کریں گے اور آپ طاور پہ لوگ دین ہیں تو آپ جہاں اپنی pipeline کو موریٹر کر سکتے ہیں میرا process میری جو configuration file ہم نے پہلے customize کری تھی اس میں کچھ problem ہے ابھی اب ہم اسے fix کرتے ہیں اس کے بعد ہم اس کو run کر سکتے ہیں یہاں پر ہم اسے اگر یہ ہٹا کر ہم کھالی بولے ایک کو hello tower اور ہم فوکو چینج کر کے ہم یہ بول چکتے ہیں hello tower اور ہم اس process کو یہاں دیتے ہیں یہ best practice ہے کہ آپ جو ہے in blocks کا نام جو ہے explicitly use کریں تو آئیے ہم پورا نام use کریں گے show that flow اس کے بعد آپ ہم اسے run کرکے دیکھتے ہیں طاور کے ساتھ پر سے اس بار پورا execution ہونا چاہیے اور اگر آپ طاور پا جاکے دیکھیں اس لنک پر کلک کریں تو آئیے ہم اس لنک پر درکل چلتے ہیں اس لنک پر کلک کریں تو آپ دیکھ سکتے ہیں کہ نیکس فلو جو ہم نے اپنے گیٹپوٹ کے کمپیٹر پر run کرا تھا اس نے کچھ information طاور پر بھیجی جیسے کی آپ کا اصل میں کوئی بھی دیتا طاور تک نہیں جائے گا کھالی next لو کی execution information طاور تک جائے گی تو جیسے یہ کمانڈ ہے اگر آپ چاہیے تو اسے کوپی کر سکتے ہیں آپ نے کلابریٹر کے ساتھ شیر کر سکتے ہیں آپ دیکھ سکتے ہیں کہ کونسا کنٹینر use ہوا تھا کونسا work directory use ہوا ہے user کا نام کیا ہے اور کونسا process run ہوا ہے اس process کو اگر آپ کلک کریں گے تو آپ دیکھ سکتے ہیں اس process کے بارے میں اور بھی information یہاں پر mention ہے آپ دیکھ سکتے ہیں اس کا نام کیا تھا اس کی کمانڈ کیا ہے execution lock کیا ہے یہ فیتر کھالی طاور لانچ کے ساتھ اویلو بل ہے جو کی یہ والا use case ہے جو ہم نے بریفلی ابھی دیکس کراتا ہم اس کے بارے میں پھر دیکس کریں گے لیکن اس سے پہلے ہم monitoring کی concept کو ایک بات دیکھ لتے ہیں تو monitoring کے ساتھ آپ یہ بھی دیکھ سکتے ہیں کہ آپ کو جو ہے پوری طرح سے resource usage کا idea بھی ملے گا یہ گراپ جو ہے اس سے بھی بڑیا گراپ ہوتا ہے لیکن ہماری جو hello pipeline ہے اس میں ہم نے اور processes add نہیں کرے تو آئیے ہم ایک جو ہماری toy rna seek pipeline ہے اسے run کرکے دیکھتے ہیں طاور کے ساتھ اور سے monitor کریں گے ہم طاور پر نام کلت ہے یہاں پر srna seek اس بار جو ہے ہم طاور کو پہلے سے کھولکے کرتے ہیں اور اصل میں ہم واپس آتے ہیں اپنے لنک کو کوپی کرنے کے لیے اور یہاں پر ہم نے پیسٹ کرا اور اسے اپن کرا تو ہم دیکھ سکیں گے کہ ابھی کیا ہو رہا ہے اس pipeline کے اندر آپ دیکھ سکتے ہیں دو process succeed ہو چکے ہیں ایک process چل رہا ہے ابھی اور آپ یہ progress کو monitor کر سکتے ہیں جیسے ہی سب کچھ complete ہوتا ہے آپ دیکھ سکتے ہیں کہ memory efficiency کیا تھی cpu efficiency کیا تھی اور اگر آپ چاہتے ہیں تو یہ بھی دیکھ سکتے ہیں کہ کتنے maximum number of cpu's use ہوئے ہیں کتنے tasks run ہوئے ہیں ہر ایک process کا آپ کے پاس extra information ہے جو آپ یہاں دیکھ سکتے ہیں پھر سے میں یہ بتانا چاہتا ہوں کہ جو logs are process level کے جو کی dot command dot log file ہوتی ہے task directory میں وہ ابھی visible نہیں ہے کیونکہ ہم خالی monitor feature use کر رہے ہیں اور اگر آپ نیچے آنگے تو پھر بھی آپ کو بہت سارے information جو ہے یہاں سے مل سکتی ہے جیسے tags ہو گئے جو کی ہم نے trace file میں دیکھا تھا next flow کے settings میں دوسرے سیشن میں تو اس بار جو ہے اگر آپ یہ گراف کو دیکھیں تو دیکھ سکتے ہیں کی اب ہمارے پاس دوسرے colors use ہوئے ہیں اور memory use ہوئی ہے دوسری طریقے سے تو اب جو ہے اپنے اپنے processes کو اپنے pipeline کو آپ کے your resources کے حصاب سے optimize کرنا start کر سکتے ہیں تو یہ بات ہوئی ہماری monitoring کی لیکن میں اے دو اور تین چیزیں اور دکھنا چاہوں گا جیسے parameters ہیں تو آپ طاور کے طرح یہ بھی دیکھ سکتے ہیں کہ parameter کی values کیا تھیں جو آپ نے provide کرے جیسے اب اگر میں again اس pipeline کو launch کروں اگر میں اس بار بولوں ریزیو ڈی آر جو next لو کے parameters ہیں ان میں ایک minus ہوتا ہے جیسے ریزیوم لیکن جو pipeline کے parameter ہیں اس میں دو بار ڈاش یا minus یا hyphen use ہوتا ہے تو ہم یہاں پہ کہیں گے aren a seek nf results اس بار ہم اسے run کریں گے اور جو بھی link آئے گا ہم اس پے جاکے دیکھیں گے کی اس بار parameters میں کیا چینج ہوئا ہے اور کیونکی out ڈی آر جو ہے یہ زادتر سپر فیشل چینج ہوتا ہے تو ریزیوم کرنے پے ہمیں یہ دکھے گا کہ سارے process is cash دے جو کی صحیح ہے اب اگر آپ یہاں پر آکے اس لنک پر چاہیں تو آپ دیکھ سکتے ہیں کہ جو اس execution کے parameters ہوں گے اس میں ہمارا جو چینج ہم نے کرا تھا وہ ہمیں ہاں دیکھتا ہے تو یہ سب آپ کو ایک website پر available ہیں آپ اس لنک کو لکے آپ نے کسی collaborator سے شیر کر سکتے ہیں اور وہ ایک ساکلی دیکھ سکیں گے کہ آپ نے کیا parameters Provide کریں اس کے ساتھ ساتھ آپ configuration بھی دیکھ سکتے ہیں تو configuration جیسے کہ ہم جانتے ہیں configuration file کا ایک section ہوتا ہے parameters جو کیا آپ separatly بھی دیکھ سکتے ہیں لیکن جیسے آپ configuration files کو دیکھیں گے تو آپ کو 100% configuration جو ہے آپ کو tower پر دیکھ چاہی گی تو آپ جو ہے بالکل اس کا استعمال کر سکتے ہیں آپ جانتے ہیں کہ configuration files کیا ہیرار کی کیا تھی کن کنچی configuration files اس نے consider کری ہیں اور آپ دیکھ سکتے ہیں reports reports اصل میں وہ فیچر ہے جو زادتر آپ tower launch کے ساتھ use کریں گے جو 2 way communication ہے نہ کی 1 way communication ہے یہاں پر آئیے اب ہم continue کرتے ہیں ہماری discussion جو tower launch فیچر کے ساتھ تھی تو اگر ہم واپس tower پر جائیں اور جو opportunity workspace پر ہم نے pipeline launch کری تھی اسے دیکھیں تو ہم یہاں دیکھ سکتے ہیں کہ اگر runs پے جائیں ہم اور میرے user کی pipeline کو سرچ کریں یہاں تو ہم دیکھ سکتے ہیں کہ یہ blue color ہے اس کا مطلب ہے ابھی pipeline run ہو رہی ہے اور ہم دیکھ سکتے ہیں کہ یہ اس کا کیا status ہے جیسے 29 processes یا task سکسیر ہو چکے ہیں ایک task ابھی بھی submitted ہے اور اس بار اگر میں کسی process پر جاکر task پر جاکر اس کے execution lock کو کھلتا ہوں تو وہ مجھے دیکھے گا کیونکی یہ tower کی طور پر ہم نے launch کری ہے تو اس کا بہت اس کے بہت فائدیں ہیں کیونکی اب جو ہے آپ کو اور بھی زادہ information جو ہے آپ کو آگے دیکھ سکتی ہے جو کہ آپ رفر کرنا چاہیں شاید previous execution کے لیے تو اب جو ہے یہاں پر ہم پھر سے parameters اور configuration option دیکھ رہے ہیں لیکن اس بار ہمارے پاس data set کا option بھی ہے جو کی اس pipeline میں ہم نے کوئی data set use نہیں کرا میں آپ کو دوسری pipeline میں دیکھوں گا اس کے ساتھ ہم execution lock بھی دیکھ سکتے ہیں تو آپ کو شاہد یاد ہو dot next flow dot lock file جو ہے آپ کو اگر آپ computer اپنے computer پر next flow کو run کرا تو کھالی آپ کے computer پر available ہوگی جیسے آپ یہاں دیکھنا چاہیں code dot next flow dot log یہ فائل طاور تک upload نہیں ہوتی کیونکی یہ ہو سکتا ہے بہت بڑی فائل ہو لیکن جب آپ طاور کے طور پر pipeline کو launch کرتے ہیں تب آپ کو execution lock بھی available ہے اور آپ اسے download کر سکتے ہیں execution timeline download کر سکتے ہیں lock download کر سکتے ہیں console output بھی download کر سکتے ہیں اس کے ساتھ آپ کو reports کبھی reports بھی available ہوں گی جیسے ہی آپ یہاں کلک کریں گے آپ دیکھ سکتے ہیں کہ اس pipeline نے remotes میں نے یہاں پہ اس تری کا پاتھ نہیں دیا تھا اس لیے طاور جو ہے اسے display نہیں کر پایا لیکن اگر میں آپ کو کوئی previous run دیکھا ہوں previous execution دیکھا ہوں جو کی شاہد میرے colleagues کری ہو جیسے دیکھتے ہیں ٹیک ہے ہم دیکھتے ہیں کوئی بھی previous run اٹھاک ہے اور دیکھتے ہیں کہ اس میں کیسا ہوا ہے کیسے سب کچھ کمپیٹ ہوا ہے جیسے یہ ہماری nf dragon pipeline ہے اگر اس میں بھی data sets اس میں data sets کا use ہوا ہے اور reports کا نہیں ہوا تو میں atleast آپ کو یہاں پر data sets کھا سکتا ہوں تو data sets وہ feature ہے طاور کا جس کے ساتھ آپ اپنے data especially sample sheets کو track کر سکتے ہیں جو input جو آپ کے پوری pipeline کے input میں use ہوتا ہے اور اسے آپ طاور پر دیکھ سکتے ہیں دیریک لی اس کے بعد اگر آپ دیکھنا چاہیں واپس runs پہ جاتے ہیں اس پر ہم کوشش کریں گے ایک execution کو دھوڑنے کی جو کی جس میں reports generate ہوئی ہوں جیسے اگر ہم اس میں دیکھیں یہاں پر reports generate ہوئی ہیں اور جیسے یہاں پہ اگر multi qc file کو ہم کھوڑ کے دیکھیں تو ہم دیکھ سکتے ہیں کہ یہ پاتh s3 کا پاتh تھا کیونکہ یہ ساری executions جو ہے جو ہم free میں execute کر رہے ہیں کلاو شوکیز کمونٹی میں اور یہ کمونٹی شوکیز میں یہ aws batch پر ہوتی ہیں اور طاور کا direct integration ہے این کلاوٹ روائیرز کے ساتھ آپ اپنی files کو جو ہے یہی پر طاور کے اندر سے دیکھ سکتے ہیں اور آپ کا دیتا آپ آپ کا دیتا جو ہے بالکل آپ کے انوائیمنٹ میں رہتا ہے طاور بس آپ کی پر میشن کے ساتھ اب جا کے طاور نے multi qc report کو شو کرا ہے آپ کے ویبسائٹ کے ساتھ لیکن جیسے آپ اسے بند کرتے ہیں طاور اپنے دیتا بیس میں اس کے بارے میں کچھ ہور سیف نہیں کرتا وہ بس location سیف کرتا ہے جو وہ آپ کو file دکھانے کیلے use کرتا ہے بعد میں آئیے دیکھتے ہیں pdf output کیا ہے اس work flow کا وہ بھی ہم بروزر پر load کر سکتے ہیں اور چاہتے تو اسے دوسری tab میں بھی کل سکتے ہیں download کر سکتے ہیں تو آپ دیکھ سکتے ہیں کہ ایک اگر آپ طاور کے طرح کچھ پائی پلین لانچ کرتے ہیں تو آپ کے results تک جو ہے جیسے جو report سے وہ آپ تیسپلے کرا سکتے ہیں اور جو بھی آپ کی team میں ممبرس ہیں وہ سب اس پائی پلین کے execution اور results کو دیکھ سکتے ہیں یہ بہت سارے فائدوں میں سے ایک ہے جو آپ طاور لانچ کے ساتھ آپ کو ملتے ہیں آئیے دیکھتے ہیں ایک با پھر سے matrix کو اس بار matrix کا گراپ ہمارا بڑا ہے اور اچھا ہے کیونکہ اس میں زادہ سامپلس ہوا ہے اس لئے آپ کو پوری رینج دکتی ہے اور اب job دوریشن دیکھ سکتے ہیں input output دیکھ سکتے ہیں اور اس سے ساب سے اپنے process کو اپٹیمائس کرنا سٹار کر سکتے ہیں اس کے ساتھ آپ چاہتے تو اس پائی پلین کو relaunch بھی کر سکتے ہیں جیسے ہم next low command line پر resume کہتے ہیں طاور کی سائد پر ہم اسے relaunch کہتے ہیں اور ہم چاہئے تو اسے بس relaunch پر تدبائیں اور یہ فرصے رن ہو جائے گا لیکن اس بار یہ سب کچھ cast result use کرے گا کیونکہ یہ پائی پلین پہلے رن ہو چکی ہے اور جب آپ relaunch کرتے ہیں تو طاور اٹومیٹک لی resume but resume ایٹ کر دیتا ہے آپ کے کمانٹ کے ساتھ تو اس کے ساتھ ہم نے runs کو cover کرا ہے لیکن طاور میں بہت ساری functionality ہے جیسے آپ دیکھنا چاہے تو actions جیسے ہی آپ گٹھپ پر اگر آپ نے گٹھپ سے لینک کرا ہے اپنے action کو تو آپ گٹھپ پر کوئی بھی پائی پلین میں چینج کریں گے تو اٹومیٹک لی اس کی تستنگ طاور کے تروک کر سکتے ہیں آپ یا تو آپ طاور کے نام کا طاور کے نیٹیو ایک حک پنا سکتے ہیں اور آپ چاہے تو اسے ایک API request کے ترگر کر سکتے ہیں اس پائی پلین کو اس action کو یہ جو کنسپٹ ہے طاور actions یہ گیٹھپ actions کی طرح ہے اور اگر ہم اگلے سیکشن کی طرف بڑے اگلے تیپ کی طرف بڑے تو ہم دیکھ سکتے ہیں دیٹا سیٹس جو کی آپ علق سے یہاں پر ڈیٹا سیٹس آٹ کر سکتے ہیں اور ان سپیکٹ کر سکتے ہیں اور جب آپ چاہے تو اپنی پائی پلینٹ میں اس دیٹا سیٹ کو use کر سکتے ہیں آپ چاہے تو اس کے دوسرے version کو بھی دیکھ سکتے ہیں آپ ہو سکتے ہیں کہ ابھی آپ کے project میں 10 سامپل ہوں کل کو 20 سامپل ہوں تو آپ کو خالی version اپڑیٹ کر کے نئی فائل اپلوٹ کرنے ہوگی اور آپ نیکسلو کو نیکسلو پائی پلینٹ کے ساتھ آپ نے دیٹا سیٹ کو use کر سکتے ہیں آپ جو اگلے 4 سیکچنز ہیں وہ تھوڑا گروپ میں infrastructure کی دیسکشن کیلئے ہیں تو جیسے آپ کی ایک گروپ ہے organization ہے یا research گروپ ہے تو اس میں آپ ایک بار compute environment سیٹ کرنا چاہیں گے جیسے اس کس میں ڈیٹا بلو اس بیٹا سیٹ ہوا ہے اور وہ primary environment ہے اس کا مطلب اگر کوئی بھی پائی پلینٹ لونچ کرے گا اس کمونٹی شوکس میں وہ automatically یہاں پر جائے گی لیکن ہو چکتا ہے جن لوگوں کے پاس sufficient permission ہے وہ dragon یا دوسرے environment میں پائی پلینٹ کو لونچ کر سکیں اس کے ساتھ ہم دیکھتے ہیں اصل میں آپ compute environment کا استعمال کر کے ان environment کو create کر سکتے ہیں آپ کو AWS کی minimum knowledge کی ضرورت ہے کیونکی next flow اور tower کیا کرتا ہے جب یہ آپ کو tower environment بنا کے دے گا تو وہ انشور کرتا ہے کی جو آپ کا minimum expenditure ہو کلوٹ کے سائد میں اور آپ اپنی پائی پلینٹ کو جیسے ہی complete کرتے ہیں وہ سارے resources جو ہے zero تک آجائیں اگر آپ نے جو best practices انہیں follow کرا ہے اب آپ credentials کو بھی دیکھ سکتے ہیں کہ آپ اپنی پوری team کے ساتھ ایک جگہ پہ ہی credentials شیر کر سکتے ہیں آپ کو حرک حرک کے لیے copy یا paste کرنے کی ضرورت نہیں ہوگی اس کے ساتھ آپ secrets بھی شیر کر سکتے ہیں جیسے ncbi کی جو ہے وہ شیر کر سکتے ہیں اور یہ آپ اپنے work flows میں use کر پائیں گے اس کے ساتھ ایک participants کا section ہے آپ یہاں پہ دیکھ رہے ہیں میرے دو email ڈیز یہاں پر ہیں اس کے ساتھ جو سیکیرہ لیبز کے جو team members ہیں وہ بھی یہاں پر ہیں آپ ان سب کی permissions دیکھ رہے ہیں کہ جیسے حرشل پٹیل ہے ان کے پاس admin کی permission ہے ایوان فلوڈن ہے جو سیکیرہ لیبز کے ceo ہیں ان کے پاس owner کی permission ہے اور اگر ہم چاہیں تو پوری exhaustive list کو دیکھ سکتے ہیں یہ پاولو دیت ماسو ہیں جنہ جنہوں نے next لو کو بنایا ہے وہ ان کے پاس بھی owner کی permission ہے یہاں پر تو طاور جو ہے بہت ہی interesting system ہے اور آپ آپ کو اگر لگتا ہے کہ آپ کی organization میں یا پھر آپ کی research group میں طاور کا استعمال ہو سکتا ہے تو آپ بالکل طاور کو کنسیڈر کریے آپ سیکیرہ لیبز کی team سے بات کر سکتے ہیں اور آپ چاہیں تو جیسے اگر ہم clout.tower.nf پہ جائیں تو میں اب آپ کو اس کی pricing کے بارے میں بتا سکتا ہوں اگر آپ اس کے pricing کے تاب پر کلک کریں گے تو آپ دیکھ سکیں گے کہ طاور کے تین version ہیں حصل میں طاور کلوٹ کے دو ہیں version اور اس کے ساتھ ایک tower enterprise ہے لیکن ساتھ ساتھ ایک tower community بھی ہے جو ہم نے آپ کو پہلے سیشن کی slides میں دکھایا تھا جب آپ طاور کلوٹ پر چیک کریں گے تو آپ کو طاور کلوٹ کا free version اور طاور کلوٹ profession version دکھے گا اس کے ساتھ تاور enterprise دکھے گا ہم نے جو use کرا ہے وہ طاور کلوٹ free version use کرا ہے ہمیں طاور کی بہت ساری ability جو ہے وہ by default available ہے جو بھی use کرنا چاہے کر سکتا ہے لیکن کچھ quotas ہوتے ہیں جیسے pass user یا پھر اگر آپ profession option کو چوز کرتے ہیں تو contracted package اس کے ساتھ ساتھ اگر میں آپ کو یہ بتانا چاہتا ہوں اگر آپ academia میں کام کرتے ہیں آپ ایک research institute کے ممبر ہیں تو آپ یہ ساری ability جو ہے free میں use کر سکتے ہیں طاور کی اور اگر آپ جو ہے طاور enterprise کو پرچیز کرنے کر کے اپنے infrastructure پہ انسٹول کرنے میں اچھوک ہیں انٹرسٹڈ ہیں تو آپ سکیرہ لیبس کی team کو کونٹیکٹ کر سکتے ہیں اس کے ساتھ ہم نے طاور کا section کبر کر لیا ہے طاور اگر آپ team کو reach out کرنا چاہتے ہیں تو آپ یہاں کلک کر سکتے ہیں اور بھی links ہے جو جس کے طرح آپ سکیرہ لیبس کو پہنچ سکتے ہیں میں آپ کو طاور کی documentation ڈکانا چاہوں گا جیسے آپ اگر یہاں کلک کریں گے docks پی تو آپ اس پیچ پر آ جائیں گے طاور usage documentation پر جہاں پر ان سب concept کو ہم نے پوری کوشش کری ہے explain کرنے کی اچھے سے اور آپ دیکھ سکتے ہیں computer compute environments monitoring pipeline credentials یہ سب جہاں پر instructions mention ہے میں آپ کو جلدی سے ایک cli interface کے بارے میں بتانا چاہتا ہوں جیسے ہم نے next floor کا cli interface دیکھا ہے اور ابھی تک ہم نے طاور کا user interface کی بات کری ہے لیکن آپ طاور کو بھی ایک دم cli کی طریقے سے چلا سکتے ہیں اور جو طاور cli کا experience ہے جسے ہم tw کہتے ہیں وہ next floor cli سے بہت سملر ہے اور ایک بار اگر آپ نے طاور کے اوپر pipeline اور compute environment credentials سب کو سیٹ کر رکھا ہے تو آپ کو بس ایک کمانٹ دینی ہے اور آپ کی pipeline جو ہے اپکے infrastructure پے run ہو سکتی ہے آپ طاور کی API کو استعمال کر کے طاور کو اپنے existing infrastructure سے connect بھی کر سکتے ہیں اور وہ information آپ جیسے اس لنگ پکلک کریں گے آپ کو وہاں ملے گی تو open API standard use ہوا ہے اس API کو create کرنے میں اس کے ساتھ ساتھ میں آپ کو یہ بتانا چاہوں گا کی طاور کے لیے ہمارے next floor community میں ایک چانل ہے جو free usage کے لیے ہے تو آپ کبھی بھی اس پر آپ کے آپ کے پاس طاور سے related سوال ہے کوئی تو آپ اس پر ہمیں ڈیج کر سکتے ہیں اس کے ساتھ ہمارا آج کستیشن سماپت ہوتا ہے اور آج کستیشن کے ساتھ ہماری پوری prediction کے سارے بھگوں کا سماپت ہوتا ہے تو میں آپ کا میں آپ کو بہت دھنیوڈ کہنا چاہتا ہوں کہ آپ نے ان چارو دن ہمارے ساتھ ہم سے ہم سے جوڑے آپ ان چارو دن اور ہمارے ساتھ جو ہے next floor and nf core کے بارے میں آپ نے سچا کری تو بہت بہت دھنیوڈ آشا کرتے ہیں کہ یہ جو prediction تھا آپ کے لیے بہت useful ہے اور آپ open science اور open community اور open source کی جو جو power ہے وہ آپ دیکھ سکتے ہیں اور اپنے analysis اپنے scientific publications کو اور بھی reproducible بنانا اور open بنانے کی طرف آپ جب آپ بنانا چاہیں گے تو ہمارا اس training کا جو content ہے وہ شاہد آپ استعمال کریں تو بہت بہت دھنیوڈ میرا نام ابھی نفشرما ہے آپ اگر مجھ سے بات کرنا چاہتے ہیں تو social media پر a b h i a v 18 a v dot 18 a v کر کے آپ مجھے کونٹاک کر سکتے ہیں میرے website یہ ہے آپ چاہیں تو اس سے بھی کونٹاک کر سکتے ہیں اور اس کے ساتھ بہت بہت دھنیوڈ پھر ملتے ہیں میں next floor اور nf core سلاک پر بھی ہوں آپ چاہیں تو مجھ سے بات کر سکتے ہیں وہاں پر بہت بہت دھنیوڈ ہم سے جو نکلی