Single Consolidated Output for Multiple Traits in GAPIT GWAS

I like GAPIT for some occasional GWAS I need to run.

Because it’s one of the more user-friendly packages for GWAS work.
Because the degrees of customization it offers within a single package are great.
And also because it outputs every single thing. Some unnecessary things too, sure, but the convenience of having every single output is better than not.

Though, if you have several traits for a set of genotypes, you know that you will get a different file for each trait. Consolidating the gwas results for all traits into one single file could be painful if you have say, 3 or more traits. I usually have 10+ traits (different traits from multiple locations and years/seasons) so opening each output file and carrying out copy-pasta is uncool and therefore not for me. Hence, this post! 😉

Not sure if you source the gapit functions script from zzlab:
I don’t. I save the script as ‘gapit_source_code.txt’ locally and call this instead.

Once you save the text file, go to line 5205.
Alternatively, search for this line:

Memory=GAPIT.Memory(Memory=Memory,Infor="Extract GWAS start")

as line numbers may get changed in future versions of the text file.

Then right before the line where it says


insert this snippet:

colnames(new.PWI.Filtered)=c("SNP","Chromosome","Position ",
              new.PWI.Filtered, envir=globalenv())

Save and close the text file, or save it under a different name but be sure to call the altered source file for your work!

Alternatively, download this file and copy the code, paste into text editor and save as a txt file. In this file, I have only added the few lines of code shown above; none of the functions are altered.

Now, in your R script — the one you are using to import genotype, phenotype, etc — insert these two lines AFTER you run the GAPIT function.

traits_list <- mget(ls(pattern = "trait_.*"))
all_traits_GWAS <- Reduce(function(...) merge(..., all = T), traits_list)

For example, this is how my script looks:

library(compiler) #this library is already installed in R

#Remember, this is the altered source code

myY <- read.table("pheno.txt", head = T)
myG <- read.table("geno.txt", head = F)

myGAPIT <- GAPIT(Y=myY, G=myG,, Model.selection = F)
#myGAPIT <- GAPIT(Y=myY, G=myG,, Model.selection = T)

traits_list <- mget(ls(pattern = "trait_.*")) #make a list of all traits
all_traits_GWAS <- Reduce(function(...) merge(..., all = T), traits_list) #merge all lists into a single data frame
write.table(all_traits_GWAS, "all_traits_GWAS.txt", sep = "\t", quote = F, row.names = F)

The “all_traits_GWAS.txt” file is the consolidated output with gwas results from each individual trait, which is much more convenient and an efficient way of doing things.

If this isn’t working for you, feel free to reach out.


LPmerge parser for unix (or linux) environment

If you are using LPmerge to construct consensus maps from several individual maps, you will quickly realize that manually checking the lengths and RMSE values for each chromosome for all K values can be tiring.

As I work on a species with 21 chromosomes (& currently happen to be working with the task of merging 25 individual maps), I thought why not automate the process of selecting the “best” map. And by best, I mean the map that gives the lowest RMSE and sd values. However, low RMSE and sd values do not always gurantee you the best map, so manual scan is necessary every now and then…. especially for chromosomes that have bizarre map lengths. For the most part though, you can put your trust in RMSE doing a good job.

After you run LPmerge, you will have a ‘.Rout’ file. Use this as your input file and this bash script will give you the best linkage map for each K value you run for each chromosome.

#import your file and extract lines with relevant data
#to run: ./ infile outfile

awk '/Consensus/' "$1" | awk -v OFS="\t" '$1=$1' | awk -v OFS="\t" '{print $4,$5}' > con.tmp
awk '/mean/' "$1" | awk -v OFS="\t" '$1=$1' | awk -v OFS="\t" '{print $2,$3}' > avg.tmp
awk '/sd/' "$1" | awk -v OFS="\t" '$1=$1' | awk -v OFS="\t" '{print $2,$3}' > std.tmp

#get rid of the ugly quotes that R likes to add to every friggin thing
sed -i -e 's/"//g' con.tmp

#bring everything into a single file
paste con.tmp avg.tmp std.tmp > pstd.tmp

#assign k values -- note: if you are using a different k value then change the 5 below
#to whatever value of k you are using
awk -v OFS="\t" '{print "k"(NR-1) % 5 + 1, $0}' pstd.tmp > withk.tmp

#sum RMSE and sd since we essentially want the smallest of both
#ime, the smallest RMSE usually tends to pair with the smallest sd
awk -v OFS="\t" 'NR==1{print $0, $5+$7; next} {print $0,$5+$7}' withk.tmp > sum.tmp

#split the file into blocks of 5 as our k = 1:5
#again, if you are using k = 1:4, then change the 5 below to 4
split -l 5 sum.tmp del

#for each block, print the line with lowest RMSE+sd
for m in del*; do
 awk 'NR==1 || $8 < min {row= $0; min = $8}; END {print row}' $m 
done > kval.tmp

#add chromosome numbers to the file
awk -v OFS="\t" '{$1 = "chrom_"(NR) FS $1;}1' kval.tmp > "$2"

rm del*
rm *.tmp

That’s it! Feel free to reach out if this isn’t working for you.

Deciduous Strippers


Why do some plants strip? — Get scienced!


मान्छेलाई गर्मी भएपछि लुगा खोलेर नाङ्गिन थाल्दछ, र जाडो हुँदा लुगा थप्दछ।

धेरै रुख र बूट्यानहरु (पात झर्ने deciduous प्रकारका मात्र) भने गर्मी हुँदा लुगा (पात) थप्दछन र जाडो भएपछि नाङ्गिन थाल्दछन।


हाम्रो वरिपरि यो गतिविधि वर्षैपिच्छे देखिन्छ। धेरैले ध्यान दिएर नहेरे पनि, नबुझे पनि यो कृयाकलाप चलिरहेको हुन्छ। थप रमाइलो पक्ष चाहिँ के भने जाडो खासै नहुने हो भने पनि रुखले पात झार्न छोड्दैन।

पात झर्छ चाहिँ किन? र सबै रुख तथा बोटविरुवाहरु किन नाङ्गिदैनन्?

गर्मी (या वर्षा) मौसममा दिनको लम्बाइ र तापक्रम विरुवाले खोजेजस्तै हुन्छन। दिन लामा, ताता, र उज्याला हुन्छन भने रात उचित लम्बाइका र ठिक्कको चिसो पनि।  गर्मीमा केही दिन-हप्ताहरु छोडेर अरु समयमा प्रशस्त पानी पनि उपलब्ध नै हुन्छ। रूख र बूट्यानहरुका जरा जमीनमुनि निकै तलसम्म पुग्ने भएकाले सतहको पानीसँग उति धेरै सरोकार पनि हुँदैन। (हुन त हुन्छ, तर अत्याधिक गर्मी भएर पातबाट दोहन हुने पानीको मात्रा जराबाट पाउने पानीभन्दा धेरै भएमा। यस्तो बेलामा मात्र विरुवालाई सास फेर्न गाह्रो हुन्छ। नत्र अरुबेला सामान्य हो।)

त्यसैले गर्मीमा मस्त पात हाल्छन, खानेकुरा बनाउँछन, र आफ्नो कद ठूलो पार्दछन। सेक्सिने उमेर पुगिसकेका विरुवाहरुले सेक्सिएर बीऊ उत्पादन पनि गर्दछन – आखिर जे छ, जीनकै लागि छ।

तर यही बेलामा साइडमा रोचक गतिविधिहरु पनि घटिरहेका हुन्छन। यीमध्ये एक हो – पालुवाको उत्पादन। यी पालुवा यो साललाई नभएर अर्को सालको लागि बनाइन्छन। भन्नाले, फूल फुलाएर बीऊ बनाएर आफ्नो जीन जोगाउने काम हुँदै गर्दा रूखले अर्को साल बाँच्न, हुर्कन, र सेक्सिनका लागि भनेर यो सालमै नयाँ पालुवा बनाउँदछ। निष्ठूरी प्रेमी जस्तो जसले एक साथी हुँदाहुँदै अर्को नि बनाइरहन्छन, केही गरी एउटा फापेन भने अर्को फाप्ला कि भनेर। ब्याकअप अप्सन! 😀 [यो उदाहरण यहाँ अलि मिल्दैन भन्ने था छ, तपाईँ चूप लाग्नुस्। ;पी] यी पालुवा मुख्यगरी रूखका axillary meristems (हाँगाविँगाहरु) र केही गाँठाहरु (nodes) मा सुरक्षित राखिन्छन। प्राय रुखहरुमा हाम्रो आँखाले देख्न सकिन्न यिनलाई।

यी सबै काम लगभग सकिसक्दासम्म जाडो आइपुग्छ।

जब दिनहरु चिसा मात्र हैन छोटा (उज्यालोको मात्रा कम) पनि हुँदै जान्छन, तब रुखले सोच्दछ कि अब जाडोमा बाँच्नका लागि झ्यालढोका थुन्नुपर्छ। बाहिरी दुनियाँ हेर्ने र बुझ्ने रुखका झ्याल भनेका पात नै त हुन्।

हाँगा र पातबीचको सम्बन्ध हाम्रो हत्केला र औँलाबीचहरुको सम्बन्ध जस्तै हुन्छ। हत्केलाबाट केही नशा औँलामा जान्छन जसले रगतमा मिश्रित खानेकुरा औँलातिर लान्छन; औँलाबाट शरीरले धेरै फाइदा लिन्छ – बाहिरी दुनियाँबारे बुझ्दछ (स्नायुहरुको मद्दतले), काम गर्दछ, आदि। रूखमा पनि हाँगा र पातबीच (petiole मा) एउटा ‘नशा’ (सानो कुलो  वा सुरुङ्ग) जस्तो भाग हुन्छ जसलाई vascular bundle भनिन्छ। यो कुलोबाट पाततिर पानी र कच्चा पदार्थ पठाउँदछ भने फिर्तामा खानेकुरा र सूचना (कसैले आक्रमण गरेको, तापक्रमको, पानीको मात्राको, आदि) पाउँदछ।

यो bundle मा निम्न तन्तुहरु हुन्छन:

  • Xylem, जसले पाततिर सामान निर्यात गर्दछ
  • Phloem, जसले पातबाट सामान आयात गर्दछ
  • र Cambium जसको प्रमुख काम हाँगा ठूला पार्नु हो।

गर्मीको अन्ततिर दिनहरु छोटा हुँदै गएपछि (र जाडो पनि थपिँदै गएपछि) रुखले petiole मा हुने त्यो vascular bundle वरपर भएका अरु कोषहरुको लम्बाइ बढाउन थाल्दछ। यी कोषहरु (abscission layer भनिन्छ) जति धेरै र लामा हुन्छन, vascular bundle उति खुम्चिँदै जान्छ। खेतमा पानी लगाइरहेको कुलोमा दुवैतिरबाट माटाका ढिस्का र ढुङ्गा खसाल्ने हो भने कुलो खुम्चिएर जसरी पानीको बहाव बन्द हुन्छ, उसैगरी abscission layer का यी कोषहरु पनि दुवैतिरबाट बढेर उक्त bundle ढाक्दछन र खानेकुराको आयात-निर्यात दुवै बन्द हुन पुग्छ। यो क्रम चाँडो नभएर अलि सुस्त हुने भएकाले पातको रङ्ग फेरिएर झर्न धेरै दिन या हप्ता पनि लाग्न सक्दछ। यो प्रकृयालाई abscission भनिन्छ।

Abscission कसरी हुन्छ भन्नेबारे केही hypotheses छन जसमध्ये प्रायले auxin नामक हर्मोनले गराउने भनेर मान्दछन। साविकमा (पात नझर्दा) पातमा auxin को मात्रा रुखका बाँकी भागहरुभन्दा धेरै हुन्छन। तर जब दिन छोटा हुन्छन, तब रुखले पातमा यो हर्मोनको मात्रा घटाउँछ। पातमा भन्दा रुखका अन्य भागमा यसको मात्रा बढेपछि उक्त abscission layer का कोषहरुले अब हामीले लम्बाई बढाउनुपर्छ भन्ने संकेत पाउँदछन। र, ती कोषहरु बढ्न थाल्दछन, अनि पात र हाँगाबीचको सम्बन्ध बिस्तारै शून्यमा झार्दछन।

पातको रङ्ग चाहिँ किन फेरिन्छ त?

विरुवाले खानेकुरा पकाउनका लागि भनेर पातमा chlorophyll बनाउँदछ। खाना बनाउँदा सूर्यको किरणले chlorophyll मास्ने भएकाले विरुवाले chlorophyll को निर्माण हरबखत गरिरहनुपर्ने हुन्छ। दिन छोटा हुँदै गएपछि र तापक्रम घट्न थालेपछि जब abscission layer बन्द गरिन थाल्दछ, पातलाई चाहिने जति पानी र रसायन पनि घट्दै जान्छन। यसरी chlorophyll बनाउन चाहिने पर्याप्त कच्चा पदार्थ उपलब्ध हुन पनि छोड्दछ। र केही दिनमै पातबाट chlorophyll हराउँछ।

जब chlorophyll घट्दै जान्छ, पातमा पहिलेदेखि नै रहिआएका xanthophyll (पहेँलो) र carotenoid (सुन्तला रङ्ग) देखिन थाल्दछन। राता, वैजनी, आदि रङ्गहरु (anthocyanin) भने पातमा बचेखुचेका खानेकुरा र पदार्थहरु प्रयोग गरेर बनाइन्छन। यी भिन्न रङ्गहरुले सूर्यको (प्रायगरी बिहान र बेलुकाका) किरणको प्रयोगमा केही थप खानेकुरा बनाउन त सक्छन तर बाँकी रूखबाट सम्बन्ध विच्छेद भैसकेकोले पातहरु धेरै दिन बाँच्न सक्दैनन्। रुखको रङ्ग गाढा रातो हुन थालेपछि केही दिनमै या त पात सुख्खा हुन्छन या भुइँमा झर्दछन।

उक्त abscission layer ले बाहिरको चिसो भित्र जान दिँदैन (रुखले अन्य श्रोतमार्फत चिसो त अनुभव गरिरहेकै हुन्छ) र भित्रबाट पानी र खानेकुरा बाहिर जान पनि दिँदैन। जब जाडो सकिन्छ र दिनका लम्बाई फेरि बढ्न थाल्छन, अनि रुखले बिस्तारै उक्त layer मा निर्मित कोषहरु पगालेर पोहोर नै बनाएर राखेका पालुवाहरुलाई पातमा परिवर्तन गर्न थाल्दछ।

तर, जाडोको अनुभव नगरी रुखहरुले ती पोहोर बनाएका पालुवाहरुलाई पातमा रुपान्तर गर्न हिच्किचाउँछन। यदि रुखले जाडोको अनुभव गरेन भने उसले सोच्दछ कि जाडो आएकै छैन। यदि जाडो आएकै छैन भने जाडो कुनै दिन आउनेछ। र त्यो कुनै दिन आउने जाडोले मेरा भर्खर हालेका पालुवा/पात मारिदियो भने मेरो त विचल्ली हुन्छ। यो सोचेर जाडोको लागि पात झारेर बसेका बोटविरुवाहरुले चिसो अनुभव नगरी नयाँ पात निकाल्न असजिलो मान्दछन। यदि जाडो लामो समयसम्म नि आएन भने नयाँ पात निकाल्दै निकाल्दैन त? निकाल्छ, तर बिस्तारै, र धेरै सोचविचार गरेर मात्र।

यो सबै त ठीक छ। तर घरबाहिर या कौसीमा हुर्काएका रुखलाई जाडो शुरु हुने समयमा घरभित्र लाने हो भने के हुन्छ?

यसको लागि जुज्दाइले प्र्याक्टिकल उदाहरण दिन चाहन्छ:

मसँग गर्मी महिनाभरि घरबाहिर बसेको लप्सीको बोट मस्त हरियो थियो, पातहरुले टम्म। जब जाडो आउन थाल्यो, तब पातले रङ्ग फेर्न थाले। पात झरि नै सकेका भने थिएनन्। केही दिनहरुमा जाडोको मात्रा अलि बेसी नै हुने देखेर मैले आफ्ना सबै रुखविरुवाहरुलाई भित्र ल्याएँ।

भित्र ल्याइएका रुखहरुमा पीपल पनि थियो। पीपल सदाबहार रुख हो र यसको पात झर्दैन। यसले जाडोमा पात नझारेबाट सास्ती त खप्छ नै, तर जाडोसँग सामना गर्ने यसका आफ्नै तरिकाहरु छन। पीपलले न पातको रङ्ग फेर्दछ, न ठूटे भएर बस्दछ। त्यसैले भित्र ल्याएपछि अहिलेसम्म पीपल जस्ताको तस्तै छ। तर लप्सी भने?

भित्र ल्याइनु अघि बाहिर


भित्र ल्याएको २ दिन जतिमै गजबले रङ्ग फेर्न थाल्यो


भित्र ल्याएको १० दिनमा नाङ्गेझार

यो किन त? भित्र न्यानो अनुभव गरेपछि लप्सीले पात झार्न किन छोडेन? यही कुरोमा कुरो जोड्दा – पीपल पनि हर्लक्क नबढेर किन जस्ताको तस्तै त?

यसको उत्तर हुन्छ – endodormancy. Endodormancy भनेको पशुका केही प्रजातिहरुले जाडोमा गर्ने hibernation जस्तै विरुवाहरुमा हुने प्रकृया हो। लामो समयसम्म निष्क्रिय हुने यो प्रकृया deciduous रुख र बूट्यानहरुले वर्षेनी पच्छ्याउँदछन। यो प्रकृया कसरी शूरु हुन्छ र कसरी सञ्चालित हुन्छ भनेर राम्रोसँग बुझिसकिएको छैन। तर, धेरै हदसम्म circadian clock (शरीरभित्रको आन्तरिक घडी) ले यसको नियन्त्रण गर्दछ भनिन्छ। Circadian clock मुख्यता दिनको लम्बाइ (photoperiod) ले प्रभावित हुन्छ। तसर्थ, दिनको लम्बाइले रुखलाई पात झार्न वा नयाँ पात हाल्न निर्देशन दिन्छ भन्ने बुझाइले मान्यता पाएको छ।

माथिको ठुटे लप्सी र मेरो पीपल (जसको पात १००% हरिया र बोटमै टाँसिएका छन) अहिले endodormant अवस्थामा छन। तर, बाहिर खासै जाडोको अनुभव नगरी भित्र ल्याइएका यिनले नयाँ पात पलाउनका लागि अर्को गर्मी सिजन कुर्दैनन्।

मेरो अनुभवले के भन्दछ भने, भित्र प्रकाश र तापको मात्रा मिलाइदिने हो भने रुखहरुले चाँडै पालुवा हाल्न थाल्दछन, बाहिरी दुनियाँमा भन्दा धेरै नै चाँडो। शायद १-२ महिनामा यी दुवै हुर्कन थाल्नेछन र अर्को जाडो (छोटा दिन) नआएसम्म हुर्कि रहनेछन।

झा ब्रोको लिगलिगे दौड

झा ब्रोसँग मेरो लिनुदिनु केही छैन। उनका जे जति टुइटहरु रिट्विट भएर मेराअगाडि आउँदछन, तिनका भरमा मान्छे अलि हैन ज्यादै औडाहै हो भन्नी निष्कर्ष चैँ निकालेको छु।

हिजो उनको छोरीलाई कसैले भारतीय भनेछन भन्नेबारे चित्त दुखाएको पाएँ (हेर्नुस् तलको फोटो)। नेपालीलाई नेपाली नभनेर भारतीय भनिँदा चित्त दुख्ने पहाडे मात्र हैन तराईवासी पनि हुने रहेछन भन्ने बुझेँ। नत्र नाकाबन्दी…. भैगो त्यता नजाउँ, यो नकोट्ट्याउँ।

विज्ञानको विद्यार्थी भएको नाताले ब्रोको कथाका केही भागहरुले सोच्न बाध्या पारे। हुन त म फिजिसिष्ट हैन, तर पनि फिजिक्सका सामान्य घटनाक्रमहरु ‘यो सम्भव होला त?’ भनेर सोच्दछु यदाकदा। ब्रोको कथा पढेपछि त्यस्तै सोच फुरेकाले यसो १-२ हिसाबहरु नगरी खाएको नपच्ने देखेर यो लेखेँ।

( तलका हिसाबमा प्रयोग गरिएका अंक/तथ्यहरु गुगलमा सामान्य खोजीबाट पत्ता लगाएको हुँ। )

ती तीन सुट लगाएका ब्रोहरुलाई m भनौँ। झा ब्रोलाई j भनौँ।

गुगलले के भन्यो भने, आम मानिसहरुको औसत हिँडाइ ५ कि.मि. प्रतिघण्टा हुन्छ। m ब्रोहरु कहिले चाँडो, कहिले ढिला हिँडे होलान… र ती नानीलाई प्रश्न सोधेपछि ‘अब हामीलाई कसैले खोज्दै आए झेउ हुन्च, चाँडो हिडौँ’ भनेनन् होलान। यसर्थ, ब्रोहरुको गति (v) निम्नानुसार मानौँ:
vm = 5 km/h = 1.39 m/s   ———- (1)

अब झा ब्रोको कथाबाट केही जानकारी उतारौँ:

  • दिया नानी कम्पाउन्ड भएको घरबाहिरको सडक/खुला ठाउँमा खेल्दा झा ब्रो बाथरुममा थिए।
  • नानीलाई m (जसलाई मुजी मेन भनेर बुझ्न नि सकिन्छ) ले प्रश्न सोधेपछि उनले बाबालाई भनिन्।
  • बाबा ब्रो ननुहाई मान्छे भेट्न दौडिए।

मेरो अनुमानमा दियाले सडकबाट माथि बाथरुममा पुग्दा शायद ३-४ मिनेट लगाइन्। अप्रत्याशित प्रश्न सोधिए/घटना घटेपछि हामी त अकमकिन्छौँ, दिया त बच्चै (मेरो अनुमान, किनभने खेलिरहेकी थिइन्) छिन होला। एकछिन अकमकिएर बाबा खोज्दा ३-४ मिनेट लाग्ला कि भन्छु म।

त्यसपछि घटेको कुरा राम्रोसँग भन्न २-३ मिनेट लगाइन्। झा ब्रोले पनि राम्रोसँग सुन्नु र बुझ्नुपर्‍यो, त्यसैले यति समय लाग्यो होला।

योबेला झा ब्रो बाथरुममा हग्स दिँदै थिए वा नुहाउँदै थिए। किनभने, दिया सडकमा हुँदा ब्रो बाथरुम छिरिसकेका तर नुहाउन बाँकी नै रहेकाले यत्रो समय लुगा फुकाल्न मात्र त लाएनन् होला भन्ने मेरो अनुमान रहेको छ। जे गर्दै भए पनि लुगा लगाएर, तल कम्पाउन्डबाहिरको सडकमा निस्कन घटीमा पनि ४-५ मिनेट लगाए भन्दा म गलत हुन्न होला। मतलब, m ले सडकमा प्रश्न सोधेबाट झा ब्रो सडकमा आइपुग्न ९-११ मिनेट लाग्यो होला। १० नै भनौँ।

यसको अर्थ यो हुन्छ कि ती ३ जनाले १० मिनेट (600 s) मा निम्नानुसारको दूरी तय गरे; माथि (1) बाट:

1.39 m/s x 600 = 834 m (८०० मिटर भनौँ, सजिलोको लागि)   ———- (2)


झा ब्रोको कथा अगाडि बढ्दछ, जहाँ उनी भन्दछन: “… म वाथरुम ननहुाइ फेरि लुगा लागाएर ती तीन जना युवाहरुलाई खोज्न दौडौ । तिनीहरु थोरै अगाडि गएकृा हुँदा …”

यहाँ दौडेको कुरामा जोड दिन पर्ने हुन्छ।

गुगलबाट भेटिएको एक आर्टिकलले के भन्यो त भने दौडँदा औसत मान्छेहरुको औसत गति 10.5 km/h हुन्छ रे। मानिलिउँ ती केटाहरुलाई खोज्न दौडदा झा ब्रोको गति पनि यति नै थियो। यसर्थ:
vj = 10 km/h = 2.8 m/s   ———- (3)


त्यसपछि, कुनै चलायमान वस्तुले तय गरेको दूरी पत्ता लगाउन मैले यो फर्मुला प्रयोग गरेँ:

d = vt   ———- (4)

d = दूरी
v = गति
t ‍= समय

अब (3) र (4) जोड्ने हो भने, झा ब्रोले तय गरेको दूरी यो हुन्छ:
dj = vjt
= 2.8 x t

र (1) र (4) जोड्ने हो भने ती ३ केटाहरुले तय गरेको दूरी यो हुन्छ:

dm = vmt
= 1.39 x t


ब्रोको कथाले के पनि भन्दछ भने ती युवक र ब्रोको जम्काभेट हुन्छ। मतलब, दुवैले घरको कम्पाउन्डबाट तय गरेको दूरी बराबर हुन्छ। त्यसैले,

dj = dm हुन्छ। मतलब:

2.8 x t = 1.39 x t

तर के बिर्सन हुन्न भने झा ब्रो कम्पाउन्डमा निस्कँदा, ती ३ ब्रोहरु लगभग ८०० मिटर पर पुगिसकेका छन; माथि (2) हेर्नुस्।


2.8 x t = 1.39 x t ‌+ 800
=> t = 571 s = 9.5 min


यसरी, झा ब्रोलाई ती केटाहरु भेट्टाउन साँढे नौ मिनेट लागेछ। स्मरण रहोस्, उनी साँढे नौ मिनेट भरि नै लगातार दौडिइरहेका थिए; नत्र थप समय लाग्दछ।

कति पर भेट्टाएछन त नि? भन्ने जिज्ञासा छ भने यसको लागि समय माथि (4) मा हालेर हेरौँ:
dj = vjt
= 2.8 x 571
= 1599 m

अर्थात, आफ्नो घरको कम्पाउन्डबाट १.६ कि.मि. पर मात्र भेटेछन ती केटाहरुलाई।

अब “थोरै अगाडि” भेटेको कुरा त साँचो हो या झूठो, म के जानौँ र। हिसाबले चाहिँ गाह्रै-गाह्रै देखाउँदछ। तर सारा तराईको समस्या समाधान गर्न भिखारी जसरी विदेशी पैसो मागेर हिँड्ने लगभग एक्लै नै लागिपर्नुभएका झा ब्रो सुपर हिउमन हैनन् भनेर भन्न पनि त सकिएन नि।

(नोट: माथि नै भनेँ, तर दोहोर्‍याउन चाहन्छु: म फिजिसिष्ट हैन। खासमा यो समस्यामा इन्टिग्रल प्रयोग गर्नुपर्ने हो किनभने झा केटाहरु समाउन दौडदा केटाहरु पनि हिडिरहेका हुन्छन। चलायमान दूरी यसरी पत्ता लगाउँदा ठ्याक्कै चैँ मिल्दैन तर हाम्ले गफ ठोक्नलाई चैँ सालाखाला मज्जाले मिल्छ।)

नागा बाबाको छाउपडी कानुन

मैले नागाबाबाहरुलाई पहिलोपल्ट साक्षात आफूसामुन्ने देखेको कक्षा ५ मा पढ्दा। साँझ नपर्दै शिवरात्रिको दिन दाइ (मामाको छोरा) र म पशुपति गएका थियौँ। बाहिर चप्पल राखे हराउने डरले दाजुभाइले नै जाकेट लाएका थियौँ – ढोकाछेउ पुग्नुअघि चप्पल खोलो, जाकेटको भित्री बगलीमा हालो, टण्टै खलाँस।

५ मा पढ्ने फुच्चो म, नागाबाबा भनेका के र कस्ता हुन्छन र किन नागाबाबा भनिन्छ यिनलाई भन्ने सम्पूर्ण प्रश्नहरुको उत्तर नागाबाबालाई खुद देखेपछि प्राप्त भए। फुस्रो निर्वस्त्र शरीरमा धागोको अस्तित्व नाइँ। प्रायले दाह्रीजुँगा र जटा लामो पारेका। अनि कसैले आफ्नो लिङ्गमा औँठी लाएका। मलाई सबैभन्दा कौतुहल भएको तिनै तुरीऔँठी देखेर। कसै कसैका त ३-४ वटै औँठी ए तेस्का बाजे।

तन्नम-टाट यी बाबा फेरि हात उठाएर, जाँघ थर्काएर तथास्तु दिँदै हुन्थे – आफ्नो वरपर आउने सबैलाई खरानीको टिका लाइदिएर। महिला अलि वर आए जाँघ अलि उचालिन्थ्यो, तर पारा उही नै। आफूसँग केही नभए पनि आशीर्वाद यसरी दिन्थे कि मानौँ भगवानले तिनका आशीर्वाद कुनै हालतमा पनि पूरा गरिदिनेछन।

यस्तै नागा बाबाहरु अचेल देशभरिका शहरहरुमा छन। आफू खोक्रा छन तर पनि तथास्तु गरिरहन्छन, मानौँ यिनको तथास्तुले भत्केको देश आफसेआफ उठेर बन्ने छ। मनले सम्पूर्णत: रित्तिएका छन, तर पनि झोली फैलाएर माग्न आउनेलाई जाँघ अत्रो पारेर आफ्नो शक्ति देखाउँछन, र आशीर्वाद दिन्छन – फू:मन्तर, तेरो दु:ख पर भैजाओस्!

भर्खरै फू-मन्तर गरेका छन छाउपडी हराइजाओस् भनेर। भनिएको छ:

छाउपडी प्रथालाई नेपाल कानुनले पहिलो पटक फौजदारी कानुनको हिस्सा बनाएको छ। सुत्केरी र रजस्वला भएको बेलामा महिलामाथि हुने विभेदजन्य व्यवहारलाई कसुर परिभाषित गरेको मुलुकी अपराध संहिता विधेयक २०७४ संसदले सर्वसम्मतिले पारित गरेको छ। यो कानुन २०७५ भदौ १ गतेदेखि लागू हुनेछ। मुलुकी अपराध संहिताको दफा १६० मा उपदफा थप गरी छाउपडीलाई कसुर घोषित गरिएको हो। सामाजिक अन्धविश्वासका रुपमा सुदूरपश्चिम र कर्णालीका विभिन्न क्षेत्रमा कायम रहेको प्रथामा अब तीन महिनासम्म कैद हुनेछ। यस्तै, कसुरदारलाई कैदसँगै तीन हजार रुपैयाँसम्म जरिवाना पनि हुन सक्नेछ। घटनाको प्रकृति हेरी दुवै सजाय समेत कसुरदारलाई हुन सक्नेछ।

कुनै पनि नराम्रो काम निर्मूल पार्नको लागि कानुन बन्नु, कानुनबारे जनचेतना जगाइनु, लागु हुनु, र कार्यान्वयन हुनु असाध्यै राम्रो कुरा हो हेर्नुस्। कानुन हुँदैन थियो त सतीप्रथा शायद अहिलेसम्म नि रहिरहन्थ्यो होला। त्यसैले कानुन बन्नु, पारित हुनु, र व्यवहारमा आउनु साह्रै उचित छ।

अनुचित चाहिँ के छ भने, छाउपडी प्रथा नछोडेको आरोपमा पक्राउ पर्ने, जेल जाने, आदि प्रबल संभावनाहरु। नागा बाबाहरुलाई किन तुरीमा औँठी लगाइस् भनेर सोधेमा जसरी ‘हाम्रो संस्कार यही हो, अरु के गर्नु त’ भन्छन, त्यसरी नै छाउपडीको चलन छोड्न नसकेकाहरुले पनि ‘यो हाम्रो संस्कार यही हो, अरु के गर्नु’ भन्नेछन। यस्तो अवस्थामा हाम्रो समाजका आधुनिक र शिक्षित (तर अविवेकी) नागा बाबाहरुलाई नाङ्गै सडकमा हिड्न दिने तर अशिक्षित र चेतनाको स्तरमा उकेरा नलागेका बाबु, दाइ, काका, आमा, आदिलाई समातेर जेल पठाउने?

‘म मेरी छोरीलाई या जहानलाई दु:ख दिनकै लागि महिनाको ४ दिन गोठमा पठाउँछु, अनि सिक्छे यसले जीवन र जगतबारे उचित पाठ!’ भनेर शायदै कसैले सोच्ला। बिरालो कुनामा बाँधेर सराद्दे गरेको कथाजस्तै नराम्रो र औचित्यहीन कामले सामाजिक निरन्तरता पाएको मात्र हो। यसलाई बलजफ्ती हटाउने कि चेतनाको विस्तार गरेर?

आधुनिक नागा बाबाहरुले भन्लान – कानुन बन्दैन भने, कानुनको डर हुँदैन भने मानिसहरुले कुप्रथा कहिले पनि छोड्ने छैनन्। त्यसैले कानुनको कार्यान्वयन हुनु जरुरी छ, असामाजिक हर्कत गर्नेलाई झ्यालखानामा कोच्नै पर्छ। अनि सबैले सिक्नेछन कि यसो गर्नु हुँदैन रहेछ भनेर।

मलाई हाँसो लाग्छ। जसले घर डढाएर खरानी घसेर हात पसार्दै विदेशीसँग भीख मागेर जीवन चलाउँछ, ती नाङ्गा मनुष्यहरुले अरुले समाज बिगारे भनेको सुन्दा।

दिनुपर्ने कडा कानुन हैन, शिक्षा हो। कठोर शब्द हैन, सिकाइ हो। सिँचाइ हो, बत्ती हो, बाटोघाटो हो, विकास हो।

तर देशका आधुनिक नागा बाबाहरुलाई यसमा चासो छैन। नागाहरुको काम जाँघ हल्लाएर आशीर्वाद दिएर भैजाओस् भन्ने हो। जति बेसी जाँघ हल्लाउन र जति ठूलो स्वरमा तथास्तु भन्न सकिन्छ, त्यति नै धेरै आफ्नो जुनी सार्थक भएको भन्ठान्छन।

विकासमा लगाउन भनी छुट्याएको रकमले तुरीमा नयाँ औँठी किन्नेहरुबाट केही आश गर्न सकिन्न।

Estimating and plotting the decay of linkage disequilibrium

A quick post that shows how you can estimate the decay of linkage disequilibrium (LD) and plot it along the genome/chromosome. We’ll be looking at two methods to do this, which unsurprisingly, produce different estimates of LD decay. I personally prefer the 2nd method as it is more scientific.

For both methods, I am using this input file. It basically has two tab delimited columns – one with distance in megabase pairs (Mbp) and the other with LD (r2) values.

First, import the file:

file <- read.table("D_genome_ld.txt", sep="\t", header=T)

1. Method 1: The “Neanderthal” Way (sorry, dear mortal Neanderthals!)

Continue reading

टिनएज डायरिज्

आज म मेरा र मेरा केही दाइहरुका एकाध रमाइला अनुभव लेख्दैछु।

मैले सम्पूर्ण लिङ्ग र उदाङ्ग योनिको चित्र पहिलोपटक आठ कक्षामा देखेको। हेल्थ यान्ड साइन्सको अङ्ग्रेजी किताबको लगभग बीचतिर थए दुवै चित्रहरु। लिङ्गसँग हल्काफुल्का परिचित नै थिइयो भनौँ न, तर योनिसँग परिचित त इस् हुनु र, सपना नि देखिन्न थियो। मन नलागेर हैन कि, कस्तो हुन्छ भन्ने नै थाहा नभएर। जस्तो कि, जन्मजात अन्धो व्यक्तिले एउटा साइकल कस्तो हुन्छ भनेर वर्णन सुनेको हुन्छ तर उसको कल्पनाले हामीले देखेजस्तै साइकल देख्ला र? हो त्यस्तै। मने, देखिन्थ्यो, कल्पिइन्थ्यो पनि तर के देखिन्थ्यो र के कल्पिइन्थ्यो खै सम्झना छैन।

गङ्गा सरले पढाउनुहुन्थ्यो त्यो क्लास। त्यो र पिटि (Physical Training??) सँगै पढाउनुहुन्थ्यो। खै पूर्वको कुन जिल्लाबाट बसाइँ सरेर आउनुभएको थियो… साह्रै खरो तर हँसिलो, फरासिलो। कथमकदाचित् उहाँलाई स्कूलबाहिर भेटे लाज र डरले लुत्रुक्क परेर बाटोको अर्कै किनार समातेर लमकलमक भागिन्थ्यो। तर यस्ता सर पनि त्यो जनेन्द्रियको अध्यायमा पुगेपछि शिथिल हुनुभो। अरुबेला कक्षाको बीच भागमा (एकातिर केटा बस्ने बेञ्च र अर्कोतिर केटी बस्ने बेञ्च मिलाएर हाम्रो कक्षाकोठा २ भागमा बाँडिएको थियो) ओहोरदोहोर गर्ने उहाँ त्यो अध्यायभरि नै हुनुपर्छ, ब्ल्याकबोर्डको अगाडि ठिङ्ग उभिएर किताबमा आधा मुख गाडेर ‘लाइन-बाइ-लाइन’ पढ्नुभयो। लगभग यसरी नै त्यो अध्याय सकियो। मनमा कम्ता चुकचुक र नमज्जा लागेको हैन; कारण भनिरहन नपर्ला।

Continue reading