Giter Club home page Giter Club logo

glactools's Introduction

glactools: command-line toolset for the management of Genotype Likelihoods and Allele Counts

QUESTIONS : gabriel [dot] reno [ at sign ] gmail [dot] com

About

glactools is a set of command-line tools for the management of Genotype Likelihood (GL) and Allele Counts (AC).

Description

glactools is a suite of utilities to:

  • convert various file formats (VCF,BAM,23andme) into genotype likelihood (GLF) or allele count (ACF) files.
    • GLF files contains genotype likelihoods for a single individual
    • ACF files contains allele counts for either a single individual or a group of individuals (population)
  • GLF/ACF contain both variant and invariant sites
  • GLF/ACF are binary compressed files that borrow heavily from the BAM format.
  • filter, combined GLF/ACF from various individuals, merge individuals into populations
  • create subsets (only a single population or retain transversions)
  • index for rapid retrieval
  • compute summary statistics on those matrices.
  • export genotype likelihood (GLF) or allele count (ACF) to various formats for population genetics applications (treemix,fasta,EIGENSTRAT,G-PhoCS,PLINK).

diagram

Examples of uses

glactools aims at allowing users to convert genetic data into an intermediate format (either GLF for genotype likelihoods or ACF for allele counts), perform operations and export to different format. This set of tools enables users to perform various tasks without knowledge of scripting, here are some examples:

  • Compute D-statistics but use the Gorilla from UCSC as the ancestral allele.
  • Retain sites in the human genome where a certain population has the ancestral allele and a different population has the derived allele.
  • Produce Treemix input using a mixture of BAM and VCF files using transversions only
  • Combine a BAM file from a single individual and 1000Genomes data to G-PhoCS or ADMIXTURE input

Downloading:

Go to https://github.com/grenaud/glactools and either:

  1. Download the ZIP

or

  1. Do a "git clone --depth 1 https://github.com/grenaud/glactools.git"

Installation

  1. make sure you have "git" installed, check for it by typing " git --version" and "cmake --version".

For Ubuntu:

 sudo apt-get install git

For MacOS, if you have Homebrew (https://brew.sh/) installed:

 brew install git
  1. make sure you have gcc that supports -std=c++11, gcc version 4.7 or above. Type "gcc -v" and check the version. Have the standard zlib, bzlib.h and lzma. Under Ubuntu type:

    sudo apt install g++ sudo apt install zlib1g-dev sudo apt install libbz2-dev sudo apt install liblzma-dev sudo apt install libcurl4-openssl-dev

For MacOS, if you have Homebrew (https://brew.sh/) installed:

 brew install gcc
 brew install zlib
 brew install zv
  1. As the makefile uses "git clone" to download subpackages, please make sure that the computer on which you are installing glactools has access to the internet. Once done, simply type :

    cd glactools make

For MacOS, if you get the problem: fatal error: 'lzma.h' file not found, this is a problem building htslib with homebrew, please refer to the following htslib page: samtools/htslib#493

  1. (optional) Either put the executable in the overall path or add the path to your $PATH environment or add an alias to be able to call "glactools" from any directory.

Quick start

For the impatients, you can download some ACF and GLF data:

 wget -O 2arch3modern.acf.gz https://www.dropbox.com/s/n4su20ghlb3jqni/2arch3modern.acf.gz?dl=0
 wget -O YorubaB.glf.gz https://www.dropbox.com/s/w9af2n6mr9nafw8/YorubaB.glf.gz?dl=0

The first file contains chromosome 21 from 2 archaic homins and 3 modern humans. The second are the genotype likelihoods for a Yoruba individual.

You can now view the first lines:

 glactools view 2arch3modern.acf.gz |head -n 20 
 glactools view YorubaB.glf.gz       |head -n 20 

You can index them:

 glactools index 2arch3modern.acf.gz
 glactools index YorubaB.glf.gz       

You can view a chunk:

 glactools view  2arch3modern.acf.gz       21:9675190-9675199 
 glactools view  YorubaB.glf.gz            21:9560830-9560840

You can view the defline:

 glactools view -h 2arch3modern.acf.gz |head -n 20 

or just view which populations are defined:

 glactools view -p 2arch3modern.acf.gz 

or view the full header:

 glactools view -P 2arch3modern.acf.gz 

The header is particularly useful as it defines which operations were used to produce this file.

Documentation

The documentation is found here:

 doc/reference.pdf

Example of usage

We will download 5 different, single individual VCF files as testData (those were mapped to hg19, see "how do I specify the root and ancestral population?" for info about hg38):

mkdir -p testData/
cd testData/
wget http://cdna.eva.mpg.de/neandertal/altai/AltaiNeandertal/VCF/AltaiNea.hg19_1000g.21.mod.vcf.gz
wget http://cdna.eva.mpg.de/neandertal/altai/Denisovan/DenisovaPinky.hg19_1000g.21.mod.vcf.gz
wget http://cdna.eva.mpg.de/neandertal/altai/ModernHumans/vcf/SS6004468.hg19_1000g.21.mod.vcf.gz
wget http://cdna.eva.mpg.de/neandertal/altai/ModernHumans/vcf/SS6004475.hg19_1000g.21.mod.vcf.gz
wget http://cdna.eva.mpg.de/neandertal/altai/ModernHumans/vcf/SS6004477.hg19_1000g.21.mod.vcf.gz
wget ftp://ftp.healthtech.dtu.dk/public/EPO/all_hg19.epo.gz
wget ftp://ftp.healthtech.dtu.dk/public/EPO/all_hg19.epo.gz.tbi
wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/technical/reference/human_g1k_v37.fasta.fai
cd ..
  • Convert the VCF files to ACF files:

    glactools vcf2acf --fai testData/human_g1k_v37.fasta.fai --epo testData/all_hg19.epo.gz testData/AltaiNea.hg19_1000g.21.mod.vcf.gz      AltaiNean    > testData/AltaiNean.acf.gz
    glactools vcf2acf --fai testData/human_g1k_v37.fasta.fai --epo testData/all_hg19.epo.gz testData/DenisovaPinky.hg19_1000g.21.mod.vcf.gz Denisova     > testData/Denisova.acf.gz
    glactools vcf2acf --fai testData/human_g1k_v37.fasta.fai --epo testData/all_hg19.epo.gz testData/SS6004468.hg19_1000g.21.mod.vcf.gz     FrenchB      > testData/FrenchB.acf.gz
    glactools vcf2acf --fai testData/human_g1k_v37.fasta.fai --epo testData/all_hg19.epo.gz testData/SS6004475.hg19_1000g.21.mod.vcf.gz     YorubaB      > testData/YorubaB.acf.gz
    glactools vcf2acf --fai testData/human_g1k_v37.fasta.fai --epo testData/all_hg19.epo.gz testData/SS6004477.hg19_1000g.21.mod.vcf.gz     AustralianB  > testData/AustralianB.acf.gz
    
  • glactools index them:

    glactools index testData/AltaiNean.acf.gz
    glactools index testData/Denisova.acf.gz
    glactools index testData/FrenchB.acf.gz
    glactools index testData/YorubaB.acf.gz
    glactools index testData/AustralianB.acf.gz
    
  • Create an intersection:

    glactools intersect testData/AltaiNean.acf.gz testData/Denisova.acf.gz testData/AustralianB.acf.gz testData/FrenchB.acf.gz testData/YorubaB.acf.gz > testData/2arch3modern.acf.gz
    

These commands are found in testData/Makefile

  • Visualize the intersection:

    glactools view    testData/2arch3modern.acf.gz |less -S # view data
    glactools view -h testData/2arch3modern.acf.gz |less -S # view data+defline
    glactools view -H testData/2arch3modern.acf.gz |less -S # view data+full header
    
  • Merge the modern humans and archaic as one population:

    glactools meld -u testData/2arch3modern.acf.gz   "AltaiNean,Denisova" "Archaics"  |./glactools meld /dev/stdin   "AustralianB,FrenchB,YorubaB" "Modern"  > testData/all.merged.acf.gz
    
  • Get basic statistics:

    glactools stats testData/2arch3modern.acf.gz
    
  • Index the file

    glactools index testData/2arch3modern.acf.gz
    
  • View a genomic region:

    glactools view testData/2arch3modern.acf.gz 21:25098220-25098230
    
  • View an entire chromosome:

    glactools view testData/2arch3modern.acf.gz 21
    
  • Visualize sites where the archaics hominin and modern ones differ:

    glactools snosharing -u testData/all.merged.acf.gz "Archaics"  "Modern" |./glactools view - 
    
  • Visualize sites where the archaics hominin and modern ones differ and the archaic is ancestral and the modern humans are derived:

    glactools  snosharing -u testData/all.merged.acf.gz "Archaics"  "Modern"  | ./glactools sharing -u /dev/stdin  "root" "Archaics"|./glactools view -
    
  • Visualize sites where the archaics hominin and modern differ and the archaic is derived and the modern humans are ancestral:

    glactools  snosharing -u testData/all.merged.acf.gz "Archaics"  "Modern"  | ./glactools sharing -u /dev/stdin  "root" "Modern"|./glactools view - 
    
  • Export to treemix:

    glactools acf2treemix testData/2arch3modern.acf.gz    |gzip > testData/all.treemix.gz
    

Problems/feature request

If you have a Github account, I recommend that you create an issue. That way other users can see what you wrote, comment on it and I can keep track of it more easily. I more than welcome pull requests!

Otherwise, send me a mail gabriel [dot] reno [at sign here] gmail [dot] com

Tips

  • when working with VCF files called from bcftools call, make sure that the -v option is not used because this will only print variable sites. If you use GATK, make sure you output every site using --output_mode EMIT_ALL_SITES.
  • Do not store ACF/GLF in raw text, it is a waste of disk space.

FAQ

Why do I have a bunch of garbled characters printed on the terminal when I use glactools?

glactools ALWAYS prints compressed binary. The only thing to modify is the ability to print as uncompressed binary (-u option), this is recommended when using UNIX pipes. However if you wish to view an ACF/GLF as a text file, simply use "glactools view"

why do you have data import from single VCF and multi VCF at the same time?

A single VCF usually carries extra information for the single individual such as depth of coverage and additional information in the INFO fields. Ideally you should have a consistent set of filters that does not generate any reference/alternative allele/heterozygous site bias and generate your GLF or ACF files.

I got the following: Warning: No EOF marker, likely due to an I/O error [E::bgzf_read] Read block operation failed with error -1 after 0 of 2 bytes

This is likely an input/output error and the file was not written properly to begin with. Try to regenerate it.

what is the difference between "union" and "intersection"?

"union" will allow sites to be undefined in a specific population or individual. "intersection" will require all sides to be defined in every population or individual.

what is the -u option and what does it do?

how many program there is a -u option which allows users to get a uncompressed glactools output. This is useful when UNIX piping from one program to another. If not, one program would compress whereas the second one would decompress, This is wasteful in terms of CPU. Therefore when piping into another glactools program, we recommend using the -u.

what is the difference between root and ancestral (anc)?

The root is an individual or population that is an outgroup to all other individuals/populations in the file. The ancestor is the most recent common ancestor to the root population and all other individuals/populations in a file.

how do I specify the root and ancestral population

<<<<<<< HEAD if you're dealing with hominin samples, we recommend using the -epo option which uses EPO alignments from Ensembl which are alignments to different primate species. otherwise simply transform a VCF file from the roof population using the program "usepopsrootanc". The EPO information can be found here for hg19:

ftp://ftp.healthtech.dtu.dk/public/EPO/all_hg19.epo.gz
ftp://ftp.healthtech.dtu.dk/public/EPO/all_hg19.epo.gz.tbi

and here for hg38:

ftp://ftp.healthtech.dtu.dk/public/EPO/all_hg38.epo.gz
ftp://ftp.healthtech.dtu.dk/public/EPO/all_hg38.epo.gz.tbi

======= if you're dealing with hominin samples, we recommend using the -epo option which uses EPO alignments from Ensembl which are alignments to different primate species. otherwise simply transform a VCF file from the roof population using the program "usepopsrootanc". Here is an example:

Suppose you have a file with the populations you want to use as outgroup and ancestor. In the case of hominin, it would be the chimp as outgroup and the Chimp/human ancestor as the ancestor. For example we have the following:

file1.acf.gz:

#ACF
#PG:union AltaiNean.acf.gz Denisova.acf.gz FrenchB.acf.gz YorubaB.acf.gz AustralianB.acf.gz 
#GITVERSION: 6e48e0efbfb131a6723830fa98f655a36da8c574
#DATE: 2019-12-02
#SQ	SN:1	LN:249250621
#SQ	SN:2	LN:243199373
#chr	coord	REF,ALT	root	anc	chimp	ChimpHumanAncestor
2	100022	A,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100023	G,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100024	A,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100025	C,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100026	A,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100027	G,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100028	A,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100029	A,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100030	C,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100031	T,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100032	T,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100033	C,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100034	A,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100035	T,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100036	T,N	0,0:0	0,0:0	1,0:0	1,0:0
2	100037	G,N	0,0:0	0,0:0	1,0:0	1,0:0

And we would have a second file without root and ancestral information:

file2.acf.gz:

#ACF
#PG:union AltaiNean.acf.gz Denisova.acf.gz FrenchB.acf.gz YorubaB.acf.gz AustralianB.acf.gz 
#GITVERSION: 6e48e0efbfb131a6723830fa98f655a36da8c574
#DATE: 2019-12-02
#SQ	SN:1	LN:249250621
#SQ	SN:2	LN:243199373
#chr	coord	REF,ALT	root	anc	AltaiNean	Denisova	FrenchB	YorubaB	AustralianB
2	100022	A,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100023	G,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100024	A,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100025	C,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100026	A,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100027	G,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100028	A,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100029	A,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100030	C,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100031	T,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100032	T,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100033	C,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100034	A,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100035	T,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100036	T,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100037	G,N	0,0:0	0,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0

First we will go into file1 and it take our two populations as our root and ancestor and put it into file3.acf.gz:

glactools usepopsrootanc file1.acf.gz chimp ChimpHumanAncestor > file3.acf.gz

file3.acf.gz will look like this:

#ACF
#PG:usepopsrootanc /tmp/temp.acf.gz chimp ChimpHumanAncestor 
#GITVERSION: 9d3e4107ea445a16737fb841e2181dabf31acac9
#DATE: 2020-04-02
#USEPOPASROOTANC: chimp chimp
#USEPOPASROOTANC#1
#	#ACF
#	#PG:union AltaiNean.acf.gz Denisova.acf.gz FrenchB.acf.gz YorubaB.acf.gz AustralianB.acf.gz 
#	#GITVERSION: 6e48e0efbfb131a6723830fa98f655a36da8c574
#	#DATE: 2019-12-02
#	#chr	coord	REF,ALT	root	anc	chimp	ChimpHumanAncestor
#SQ	SN:1	LN:249250621
#SQ	SN:2	LN:243199373
#chr	coord	REF,ALT	root	anc
2	100022	A,N	1,0:0	1,0:0
2	100023	G,N	1,0:0	1,0:0
2	100024	A,N	1,0:0	1,0:0
2	100025	C,N	1,0:0	1,0:0
2	100026	A,N	1,0:0	1,0:0
2	100027	G,N	1,0:0	1,0:0
2	100028	A,N	1,0:0	1,0:0
2	100029	A,N	1,0:0	1,0:0
2	100030	C,N	1,0:0	1,0:0
2	100031	T,N	1,0:0	1,0:0
2	100032	T,N	1,0:0	1,0:0
2	100033	C,N	1,0:0	1,0:0
2	100034	A,N	1,0:0	1,0:0
2	100035	T,N	1,0:0	1,0:0
2	100036	T,N	1,0:0	1,0:0
2	100037	G,N	1,0:0	1,0:0

Then you can use "replaceanc" to put the ancestral information into file2:

glactools replaceanc file2.acf.gz file3.acf.gz > file4.acf.gz

file4 should contain the same information as file1 except with the ancestral information of file1:

#ACF
#PG:replaceanc /tmp/temp2.acf.gz /tmp/file3.acf.gz 
#GITVERSION: 9d3e4107ea445a16737fb841e2181dabf31acac9
#DATE: 2020-04-02
#REPLACEANC:
#REPLACEANC#1
#	#ACF
#	#PG:union AltaiNean.acf.gz Denisova.acf.gz FrenchB.acf.gz YorubaB.acf.gz AustralianB.acf.gz 
#	#GITVERSION: 6e48e0efbfb131a6723830fa98f655a36da8c574
#	#DATE: 2019-12-02
#	#chr	coord	REF,ALT	root	anc	AltaiNean	Denisova	FrenchB	YorubaB	AustralianB
#REPLACEANC#2
#	#ACF
#	#PG:usepopsrootanc /tmp/temp.acf.gz chimp ChimpHumanAncestor 
#	#GITVERSION: 9d3e4107ea445a16737fb841e2181dabf31acac9
#	#DATE: 2020-04-02
#	#USEPOPASROOTANC: chimp chimp
#	#USEPOPASROOTANC#1
#	#	#ACF
#	#	#PG:union AltaiNean.acf.gz Denisova.acf.gz FrenchB.acf.gz YorubaB.acf.gz AustralianB.acf.gz 
#	#	#GITVERSION: 6e48e0efbfb131a6723830fa98f655a36da8c574
#	#	#DATE: 2019-12-02
#	#	#chr	coord	REF,ALT	root	anc	chimp	ChimpHumanAncestor
#	#chr	coord	REF,ALT	root	anc
#SQ	SN:1	LN:249250621
#SQ	SN:2	LN:243199373
#chr	coord	REF,ALT	root	anc	AltaiNean	Denisova	FrenchB	YorubaB	AustralianB
2	100022	A,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100023	G,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100024	A,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100025	C,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100026	A,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100027	G,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100028	A,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100029	A,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100030	C,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100031	T,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100032	T,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100033	C,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100034	A,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100035	T,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100036	T,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0
2	100037	G,N	1,0:0	1,0:0	2,0:0	2,0:0	2,0:0	2,0:0	2,0:0

In this case I have created 1 superfluous files, depending on the level of comfort with Unix file descriptors, you can do the same process without creating intermediate files:

glactools replaceanc file2.acf.gz <(glactools usepopsrootanc -u file1.acf.gz chimp ChimpHumanAncestor ) > file4.acf.gz

6d59fd67972381a17ace6dafa267e8e49a57f81c

Can glactools handle data coming from simulations?

Yes, but I recommend using msprime as it can produce directly VCF output. The one issue is that it does not, as of this writing, combine individuals together and merely reports haploid data. So one would need to modify the GT field accordingly.

Can glactools handle BCF?

Yes, simply use "bcftools view" and pipe into glactools as such:

 glactools vcf2acf <(bcftools view in.bcf) put_name_of_sample_here 

Can glactools handle CRAM?

Yes, simply use "samtools view -b in.cram" and pipe into glactools:

 glactools vcf2acf put_reference_here.fa <(samtools view -b in.cram) put_name_of_sample_here 

Got the following error message while building the package: CMake Error at CMakeLists.txt:9 (cmake_minimum_required): CMake 3.0 or higher is required. You are running version 2.X.XXX

Update cmake, in Ubuntu, the following seems to work:

 sudo -E add-apt-repository -y ppa:george-edison55/cmake-3.x
 sudo -E apt-get update
 sudo apt-get install cmake

When I import data from EIGENSTRAT, all sites are flagged as non-CpGs, why?

We cannot know for sure whether a C or G had a G or a C after it.

When I run "compute", I get 6 types of results, what are the differences?

The summary stats in glactools compute are reported as such:

  • all: all sites
  • no Cpg: sites marked as CpG are ignored
  • only Cpg: only sites marked as CpG are considered
  • transitions: only transitions are considered
  • transversions: only transversions are considered
  • no damage: sites that are potentially damaged are ignored. The difference between transversions is that ancestral C -> derived T is ignored but not ancestral T -> derived C.

I get: "Error, missing data in the EPO file" when adding the ancestral alleles, why?

The likely reason is a discrepancy between chromosome names (e.g. "1" and "chr1").

glactools's People

Contributors

grenaud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

xtmgah

glactools's Issues

plink(bed-bim-fam) to treemix

Hi
I Need Convert plink(bed-bim-fam) to treemix input
With This Command:
glactools bplink2acf --fai human_g1k_v37.fasta.fai afghan | glactools acf2treemix - | gzip > treemix.gz

but error:

Cannot write to /dev/stdout
Error: GlacParser tried to read 4 bytes but got 0

Data:
https://evolbio.ut.ee/afghan/

Sanity Check

So, I just download glactools and I'm working through the pipeline to convert bam to plink (bam2acf, union, acf2bplink).

At union I'm getting this error. Why would this error be thrown?

glactools union ERR484729.acf ERR490277.acf > test2.acf

sanityCheck()1 Chromosomes differ between FLZR01000063.1 740 A,N 0,0:0 0,0:0 1,0:0 and FLZR01000063.1 740 A,N 0,0:0 0,0:0 1,0:0

Also, I know it's a FAQ, but I still don't understand the difference between a defined site (intersect) and undefined site (union), because I can get intersect to work without issues.

Thanks,
Mike

run error about Cannot write to /dev/stdout.

I got a error when I run it. I hope you can do me a favour.
I have two problem. first , when I run it in command line,my command is that:
glactools vcf2acf --fai Gmax_275_v2.0.fa.fai --onlyGT Z-001.recode.vcf Z-001 > a.acf.gz
but I got a warning like that :
Warning: if several sites are rejected due to being empty, it could be due to the absence of the PL field, please rerun using the onlyGT flag.
Program terminated gracefully.
I have already used the onlyGT flag. I don't know why and here is my vcf file:
##fileformat=VCFv4.2
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Z-001
1 4485 Chr01_4485 G A . . . GT 1/1
1 5564 Chr01_5564 C T . . . GT 0/0
1 5698 Chr01_5698 C T . . . GT 0/0
1 5899 Chr01_5899 T C . . . GT 1/1
the seconded problem. when I run it in a script , It don't have a result. my script is like that:
#!/bin/bash
#$ -cwd
#$ -j y
#$ -S /bin/bash

#$ -l mem_free=4G

VCFTOOLS=/share/apps/vcftools/vcftools-0.1.15
GLACTOOLS=/ds3512/home/panyp/ruanjian/glactools/
SAMTOOLS=/ds3512/home/panyp/ruanjian/samtools-1.9/bin
DIR=/ds3512/home/panyp/diff_genome/
$SAMTOOLS/samtools faidx $DIR/Gmax_275_v2.0.fa
$VCFTOOLS --vcf chr01.recode.vcf --indv Z-001 --out Z-001 --recode
$GLACTOOLS/glactools vcf2acf --fai $DIR/Gmax_275_v2.0.fa.fai --onlyGT Z-001.recode.vcf Z-001 > Z-001.acf.gz
Z-001 is my sample ID. It generate a 'Z-001.acf.gz' file but the file can't be decompressed :
gzip: Z-001.acf.gz: unexpected end of file.
I check the log and find that:
Filter used: Cutoffs :
Minimum genotype quality (GQ) = 0
Minimum RMS of the mapping qualities (MQ) = 0
Minimum mapability = 0
Filter sites close to an indel = currently turned on/used
Filter sites close labeled as repeat masked (RM) = currently turned on/used
Filter sites close labeled as systematic error (SysErr) = currently turned on/used
Minimum coverage = 0
Minimum coverage = 1000
Cannot write to /dev/stdout.

problems about vcfm2acf

Hi,
I used glactools to convert multiple sample vcf file to acf format. However, a problem has occured as follows:

(base) [shali@vm-login02 test]$ glactools vcfm2acf --onlyGT --fai /public/home/fan_lab/shali/reference/hg38.fa.fai chr22.vcf.gz > chr22.acf.gz
SimpleVCF: cannot observed both GL and PL

My vcf file was generated by PEPPER-Margin-DeepVariant pipeline, regenotyped by whatshap and filtered by vcftools. Two lines of this file are shown below, and I think it do contains GL at least:

chr22   10510059        .       G       C       .       PASS    .       GT:GQ:DP:AD:VAF:PL:GL   0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:9:.:.:.:.:-0.0536517,-0.93475,-9.23491      0/0:13:.:.:.:.:-0.0234915,-1.27857,-13.7954     0/0:9:.:.:.:.:-0.0536517,-0.93475,-9.23491      0/0:36:.:.:.:.:-0.000114312,-3.57975,-9.18137   .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/1:6:.:.:.:.:-0.560206,-0.139841,-5.15084      0/0:42:.:.:.:.:-2.9343e-05,-4.17029,-13.7719    .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:42:.:.:.:.:-2.9343e-05,-4.17029,-13.7719    .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:36:.:.:.:.:-0.000114312,-3.57975,-9.18137   1/1:7:.:.:.:.:-4.68986,-0.689859,-0.0992291     0/0:9:.:.:.:.:-0.0536517,-0.93475,-9.23491      .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:9:.:.:.:.:-0.0536044,-0.93511,-9.23486
chr22   10510248        .       G       A       .       PASS    .       GT:GQ:DP:AD:VAF:PL:GL   0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:42:.:.:.:.:-2.9343e-05,-4.17029,-13.7719    0/0:13:.:.:.:.:-0.0234915,-1.27857,-13.7954     0/0:9:.:.:.:.:-0.0536517,-0.93475,-9.23491      0/0:42:.:.:.:.:-2.9343e-05,-4.17029,-13.7719    .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:42:.:.:.:.:-2.9343e-05,-4.17029,-13.7719    0/1:4:.:.:.:.:-0.370817,-0.24092,-9.55208       0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:45:.:.:.:.:-1.50329e-05,-4.46075,-18.3625   .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       0/0:42:.:.:.:.:-2.9343e-05,-4.17029,-13.7719    0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:9:.:.:.:.:-0.0536517,-0.93475,-9.23491      .:.:.:.:.:.:-0.477121,-0.477121,-0.477121       1/1:7:.:.:.:.:-4.68986,-0.689859,-0.0992291     0/0:7:.:.:.:.:-0.0992
291,-0.689859,-4.68986     0/0:7:.:.:.:.:-0.0992291,-0.689859,-4.68986     0/0:9:.:.:.:.:-0.0536044,-0.93511,-9.23486

May I have some help from anybody? Thanks!

install issue

hello, i want to install this software,but i meet this question as follows,please help me to solved its.

bam_ampliconclip.c: In function ‘amplicon_clip_main’:
bam_ampliconclip.c:639:23: warning: ‘sites’ may be used uninitialized in this function [-Wmaybe-uninitialized]
bed_entry_list_t *sites;
^
gcc -g -Wall -O2 -I. -I../htslib -I./lz4 -c -o amplicon_stats.o amplicon_stats.c
gcc -g -Wall -O2 -I. -I../htslib -I./lz4 -c -o bam_import.o bam_import.c
bam_import.c: In function ‘import_fastq’:
bam_import.c:180:35: error: ‘FASTQ_OPT_NAME2’ undeclared (first use in this function)
hts_set_opt(fp_in[i], FASTQ_OPT_NAME2, 1);
^
bam_import.c:180:35: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [Makefile:138: bam_import.o] Error 1
make[1]: Leaving directory '/home/pengyan/biosoft/glactools-master/samtools'
make: *** [Makefile:47: samtools/libbam.a] Error 2

vcf to GROSS convertion

Hello,

Thank you for a very useful program.
I have been trying to generated a GROSS input file using glactools and the following tutorial: https://github.com/FerRacimo/GRoSS/blob/master/VCFtoGRoSS.md

I have tried the following command:
glactools vcfm2acf --onlyGT --fai ref.fasta.fai input.vcf - |glactools meld -f panel3.txt - | glactools acf2gross --noroot - |gzip > output.gross.gz

And I received the following error messages:
Error: GlacParser tried to read 4 bytes but got 0
Error: GlacParser tried to read 4 bytes but got 0

I have also tried this and received the same errors messages:
tabix -h input.vcf |glactools vcfm2acf --onlyGT --fai ref.fasta.fai - |glactools meld -f panel3.txt - | glactools acf2gross --noroot - |gzip > output.gross.gz

I've tried the following command to convert the vcf file to an acf file and it worked fine.
glactools vcfm2acf --onlyGT --fai ref.fasta.fai input.vcf > output.acf.gz

The file looks as follow:
glactools view -h check.acf.gz|head
Warning: No EOF marker, likely due to an I/O error #chr coord REF,ALT root anc SP1060 KW IR23 IR24 IR30 IR33 IR34 IR36 S10 S12 S27 S31 S37 S38 S39 S40 S41 S42 S43 S53 S54 S56 14Tt001 14Tt004 14Tt006 14Tt021 14Tt022 14Tt023 14Tt025 7Tt156 7Tt161 7Tt182 7Tt193 7Tt270 7Tt278 7Tt282 7Tt284 7Tt287 7Tt350 MRVK01001050.1 1309 G,A 0,0:0 0,0:0 0,0:0 2,0:0 0,2:0 0,2:0 1,1:0 2,0:0 2,0:0 2,0:0 2,0:0 1,1:0 1,1:0 2,0:0 1,1:0 2,0:0 2,0:0 1,1:0 2,0:0 2,0:0 0,0:0 2,0:0 1,1:0 2,0:0 2,0:0 0,0:0 2,0:0 2,0:0 2,0:0 2,0:0 2,0:0 0,0:0 2,0:0 0,0:0 0,2:0 1,1:0 2,0:0 2,0:0 2,0:0 1,1:0 2,0:0

The vcf file is as follow for the same SNP:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SP1060 KW IR23 IR24 IR30 IR33 IR34 IR36 S10 S12 S27 S31 S37 S38 S39 S40 S41 S42 S43 S53 S54 S56 14Tt001 14Tt004 14Tt006 14Tt021 14Tt022 14Tt023 14Tt025 7Tt156 7Tt161 7Tt182 7Tt193 7Tt270 7Tt278 7Tt282 7Tt284 7Tt287 7Tt350MRVK01001050.1 1309 . G A 999 . DP=803;VDB=0.353011;SGB=99.994;RPB=0.358603;MQB=1;MQSB=1;BQB=0.917396;MQ0F=0;ICB=0.411676;HOB=0.0799516;AC=14;AN=68;DP4=299,323,78,72;MQ=60 GT:PL:DP:GP:GQ ./.:0,0,0:0:0,0,0:0 0/0:0,27,242:9:0,30,254:30 1/1:255,54,0:18:242,44,0:44 1/1:255,33,0:11:242,23,0:23 0/1:105,0,224:11:101,0,233:99 0/0:0,54,255:18:0,57,267:57 0/0:0,36,255:12:0,39,267:39 0/0:0,57,255:19:0,60,267:60 0/0:0,69,255:23:0,72,267:72 0/1:194,0,201:15:190,0,210:99 0/1:196,0,255:18:192,0,264:99 0/0:0,33,255:11:0,36,267:36 0/1:50,0,178:8:46,0,187:46 0/0:0,48,255:16:0,51,267:51 0/0:0,33,255:11:0,36,267:36 0/1:233,0,255:19:229,0,264:99 0/0:0,48,255:16:0,51,267:51 0/0:0,36,255:12:0,39,267:39 ./.:229,27,0:9:216,17,0:17 0/0:0,42,255:14:0,45,267:45 0/1:121,0,175:11:117,0,184:99 0/0:0,54,255:18:0,57,267:57 0/0:0,48,255:16:0,51,267:51 ./.:0,9,255:23:0,12,267:12 0/0:0,45,255:15:0,48,267:48 0/0:0,42,255:14:0,45,267:45 0/0:0,51,255:17:0,54,267:54 0/0:0,45,255:15:0,48,267:48 0/0:0,60,255:20:0,63,267:63 ./.:255,20,0:14:242,11,0:11 0/0:0,36,237:12:0,39,249:39 ./.:241,0,8:11:237,0,17:17 1/1:255,39,0:13:242,29,0:29 0/1:163,0,207:14:159,0,216:99 0/0:0,51,255:17:0,54,267:54 0/0:0,33,255:11:0,36,267:36 0/0:0,66,255:22:0,69,267:69 0/1:242,0,178:16:238,0,187:990/0:0,33,255:11:0,36,267:36

The first sample is ancient and has more missing genotype than the others.

Could you please help?
Thank you very much,

Marie

shortchanged by acf2betascan

Hi Grenaud,

I've never had any problem with the glactools acf2betascan conversion before, until today when it is outputting fewer loci than are input.

glactools acf2betascan --fold qt6.acf > qt6.beta.txt
Program ACF2BETASCAN looked at 9005 records, terminated gracefully

9005 is the correct number of SNP loci. But...

wc qt6.beta.txt
8961 26883 106058 qt6.beta.txt

Can you help me find where my missing 44 loci went and how to get them back?

issue with setting root

Hi,
I've been using glactools for a while now, with no issues, to manipulate files and export them to treemix format. Today I was working on a new sheep dataset and encountered a problem when setting the root:
glactools replaceanc SM_Sheep_Filtered.acf.gz M-0006.acf.gz > SM_Sheep_Filtered_root.acf.gz

error message: The reference allele differs between NC_019458.2 0 A,G 0,0:0 0,0:0 1,1:0 2,0:0 .... and NC_019458.2 0 G,A 1,1:0 1,1:0

Does anyone know what's the problem here and how can I solve it?

Thanks!

compile errors

Hi, grenaud, I met a problem when compile the glactools,Can you give me some advise ? Thank you very.

g++ -std=c++11 -Wall -lm -O3 -lz -Ihtslib/ -Ibamtools/include/ -Ibamtools/src/ -Itabixpp/ -I/ds3512/home/panyp/ruanjian/glactools-1.0.5/libgab -I/ds3512/home/panyp/ruanjian/glactools-1.0.5/libgab/gzstream/ -c glactools.cpp -o glactools.o
In file included from GlacParser.h:17,
from BAM2ACF.h:31,
from glactools.cpp:13:
htslib/hts_internal.h:126:68: error: expected primary-expression before 'static'
static inline int find_file_extension(const char *fn, char ext_out[static HTS_MAX_EXT_LEN])
^~~~~~
htslib/hts_internal.h:126:68: error: expected ']' before 'static'
static inline int find_file_extension(const char *fn, char ext_out[static HTS_MAX_EXT_LEN])
^~~~~~
]
htslib/hts_internal.h:126:68: error: expected ')' before 'static'
static inline int find_file_extension(const char *fn, char ext_out[static HTS_MAX_EXT_LEN])
~ ^~~~~~
)
htslib/hts_internal.h:126:68: error: expected initializer before 'static'
static inline int find_file_extension(const char *fn, char ext_out[static HTS_MAX_EXT_LEN])
^~~~~~
In file included from BAM2ACF.h:31,
from glactools.cpp:13:
GlacParser.h:30:13: warning: 'sizeBytesGLF' defined but not used [-Wunused-variable]
static char sizeBytesGLF;
^~~~~~~~~~~~
GlacParser.h:29:13: warning: 'sizeBytesACF' defined but not used [-Wunused-variable]
static char sizeBytesACF;
^~~~~~~~~~~~
GlacParser.h:27:16: warning: 'maskAlt' defined but not used [-Wunused-variable]
static uint8_t maskAlt=15; //00001111
^~~~~~~
GlacParser.h:25:16: warning: 'maskRef' defined but not used [-Wunused-variable]
static uint8_t maskRef=240; //11110000
^~~~~~~
make: *** [glactools.o] Error 1

bam2acf for multiple samples

Hi,
I want to know whether bam2acf only accepts one bam file as input, how about multiple samples bam files of a population, how to deal with this?

acf2betascan empty output

Hey grenaud,

I am getting an empty output for acf2betascan:

glactools acf2betascan --useanc ../acf_files/APHP_holi13.acf > APHP_beta.freq

it seems to have run fine:
Program ACF2BETASCAN looked at 5171179 records, terminated gracefully

Any ideas?

Thanks!

curl error during make: install failure

I am on Ubuntu 16.04. Late in make, I get the following errors:

/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:171: undefined reference to curl_easy_getinfo' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:185: undefined reference to curl_easy_getinfo'
htslib/libhts.a(hfile_libcurl.o): In function wait_perform': /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:693: undefined reference to curl_multi_fdset'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:714: undefined reference to curl_multi_perform' htslib/libhts.a(hfile_libcurl.o): In function process_messages':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:669: undefined reference to curl_multi_info_read' htslib/libhts.a(hfile_libcurl.o): In function wait_perform':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:696: undefined reference to curl_multi_timeout' htslib/libhts.a(hfile_libcurl.o): In function libcurl_close':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1073: undefined reference to curl_easy_pause' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1082: undefined reference to curl_multi_remove_handle'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1086: undefined reference to curl_easy_cleanup' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1087: undefined reference to curl_multi_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1082: undefined reference to curl_multi_remove_handle' htslib/libhts.a(hfile_libcurl.o): In function libcurl_write':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:845: undefined reference to curl_easy_pause' htslib/libhts.a(hfile_libcurl.o): In function libcurl_exit':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:274: undefined reference to curl_share_cleanup' htslib/libhts.a(hfile_libcurl.o): In function restart_from_position':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:950: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:969: undefined reference to curl_easy_duphandle'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:973: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:974: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:975: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1052: undefined reference to curl_easy_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:985: undefined reference to curl_multi_add_handle' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1052: undefined reference to curl_easy_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1052: undefined reference to curl_easy_cleanup' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:992: undefined reference to curl_easy_pause'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1012: undefined reference to curl_multi_remove_handle' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1015: undefined reference to curl_easy_reset'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1016: undefined reference to curl_multi_remove_handle' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1044: undefined reference to curl_easy_reset'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1045: undefined reference to curl_multi_remove_handle' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1025: undefined reference to curl_easy_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1027: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1028: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1018: undefined reference to curl_easy_cleanup' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1031: undefined reference to curl_easy_reset'
htslib/libhts.a(hfile_libcurl.o): In function libcurl_open': /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1148: undefined reference to curl_multi_init'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1151: undefined reference to curl_easy_init' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1155: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1159: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1167: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1168: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1169: undefined reference to curl_easy_setopt'
htslib/libhts.a(hfile_libcurl.o):/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1176: more undefined references to curl_easy_setopt' follow htslib/libhts.a(hfile_libcurl.o): In function libcurl_open':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1207: undefined reference to curl_multi_add_handle' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1215: undefined reference to curl_easy_getinfo'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1235: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1236: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1237: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1248: undefined reference to curl_easy_getinfo'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1258: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1259: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1286: undefined reference to curl_easy_cleanup' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1287: undefined reference to curl_multi_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1279: undefined reference to curl_multi_remove_handle' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1162: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1163: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1202: undefined reference to curl_easy_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1194: undefined reference to curl_easy_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1269: undefined reference to curl_easy_getinfo'
htslib/libhts.a(hfile_libcurl.o): In function libcurl_read': /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:786: undefined reference to curl_easy_pause'
htslib/libhts.a(hfile_libcurl.o): In function hfile_plugin_init_libcurl': /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1447: undefined reference to curl_global_init'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1450: undefined reference to curl_share_init' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1452: undefined reference to curl_share_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1453: undefined reference to curl_share_setopt' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1454: undefined reference to curl_share_setopt'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1480: undefined reference to curl_version_info' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1456: undefined reference to curl_share_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1457: undefined reference to curl_global_cleanup' /home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1469: undefined reference to curl_share_cleanup'
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:1470: undefined reference to curl_global_cleanup' htslib/libhts.a(hfile_libcurl.o): In function libcurl_exit':
/home/bgppermp/Downloads/glactools/htslib/hfile_libcurl.c:296: undefined reference to `curl_global_cleanup'
collect2: error: ld returned 1 exit status
Makefile:54: recipe for target 'glactools' failed
make: *** [glactools] Error 1
glactools$

And I have:
glactools$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets

Have I missed something?

installation trouble

Hi,

I am attempting to compile your package from github however, I am receiving the following error messages (below). Do you know the meaning of these or how to rectify the problem? Any help would be much appreciated.

Thank you and best wishes,

Dean

.../glactools/tabixpp/htslib/cram/cram_codecs.c:1768: undefined reference to __intel_sse2_strlen' htslib/libhts.a(cram_codecs.o): In function cram_byte_array_stop_decode_block':
.../glactools/tabixpp/htslib/cram/cram_codecs.c:1682: undefined reference to _intel_fast_memcpy' collect2: error: ld returned 1 exit status make[2]: *** [tabix++] Error 1 make[2]: Leaving directory .../glactools/tabixpp'
make[1]: *** [all-recur] Error 1
make[1]: Leaving directory `.../glactools/tabixpp'
make: *** [tabixpp/tabix.o] Error 2

cannot determine the root allele

I've come across an issue when trying to convert .acf to .beta for use with BetaScan.

I can generate acf files using the command:
glactools vcfm2acf --onlyGT --fai ref.fai pops.chr9.vcf > pops.chr9.acf

and the format looks fine, e.g.

#chr    coord   REF,ALT   root       anc     pop1    pop2    pop3    pop4
9       5895    G,T       0,0:0      0,0:0   49,60:0 0,0:0   0,0:0   0,0:0
9       5929    A,G       0,0:0      0,0:0   0,0:0   14,16:0 0,0:0   0,0:0
9       5979    T,G       1,26:0    1,26:0   0,0:0   0,0:0   0,0:0   77,5:0

where each population was extracted from a multi sample vcf with the vcftools flag --mac 1. I then merged the samples into the populations and set the root and anc as detailed in the README.

Converting from acf to beta:
glactools acf2betascan --useroot pops.rooted.chr9.acf.gz | gzip > pops.rooted.chr9.beta.txt.gz

is when I receive the error for the majority of positions:
Cannot determine the root allele for 9 5979 T,G 1,26:0 1,26:0 0,0:0 0,0:0 0,0:0 77,5:0

But then it reports:
Program ACF2BETASCAN looked at 1227 records, terminated gracefully

Yet the resulting beta.txt files are empty. Any ideas please?

Cheers

Cooper

Can not deal with vcf file

Hi,
I used glactools to convert multiple sample vcf file to acf format and finally treemix format
./glactools vcfm2acf --fai ../data/Camarosa_CMN_genomes.fasta.fai ../DoB_rand_samples_CallVariants.vcf
Unfortunately, there was an error
SimpleVCF: unable to determine genotype for field=#0/0/0/0/0/0/0/0# at position: Fvb1-1:7753

The vcf file I used is made from callvariants, which is a script in bbmap.
Besides, I tried to get acf file from bam formate. I also failed with the following report.

./glactools bam2acf ../data/Camarosa_CMN_genomes.fasta ../virg_NA-UT-2-6-3.realigned.bam virg_NA-UT-2-6-3
� � BC� 48m�UU�( 6����in�;.R
H(bwwk}9�yg;�k̹r>U)RZEv�D|Z4ټeҪyTkޱyݛ7Vn;uغ{6ͻh�uծ[fukҸ\frY廵nޡ]N[�J�s�5k5nZaZV**?ey3rZfgʫѦu
-ZTo:?b4�W/W!\�U 4W�ߨAFu+"\Fu+eggVdR1?Bn^6e&;+7'7��Ɏ%bżrrsfV_켊���+'B^V 7?3'r
K_/VN~n -3��r*V:lSBVvœd7'3?'䨜 m9Y_1#_ONǒ
AAg%LdṰX9Y9A97�ONFV^^n�bddeE[Hǻ�oٹsVQJŻuܣxN-�W%DW�e T
[E::bgzf_flush] File write failed (wrong size)
Write error
BAM2ACF: error writing header

May I have some help from anybody? Thanks!

Options not working in glf2acf

Hi Gabriel,

I'm wanted to test out some different PL options in the glf2acf conversion, but I am getting an error.

The default option works great, with a command like this:
glactools glf2acf file.glf.gz > file.default_PL.acf.gz

But when I add a PL option to the same command:
glactools glf2acf --minPL 30 file.glf.gz > file.30_PL.acf.gz

I get this error message:
The last argument is the <glf file>

I also tried the -u option for uncompressed output and it gives the same error message. Could you please let me know if options should be entered differently or if there is a bug to fix?

Thanks!
Nathan

vcfm2acf deal for vcf file

Hello.

I have a problem using vcfm2acf.

glactools vcfm2acf --onlyGT --fai 1-12.fai sorted.output.vcf

error message:
SimpleVCF: for line -18.3084 0 -12.4722 -19.8136 -14.5794 -34.0463 -19.8136 -14.5794 -34.0463 -34.0463 -19.8136 -14.5794 -34.0463 -34.0463 -34.0463 the GL field does not have 3 or 6 fields

The VCF file is form Freebayes, filtered with vbcftools.

Thanks.

Heng

vcfm2acf issue

Hello.

I have a problem using vcfm2acf.

glactools vcfm2acf --onlyGT --fai human_g1k_v37.fasta.fai chr1.recode.vcf > chr1.acf.gz

error message
libgab.h base2int() Invalid base *

Please let me know if any improvements can be made.

Thanks.

SQ fields differ in the header

Dear Gabriel,

I'm receiving the following error when attempting to use replaceanc:
$ glactools replaceanc chr1.pops.acf.gz chr1.ancroot.acf.gz > ancrooted.chr1.acf.gz

GlacReplaceAncestor: The SQ fields differ in the header, are they from the same reference?

Is there a way to override or force glactools to accept that the references are the same, or to use one over the other? The reference genomes I used were the same sequences, but with differing sequence names - I had to shorten the names whilst generating the ancestral and root vcfs and that may be causing this issue downstream.

Failing that, is there a way to manually edit the headers of acf files?

Cheers

Cooper

install error

hi,when I installed glactools,I met a problem like that,can you give me some advise. Thank you very much.

ReadTabix.cpp:(.text+0x1a8): undefined reference to Tabix::setRegion(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' lib/libglactools.a(ReadTabix.o): In function ReadTabix::readLine(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)':
ReadTabix.cpp:(.text+0x20d): undefined reference to Tabix::getNextLine(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' lib/libglactools.a(ReadTabix.o): In function ReadTabix::ReadTabix(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int, int)':
ReadTabix.cpp:(.text+0x344): undefined reference to Tabix::Tabix(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' ReadTabix.cpp:(.text+0x60a): undefined reference to Tabix::setRegion(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)'
lib/libglactools.a(ReadTabix.o): In function ReadTabix::repositionIterator(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int)': ReadTabix.cpp:(.text+0xafb): undefined reference to Tabix::setRegion(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)'
collect2: error: ld returned 1 exit status
make: *** [glactools] Error 1

Error in vcfm2acf

Hi, I am currently trying to convert a VCF file to an ACF file using glactools. However, I have encountered the following error message:

Error, missing data in the EPO file
Error: GlacParser tried to read 4 bytes but got 0

I tried the solution in another issue. I've rewritten "chr22" as "22". However, this allowed some chromosomes to run smoothly, while others still reported errors.

Error, missing data in the EPO file
Warning: No EOF marker, likely due to an I/O error
Error: GlacParser tried to read 2 bytes but got 0

I wonder if you have any suggestions for this? By the way, my variants were mapped to hg38 rather than hg19/37. Could this be the cause of the error message? Looking forward to your reply, thank you!

acf2treemix no output

it shows: Program acf2treemix wrote 0 out of 5733 terminated gracefully
I used
glactools bplink2acf --fai refer.fai plink_prefix | glactools acf2treemix - | gzip >plink_prefix.gz

does the input data need to be extra modification?
By the way, how many sites are needed to run treemix at least? I found out that not many sno left after using 'geno 0' in plink? Afraid to use this tool in the wrong way?

vcf to G-phocs

Hi, I have a multi-samples VCF that I would like to convert to G-Phocs input format.
Is there a way to accomplish this task in glactools?
Thank you!

--onlyGT confusion

Hi,

I am converting a multi-sample VCF file to glactools acf format and I am using the --onlyGT flag since my VCF contains only genotypes. Weirdly, when I remove this flag, glactools still runs and outputs a file even though I have checked and confirmed there are no PL fields in my VCF...

grep "##FORMAT=" ALLchr_CEUlist_concat.vcf
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">

Does glactools interpret that a VCF contains only genotypes without the need for --onlyGT or am I misunderstanding the flag? Based on the comment in Vcf2ACF.cpp I assumed that glactools uses the PL field which is not present in my VCF.

Best,

Dean

Can not use bed track with glactools bam2acf

Hi,

Thanks for the grear program. It looks like I cannot use bed track with glactools bam2acf:

$ glactools bam2acf --bed $bed $ref_fa $bam test | glactools view - | cut -f 1-3,6

The last 3 arguments are
Error: GlacParser tried to read 4 bytes but got 0

But, I can run it without a bed track. My bed track looks like this:

1 11204715 11204717
17 7578460 7578461
17 15978895 15978897

Thanks,

Jack

Compile failure on Mac OS Mojave

Hello Gabriel,
Here is the compilation output I get when I tried to compile on Mac Mojave v. 10.14.4
Peter

uhtred:glactools-master bgppermp$ make
rm -rf bamtools/
git clone --recursive https://github.com/pezmaster31/bamtools.git
Cloning into 'bamtools'...
remote: Enumerating objects: 4857, done.
remote: Total 4857 (delta 0), reused 0 (delta 0), pack-reused 4857
Receiving objects: 100% (4857/4857), 6.06 MiB | 8.05 MiB/s, done.
Resolving deltas: 100% (3373/3373), done.
cd bamtools/ && mkdir -p build/ && cd build/ && cmake .. && make && cd ../..
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:20 (cmake_policy):
The OLD behavior for policy CMP0042 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.

-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")
-- Checking for one of the modules 'jsoncpp>=1'
Did NOT find system JsonCpp, instead using bundled version
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.11")
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/bgppermp/Downloads/glactools-master/bamtools/build
Scanning dependencies of target SharedHeaders
[ 0%] Built target SharedHeaders
Scanning dependencies of target APIHeaders
[ 0%] Built target APIHeaders
Scanning dependencies of target AlgorithmsHeaders
[ 0%] Built target AlgorithmsHeaders
Scanning dependencies of target BamTools
[ 1%] Building CXX object src/api/CMakeFiles/BamTools.dir/BamAlignment.cpp.o
[ 3%] Building CXX object src/api/CMakeFiles/BamTools.dir/BamMultiReader.cpp.o
[ 4%] Building CXX object src/api/CMakeFiles/BamTools.dir/BamReader.cpp.o
[ 6%] Building CXX object src/api/CMakeFiles/BamTools.dir/BamWriter.cpp.o
[ 8%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamHeader.cpp.o
[ 9%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamProgram.cpp.o
[ 11%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamProgramChain.cpp.o
[ 13%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamReadGroup.cpp.o
[ 14%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamReadGroupDictionary.cpp.o
[ 16%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamSequence.cpp.o
[ 18%] Building CXX object src/api/CMakeFiles/BamTools.dir/SamSequenceDictionary.cpp.o
[ 19%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamHeader_p.cpp.o
[ 21%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamMultiReader_p.cpp.o
[ 22%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamRandomAccessController_p.cpp.o
[ 24%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamReader_p.cpp.o
[ 26%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/bam/BamWriter_p.cpp.o
[ 27%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/index/BamIndexFactory_p.cpp.o
[ 29%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/index/BamStandardIndex_p.cpp.o
[ 31%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/index/BamToolsIndex_p.cpp.o
[ 32%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamDeviceFactory_p.cpp.o
[ 34%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamFile_p.cpp.o
[ 36%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamFtp_p.cpp.o
[ 37%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamHttp_p.cpp.o
[ 39%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BamPipe_p.cpp.o
[ 40%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/BgzfStream_p.cpp.o
[ 42%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/ByteArray_p.cpp.o
[ 44%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/HostAddress_p.cpp.o
[ 45%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/HostInfo_p.cpp.o
[ 47%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/HttpHeader_p.cpp.o
[ 49%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/ILocalIODevice_p.cpp.o
[ 50%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/RollingBuffer_p.cpp.o
[ 52%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/TcpSocket_p.cpp.o
[ 54%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/TcpSocketEngine_p.cpp.o
[ 55%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/io/TcpSocketEngine_unix_p.cpp.o
[ 57%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/sam/SamFormatParser_p.cpp.o
[ 59%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/sam/SamFormatPrinter_p.cpp.o
[ 60%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/sam/SamHeaderValidator_p.cpp.o
[ 62%] Building CXX object src/api/CMakeFiles/BamTools.dir/internal/utils/BamException_p.cpp.o
[ 63%] Linking CXX static library libbamtools.a
[ 63%] Built target BamTools
Scanning dependencies of target jsoncpp
[ 65%] Building CXX object src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o
[ 67%] Linking CXX static library libjsoncpp.a
[ 67%] Built target jsoncpp
Scanning dependencies of target BamTools-utils
[ 68%] Building CXX object src/utils/CMakeFiles/BamTools-utils.dir/bamtools_fasta.cpp.o
[ 70%] Building CXX object src/utils/CMakeFiles/BamTools-utils.dir/bamtools_options.cpp.o
[ 72%] Building CXX object src/utils/CMakeFiles/BamTools-utils.dir/bamtools_pileup_engine.cpp.o
[ 73%] Building CXX object src/utils/CMakeFiles/BamTools-utils.dir/bamtools_utilities.cpp.o
[ 75%] Linking CXX static library libbamtools-utils.a
[ 75%] Built target BamTools-utils
Scanning dependencies of target bamtools_cmd
[ 77%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_convert.cpp.o
[ 78%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_count.cpp.o
[ 80%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_coverage.cpp.o
[ 81%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o
[ 83%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_header.cpp.o
[ 85%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_index.cpp.o
[ 86%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_merge.cpp.o
[ 88%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_random.cpp.o
[ 90%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o
[ 91%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_revert.cpp.o
[ 93%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_sort.cpp.o
[ 95%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_split.cpp.o
[ 96%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_stats.cpp.o
[ 98%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools.cpp.o
[100%] Linking CXX executable bamtools
[100%] Built target bamtools_cmd
rm -rf htslib/
git clone --recursive https://github.com/samtools/htslib.git
Cloning into 'htslib'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 11614 (delta 1), reused 3 (delta 0), pack-reused 11604
Receiving objects: 100% (11614/11614), 8.50 MiB | 6.15 MiB/s, done.
Resolving deltas: 100% (8214/8214), done.
cd htslib/ && make && cd ../
echo '/* Default config.h generated by Makefile /' > config.h
echo '#define HAVE_LIBBZ2 1' >> config.h
echo '#define HAVE_LIBLZMA 1' >> config.h
echo '#define HAVE_LZMA_H 1' >> config.h
echo '#define HAVE_FSEEKO 1' >> config.h
echo '#define HAVE_DRAND48 1' >> config.h
echo '#define HAVE_LIBCURL 1' >> config.h
gcc -g -Wall -O2 -I. -c -o kfunc.o kfunc.c
gcc -g -Wall -O2 -I. -c -o knetfile.o knetfile.c
gcc -g -Wall -O2 -I. -c -o kstring.o kstring.c
gcc -g -Wall -O2 -I. -c -o bcf_sr_sort.o bcf_sr_sort.c
gcc -g -Wall -O2 -I. -c -o bgzf.o bgzf.c
gcc -g -Wall -O2 -I. -c -o errmod.o errmod.c
gcc -g -Wall -O2 -I. -c -o faidx.o faidx.c
gcc -g -Wall -O2 -I. -c -o header.o header.c
gcc -g -Wall -O2 -I. -c -o hfile.o hfile.c
gcc -g -Wall -O2 -I. -c -o hfile_net.o hfile_net.c
echo '#define HTS_VERSION "1.9-288-g830c061"' > version.h
gcc -g -Wall -O2 -I. -c -o hts.o hts.c
gcc -g -Wall -O2 -I. -c -o hts_os.o hts_os.c
gcc -g -Wall -O2 -I. -c -o md5.o md5.c
gcc -g -Wall -O2 -I. -c -o multipart.o multipart.c
gcc -g -Wall -O2 -I. -c -o probaln.o probaln.c
gcc -g -Wall -O2 -I. -c -o realn.o realn.c
gcc -g -Wall -O2 -I. -c -o regidx.o regidx.c
gcc -g -Wall -O2 -I. -c -o region.o region.c
gcc -g -Wall -O2 -I. -c -o sam.o sam.c
gcc -g -Wall -O2 -I. -c -o synced_bcf_reader.o synced_bcf_reader.c
gcc -g -Wall -O2 -I. -c -o vcf_sweep.o vcf_sweep.c
gcc -g -Wall -O2 -I. -c -o tbx.o tbx.c
gcc -g -Wall -O2 -I. -c -o textutils.o textutils.c
gcc -g -Wall -O2 -I. -c -o thread_pool.o thread_pool.c
gcc -g -Wall -O2 -I. -c -o vcf.o vcf.c
gcc -g -Wall -O2 -I. -c -o vcfutils.o vcfutils.c
gcc -g -Wall -O2 -I. -c -o cram/cram_codecs.o cram/cram_codecs.c
gcc -g -Wall -O2 -I. -c -o cram/cram_decode.o cram/cram_decode.c
gcc -g -Wall -O2 -I. -c -o cram/cram_encode.o cram/cram_encode.c
gcc -g -Wall -O2 -I. -c -o cram/cram_external.o cram/cram_external.c
gcc -g -Wall -O2 -I. -c -o cram/cram_index.o cram/cram_index.c
gcc -g -Wall -O2 -I. -c -o cram/cram_io.o cram/cram_io.c
gcc -g -Wall -O2 -I. -c -o cram/cram_samtools.o cram/cram_samtools.c
gcc -g -Wall -O2 -I. -c -o cram/cram_stats.o cram/cram_stats.c
gcc -g -Wall -O2 -I. -c -o cram/mFILE.o cram/mFILE.c
gcc -g -Wall -O2 -I. -c -o cram/open_trace_file.o cram/open_trace_file.c
gcc -g -Wall -O2 -I. -c -o cram/pooled_alloc.o cram/pooled_alloc.c
gcc -g -Wall -O2 -I. -c -o cram/rANS_static.o cram/rANS_static.c
gcc -g -Wall -O2 -I. -c -o cram/string_alloc.o cram/string_alloc.c
gcc -g -Wall -O2 -I. -c -o hfile_libcurl.o hfile_libcurl.c
ar -rc libhts.a kfunc.o knetfile.o kstring.o bcf_sr_sort.o bgzf.o errmod.o faidx.o header.o hfile.o hfile_net.o hts.o hts_os.o md5.o multipart.o probaln.o realn.o regidx.o region.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o textutils.o thread_pool.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/string_alloc.o hfile_libcurl.o
ranlib libhts.a
gcc -dynamiclib -install_name /usr/local/lib/libhts.2to3part10.dylib -current_version 1.9.255 -compatibility_version 2.10 -o libhts.dylib kfunc.o knetfile.o kstring.o bcf_sr_sort.o bgzf.o errmod.o faidx.o header.o hfile.o hfile_net.o hts.o hts_os.o md5.o multipart.o probaln.o realn.o regidx.o region.o sam.o synced_bcf_reader.o vcf_sweep.o tbx.o textutils.o thread_pool.o vcf.o vcfutils.o cram/cram_codecs.o cram/cram_decode.o cram/cram_encode.o cram/cram_external.o cram/cram_index.o cram/cram_io.o cram/cram_samtools.o cram/cram_stats.o cram/mFILE.o cram/open_trace_file.o cram/pooled_alloc.o cram/rANS_static.o cram/string_alloc.o hfile_libcurl.o -lz -lm -lbz2 -llzma -lcurl
ln -sf libhts.dylib libhts.2to3part10.dylib
gcc -g -Wall -O2 -I. -c -o bgzip.o bgzip.c
gcc -o bgzip bgzip.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o htsfile.o htsfile.c
gcc -o htsfile htsfile.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o tabix.o tabix.c
gcc -o tabix tabix.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/hts_endian.o test/hts_endian.c
gcc -o test/hts_endian test/hts_endian.o -lz -lm -lbz2 -llzma -lcurl
gcc -g -Wall -O2 -I. -c -o test/fieldarith.o test/fieldarith.c
gcc -o test/fieldarith test/fieldarith.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/hfile.o test/hfile.c
gcc -o test/hfile test/hfile.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/pileup.o test/pileup.c
gcc -o test/pileup test/pileup.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/sam.o test/sam.c
gcc -o test/sam test/sam.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test_bgzf.o test/test_bgzf.c
gcc -o test/test_bgzf test/test_bgzf.o libhts.a -lz -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test_kstring.o test/test_kstring.c
gcc -o test/test_kstring test/test_kstring.o libhts.a -lz -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test_realn.o test/test_realn.c
gcc -o test/test_realn test/test_realn.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test-regidx.o test/test-regidx.c
gcc -o test/test-regidx test/test-regidx.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test_view.o test/test_view.c
gcc -o test/test_view test/test_view.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test_index.o test/test_index.c
gcc -o test/test_index test/test_index.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test-vcf-api.o test/test-vcf-api.c
gcc -o test/test-vcf-api test/test-vcf-api.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test-vcf-sweep.o test/test-vcf-sweep.c
gcc -o test/test-vcf-sweep test/test-vcf-sweep.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test-bcf-sr.o test/test-bcf-sr.c
gcc -o test/test-bcf-sr test/test-bcf-sr.o libhts.a -lz -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/fuzz/hts_open_fuzzer.o test/fuzz/hts_open_fuzzer.c
gcc -g -Wall -O2 -I. -c -o test/test-bcf-translate.o test/test-bcf-translate.c
gcc -o test/test-bcf-translate test/test-bcf-translate.o libhts.a -lz -lz -lm -lbz2 -llzma -lcurl -lpthread
gcc -g -Wall -O2 -I. -c -o test/test-parse-reg.o test/test-parse-reg.c
gcc -o test/test-parse-reg test/test-parse-reg.o libhts.a -lz -lm -lbz2 -llzma -lcurl -lpthread
rm -rf libgab/
git clone --recursive https://github.com/grenaud/libgab.git
Cloning into 'libgab'...
remote: Enumerating objects: 300, done.
remote: Total 300 (delta 0), reused 0 (delta 0), pack-reused 300
Receiving objects: 100% (300/300), 114.47 KiB | 626.00 KiB/s, done.
Resolving deltas: 100% (187/187), done.
make -C libgab
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c utils.cpp -o utils.o
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c testUtils.cpp -o testUtils.o
testUtils.cpp: In function ‘int main(int, char
*)’:
testUtils.cpp:22:5: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for(unsigned int c= 2147400000;c<10147400000;c+=1000000)
^~~
testUtils.cpp:24:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
return 0;
^~~~~~
make -C gzstream/
g++ -I. -O -c -o gzstream.o gzstream.C
ar cr libgzstream.a gzstream.o
g++ -o testUtils testUtils.o utils.o gzstream/libgzstream.a -lz
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c ReconsReferenceBAM.cpp -o ReconsReferenceBAM.o
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c PutProgramInHeader.cpp -o PutProgramInHeader.o
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c FastQObj.cpp -o FastQObj.o
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c FastQParser.cpp -o FastQParser.o
g++ -Wall -lm -O3 -I. -Igzstream/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/include/ -I/Users/bgppermp/Downloads/glactools-master/bamtools/build/src/include/ -c testRecons.cpp -o testRecons.o
g++ -o testRecons testRecons.o utils.o /Users/bgppermp/Downloads/glactools-master/bamtools/build/src/api/libbamtools.a ReconsReferenceBAM.o gzstream/libgzstream.a -lz
Undefined symbols for architecture x86_64:
"BamTools::BamReader::Open(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)", referenced from:
_main in testRecons.o
"BamTools::BamAlignment::FindTag(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, char*&, unsigned int const&, unsigned int&) const", referenced from:
reconstructRefWithPosOnRead[abi:cxx11](BamTools::BamAlignment const*) in ReconsReferenceBAM.o
reconstructRefWithPos[abi:cxx11](BamTools::BamAlignment const*) in ReconsReferenceBAM.o
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::at(unsigned long) const", referenced from:
BamTools::Internal::SamHeaderValidator::CheckNameFormat(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamHeaderValidator_p.cpp.o)
BamTools::Internal::SamHeaderValidator::CheckSequencingTechnology(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamHeaderValidator_p.cpp.o)
BamTools::Internal::HttpRequestHeader::ParseLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int) in libbamtools.a(HttpHeader_p.cpp.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::find(char, unsigned long) const", referenced from:
BamTools::Internal::SamHeaderValidator::ValidateVersion() in libbamtools.a(SamHeaderValidator_p.cpp.o)
BamTools::Internal::BamFtp::ParseUrl(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamFtp_p.cpp.o)
BamTools::Internal::BamFtp::ParsePassiveResponse() in libbamtools.a(BamFtp_p.cpp.o)
BamTools::Internal::BamHttp::ParseUrl(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamHttp_p.cpp.o)
BamTools::Internal::HttpHeader::ParseLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int) in libbamtools.a(HttpHeader_p.cpp.o)
BamTools::Internal::HttpRequestHeader::ParseLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int) in libbamtools.a(HttpHeader_p.cpp.o)
BamTools::Internal::HttpResponseHeader::ParseLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int) in libbamtools.a(HttpHeader_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::rfind(char, unsigned long) const", referenced from:
BamTools::Internal::BamIndexFactory::CreateIndexFromFilename(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, BamTools::Internal::BamReaderPrivate*) in libbamtools.a(BamIndexFactory_p.cpp.o)
BamTools::Internal::BamIndexFactory::FileExtension(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamIndexFactory_p.cpp.o)
BamTools::Internal::HostAddress::ParseAddress() in libbamtools.a(HostAddress_p.cpp.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::compare(unsigned long, unsigned long, char const*, unsigned long) const", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamDeviceFactory::CreateDevice(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamDeviceFactory_p.cpp.o)
"std::__1::__vector_base_common::__throw_length_error() const", referenced from:
BamTools::BamAlignment::BamAlignment(BamTools::BamAlignment const&) in libbamtools.a(BamAlignment.cpp.o)
BamTools::BamAlignment::GetSoftClips(std::__1::vector<int, std::__1::allocator >&, std::__1::vector<int, std::__1::allocator >&, std::__1::vector<int, std::__1::allocator >&, bool) const in libbamtools.a(BamAlignment.cpp.o)
void std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::__push_back_slow_path<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const>(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamReaderPrivate::LoadNextAlignment(BamTools::BamAlignment&) in libbamtools.a(BamReader_p.cpp.o)
void std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::__push_back_slow_path<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const>(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamReader_p.cpp.o)
void std::__1::vector<BamTools::RefData, std::__1::allocatorBamTools::RefData >::__push_back_slow_path<BamTools::RefData const>(BamTools::RefData const&) in libbamtools.a(BamReader_p.cpp.o)
std::__1::vector<BamTools::CustomHeaderTag, std::__1::allocatorBamTools::CustomHeaderTag >::vector(std::__1::vector<BamTools::CustomHeaderTag, std::__1::allocatorBamTools::CustomHeaderTag > const&) in libbamtools.a(SamHeader.cpp.o)
...
"std::__1::__vector_base_common::__throw_out_of_range() const", referenced from:
BamTools::SamProgramChain::operator[](std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamProgramChain.cpp.o)
BamTools::SamSequenceDictionary::Remove(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamSequenceDictionary.cpp.o)
BamTools::SamSequenceDictionary::operator[](std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamSequenceDictionary.cpp.o)
BamTools::SamReadGroupDictionary::Remove(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamReadGroupDictionary.cpp.o)
BamTools::SamReadGroupDictionary::operator[](std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamReadGroupDictionary.cpp.o)
BamTools::Internal::BamToolsIndex::ReadReferenceEntry(BamTools::Internal::BtiReferenceEntry&) in libbamtools.a(BamToolsIndex_p.cpp.o)
BamTools::Internal::BamToolsIndex::HasAlignments(int const&) const in libbamtools.a(BamToolsIndex_p.cpp.o)
...
"std::__1::__basic_string_common::__throw_length_error() const", referenced from:
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char) in libbamtools.a(BamAlignment.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamReaderPrivate::Close() in libbamtools.a(BamReader_p.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamReaderPrivate::GetNextAlignmentCore(BamTools::BamAlignment&) in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamReaderPrivate::LoadReferenceData() in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamReaderPrivate::Open(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamReader_p.cpp.o)
...
"std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libbamtools.a(BgzfStream_p.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libbamtools.a(BamRandomAccessController_p.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(std::__1::basic_ostream<char, std::__1::char_traits >& ()(std::__1::basic_ostream<char, std::__1::char_traits >&)) in libbamtools.a(SamProgramChain.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const
, unsigned long) in libbamtools.a(SamProgramChain.cpp.o)
BamTools::Internal::SamFormatParser::Parse(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
BamTools::Internal::BamStandardIndex::Create() in libbamtools.a(BamStandardIndex_p.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libbamtools.a(BamStandardIndex_p.cpp.o)
...
"std::__1::ios_base::getloc() const", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libbamtools.a(BgzfStream_p.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libbamtools.a(BamRandomAccessController_p.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >::operator<<(std::__1::basic_ostream<char, std::__1::char_traits >& ()(std::__1::basic_ostream<char, std::__1::char_traits >&)) in libbamtools.a(SamProgramChain.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const
, unsigned long) in libbamtools.a(SamProgramChain.cpp.o)
BamTools::Internal::SamFormatParser::Parse(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
BamTools::Internal::BamStandardIndex::Create() in libbamtools.a(BamStandardIndex_p.cpp.o)
std::__1::basic_ostream<char, std::__1::char_traits >& std::__1::__put_character_sequence<char, std::__1::char_traits >(std::__1::basic_ostream<char, std::__1::char_traits >&, char const*, unsigned long) in libbamtools.a(BamStandardIndex_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::at(unsigned long)", referenced from:
BamTools::Internal::HttpResponseHeader::ParseLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int) in libbamtools.a(HttpHeader_p.cpp.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::append(char const*, unsigned long)", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamAlignment.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamReaderPrivate::Tag2Cigar(BamTools::BamAlignment&, BamTools::RaiiBuffer&) in libbamtools.a(BamReader_p.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char const*) in libbamtools.a(BamReader_p.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BgzfStream_p.cpp.o)
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamRandomAccessController_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::append(unsigned long, char)", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::assign(char const*)", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
BamTools::SamHeader::SetHeaderText(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamHeader.cpp.o)
BamTools::Internal::BamToolsIndex::Create() in libbamtools.a(BamToolsIndex_p.cpp.o)
BamTools::Internal::BamToolsIndex::Jump(BamTools::BamRegion const&, bool*) in libbamtools.a(BamToolsIndex_p.cpp.o)
BamTools::Internal::BamToolsIndex::Load(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamToolsIndex_p.cpp.o)
BamTools::Internal::BamStandardIndex::Create() in libbamtools.a(BamStandardIndex_p.cpp.o)
BamTools::Internal::BamStandardIndex::Jump(BamTools::BamRegion const&, bool*) in libbamtools.a(BamStandardIndex_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::assign(char const*, unsigned long)", referenced from:
BamTools::BamAlignment::RemoveTag(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamReaderPrivate::LoadNextAlignment(BamTools::BamAlignment&) in libbamtools.a(BamReader_p.cpp.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::resize(unsigned long, char)", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(BgzfStream_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(BamRandomAccessController_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(SamHeader.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(SamFormatParser_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::str(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(BamStandardIndex_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::reserve(unsigned long)", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamReaderPrivate::Tag2Cigar(BamTools::BamAlignment&, BamTools::RaiiBuffer&) in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamHttp::ParseUrl(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamHttp_p.cpp.o)
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::push_back(char)", referenced from:
std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > std::__1::operator+<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, char) in libbamtools.a(BamAlignment.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(BgzfStream_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(BamRandomAccessController_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(SamHeader.cpp.o)
std::__1::basic_istream<char, std::__1::char_traits >& std::__1::getline<char, std::__1::char_traits, std::__1::allocator >(std::__1::basic_istream<char, std::__1::char_traits >&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >&, char) in libbamtools.a(SamFormatParser_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(SamFormatParser_p.cpp.o)
std::__1::basic_stringbuf<char, std::__1::char_traits, std::__1::allocator >::overflow(int) in libbamtools.a(BamStandardIndex_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::basic_string(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&)", referenced from:
BamTools::BamAlignment::BamAlignment(BamTools::BamAlignment const&) in libbamtools.a(BamAlignment.cpp.o)
BamTools::BamAlignment::GetErrorString() const in libbamtools.a(BamAlignment.cpp.o)
BamTools::BamAlignment::GetTagNames() const in libbamtools.a(BamAlignment.cpp.o)
void std::__1::vector<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::__push_back_slow_path<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const>(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamReaderPrivate::Filename() const in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamReaderPrivate::GetErrorString() const in libbamtools.a(BamReader_p.cpp.o)
BamTools::Internal::BamReaderPrivate::GetReferenceID(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in libbamtools.a(BamReader_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::basic_string(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, unsigned long, unsigned long, std::__1::allocator const&)", referenced from:
BamTools::BamAlignment::BuildCharData() in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamIndexFactory::CreateIndexFromFilename(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, BamTools::Internal::BamReaderPrivate*) in libbamtools.a(BamIndexFactory_p.cpp.o)
BamTools::Internal::BamIndexFactory::FileExtension(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(BamIndexFactory_p.cpp.o)
BamTools::Internal::SamFormatParser::ParseSamLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
BamTools::Internal::SamFormatParser::ParseHDLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
BamTools::Internal::SamFormatParser::ParseSQLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
BamTools::Internal::SamFormatParser::ParseRGLine(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in libbamtools.a(SamFormatParser_p.cpp.o)
...
"std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >::~basic_string()", referenced from:
BamTools::BamAlignment::SetErrorString(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in libbamtools.a(BamAlignment.cpp.o)
BamTools::Internal::BamReaderPrivate::SetErrorString(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator

epo file format

hello, grenaud! now, I just have an outgroup vcf file (other mammals not human), could you tell me how can I transform vcf file to epo file?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.