<div dir="ltr"><div><div><div>Hi Maksim,<br><br></div><div>This sound like a user friendly addition to convert Plink to DatABEL format.<br></div><div><br></div>I think open the same file  for each SNP is not the way to go. If you have a 1M array data and you want to convert it , there will be 1 million open and close operations send to the machine. I do not have any experience with this kind of numbers of open and close calls, but it sounds to me as an  nice try thrash your system. I could not found a lot of information about the weight it puts on the system but here is a small piece of text about it: <a href="http://en.wikibooks.org/wiki/Optimizing_C%2B%2B/General_optimization_techniques/Input/Output#Open_files">http://en.wikibooks.org/wiki/Optimizing_C%2B%2B/General_optimization_techniques/Input/Output#Open_files</a><br>
<br></div><div>A small warning for checking plink exists: there is also a utility from the putty suite (used for ssh under Windows) called plink. On Debian systems the plink executable is called "p-link" by default. <br>
</div><div><br></div>Kind regards,<br><br></div>Maarten<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 15, 2013 at 5:53 AM, Maksim Struchalin <span dir="ltr"><<a href="mailto:m.v.struchalin@mail.ru" target="_blank">m.v.struchalin@mail.ru</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">An easy way to write a function for conversion a plink format file to a GenABEL format file:<br>
<br>
Use plink support of 'plug-in' functions (<a href="http://pngu.mgh.harvard.edu/~purcell/plink/rfunc.shtml" target="_blank">http://pngu.mgh.harvard.edu/~<u></u>purcell/plink/rfunc.shtml</a>). This allows us to write a simple R script (myscript.R) which is called by plink (plink --file mydata --R myscript.R). plink reads the file mydata (which is in plink format) and iteratively, SNP by SNP, trasfer all the data to a script myscript.R. This script contains a function Rplink(PHENO,GENO,CLUSTER,<u></u>COVAR) which will take every SNP (GENO variable) and store it in a *flv format through calling DatABEL functions.<br>

<br>
The whole process of conversion will look like this:<br>
<br>
1) User asks GenA convert plink file to GenA file<br>
2) GenA looks weather the plink is installed. If it is not installed, then GenA goes to a plink site and download/install it itself (use an R function "download.file" from "utils" package)<br>
3) GenA run a simple line: system('plink --file mydata --R myscript.R')<br>
4) Rplink function (from myscript.R) gets every SNP and stote it in *flv format. This function creates an flv file and then open and close it for saving every single SNP.<br>
5) Work is Done<br>
<br>
The only issue is how fast the converssion will run: how much time does it take to open a filvector file, store one SNP and close it? I can not find a DatABEL R function for adding SNP to a flv file. Is there a C DatABEL function which can do it?<br>

<br>
best,<br>
Maksim<br>
______________________________<u></u>_________________<br>
genabel-devel mailing list<br>
<a href="mailto:genabel-devel@lists.r-forge.r-project.org" target="_blank">genabel-devel@lists.r-forge.r-<u></u>project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel" target="_blank">https://lists.r-forge.r-<u></u>project.org/cgi-bin/mailman/<u></u>listinfo/genabel-devel</a><br>
</blockquote></div><br></div>