<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">after renaming out-file-name I get (finished with warnings):<div><br></div><div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">> x <- impute2databel(geno="TEST10x15.geno", sample="impute.sample5", out="TEST10x15_T1.geno", makeprob=FALSE, old=TRUE)</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Loading required package: DatABEL</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">DatABEL v.0.9-4 (March 12, 2013) loaded</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0); min-height: 20px;"><br></div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Options in effect: </div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre">      </span> --infile    = TEST10x15.geno</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre"> </span> --outfile   = ./tmp300070</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre"> </span> --skiprows  = OFF</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre"> </span> --skipcols  = 5</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre">   </span> --cnrow     = OFF</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre">    </span> --rncol     = ON, using column 2 of 'TEST10x15.geno'</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre"> </span> --transpose = ON</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre">       </span> --Rmatrix   = OFF</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);"><span class="Apple-tab-span" style="white-space:pre"> </span> --nanString = NA</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Number of lines in source file is 10</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Number of words in source file is 20</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">skiprows = 0</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">cnrow = 0</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">skipcols = 5</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">rncol = 2</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Rmatrix = 0</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">numWords = 20</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Creating file with numRows = 10</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Creating file with numColumns = 15</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">text2fvf finished.</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Loss of precision / loss of data during conversion from DOUBLE to FLOAT.</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Futher conversion warnings omitted.</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Read 4 items</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Read 4 items</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Read 4 items</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Read 20 items</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">Warning messages:</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">1: In uninames(.Object@data) :</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">  uninames: some column names are not unique; use set_dimnames/get_dimnames for non-unique row/col names</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">2: In uninames(x@data) :</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">  uninames: some column names are not unique; use set_dimnames/get_dimnames for non-unique row/col names</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">3: In uninames(x@data) :</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">  uninames: some column names are not unique; use set_dimnames/get_dimnames for non-unique row/col names</div><div style="margin: 0px; font-size: 18px; font-family: 'Andale Mono'; color: rgb(41, 249, 20); background-color: rgb(0, 0, 0);">> </div><div><br></div><div><br></div><div><div>On Nov 25, 2013, at 13:23 PM, L.C. Karssen <<a href="mailto:lennart@karssen.org">lennart@karssen.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">I had the same issues as Yurii reported:<br>- compilation warnings when installing<br>- the 'file already exists' warning: this was one of the reasons why I<br>renamed the filename in the 'out=' option in test.R<br>- I also got the warning about not-unique column names, but I assumed<br>that wasn't the issue we were trying to fix here, so I didn't mention it.<br><br>Yurii, does the script finish when you change the output file name in<br>test.R?<br><br><br><br>Lennart.<br><br>On 11/25/2013 12:26 PM, Yury Aulchenko wrote:<br><blockquote type="cite">Tried this on Mac OS X, see below<br><br>On Nov 23, 2013, at 15:12 PM, Maksim Struchalin <<a href="mailto:m.v.struchalin@mail.ru">m.v.struchalin@mail.ru</a><br><<a href="mailto:m.v.struchalin@mail.ru">mailto:m.v.struchalin@mail.ru</a>>> wrote:<br><br><blockquote type="cite">Hi Lennart,<br><br><a href="https://app.box.com/s/iy41ug5qg4sbylul9oyn">https://app.box.com/s/iy41ug5qg4sbylul9oyn</a><br><br>This is an example demonstrating how a GenABEL function<br>"impute2databel" calls a function "iteratorDA" from DatABEL. Here,<br>GenABEL is compiled without flv's and iterator's code (I deleted it<br>from src).<br><br>Could you run the test?:<br>0) Dowload the file test_GenABEL_iterator.tar.gz from<br>https://app.box.com/s/iy41ug5qg4sbylul9oyn<br>1) decompress test_GenABEL_iterator.tar.gz<br>2) cd test_GenABEL_iterator<br>3) R CMD INSTALL DatABEL_0.9-4.tar.gz<br>4) R CMD INSTALL GenABEL_1.7-7.tar.gz<br></blockquote><br>getting many warnings at step (4)<br><br><blockquote type="cite">5) run test.R<br></blockquote><br>getting<span class="Apple-converted-space"> </span><br><br><blockquote type="cite">x <- impute2databel(geno="TEST10x15.geno", sample="impute.sample5",<br></blockquote>out="TEST10x15_T.geno", makeprob=FALSE, old=TRUE)<br>Loading required package: DatABEL<br>DatABEL v.0.9-4 (March 12, 2013) loaded<br><br>Options in effect:<span class="Apple-converted-space"> </span><br>--infile    = TEST10x15.geno<br>--outfile   = ./tmp333314<br>--skiprows  = OFF<br>--skipcols  = 5<br>--cnrow     = OFF<br>--rncol     = ON, using column 2 of 'TEST10x15.geno'<br>--transpose = ON<br>--Rmatrix   = OFF<br>--nanString = NA<br>Number of lines in source file is 10<br>Number of words in source file is 20<br>skiprows = 0<br>cnrow = 0<br>skipcols = 5<br>rncol = 2<br>Rmatrix = 0<br>numWords = 20<br>Creating file with numRows = 10<br>Creating file with numColumns = 15<br>text2fvf finished.<br>File 'TEST10x15_T.geno.dose' already exists.<br>ERROR in Rstuff:failed in ini_empty_FileMatrix_RError in !result :<br>invalid argument type<br>Calls: impute2databel -> apply2dfo -> make_empty_fvf<br>In addition: Warning message:<br>In uninames(.Object@data) :<br> uninames: some column names are not unique; use<br>set_dimnames/get_dimnames for non-unique row/col names<br>Execution halted<br><br><br><blockquote type="cite"><br>It works on my Ubuntu. If it works on your Ubuntu, win and mac, then<br>we can delete from GenABEL the simlinks to flv and databel.<br><br>best,<br>Максим<br><br><br>On 22/11/2013 21:34, L.C. Karssen wrote:<br><blockquote type="cite">Hi максим,<br><br><br>On 11/19/2013 03:17 PM, Maksim Struchalin wrote:<br><blockquote type="cite">Hi Lennart,<br><br>I see you are improving your Russian :-).<br></blockquote>Getting to know the Russian alphabet is step one :-).<br><br><blockquote type="cite">I understand your arguments. I think we can combine our two approaches.<br>1) We make a so/dll from filevector and let it use by<br>ProbABEL/OmicABEL/Another_not_R_softABEL.<br>2) For GenABEL and other R packages, we make a DatABEL.<br><br>The code of filevector is the same both for 1) and 2).<span class="Apple-converted-space"> </span><br></blockquote>But that doesn't solve the problem of having symlinks to the fvlib<br>directory in our SVN tree... Which means that any update to filevector<br>can make the depending package (DatABEL) become uncompilable.<br><br>In the mean time I've set the first steps towards 'libfilevector' in<br>SVN, see commits 1415 and 1416. This works (at least for ProbABEL), but<br>more polishing is needed.<br><br><br><blockquote type="cite">We only add<br>preprocessor commands (#ifdef and so on) to surround R specific code<br>(ISNAN() and std::isnan). In this case, compiler choose itself weather<br>it buids the lib for R or for OS.<br><br>If we will want to use only approach 1) for GenABEL in the future, we<br>can quickly swith to it later.<br></blockquote>True, for now this will work.<br><br><br>Best,<br><br>Lennart.<br><br><blockquote type="cite">best,<br>Maksim<br><br><br><br>On 19/11/2013 16:10, L.C. Karssen wrote:<br><blockquote type="cite">Hi максим,<br><br>(trying a Russian keyboard layout, no idea if this works...).<br><br>On 19-11-13 09:44, Maksim Struchalin wrote:<br><blockquote type="cite">It seems that your solution is workable but I see little difference with<br>what it is now. Now the filevector code is incorporated in each<br>packages.<span class="Apple-converted-space"> </span><br></blockquote>This is what I would like to change, indeed. Code that is reused by so<br>many packages should not be copied/symlinked into the code tree of those<br>packages. By symlinking it as we have now, there is no proper way of<br>specifying a version number of the filevector code. Which, in turn means<br>that if something changes in the filevector code all other packages need<br>to be changed immediately (just like what happened with your latest<br>change). If the filevector code have been a proper library we could have<br>simply said that ProbABEL still depends on the old filevector version<br>and take more time to make sure the two play nice together.<br><br>Moreover, with the filevector code in a separate library the whole<br>isnan() issue would not be a problem. We could simply use std::isnan(),<br>because CRAN wouldn't need to compile the .so/.dll, so no need of ISNAN().<br>When code is put in a library the internals don't matter as long as the<br>interface (function names + arguments) to the outside doesn't change.<br><br><blockquote type="cite">You propose to follow the same way but pack filelvector code<br>in one file (dll or so) and distribute 9 packages form GenABEL with the<br>same library.<br></blockquote>Indeed. The problem with incorporating it all in DatABEL is that non-R<br>packages like ProbABEL and OmicABEL depend on the stuff in the fvlib<br>directory as well. Filevector is central to (almost) all packages in the<br>GenABEL suite, which is why I proposed to make a library out of it. And,<br>as noted above, this way packages can depend on different version of the<br>library.<br><br>We can of course discuss whether we want to distribute this .so/.dll as<br>a separate (operating system) package or withing the R packages. To me<br>the first option is the 'correct' one, but I see that this may impose on<br>the user (except on Windows and maybe MacOS, where the .so/.dll is<br>included in the R package).<br><br><br><blockquote type="cite">Last time I proposed to move filevector in DatABEL. All other packages<br>(GenA and so on) will load DatAB in R and use filevector fucntions from<br>DatA. When DatABEL is loaded through library(DatABEL), the file<br>DatABEL.so is loaded as well.<br></blockquote>I think this is what should be done with the DAlib directory (another<br>symlinked dir).<br><br><blockquote type="cite">Thus, you do not need to ask users to<br>install additional lib because it is in DatABEL already. I think this is<br>a workable approach that will allow us to delete the filevector code (or<br>filevector so/dll) from all the packages.<br><br><br>This is some quote from the R manual how to register functions to make<br>it available from DatAB to GenAB:<br><br><br>     _______________________________________________<br><br><br>     5.4 Registering native routines<br><br>By ‘native’ routine, we mean an entry point in compiled code.<br><br>In calls to |.C|, |.Call|, |.Fortran| and |.External|, R must locate the<br>specified native routine by looking in the appropriate shared<br>object/DLL. By default, R uses the operating system-specific dynamic<br>loader to lookup the symbol in all loaded DLLs and elsewhere.<br>Alternatively, the author of the DLL can explicitly register routines<br>with R and use a single, platform-independent mechanism for finding the<br>routines in the DLL. One can use this registration mechanism to provide<br>additional information about a routine, including the number and type of<br>the arguments, and also make it available to R programmers under a<br>different name. In the future, registration may be used to implement a<br>form of “secure” or limited native access.<br><br>_____________________________________________________<br><br></blockquote>Hmm, I will have to think about this. This seems to be about how R finds<br>out in which DLL a function is found (and maybe where the DLL is found<br>in the filesystem). I think this is separate from the point below, but<br>I'm not sure.<br><br><blockquote type="cite">Your argument was from "5.8 Linking to other packages: It is not in<br>general possible to link a DLL in package *packA* to a DLL provided by<br>package *packB". *I do not quite understand what they mean under 'link'.<br>May be the mean link a library during intsalltion?<br></blockquote>Yes, as far as I understand, they mean linking to a library during<br>installation/compilation.<br><br><br>Best,<br><br>Lennart.<br><blockquote type="cite">best,<br>Maksim<br><br><br><br>On 19/11/2013 15:14, L.C. Karssen wrote:<br><blockquote type="cite">Hi Maksim,<br><br>Good question... The idea is to generate a .dll file for Windows, but<br>I'm not sure what would be the best way to distribute that. It would be<br>interesting to see how other packages do that. For example, the XML<br>package depends on libxml2:<br><a href="http://cran.r-project.org/web/packages/XML/index.html">http://cran.r-project.org/web/packages/XML/index.html</a> and the Rcurl<br>package depends on libcurl:<br><a href="http://cran.r-project.org/web/packages/RCurl/index.html">http://cran.r-project.org/web/packages/RCurl/index.html</a><br><br>In the XML package .zip file for Windows there is a directory libs/x64<br>and a directory libs/i386. Both contain XML.dll, so I think that for<br>Linux you simply specify a dependency on a library, whereas for Windows<br>the actual .dll is in the package (which is quite logical because<br>Windows lacks the package repositories that most Linux distros have).<br>It seems that for MacOS the .tgz file also contains a lib directory with<br>the .so file.<br><br><br>Best regards,<br><br>Lennart.<br><br>On 19-11-13 08:56, Maksim Struchalin wrote:<br><blockquote type="cite">Hi Lennart,<br><br>How the users under win will install such a library?<br><br>best,<br>Maksim<br><br>On 19/11/2013 14:46, L.C. Karssen wrote:<br><blockquote type="cite">Dear all,<br><br>The Jenkins setup already shows its value: After Maksim changed the call<br>from std::isnan() to ISNAN() in fvlib's CastUtils.cpp an automatic build<br>of ProbABEL was triggered and it failed (because ISNAN() is an R function).<br><br>I guess this is one more reason to try to convert fvlib into a real<br>(shared) library.<br>Does anyone have another workable solution?<br><br><br>Lennart.<br><br><br>_______________________________________________<br>genabel-devel mailing list<br>genabel-devel@lists.r-forge.r-project.org<br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br></blockquote>_______________________________________________<br>genabel-devel mailing list<br>genabel-devel@lists.r-forge.r-project.org<br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br><br></blockquote>_______________________________________________<br>genabel-devel mailing list<br>genabel-devel@lists.r-forge.r-project.org<br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br></blockquote>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br><br></blockquote>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br></blockquote><br>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br><br></blockquote><br><br>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel<br></blockquote><br>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br><<a href="mailto:genabel-devel@lists.r-forge.r-project.org">mailto:genabel-devel@lists.r-forge.r-project.org</a>><br><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel</a><br></blockquote><br><br><br>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel</a><br><br></blockquote><br>--<span class="Apple-converted-space"> </span><br>*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*<br>L.C. Karssen<br>Utrecht<br>The Netherlands<br><br><a href="mailto:lennart@karssen.org">lennart@karssen.org</a><br><a href="http://blog.karssen.org/">http://blog.karssen.org</a><br>GPG key ID: A88F554A<br>-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-<br><br>_______________________________________________<br>genabel-devel mailing list<br><a href="mailto:genabel-devel@lists.r-forge.r-project.org">genabel-devel@lists.r-forge.r-project.org</a><br><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-devel</a></div></blockquote></div><br></div></body></html>