[Genabel-commits] r1150 - tutorials/OmicABEL

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Fri Mar 15 12:25:46 CET 2013


Author: yurii
Date: 2013-03-15 12:25:46 +0100 (Fri, 15 Mar 2013)
New Revision: 1150

Added:
   tutorials/OmicABEL/exampleOfUse.org
   tutorials/OmicABEL/killEmAll.sh
   tutorials/OmicABEL/pleaseRunMe.sh
Log:
initial version of the OmicABEL tutorial

Added: tutorials/OmicABEL/exampleOfUse.org
===================================================================
--- tutorials/OmicABEL/exampleOfUse.org	                        (rev 0)
+++ tutorials/OmicABEL/exampleOfUse.org	2013-03-15 11:25:46 UTC (rev 1150)
@@ -0,0 +1,608 @@
+#+title: Small example of use of OmicABEL
+#+author: Yurii Aulchenko for the OmicABEL developers
+#+property: results output graphics
+#+property: exports both
+#+property: eval never
+
+* Outline
+In this example, we will use the data set distributed with GenABEL to
+show the use of OmicABEL. Hence you need to have [[http://www.genabel.org/packages/GenABEL][GenABEL package]]
+installed on your system. You will also need the [[http://www.genabel.org/packages/DatABEL][DatABEL package]] for
+data manipulations and 'mvtnorm' package (simulation of traits) 
+installed. 
+
+For conversion of files to the FaST-LMM format, you will need [[http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml][PLINK]]
+installed, you will also need [[http://research.microsoft.com/en-us/um/redmond/projects/MSCompBio/Fastlmm/][FaST-LMM]] if you'd like to run the
+comparison. 
+
+* Prepare the data for analysis
+  :PROPERTIES:
+  :session: generateData
+  :END:
+Note that you do NOT need to follow this procedure to get data usable
+for OmicABEL. The trick is to get your data in tables and then dump
+these tables in 'filevector' (aka 'DatABEL') format. You do NOT need
+to have your data in GenABEL format for that!
+
+Please start R and ...
+ 
+** Load the libraries and necessary data
+We will load the 'ge03d2.clean' data set
+#+begin_src R
+library(mvtnorm)
+library(DatABEL)
+library(GenABEL)
+data(ge03d2.clean)
+df <- ge03d2.clean[,autosomal(ge03d2.clean)]
+#+end_src
+
+#+RESULTS:
+: DatABEL v.0.9-4 (March 12, 2013) loaded
+: Loading required package: MASS
+: GenABEL v. 1.7-4 (February 22, 2013) loaded
+
+and check how many individuals and SNPs are there
+#+begin_src R
+nids(df)
+nsnps(df)
+#+end_src
+
+#+RESULTS:
+: [1] 822
+: [1] 6826
+
+** Compute genomic relationship
+Compute genomic KINSHIP
+#+begin_src R
+gkin <- ibs(df,weight="freq")
+gkin[1:3,1:3]
+#+end_src
+
+#+RESULTS:
+:               id4         id10         id25
+: id4   0.447279504 6.683000e+03 6687.0000000
+: id10  0.007856257 4.657045e-01 6678.0000000
+: id25 -0.007928409 6.881990e-03    0.4815139
+
+Now transform this into relationship matrix
+#+begin_src R
+grel <- gkin
+grel[upper.tri(grel)] <- t(grel)[upper.tri(grel)]
+grel <- 2*grel
+grel[1:3,1:3]
+#+end_src
+
+#+RESULTS:
+:              id4       id10        id25
+: id4   0.89455901 0.01571251 -0.01585682
+: id10  0.01571251 0.93140902  0.01376398
+: id25 -0.01585682 0.01376398  0.96302789
+
+** Simulate some traits
+#+begin_src R
+set.seed(10)
+nTraits <- 10
+model.h2 <- runif(nTraits,min=0.3,max=0.7)
+myPhenos <- matrix(NA,ncol=nTraits,nrow=nids(df))
+s2 <- 3
+j <- 1
+for (current.h2 in model.h2) {
+  Sigma <- s2*(current.h2*grel + (1-current.h2)*diag(rep(1,nids(df))))
+  myPhenos[,j] <- rmvnorm(1,sigma=Sigma)
+  j <- j + 1
+}
+colnames(myPhenos) <- paste("tra",1:dim(myPhenos)[2],sep="")
+myPhenos[1:2,]
+#+end_src
+
+#+RESULTS:
+:           tra1      tra2      tra3      tra4      tra5       tra6       tra7
+: [1,] -0.137185 -1.507003 3.2995679 -1.181792 0.2607997 -0.8527273 -2.3883019
+: [2,] -2.177526 -0.442744 0.1585556  1.784114 1.5286974  2.5535508 -0.9764274
+:            tra8       tra9     tra10
+: [1,] -0.3908143 -1.0160779 -2.773482
+: [2,]  2.0045780 -0.1445038  2.448823
+
+Let us also compute all ratios between the traits:
+#+begin_src R
+tmp <- myPhenos
+for (i in 1:(nTraits-1)) {
+  for (j in (i+1):nTraits) {
+    cRatioIJ <- tmp[,i]/tmp[,j]
+    cRatioJI <- tmp[,j]/tmp[,i]
+    tmp <- cbind(tmp,cRatioIJ)
+    colnames(tmp)[dim(tmp)[2]] <- paste("rat_",i,"_",j,sep="")
+    tmp <- cbind(tmp,cRatioJI)
+    colnames(tmp)[dim(tmp)[2]] <- paste("rat_",j,"_",i,sep="")
+  }
+}
+dim(tmp)
+myPhenos <- tmp
+#+end_src
+
+#+RESULTS:
+: [1] 822 100
+
+** Export the data in DatABEL format
+Make sure you always use the DOUBLE type!
+
+Need to make sure there are no 'older' filevector files around
+#+begin_src R
+killFiles <- c("pheno?.???","genos.???","covars.???","grel.???")
+unlink(killFiles)
+#+end_src
+
+#+RESULTS:
+
+Export traits. We first export one trait 
+#+begin_src R
+tmp <- matrix2databel(from=myPhenos[,1,drop=FALSE],filename="pheno1",type="DOUBLE")
+#+end_src
+
+#+RESULTS:
+
+and then all traits -- this is handy to show the use of different options
+#+begin_src R
+tmp <- matrix2databel(from=myPhenos,filename="phenos",type="DOUBLE")
+#+end_src
+
+#+RESULTS:
+
+Export covariates - note you need '1' as the first covariate!
+#+begin_src R
+myCovariates <- phdata(df)[,c("sex","age")]
+myCovariates <- cbind(1,myCovariates)
+myCovariates[1:3,]
+tmp <- matrix2databel(from=as.matrix(myCovariates),filename="covars",type="DOUBLE")
+#+end_src
+
+#+RESULTS:
+:      1 sex      age
+: id4  1   0 51.63771
+: id10 1   1 53.73938
+: id25 1   0 66.01148
+
+Export relationship
+#+begin_src R
+tmp <- matrix2databel(from=grel,filename="grel",type="DOUBLE")
+#+end_src
+
+#+RESULTS:
+
+Export genotypes. Note that you do NOT need to have genotypes in the
+GenABEL format to do this operation.
+#+begin_src R
+tmp <- matrix2databel(from=as.numeric(gtdata(df)),filename="genos",type="DOUBLE")
+#+end_src
+
+#+RESULTS:
+
+Remove the 'tmp' object and 'gc' to keep things clean:
+#+begin_src R
+rm(tmp)
+gc()
+#+end_src
+
+#+RESULTS:
+:           used (Mb) gc trigger  (Mb) max used  (Mb)
+: Ncells  364098 19.5     667722  35.7   467875  25.0
+: Vcells 3105774 23.7   17089802 130.4 20039530 152.9
+
+** Export the data in format for FaST-LMM
+We are going to compare the OmicABEL results with FaST-LMM, and
+therefore will export the results in a format usable for FaST-LMM as
+well. Note this part is NOT necessary to run the OmicABEL!
+
+Start with genotypic files, to be exported in TPED format
+#+begin_src R
+export.plink(df,transpose=TRUE)
+#+end_src
+
+#+RESULTS:
+
+Export covariates
+#+begin_src R
+falmmCov <- cbind(1:nids(df),idnames(df),phdata(df)[,c("sex","age")])
+falmmCov[1:3,]
+write.table(falmmCov,file="plink.cov",col.names=FALSE,row.names=FALSE,quote=FALSE)
+#+end_src
+
+#+RESULTS:
+:      1:nids(df) idnames(df) sex      age
+: id4           1         id4   0 51.63771
+: id10          2        id10   1 53.73938
+: id25          3        id25   0 66.01148
+
+Export phenotypes
+#+begin_src R
+falmmPhe <- cbind(1:nids(df),idnames(df),myPhenos)
+write.table(falmmPhe,file="plink.phe",col.names=FALSE,row.names=FALSE,quote=FALSE)
+#+end_src
+
+#+RESULTS:
+
+Export genomic relationship
+#+begin_src R
+falmmRel <- grel
+nms <- paste(1:nids(df),idnames(df))
+colnames(falmmRel) <- nms
+falmmRel <- cbind(var=nms,falmmRel)
+write.table(falmmRel,file="plink.sim",col.names=TRUE,row.names=FALSE,quote=FALSE,sep="\t")
+#+end_src
+
+#+RESULTS:
+
+Now, you can leave R.
+
+Let us switch to the shell and convert the TPED into binary PLINK
+format (so our 'timing' comparison is more fair)
+#+begin_src sh :session mySh
+plink --tfile plink --make-bed
+#+end_src
+
+#+RESULTS:
+#+begin_example
+
+ at ----------------------------------------------------------@
+|        PLINK!       |     v1.07      |   10/Aug/2009     |
+|----------------------------------------------------------|
+|  (C) 2009 Shaun Purcell, GNU General Public License, v2  |
+|----------------------------------------------------------|
+|  For documentation, citation & bug-report instructions:  |
+|        http://pngu.mgh.harvard.edu/purcell/plink/        |
+ at ----------------------------------------------------------@
+
+Web-based version check ( --noweb to skip )
+Recent cached web-check found... OK, v1.07 is current
+
+Writing this text to log file [ plink.log ]
+Analysis started: Fri Mar 15 01:40:55 2013
+
+Options in effect:
+	--tfile plink
+	--make-bed
+
+Reading pedigree information from [ plink.tfam ] 
+822 individuals read from [ plink.tfam ] 
+0 individuals with nonmissing phenotypes
+Assuming a disease phenotype (1=unaff, 2=aff, 0=miss)
+Missing phenotype value is also -9
+0 cases, 0 controls and 822 missing
+438 males, 384 females, and 0 of unspecified sex
+6826 (of 6826) markers to be included from [ plink.tped ]
+Before frequency and genotyping pruning, there are 6826 SNPs
+822 founders and 0 non-founders found
+Total genotyping rate in remaining individuals is 0.990041
+1 )
+0 SNPs failed frequency test ( MAF < 0 )
+After frequency and genotyping pruning, there are 6826 SNPs
+After filtering, 0 cases, 0 controls and 822 missing
+After filtering, 438 males, 384 females, and 0 of unspecified sex
+Writing pedigree information to [ plink.fam ] 
+Writing map (extended format) information to [ plink.bim ] 
+Writing genotype bitfile to [ plink.bed ] 
+Using (default) SNP-major mode
+
+Analysis finished: Fri Mar 15 01:40:59 2013
+#+end_example
+
+
+* Run OmicABEL analysis
+Let us check that all files are present in the current directory: 
+#+begin_src sh
+ls *.fv?
+#+end_src
+
+#+RESULTS:
+#+begin_example
+covars.fvd
+covars.fvi
+genos.fvd
+genos.fvi
+grel.fvd
+grel.fvi
+pheno1.fvd
+pheno1.fvi
+phenos.fvd
+phenos.fvi
+#+end_example
+
+Make sure that the executables 'CLAK-GWAS' and 'reshuffle', or make
+sure they are in your path. 
+We can now run the OmicABEL analysis with (also using 'time' to time
+the run).
+
+We first run analysis of single trait using the option 'chol'
+#+begin_src sh
+CLAK-GWAS -var chol -nths 3 -cov covars -phi grel \
+          -snp genos -pheno pheno1 -out myres1
+#+end_src
+
+#+RESULTS:
+#+begin_example
+
+Running a Genome-Wide Association Study of the following size:
+  sample size:      822
+  # of covariates:  2
+  # of SNPs:        6826
+  # of phenotypes:  1
+
+Will use CLAK-Chol with the following parameters
+  x_b: 3072
+  y_b: 1
+  o_b: 3072
+  x_tile: 160
+  y_tile: 160
+  # of threads: 3
+  Available memory 3.107723 GBs (out of 3.873131 GBs)
+
+Estimating GWAS parameters: heritability and variance... Done ( took 0.287 secs )
+Performing the study... Done ( took 0.888 secs )
+#+end_example
+
+(this takes about 3 seconds)
+
+Now, for analysis of multiple traits it is suggested to use the option 'eigen':
+#+begin_src sh
+CLAK-GWAS -var eigen -nths 3 -cov covars -phi grel \
+          -snp genos -pheno phenos -out myres
+#+end_src
+
+#+RESULTS:
+#+begin_example
+
+Running a Genome-Wide Association Study of the following size:
+  sample size:      822
+  # of covariates:  2
+  # of SNPs:        6826
+  # of phenotypes:  100
+
+Will use CLAK-Eig with the following parameters:
+  x_b: 3200
+  y_b: 100
+  o_b: 3072
+  x_tile: 160
+  y_tile: 160
+  # of threads: 3
+  Available memory 3.105980 GBs (out of 3.873131 GBs)
+
+Estimating GWAS parameters: heritability and variance... Done ( took 2.088 secs )
+Performing the study... Done ( took 5.996 secs )
+#+end_example
+
+(this takes about 20 seconds)
+
+Easy, ergh?! Note that time does not add up - doing $N$ phenotypes is much faster then doing $N$ time one phenotype!
+
+** Extract the data in text format
+
+This command will dump ALL results into single large text file
+(danger! danger! - check the reshuffle options for more targeted extracts)
+#+begin_src sh
+reshuffle myres --chi2
+#+end_src
+
+#+RESULTS:
+#+begin_example
+myres--chi2--
+finish iout_file read 0.003161
+TRAITS VALUE SET CHANGED TO ALL
+SNPS VALUE SET CHANGED TO ALL
+startwritetxt=0.004497
+endwritechitrait tra1 0.126704
+[OUTPUT TRUNCATED]
+#+end_example
+
+Let us have a look at the first few lines of the output: 
+#+begin_src sh
+head -n 3 chi_data.txt
+#+end_src
+
+#+RESULTS:
+: SNP	Trait	beta_1	beta_sex	beta_age	beta_SNP	se_1	se_sex	se_age	se_SNP	cov_sex_1	cov_age_1	cov_SNP_1	cov_age_sex	cov_SNP_sex	cov_SNP_age	Chi2
+: rs1646456	tra1	0.0915423184633255	0.122388660907745	-0.000707811850588769	-0.22483517229557	0.226739227771759	0.107113860547543	0.00413585640490055	0.102378368377686	-0.00605768384411931	-0.00084826594684273	-0.0060969484038651	-5.95025539951166e-07	-4.16367438447196e-05	-1.02241629065247e-05	4.82294262254677
+: rs7950586	tra1	-0.0256201047450304	0.11798419803381	-0.000874088436830789	-0.195526510477066	0.219396397471428	0.107196986675262	0.00413514673709869	0.236124187707901	-0.00615166639909148	-0.000853159464895725	-0.00388470059260726	-9.07259561699902e-07	0.00100125558674335	-1.51250196722685e-05	0.685693993731917
+
+
+* Explore the results
+  :PROPERTIES:
+  :session: exploreResults
+  :END:
+
+Start R again and ...
+
+** Load data into R 
+#+begin_src R
+myRes <- read.table("chi_data.txt",head=TRUE,stringsAsFactors=FALSE)
+myRes$Pvalue <- pchisq(myRes$Chi2,1,low=FALSE)
+dim(myRes)
+myRes[1:2,]
+#+end_src
+
+#+RESULTS:
+#+begin_example
+[1] 682600     18
+        SNP Trait      beta_1  beta_sex      beta_age   beta_SNP      se_1
+1 rs1646456  tra1  0.09154232 0.1223887 -0.0007078119 -0.2248352 0.2267392
+2 rs7950586  tra1 -0.02562010 0.1179842 -0.0008740884 -0.1955265 0.2193964
+     se_sex      se_age    se_SNP    cov_sex_1     cov_age_1    cov_SNP_1
+1 0.1071139 0.004135856 0.1023784 -0.006057684 -0.0008482659 -0.006096948
+2 0.1071970 0.004135147 0.2361242 -0.006151666 -0.0008531595 -0.003884701
+    cov_age_sex   cov_SNP_sex   cov_SNP_age     Chi2     Pvalue
+1 -5.950255e-07 -4.163674e-05 -1.022416e-05 4.822943 0.02808336
+2 -9.072596e-07  1.001256e-03 -1.512502e-05 0.685694 0.40763289
+#+end_example
+
+** Explore the results
+Let us check GC $\lambda$'s and max($\chi^2$) for all the traits:
+#+begin_src R
+for (cTrait in unique(myRes$Trait)) {
+  condition <- which(myRes$Trait==cTrait)
+  lambda <- median(myRes[condition,"Chi2"])/qchisq(.5,1)
+  maxChi2 <- max(myRes[condition,"Chi2"])
+  cat(cTrait,"'s Lambda = ",lambda,"; max chi2 = ",maxChi2,"\n")
+}
+#+end_src
+
+#+RESULTS:
+#+begin_example
+ tra1 's Lambda =  1.040671 ; max chi2 =  11.51143 
+tra2 's Lambda =  1.001553 ; max chi2 =  14.37402 
+tra3 's Lambda =  1.005891 ; max chi2 =  12.72925 
+[OUTPUT TRUNCATED]
+#+end_example
+
+* Run alternative analysis and compare the results 
+
+** Run FaST-LMM analysis
+Let us analyze trait number 1 (and on the way we will also store the
+eigen-decomposition)
+#+begin_src sh :exports both :results output
+fastlmmc -bfile plink -sim plink.sim -covar plink.cov \
+              -pheno plink.phe -mpheno 1 \
+              -REML -simLearnType ONCE -MaxThreads 3 \
+              -eigenOut flmmEigenRes -out flmmOutT1.txt
+#+end_src
+
+#+RESULTS:
+
+(this takes about 3 seconds)
+
+Now, we can fairly time how long does it take to analyze all 10
+phenotypes. For this, we will arrange an 'sh' file which will run all
+phenotypes analysis (and time it). This perl script generates the
+'runFaST-LMM.sh': 
+
+#+begin_src perl
+open OUF,">runFaST-LMM.sh" or die $!;
+for ($i=1;$i<=100;$i++) {
+  print OUF "
+fastlmmc -bfile plink -sim plink.sim -covar plink.cov \\
+              -pheno plink.phe -mpheno $i \\
+              -REML -simLearnType ONCE -MaxThreads 3 \\
+              -eigen flmmEigenRes -out flmmOutT$i.txt
+";
+}
+#+end_src
+
+#+RESULTS:
+
+Let us run it and check few first lines if the batch file:
+#+begin_src sh
+head runFaST-LMM.sh
+#+end_src
+
+#+RESULTS:
+#+begin_example
+
+fastlmmc -bfile plink -sim plink.sim -covar plink.cov \
+              -pheno plink.phe -mpheno 1 \
+              -REML -simLearnType ONCE -MaxThreads 3 \
+              -eigen flmmEigenRes -out flmmOutT1.txt
+
+fastlmmc -bfile plink -sim plink.sim -covar plink.cov \
+              -pheno plink.phe -mpheno 2 \
+              -REML -simLearnType ONCE -MaxThreads 3 \
+              -eigen flmmEigenRes -out flmmOutT2.txt
+#+end_example
+
+Finally, let us run (and time) the analysis of all 10 traits:
+#+begin_src sh
+sh runFaST-LMM.sh &> runFaST-LMM.out
+#+end_src
+
+#+RESULTS:
+
+(this takes about 220 seconds)
+
+** Compare the results
+  :PROPERTIES:
+  :session: compareResults
+  :END:
+
+Time-wise, you can easily see that OmicABEL outperforms other
+implementations. Let us now check how close are the results.
+
+Let us first extract OmicABEL results for a specific trait, "tra3", so we do
+not need to load everything into R:
+#+begin_src sh :session mySh
+head -n 1 chi_data.txt > chi_data_tra3.txt
+grep "tra3" chi_data.txt >> chi_data_tra3.txt
+#+end_src
+
+#+RESULTS:
+
+Load OmicABEL results
+#+begin_src R
+myRes <- read.table("chi_data_tra3.txt",head=TRUE,stringsAsFactors=FALSE)
+myRes$Pvalue <- pchisq(myRes$Chi2,1,low=FALSE)
+dim(myRes)
+myRes[1:2,]
+#+end_src
+
+#+RESULTS:
+#+begin_example
+[1] 6826   18
+        SNP Trait      beta_1   beta_sex      beta_age   beta_SNP      se_1
+1 rs1646456  tra3 -0.03245008 0.01006570 -0.0006363846 -0.0116124 0.2320724
+2 rs7950586  tra3 -0.08013462 0.02045402 -0.0007954766  0.5805020 0.2243592
+     se_sex      se_age    se_SNP    cov_sex_1     cov_age_1    cov_SNP_1
+1 0.1095037 0.004230591 0.1063008 -0.006363481 -0.0008876185 -0.006569172
+2 0.1095915 0.004229751 0.2449815 -0.006463339 -0.0008930187 -0.004231980
+    cov_age_sex   cov_SNP_sex   cov_SNP_age       Chi2     Pvalue
+1 -4.002032e-09 -4.097003e-05 -1.114071e-05 0.01193359 0.91301138
+2 -3.186624e-07  1.078362e-03 -1.526427e-05 5.61488639 0.01780854
+#+end_example
+
+and results from FaST-LMM - say, trait 3:
+#+begin_src R
+falmmRes <- read.table("flmmOutT3.txt",head=TRUE,stringsAsFactors=FALSE)
+falmmRes$Chi2 <- qchisq(falmmRes$Pvalue,1,low=FALSE)
+dim(falmmRes)
+falmmRes[1:2,]
+#+end_src
+
+#+RESULTS:
+#+begin_example
+[1] 6826   19
+        SNP Chromosome GeneticDistance Position       Pvalue    Qvalue   N
+1  rs245122          1               0   366653 0.0003820629 0.9383752 822
+2 rs5547541          3               0 10955677 0.0004055348 0.9383752 822
+  NullLogLike AltLogLike  SNPWeight SNPWeightSE WaldStat NullLogDelta
+1   -1579.886  -1586.850  0.2664040  0.07468547 12.72358  -0.08197409
+2   -1579.886  -1586.996 -0.2423752  0.06825339 12.61037  -0.08197409
+  NullGeneticVar NullResidualVar    NullBias NullCov01Weight NullCov02Weight
+1       1.711163        1.576488 -0.06623389   -0.0006507778     -0.06623389
+2       1.711163        1.576488 -0.06623389   -0.0006507778     -0.06623389
+      Chi2
+1 12.61794
+2 12.50652
+#+end_example
+
+The results are perfectly correlated:
+#+begin_src R
+rownames(falmmRes) <- falmmRes$SNP
+table(rownames(falmmRes) %in% myRes[,"SNP"])
+falmmRes <- falmmRes[myRes[,"SNP"],]
+cor(falmmRes$Chi2,myRes[,"Chi2"])^2
+#+end_src
+
+#+RESULTS:
+: 
+: TRUE 
+: 6826
+: [1] 0.9998198
+
+Cross-plot the results:
+#+begin_src R
+jpeg("OmicAvsFaST.jpeg")
+plot(falmmRes$Chi2,myRes[,"Chi2"],xlab="FaST-LMM",ylab="OmicABEL")
+abline(a=0,b=1)
+dev.off()
+#+end_src
+
+#+RESULTS:
+:  null device 
+:           1
+
+[[file:OmicAvsFaST.jpeg]]

Added: tutorials/OmicABEL/killEmAll.sh
===================================================================
--- tutorials/OmicABEL/killEmAll.sh	                        (rev 0)
+++ tutorials/OmicABEL/killEmAll.sh	2013-03-15 11:25:46 UTC (rev 1150)
@@ -0,0 +1 @@
+rm -fv *html *pdf *~ *.fv? *.txt *.tex plink.*

Added: tutorials/OmicABEL/pleaseRunMe.sh
===================================================================
--- tutorials/OmicABEL/pleaseRunMe.sh	                        (rev 0)
+++ tutorials/OmicABEL/pleaseRunMe.sh	2013-03-15 11:25:46 UTC (rev 1150)
@@ -0,0 +1,2 @@
+emacs --batch -l ~/.emacs --visit=exampleOfUse.org --execute='(org-babel-execute-buffer)' --execute='(org-export-as-html-and-open nil)'
+emacs --batch -l ~/.emacs --visit=exampleOfUse.org --execute='(org-babel-execute-buffer)' --execute='(org-export-as-pdf-and-open nil)'



More information about the Genabel-commits mailing list