2024-11-21 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.6

	* Merge pull request #11 from fvcr/master

	FIX: docs/usage.rst. Typo 'bellow'
	UPDATE: docs/meson.build: Use share/man/man1

	* CHANGE: docs/meson.build: Use get_option('mandir')

2024-11-18 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.5

2024-11-17 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: Create SECURITY.md

2024-11-16 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* UPDATE: meson version to 0.58.0

	* ADD: generate man page by default and set install

	Generate and install the man page, using docs/usage.rst by default. In
	order to generate the doc site, it is necessary to setup meson with the
	options '-Dsphinx_target=html' and, in that case, the extension
	sphinx_rtd_theme will be mandatory.

2024-11-13 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: README.md: Badge for CodeQL and tag

2024-11-12 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.4

	* FIX docker.yml: Use ubuntu 24.04

	* FIX: readthedocs build

	Add .readthedocs.yml and docs/requirements.txt.

2024-11-11 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* UPDATE: Dockerfile: Use image ubuntu:24.04

	* FIX: README.md: coveralls badge

	* FIX: README.md: readthedocs badge

	* FIX: ci.yml: Use ubuntu 24.04

	* FIX: ci.yml: Install lcov for cpp-coveralls

	* FIX: cluster.c (cluster): Typo 'controling'

2023-07-01 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.3

	* ADD docker.yml: Split testing and deploying steps

	* CHANGE: ci.yml: Test on push branches and tags

	* CHANGE: ci.yml: Always test and deploy on BRANCHES

	BRANCHES: master, dev, tags. Skip deploying to dockerhub otherwise.

2023-06-29 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: abnormal.c (parse_unsorted_sam)

	Remove blacklist with low-quality read querynames, because it may cause
	too much RAM memory allocation. To solve running unsorted file, read it
	three times: Firstly index all abnormal reads, secondly filter
	low-quality fragments and thirdly dump all indexed fragments to
	database.

2023-03-09 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.2

	* CHANGE: Dockerfile: multi-stage builds

	Improve docker image size by using multi-stage builds.

	* ADD: str.c (string_maybe_expand): 'nearest_pow'

	* FIX: utils.c (xstrdup_concat, entry_set): Truncat

	Deal with possible vulnerability in 'strncat' and 'strcpy' inside loop.
	Replace with 'memcpy'.

2023-01-09 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.1

	* ADD: ci.yml (paths): meson.build

	Test and deploy when 'meson.build' changes.

	* FIX: meson.build (check): Version '>= 0.15.0'

	Point out 'check' to the right version.

2022-12-12 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: INSTALL: meson configure

	Fix ordering in meson command: 'meson build configure' to
	'meson configure build'

2022-11-25 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.1.0

	* FIX: ci.yml (runs-on): ubuntu-18.04 to 20.04

	* CHANGE: Dockerfile (FROM): ubuntu:18.04 to 20.04

	* FIX: check_sider_*.c: Handle SIGABRT and SIGSEGV

	It is not reproducible to catch SIGABRT and SIGSEGV separately, so
	we overload those signals and return a EXIT_FAILURE.

	* FIX: tests/check_sider_*.c: libcheck version

	Drop 'setup_signal' and use native 'libcheck' to handle signals and exit
	codes.

2022-11-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: ci.yml: Deprecating save-state

	Move from echo echo "::set-output name={name}::{value}" to
	echo "{name}={value}" >> $GITHUB_OUTPUT.

	* ADD: README.pm: Docker badge

	* ADD: ci.yml (paths): Filter.c, .h and Dockerfile

	* ADD: ci.yml (docker): Build and deploy image

	* CHANGE: ci_meson.yml: ci.yml

2022-11-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: db_merge.c (db_merge): 'in-place' error

	When using the option '--in-place', all the databases are merged into
	the first one of the list. In order to avoid that the same exon is
	stored twice, we index the values in a hash. An error arise about the
	'ense id', because the values already stored in the database to merge
	to are not taken into acount.

	Try to fix it indexing the pre-recorded values before starting to merge
	the databases.

	* CHANGE: README.md: Drop travis, dockerhub badges

	* REMOVE: .travis.yml: Migrate to github actions

	* ADD: .github/workflows/ci_meson.yml

2022-06-17 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* UPDATE: CITATION.cff: Citing article

	Citing article instead of software. Use the 'preferred-citation' in
	order to make Github show the citation of the published paper.

2022-06-16 Author Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: CITATION.cff: Citation File Format (CFF)

2021-08-13 bioinfomochsl <dtohara@mochsl.org.br>

	* Merge pull request #2 from ceciliaromaro/patch-3

	Update usage.rst

	* Merge pull request #3 from ceciliaromaro/patch-2

	Update install.rst

	* Merge pull request #4 from ceciliaromaro/patch-1

	Update README.md

2021-08-06 ceciliaromaro <31550800+ceciliaromaro@users.noreply.github.com>

	* Update usage.rst

	bellow -> below
	Tips
	Memory consumption warning.

	* Update install.rst

	$ sudo apt install meson

	Or "$ pip3 install --user meson" But in this case, remember to set the environment
	variables.

2021-08-03 ceciliaromaro <31550800+ceciliaromaro@users.noreply.github.com>

	* Update README.md

	The command "pip3 install --user meson" may require setting the environment variable.
	This one "sudo apt install meson" doesn't require it.

2020-08-11 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 1.0.0

	* UPDATE: AUTHORS, docs/authors.rst: Author names

	* ADD: README.md (Citation): Citation in BibTeX

	* ADD: *.[ch]: Attach the copying notices header

	* ADD: docs/intro.rst (Citation): Citation in BibTeX

	* UPDATE: docs/usage.rst (General Syntax)

	* UPDATE: docs/result.rst (Results)

	* UPDATE: check_sider_main.c (main): Control log

	Enable and disable log verbosity according to the environment variable
	in the macro LOG_DEBUG_KEY

	* CHANGE: merge_call.c (DEFAULT_SUPPORT): 1

	Disbale reclustering (support filtering) by default

	* FIX: vcf.c (genotype_likelihood): 0,0,0

	Set genotype to ./. when the probabilities are 0,0,0

2020-08-05 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* UPDATE: fasta.c: Use 'gz' interface

	* CHANGE: gz.c: Make (GzFile *) public

	* UPDATE: gff.c: Use 'gz' interface

	* UPDATE: bed.c: Use 'gz' interface

2020-08-03 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: utils.c (buf_expand, entry_set): Control buf

	Remove duplicated code by adding these functions to the utils.c

2020-08-01 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: gz.c: Add wrapper for libz

2020-07-29 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: main.c (print_citation): Show citation

	Add citation option. Print it in BibTeX format

	* FIX: vcf.c (genotype_likelihood): Be conservative

	Restructure the genotyping. Compare doubles using 'fequal' and when in
	case of equality, follow the table:

	HOR HET HOA GENOTYPE
	2   2   2   0/1
	2   2   1   0/0
	2   1   2   0/0
	1   2   2   0/1

	* ADD: utils.c (fequal): Compare float points

	* UPDATE: process_sample.c, docs/usage.rst: Help

	Update the argument 'annotation-file' help. Explain about the fields
	required and about the lines that are filtered

2020-07-28 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: gff.c (gff_read): Spaces into GTF attr

	Solve bug when reading GTF, possibly GFF3 as well, and there is a space
	into the attr value: gene_name "My gene name". Now, the attr value will
	correctly split it as: key=gene_name and value='My gene name'

2020-07-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* UPDATE: docs/result.rst: Start of text/imgs/codes

2020-07-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: .travis.yml: meson version

	meson 0.55.0 fails when the option '-Db_coverage=true' is set

	* ADD: docs/intro.rst: Add CRAM

	* ADD: docs/method.rst: A new paragraph at beginning

2020-07-22 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: docs/usage.rst (A Practical Workflow)

	Now sideRETRO works with CRAM format, so fix and update this example of
	usage

	* ADD: docs/usage.rst (Dealing with CRAM format)

	* UPDATE: *.c: Include CRAM to the input files

	* FIX: main.c: Typo in the help message

	* FIX: meson.build: This closes #1

	* UPDATE: docs/conf.py: Update year

2020-05-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: abnormal.c (dump_alignment): (long) core.pos

	core.pos, in more recent versions of htslib, is declared as long int,
	and not as int. So, cast core.pos to long int, in order to avoid gcc
	warnings

2020-04-02 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: abnormal.c (sam_rewind): Working with CRAM

2020-03-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.14.1

	* FIX: meson.build: Make config.h before compiling

	'config.h' is dynamically generated from template 'config.h.in', so it
	need to be made before compiling. In order to assure the required order,
	declare 'config.h' as a dependency of library and executable

2020-03-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: intro.rst (Features): Typo in 'Strandness'

	* FIX: merge_call.c (merge_call_init): phred_quality

	Set .phred_quality attribute to the default value at macro
	DEFAULT_PHRED_QUALITY. Previous it was set to 0

2020-01-31 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: Dockerfile: Install git

2020-01-04 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: docs/meson.build (doc_images): barbara.jpg

2019-12-31 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.14.0

2019-12-30 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: make_vcf.c: Aspell fix spelling errors

	* FIX: merge_call.c: Aspell fix spelling errors

	* FIX: process_sample.c: Aspell fix spelling errors

	* FIX: docs/*.rst: Aspell fix spelling errors

	* FIX: usage.rst (A Practical Workflow): Analysis results

	* ADD: analyser.pl

2019-12-30 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: intro.rst: Functionalities -> Features

	* CHANGE: README.md: Getting Started

2019-12-29 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: intro.rst: Typo

	* ADD: README.md: Documentation

	* ADD: retrocopy.rst: Complete references

	* ADD: usage.rst: Usage and examples

	* ADD: result.rst: Finish analysis topic

	* ADD: result.rst: Download simulation data

	* ADD: result.rst: Analysis confusion matrix

2019-12-28 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: result.rst: Analysis heatmap image

	* ADD: result.rst: Running sideRETRO

2019-12-27 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: result.rst: Dataset and simulation topics

2019-12-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: retrocopy.rst: Retrocopy in a nutshell

2019-12-25 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: README.md: Dockerhub badge

	* ADD: Dockerfile: docker image

	* FIX: method.rst: Change Wikipedia to paper links

	* CHANGE: footer.html: Style of button = normal

2019-12-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: footer.html: Extend RTD footer with COPYING message

	* ADD: legalcode.txt: COPYING for documentation

	* CHANGE: method.rst: References + Further Reading

2019-12-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: method.rst: Orientation

2019-12-22 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: method.rst (Genotype): More details and image

	Explain in more details the genotype likelihoods, including the formula
	derivations and an illustrative image

2019-12-20 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: method.rst: Genotype

2019-12-11 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: method.rst: Clustering

2019-12-09 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: method.rst: Abnormal alignments

2019-12-06 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: intro.rst: Host gene and make-vcf subcommand

2019-11-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: install.rst: Add 'Installing Meson'

2019-11-19 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: README.md: Add sideRETRO logo

	* ADD: logo_sideRETRO.png

	* ADD: install.rst: Installation page

	* FIX: intro.rst: How it works

	* ADD: README.md: readthedocs badge

	* ADD: intro.rst: Introduction page

2019-11-16 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: docs: Documentation using sphinx

2019-12-25 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: make_vcf.c: Improve help message

	* ADD: merge_call.c: Improve help and defaults

	* ADD: process_sample.c: Improve help and defaults

	* ADD: main.c: Improve help message

2019-12-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: utils.c (path_file): Remove extension at last dot

2019-12-19 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: retrocopy.c: Same parental in overlapped rtc

	When two overlapped clusters share the same parental gene - maybe the
	edge points are reachable, not core points (DBSCAN) - it would be
	annotated as overlapped parentals. Now it will be annotated as PASS and
	the parental gene name wont be duplicated (e.g. PTEN/PTEN)

	* FIX: genotype.c (cross_insertion_point): ref evid

	Evidence for reads covering the reference allele is calculated now by
	the overlapping between read range and insertion point +/- read half
	decil. It is necessary in order to avoid superextimation of reads
	covering the reference allele due to mapping errors

2019-12-06 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* REMOVE: genotype.c, merge_call.c: --crossing-reads

	* ADD: process_sample.c, merge_call.c: Final messages

2019-12-05 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: db.c, genotype.c vcf.c: INFO DP2

	Add reference and alternate depth counts to VCF's info

2019-12-03 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: db.c, genotype.c, vcf.c: Genotype likelihood

	Implement the genotype estimation by using the likelihood approach as it
	is defined in Heng Li paper: "A statistical framework for SNP calling,
	mutation discovery, association mapping and population genetical
	parameter estimation from sequencing data - 2.2 (eq2)"

2019-11-28 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.13.0

2019-11-27 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: make_vcf.c: make-vcf command

	* FIX: vcf.c: Some typos in variable names

2019-11-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: genotype.c (genotype): phred_qualit

	Filter reads crossing insertion point also by phred quality score

2019-11-25 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: vcf.c: Change fprintf  to xfprintf

	* FIX: vcf.c (vcf_print_header): Add array_free()

	* ADD: check_sider_vcf.c: Tests for vcf.c interface

	* ADD: vcf.c (vcf_index_fasta): VCF's REF field

	Index FASTA file if passed by the user and use it for annotate the REF's
	field. Also include the contig metadata at the header for each
	chromosome

	* ADD: fasta.c interface: Read FASTA file

	* ADD: str.h (string_reset): Macro for reset string

	* FIX: str.c (string_concat): strncat -> memcpy

	strncat is too slow, so implement concatenation with memcpy

2019-11-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: vcf.c: Print host information

	Add INFO: EXONIC, INTRONIC and NEAR. EXONIC/INTRONIC annotate host gene
	detail. We choose to use separated flags, because a retrocopy can be
	exonic and intronic at the same time - Overlapped parental genes,
	multiple isoforms. NEAR is used for intergenic retrocopy near some
	gene

2019-11-21 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: vcf.c interface. Write VCF file as output

2019-11-19 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: db.c, genotype.c: (reference_depth)

	Save the reference depth for the absence of a retrocopy event. It will
	be useful later when making the annotated outputs

2019-11-16 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: merge_call.c (merge_call_print)

	* ADD: process_sample.c (process_sample_print)

2019-11-15 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: merge_call.c (MergeCall): struct

	* ADD: process_sample.c (ProcessSample): struct

	Add ProcessSample struct in order to hold all option values. Create
	methods to init, destroy and validate the data. This way, things get
	more organized and make it easier to dump the log values of the run

	* FIX: merge_call.c (merge_call): Stop if no cluster

	* FIX: process_sample.c, merge_call.c: Improve usage

2019-11-14 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.12.0

	* REMOVE: align.c, bwa.c: BWA subproject

	Remove bwa subproject, because it won't be used any longer

2019-11-13 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: .travis.yml: Change (-t) timeout 2 -> 3

	* ADD: genotype.c (dump_genotype): Save genotype

	* FIX: genotype.c (prepare_genotype_query_stmt)

	Add DISTINCT clause to SQL query in order to remove duplicated entries

	* ADD: merge_call.c (genotype): Genotyping step

	Add genotype step and its options: --threads and --crossing-reads

	* CHANGE: genotype.c: max_cross -> crossing_reads

	* ADD: retrocopy.c (retrocopy): Option for near gene

	Add option --near-gene-distance in order to make dynamic the MAX_DIST
	value

	* ADD: genotype.c (clean_genotype_table)

2019-11-12 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: genotype.c (zygosity): hts_idx_destroy

	Clean up memmory leak in hts_idx_t

	* FIX: check_sider_{genotype,gff,wrapper}.c

	Memmory leaks in test

	* FIX: .travis.yml: Turn off libcheck timeout

	* ADD: check_sider_genotype.c test

	* ADD: genotype.c (max_cross, db_insert_genotype)

	Add option max_cross (override MAX_CROSS). And finally, dump genotype to
	database

	* ADD: db.c (db_{prepare,insert}_genotype): genotype

2019-11-11 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: README.md (coveralls badge): master branch

	* ADD: genotype.c (zygosity_{indexed,linear}_search)

	If the BAM index is found, perform a fast search for each retrocopy
	region, else index all regions inside an intervalar tree and make a slow
	linear search all over the file

2019-11-09 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: genotype.c interface

	* FIX: retrocopy.h: include db.h

2019-11-07 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.11.0

	* ADD: process_sample.c: --deduplicate option

	* ADD: merge_call.c (merge_call): Run retrocopy step

	* ADD: cluster.c (prepare_query_stmt): test type

	The dedup step set the alignment type to ABNORMAL_NONE flag if the read
	is a duplication. So, in the clustering step, it is necessary to avoid
	using those duplicated reads

	* ADD: check_sider_dedup.c test

2019-11-04 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: dedup.c interface: Remove duplicated reads

	Add deduplication capability. Remove duplicated reads but one, which is
	called the primary read. Other tools, specilized in remove duplications,
	use some metric to choose the primary reads. For us, it is just
	interesting the coordinates, so the primary reads are choosen randomly -
	mostly the first one to appear

	* ADD: abnormal.c (abnormal_classifier): Dup filter

	Add filter for PCR or optical duplicated reads

2019-10-31 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: cluster.c, retrocopy.c (qname, source_id idx)

	There is the possibility that different BAM files share reads with the
	same query name. In order to avoid a mess to find the right mate, use
	the source_id along with qname when required to match reads from the
	same fragment

2019-10-27 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: retrocopy.c (clean_retrocopy_tables)

	* ADD: retrocopy.c (calculate_orientation)

	* FIX: meson.build: sqlite3 version 3.28.0

	Change sqlite3 minimum version to 3.28.0 in order to support RANK()
	functions

	* ADD: check_sider_retrocopy.c test

	Add test for 'retrocopy.c'. Also '.travis.yml' now prints all relevant
	error logs

	* ADD: retrocopy.c (merge_cluster)

	Add merge_cluster function in order to populate 'cluster_merging' table
	and classify retrocopy level.

	Begin annotate_retrocopy function. For now it is capable to calculate
	the insertion point

	* ADD: db.c (db_{prepare, insert}_retrocopy)

2019-10-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.10.0

	* FIX: cluster.c (cluster): Clean tables before run

	Clean clustering tables if a db exists in mc step

	* CHANGE: process_sample.c: --max-base-frac -> freq

	* FIX: cluster.c (prepare_filter_support_stmt): sid

	Fix query statement by adding cluster.sid to grouping by

	* CHANGE: merge_call.c (--gff-feature): -F -> -T

	* ADD: gff.h (gff_filter_[hard|soft]_attribute_size)

2019-10-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: cluster.c, merge_call.c: --blacklist-padding

	Option to increase the blacklisted regions (left and right) by N bases

2019-10-22 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: check_sider_blacklist.c

	* ADD: exon.c (exon_tree_index_dump): GffFilter

	* FIX: cluster.c (prepare_query_stmt): rlen == 0

	* ADD: blacklist.c, merge_call.c: GffFilter

	* ADD: gff.c (gff_filter_insert_feature)

2019-10-21 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: abnormal.c (dump_alignment): rlen == 0

	* ADD: gff.c (gff_looks_like_gff_file): GFF filename

	Test if the filename seems to belong to a GFF/GFF3/GTF file

	* FIX: db.c (db_create_tables): Composite PK

	Add cluster_sid references cluster(sid) to foreign keys and primary keys
	into the table 'cluster_merging'

2019-10-20 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: cluster.c, db.c, blacklist.c: Filter column

	Add cluster filter: CHR, DIST, REGION, SUPPORT, NONE. The philosophy now
	is to keep all clusters and subclusters and add a new column to handle
	the filtering steps

2019-10-15 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: gff.c (gff_filter_*)

	Add gff filtering capabilities. The user must initiate a type GffFilter
	with the feature_type to be filtered (e.g. gene, transcript, exon) and
	may add attributes aswell (e.g. gene_type=protein_coding). The
	attributes are hard and soft - which mean, hard attributes must all
	match the pattern (AND); soft attributes, at least, must match one
	pattern (OR).

	Increase the 'gff.c' testing coverage and change the function name
	'gff_open' to 'gff_open_for_reading'

2019-10-14 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: blacklist.c

	Add blacklist interface and tables blacklist, overlapping_blacklist. The
	interface was inspired in 'exon.c' way. Also add more command-line
	options for indexing blacklisted regions from GTF/GFF3/BED files

2019-10-12 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: bed.c: Handle BED file format

2019-10-10 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: cluster.c (reclustering): genotype support

	Add reclustering step in order to filtering low number of reads comming
	from a given source (BAM). When those reads are removed, may occur that
	the cluster become rarefied, and therefore, invalid according to DBSCAN
	constraints.

	The option --genotype-support has been added to control the low number
	of reads comming from a source

2019-10-07 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: log.h (__FILENAME__): Macro for filename

	* CHANGE: db.c, cluster.c (cluster table)

	Move gene_name from clustering to cluster and add the window start and
	end information

2019-10-06 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: db.c (schema table)

	Change DB_SCHEMA_VERSION (float) by two integer values (%d.%d)
	DB_SCHEMA_MAJOR_VERSION and DB_SCHEMA_MINOR_VERSION

2019-10-05 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.9.0

	* FIX: cluster.c, db.c, merge_call.c, recluster.c

	Remove 'recluster.c' and merge its functionality to 'cluster.c'.

	Catch all alignments whose mate overlaps a given exon and filter them
	by: blacklisted chromosomes (e.g. chrM); read cannot be exonic from its
	own parental; distance from its own parental gene.

	Reshape database schema removing reclustering table and add retrocopy
	and related tables to make relation among retrocopies and clusters

2019-09-30 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: correlation.c interface

	Add statistics pearson and spearman correlation brought from GSL

2019-09-29 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: db.c (db_create_tables): foreign key

2019-09-25 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: process_sample.c: int -> float max_base_frac

	* ADD: abnormal.c, process_sample.c (max-base-frac)

	Filter reads according to the base frequency fraction in order to avoid
	aligments against genome repetitive motifs

2019-09-22 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: cluster.c (prepare_query_stmt): blacklist_chr

	Avoid clusters from and to the chromosomes into blacklist_chr set

2019-09-16 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: dbscan.c (dbscan_cluster): Same point shared

	* DBSCAN is not entirely deterministic: border points that are
	reachable from more than one cluster can be part of either
	cluster, depending on the order the data are processed.
		(Wikipedia)

	* Fix the REACHABLE points which are shared among multiple clusters

2019-09-15 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: db.c (clustering table)

	Fix foreign key issue by adding the clustering id as part of the weak
	key. Add gene_name as parental_gene_name in order to facilitate future
	analysis

	* FIX: recluster.c (prepare_query_stmt): cluster_id

	Change cluster_id to id

	* FIX: merge_call.c (merge_call): reclustering_stmt

	Call db_finalise for reclustering_stmt

	* ADD: recluster.c interface

	Add reclustering step in order to validate the clusters found. The
	clusters will be analysed according to distance from, number of, and
	number of reads for reclustering each putative parental gene

2019-09-13 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: db.c: reclustering table

	Add reclustering table to hold validated clustering entries

	* CHANGE: db.c (db_insert_clustering): rm cluster_id

	Remove cluster_id from clustering table schema. Now it became a weak
	entity

	* ADD: merge_call.c, cluster.c (blacklist_chr)

	Add option to avoid clustering at certain chromosomes. By default it
	avoides 'chrM'

	* ADD: set.c (set_is_member)

	* CHANGE: chr.c (CHR_BUFSIZ): 32

2019-09-10 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.8.0

	* CHANGE: INSTALL.md -> INSTALL

	* ADD: meson.build (vcs_tag)

	Dynamically generate the VERSION macro according to git tag and commit
	SHA-1

2019-09-09 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: exon.c (exon_tree_lookup_dump): Thread-safe

	The alignment_id was included inside ExonTree object, which in turn was
	shared among all threads. With no mutex, may occur shocking among all
	alignment_id values. In order to fix it, a new private struct keeps
	ExonTree and alignment_id separately

	* ADD: abnormal.c, exon.c, process_sample.c: loginfo

	Improve log messages for debugging and change attribute name num_threads
	in AbnormalArg to inc_step - this way is more descriptive about its
	function

2019-09-08 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: db.c (db_create_tables): source foreign key

	* CHANGE: Move from Autotools to Meson build system

	* REMOVE: Autotools

2019-09-06 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: cluster.c (index_alignment_qname)

	Add index for alignment qname for speed up query. Update
	prepare_query_stmt() in order to avoid the abnormal reads that
	fall into their on parental gene

2019-09-05 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: --phred-quality option

	Add phred quality score filter option in order to avoid low mapped
	quality reads

2019-08-31 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: dbscan.c (dbscan_cluster): List -> Set

	* Change List *seed to Set *seed in order to speed up union statement

	* REMOVE: set.c (set_insert_all, set_remove_all)

	* ADD: set.c: Set interface

	* ADD: hash.c (direct_hash, direct_equal)

2019-08-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: tests: checked fixtures

2019-08-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: hash.c: New extensible hash algorithm

	Move from chaining hash type to extensible hash. Now it has no need to
	declare the hash size in 'new' function, because it is dynamically
	allocated.

2019-08-15 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: configure.ac: -Wextra -Wpedantic

	* FIX: Remove -Wunused-variable

	* FIX: db_merge.c (db_merge): Remove *db2 redundancy

2019-08-14 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.7.0

2019-08-13 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: configure.ac (AM_INIT_AUTOMAKE)

	AM_INIT_AUTOMAKE(-Wall -Werror) and AM_PROG_AR macros

	* FIX: check_sider_*.c: Move log_set_quiet to main

	* ADD: db.c (db_{insert,check}_schema_version)

	Add a new table 'schema' with a single column called 'version'. Its
	function is keep track of the database schema state in a versioned way

2019-08-06 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: process_sample.c: max_distance, sorted

	Add CLI options --max-distance, --sorted. The former for getting a
	cutoff of maximum distance allowed between paired-end reads, and the
	last for considering all files queryname sorted

	* FIX: check_sider_abnormal.c (sam_{un}sorted)

	* FIX: cluster.c, merge_call.c: Remove typos

	* CHANGE: abnormal.c (parse_{sorted,unsorted}_sam)

	Change abnormal interface to handle sorted and unsorted SAM/BAM files

2019-08-01 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.6.0

	* ADD: check_sider_db_merge.c: Test db_merge.c

2019-07-31 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: check_sider_db.c: Test low-level and schema

	* ADD: check_sider_{utils,wrapper}.c: signal test

	* ADD: utils.c (setup_signal)

	Add setup_signal function to facilitate signal handling

	* ADD: wrapper.c (xsigaction)

	* ADD: check_sider_hash.c (test_hash_int)

2019-07-30 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: check_sider_wrapper.c

	Add tests for wrapper interface

	* ADD: check_sider_utils.c (equalstring, cmpstringp)

	* ADD: COVERALLS support via TravisCI

	* FIX: check_sider_cluster.c coverage

2019-07-29 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: bitree.c (bitree_traverse)

	Fix bitree inorder, preorder, postorder traverse

	* ADD: gff.c tests (gff_entry_dup)

	* ADD: merge_call.c: option --in-place

	* FIX: process_sample.c (cmpstringp)

	* ADD: array.c (array_data)

	* ADD: utils.c (cmpstringp, equalstring)

	* ADD: array.c (find, remove)

	Add array_find, array_find_with_equal_fun, array_remove and
	array_remove_index

2019-07-27 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* REMOVE: cluster.c (prepare_query_stmt)

	Remove unnecessary log_debug showing the sql statement compiled

	* ADD: db_merge.c interface

	Add db_merge function to merge all batchs into one SQLite3 database. The
	function aims to append new values without breaking foreign key
	constraints. The table 'exon' cannot hold duplicate values, so all
	values of the first database is inserted, whereas the following
	databases values are inserted if they are not present in the merged
	table

	* ADD: hash.c (int_hash, int_equal)

	* CHANGE: dbc: More wrappers on SQLite3

	Add low-level wrappers on SQLite3 functions in order to avoid so many
	testing against each statement. Now the sqlite3_stmt methods wrappers
	can be called just with its 'class' - no need to pass sqlite3 object as
	well

2019-07-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: cluster.c (prepare_query_stmt)

	Change SQL select statement, in order to catch the reads which
	falls into an exonic region and whose mate, as well, falls into an
	exonic region

	* ADD: check_sider_cluster.c testing  for cluster.c

2019-07-21 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: merge_call.c (merge_call): db_connect

	* ADD: cluster.c (cluster): Print number of clusters

	* ADD: merge-call command

	* ADD: cluster.c interface

	Add 'cluster' to handle DBSCAN calling

2019-07-20 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: db.c (db_{prepare,insert}_clustering)

	Add table 'clustering' to database in order to keep organized the
	possibilities of retrocopies found

	* ADD: dbscan.c interface

	* Add DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

2019-07-18 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: process_sample.c (parse_process_sample ..)

	Test for arguments and options just at the beggining of the function

	* ADD: main.c (main): Short alias to subcommands

	* ADD: db.c (db_create_tables): New table 'batch'

	Add a new table called 'batch', in order to keep a grouping relation
	among all SAM/BAM files processed at process-sample step

2019-07-17 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: CLI interface based in subcommands

	In db.c, remove the column 'name' from table 'source', so it requires
	only one id and the alignment file path.
	Finally, begin to implement CLI interface based in subcommands. For now
	there is only one subcommand working: 'process-sample'

	* ADD: logger.c interface

	logger interface handles log.c attributes, so it allocs mutex and open
	log file - dealing with the file pointer as well.

	* FIX: check_sider_abnormal.c: Remove gtf tempfile

	* ADD: utils.c (mkdir_p): Works similar to mkdir -p

	* ADD: wrapper.c (xmkdir)

	* ADD: io.c interface to handle input file

	Also fix tests for check_sider_process_sample.c - It was renamed from
	check_sider_sider.c

	* RENAME: sider.c -> process_sample.c

2019-07-12 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.5.0

	* ADD: check_sider_abnormal.c: Test for abnormal.c

	* ADD: check_sider_gff.c: Test for gff.c

2019-07-11 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: exon.c, thpool.c. FIX: abnormal.c

	Add thpool - thread pool interface to handle parallelism. The exon
	interface came to 'split' more the abnormal routine.
	The database interface for the table overlapping now includes columns
	for overlapping position and length.

	* FIX: sam.c: include "htslib/sam.h"

	* FIX: abnormal.c, db.c: -Wformat

2019-07-09 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: utils.c (upper, lower)

	* ADD: chr.c interface

	Add human chromosome standardization - according to gencode
	pattern: chr1, chrX, chrM etc.

	* ADD: configure.ac (AM_SILENT_RULES([yes]))

	Makefile less verbose! To return to the more verbose pattern:
	make V=1

2019-07-08 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: ibitree.c (ibitree_lookup)

	Add IBiTreeLookupData struct to hold node and interval ranges, plus the
	overlapping position and its length.

	* ADD: sam.c (sam_test_sorted_order)

	* FIX: hash.c, list.c: <config.h> -> "config.h"

2019-07-07 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: db.c (db_[prepare,insert]_source)

	Add table source to hold genotype information.
	Encloses writing functions with mutexes for thread-safety

2019-07-05 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: abnormal.c (dump_if_abnormal, dump_alignment)

	Fix weird type with chromosome and distance flags at the same fragment.
	Add flag type for exonic reads

2019-06-30 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: abnormal.c: exonic filter

	Change gene table to exon table in order to simplify insertion and
	querying. Add exonic filtering based in the interval search tree

2019-06-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: sqlite3.c interface

	Include sqlite-amalgamation-3280000 to the source code. This way, it's
	not necessary to link against libsqlite3.so. According to the official
	SQLite documentation:
	"The use of the amalgamation is recommended for all applications"

	* ADD: check_sider_db.c

2019-06-23 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: str.c (string_clear)

	* ADD: gff.c (gff_entry_dup, gff_entry_copy)

	* ADD: db.c interface

	* CHANGE: abnormal.c

	Save all results into SQLite database

2019-06-14 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* CHANGE: ibitree (ibitree_lookup)

	ibitree_lookup () acceps now node_overlap_frac, interval_overlap_frac
	and either parameters. Those variables permit tunning searching:

	node_overlap_frac = fraction covered of node range when overlapped;
	interval_overlap_frac = fraction covered of interval range when
	overlapped;

	either = AND boolean is used by default, so node_overlap_frac AND
	interval_overlap_frac must be true in overlapping. If either is true, OR
	boolean is used instead of AND;

2019-06-01 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: str.c interface

	Add string interface and wrapper snprintf, vsnprintf functions. Also
	include some tests and fix utils.c (xstrdup_concat).
	Add gff interface to Makefile.am.

2019-05-27 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.4.0

	* ADD: gff.c (gff_attribute_find, gff_entry_copy)

2019-05-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: ibitree.c (lookup): Change return to void

	* FIX: ibitree.c (rotate_left,rotate_right)

	Fix bug in rotate_left and rotate_right. Update
	the max attribute after the node rotation.

2019-05-16 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: check_sider_utils.c: (test_xasprintf_concat,test_xstrdup_concat)

	* FIX: utils.c (xstrdup_concat): memset

2019-05-14 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: gff.c (gff_read): Number of line and fields check

	* ADD: utils.c (xstrdup_concat)

2019-05-13 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: gff.c: GFF/GTF interface

	* ADD: utils.c (trimc)

2019-04-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: ibitree.c interface (interval tree)

	* REMOVE: BiFunc, CompareFunc. ADD: bitree_traverse

2019-04-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: bitree interface

2019-04-17 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: abnormal.c interface

2019-04-11 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: sam_sort.c from samtools (bam_sort.c)

2019-04-07 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: align interface to combine 'bwa mem' with 'samtools'

2019-04-07 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.3.0

	* ADD: local bwa mem interface

	* ADD: xfprintf, xputs, xfflush

	* ADD: build bwa

2019-04-06 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: git submodule bwa v0.7.17

	* FIX: configure.ac: zlib checks

2019-04-05 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: local htslib building

	* ADD: more sugar wrappers

	* FIX: suit building to htslib submodule

2019-04-03 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: git submodule htslib

2019-04-02 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: sam interface

	* ADD: wrapper.c (xpopen, xpclose)

	* ADD: utils.c (xasprintf_concat)

	* ADD: log.h (log_fatal, log_errno_fatal, log_errno_error)

2019-03-30 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: utils.c (path_dir, path_file)

2019-03-29 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.2.0

	* ADD: hash.c: (hash_get_keys/values_as_list/array)

	* free () -> xfree ()

2019-03-28 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: array,utils,log interfaces

2019-03-27 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: hash.c: (hash_foreach, hash_iter_next): SegFault

2019-03-26 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: wrapper.c: (xasprintf)

	* ADD: hash.[ch]

	* ADD: testing for hash: check_sider_hash.c

2019-03-25 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* FIX: list.c (list_remove): leaks

2019-03-24 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* ADD: wrapper, list and types interfaces

2019-03-19 Thiago L. A. Miller <tmiller@mochsl.org.br>

	* Version 0.1.0

	* Initialize 'sideRETRO' project

	* Configure to autotools format

	* Add tests with framework 'check'
