freeseek / gtc2vcf

Tools to convert Illumina IDAT/BPM/EGT/GTC and Affymetrix CEL/CHP files to VCF
MIT License
143 stars 24 forks source link

Some installation issues #34

Closed xsun1229 closed 3 years ago

xsun1229 commented 3 years ago

Hi Giulio,

I met some issues when installing the tools. I'm using Ubuntu 16.04 and I'm not experienced at Ubuntu installation. Could you help me with them?

  1. Cannot install libicu66

    sudo apt install libicu66
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package libicu66

    I did some search on Google but did not find a package named libicu66. If I just want to convert .idat files into .vcf files (do not have .bpm files), do I need to install this package?

  2. Cannot install gtc2vcf correctly I tried to use the first method to install gtc2vcf:

    git clone --branch=develop --recurse-submodules git://github.com/samtools/htslib.git
    git clone --branch=develop git://github.com/samtools/bcftools.git
    /bin/rm -f bcftools/plugins/{gtc2vcf.{c,h},affy2vcf.c}
    wget -P bcftools/plugins https://raw.githubusercontent.com/freeseek/gtc2vcf/master/{gtc2vcf.{c,h},affy2vcf.c}
    cd htslib && autoheader && (autoconf || autoconf) && ./configure --disable-bz2 --disable-gcs --disable-lzma && make && cd ..
    cd bcftools && make && cd ..
    /bin/cp bcftools/{bcftools,plugins/{gtc,affy}2vcf.so} $HOME/bin/
    export PATH="$HOME/bin:$PATH"
    export BCFTOOLS_PLUGINS="$HOME/bin"

    These commands all run correctly but when I tried to use

gtc2vcf

I got

gtc2vcf: command not found

When I tried

gtc2vcf.so

I got

Segmentation fault (core dumped)

My system has 16GB RAM and 8 cores. Do you think it due to the lack of RAM?

When I tried to use the alternative method to install gtc2vcf, I got :

sudo apt install ./{libhts3_1.11-4,bcftools_1.11-1,gtc2vcf_1.11-dev}_amd64.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libhts3' instead of './libhts3_1.11-4_amd64.deb'
Note, selecting 'bcftools' instead of './bcftools_1.11-1_amd64.deb'
Note, selecting 'gtc2vcf' instead of './gtc2vcf_1.11-dev_amd64.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 bcftools : Depends: libc6 (>= 2.29) but 2.23-0ubuntu11.2 is to be installed
 gtc2vcf : Depends: libc6 (>= 2.29) but 2.23-0ubuntu11.2 is to be installed
 libhts3 : Depends: libc6 (>= 2.29) but 2.23-0ubuntu11.2 is to be installed
           Depends: libdeflate0 (>= 1.0) but it is not installable
           Depends: libssl1.1 (>= 1.1.0) but it is not installable
E: Unable to correct problems, you have held broken packages.
  1. Consequently, when I tried to find BPM manifest infomation, I got nothing.
bcftools + gtc2vcf -i -g ~/Desktop/test/
Could not initialize , neither run or init found

Any suggestions would be greatly appreciated!

Thank you! Xiaotong

freeseek commented 3 years ago

Unfortunately the debian packages needed to install the gtc2vcf plugin are only available in Ubuntu 21.04 for now, as older versions do not have bcftools 1.11 (or newer) available. It seems like you were able to compile gtc2vcf correctly though. But you cannot run it with the following syntax:

$ gtc2vcf
$ bcftools + gtc2vcf

You would need instead to use one of the following four syntax formats:

$ export BCFTOOLS_PLUGINS=/path/to/bcftools/plugins && bcftools +gtc2vcf
$ export BCFTOOLS_PLUGINS=/path/to/bcftools/plugins && bcftools plugin gtc2vcf
$ bcftools +$BCFTOOLS_PLUGINS/gtc2vcf.so
$ bcftools plugin $BCFTOOLS_PLUGINS/gtc2vcf.so

I hope this makes sense. You can also find pre-compiled binaries here (you will still need to have bcftools 1.11 available though). And don't worry about libicu66/libicu67 as that is only needed for running iaap_cli if I remember correctly

xsun1229 commented 3 years ago

@freeseek Great thanks for your reply. I just found that I have the array info and can download the .bpm file fron Illumina. And the .idat files were successfully converted into the .gtc files.

But it seems that the instructions did not work in my case. I got some errors. However, even though we do not need to solve these problems in this step, we need to deal with it when converting the gtc files into vcf files. Could you please help me with this?

Thank you again!!!

$ which bcftools 
/home/sxt/bin/bcftools
$ export BCFTOOLS_PLUGINS=home/sxt/bin/bcftools/plugins && bcftools +gtc2vcf
gtc2vcf:
    dlopen   .. gtc2vcf: cannot open shared object file: No such file or directory

The bcftools plugin "gtc2vcf" was not found or is not functional in
    BCFTOOLS_PLUGINS="home/sxt/bin/bcftools/plugins".

- Is the plugin path correct?

- Run "bcftools plugin -l" or "bcftools plugin -lvv" for a list of available plugins.

Could not load "gtc2vcf".
$ export BCFTOOLS_PLUGINS=home/sxt/bin/bcftools/plugins && bcftools plugin gtc2vcf
gtc2vcf:
    dlopen   .. gtc2vcf: cannot open shared object file: No such file or directory

The bcftools plugin "gtc2vcf" was not found or is not functional in
    BCFTOOLS_PLUGINS="home/sxt/bin/bcftools/plugins".

- Is the plugin path correct?

- Run "bcftools plugin -l" or "bcftools plugin -lvv" for a list of available plugins.

Could not load "gtc2vcf".
bcftools +$BCFTOOLS_PLUGINS/gtc2vcf.so
home/sxt/bin/bcftools/plugins/gtc2vcf.so:
    dlopen   .. home/sxt/bin/bcftools/plugins/gtc2vcf.so: cannot open shared object file: No such file or directory

The bcftools plugin "home/sxt/bin/bcftools/plugins/gtc2vcf.so" was not found or is not functional in
    BCFTOOLS_PLUGINS="home/sxt/bin/bcftools/plugins".

- Is the plugin path correct?

- Run "bcftools plugin -l" or "bcftools plugin -lvv" for a list of available plugins.

Could not load "home/sxt/bin/bcftools/plugins/gtc2vcf.so".
bcftools plugin $BCFTOOLS_PLUGINS/gtc2vcf.so
home/sxt/bin/bcftools/plugins/gtc2vcf.so:
    dlopen   .. home/sxt/bin/bcftools/plugins/gtc2vcf.so: cannot open shared object file: No such file or directory

The bcftools plugin "home/sxt/bin/bcftools/plugins/gtc2vcf.so" was not found or is not functional in
    BCFTOOLS_PLUGINS="home/sxt/bin/bcftools/plugins".

- Is the plugin path correct?

- Run "bcftools plugin -l" or "bcftools plugin -lvv" for a list of available plugins.

Could not load "home/sxt/bin/bcftools/plugins/gtc2vcf.so"

I checked the path to bcftools, it seems that the /home/sxt/bin/bcftools/ folder does not has the plugins folder. I also checked path to gtc2vcf.so, it is not in the same folder with bcftools:

$ which gtc2vcf.so 
/home/sxt/bin/gtc2vcf.so

Does it mean I did not install the tools correctly? Do I need to upgrade my system to Ubuntu 21.04?

freeseek commented 3 years ago

@xsun1229 if the plugin binary is located in /home/sxt/bin/bcftools/plugins/gtc2vcf.so you need to define the BCFTOOLS_PLUGINS variable as follows:

export BCFTOOLS_PLUGINS="/home/sxt/bin/bcftools/plugins"

with the / character right after the = character.

However, if the plugin binary is located in /home/sxt/bin/gtc2vcf.so then you should use:

export BCFTOOLS_PLUGINS="/home/sxt/bin"
xsun1229 commented 3 years ago

@freeseek

$ export BCFTOOLS_PLUGINS="/home/sxt/bin" works!

Thank you!!!!!!

xsun1229 commented 3 years ago

@freeseek

Hi Giulio, I have another question but not related to the installation.

I have some transcriptome raw data in .idat format. I'm wondering if I can convert them into some formats which can read the transcriptome value for each sample using your tools? If not, could you please suggest some methods to do such thing?

Great thanks!!

freeseek commented 3 years ago

Depending on the format of the .idat file, you might be able to peek into the file:

bcftools +gtc2vcf -i <file.idat>

But this might not be very useful. The RNA expression IDATs cannot be converted to GTCs as they cannot be genotyped so there is really no meaningful path to convert them to VCF.

You might want to try the illuminaio package from Henrik Bengtsson which inspired the gtc2vcf code to peek into the IDATs.

xsun1229 commented 3 years ago

@freeseek Thank you so much for your advice!!!