# What is the table parameter in the UCSU ldHgGene tool?

I want to lift over the annotation from E. coli release 29 to E. coli release 42. I have followed the steps for an annotation liftover mentioned here. I got the chain file for the final step and ran:

liftOver -gff Escherichia_coli.GCA_000967155.1.gtf Chromosome.chain conversions.gtf unmapped.gtf

However, I get the following warning:

WARNING: -gff is not recommended.
Use 'ldHgGene -out=<file.gp>' and then 'liftOver -genePred <file.gp>'


I would like to heed the warning. However, I don't know how to use the ldHgGene tool. Here is its help page:

ldHgGene - load database with gene predictions from a gff file.
usage:
ldHgGene database table file(s).gff
options:
-bin         Add bin column (now the default)
-nobin       don't add binning (you probably don't want this)
-exon=type   Sets type field for exons to specific value
-oldTable    Don't overwrite what's already in table
-noncoding   Forces whole prediction to be UTR
-gtf         input is GTF, stop codon is not in CDS
-predTab     input is already in genePredTab format
-requireCDS  discard genes that don't have CDS annotation
table. Database is ignored.
-genePredExt create a extended genePred, including frame
information and gene name
-impliedStopAfterCds - implied stop codon in GFF/GTF after CDS


From what I understand, I am trying to give the liftOver tool the annotation in GenePred format instead of GTF format. So I need to convert the GTF format into a GenePred format and that's what the ldHgGene tool is for. So the command should be something like:

ldHgGene Escherichia_coli.GCA_000967155.1.gtf -out=Escherichia_coli.GCA_000967155.1.gp


but this returns nothing. The -out option does mean that the database parameter is not needed but the tool still seems to need the parameter table.

What is the table parameter?

I stumbled across this issue after getting the same warning message from liftOver. By using the -out option of lgHgGene, the database parameter is ignored but must still be provided. The table parameter should be the second column from your GTF file. Note that you must also specify the -gtf option (otherwise it expects GFF format). In my case, the GTF file looks like:

chr1    mm10_knownGene  exon    3073253 3074322 0.000000        +       .       gene_id "ENSMUST00000193812.1"; transcript_id "ENSMUST00000193812.1";
chr1    mm10_knownGene  exon    3102016 3102125 0.000000        +       .       gene_id "ENSMUST00000082908.1"; transcript_id "ENSMUST00000082908.1";
chr1    mm10_knownGene  exon    3206523 3207317 0.000000        -       .       gene_id "ENSMUST00000159265.1"; transcript_id "ENSMUST00000159265.1";
chr1    mm10_knownGene  exon    3213439 3215632 0.000000        -       .       gene_id "ENSMUST00000159265.1"; transcript_id "ENSMUST00000159265.1";
chr1    mm10_knownGene  exon    3205901 3207317 0.000000        -       .       gene_id "ENSMUST00000162897.1"; transcript_id "ENSMUST00000162897.1";
chr1    mm10_knownGene  exon    3213609 3216344 0.000000        -       .       gene_id "ENSMUST00000162897.1"; transcript_id "ENSMUST00000162897.1";
...


By default, ldHgGene outputs a leading 'bin' column which won't work with liftOver; this can be avoided with the -nobin option. So my command was:

ldHgGene -gtf -nobin -out=mm10.GENCODE_VM20.gp ignored mm10_knownGene mm10.GENCODE_VM20.gtf


The resulting genePred output can be fed directly into liftOver -genePred:

ENSMUST00000193812.1    chr1    +       3073252 3074322 3074322 3074322 1       3073252,        3074322,
ENSMUST00000082908.1    chr1    +       3102015 3102125 3102125 3102125 1       3102015,        3102125,
ENSMUST00000162897.1    chr1    -       3205900 3216344 3216344 3216344 2       3205900,3213608,        3207317,3216344,
ENSMUST00000159265.1    chr1    -       3206522 3215632 3215632 3215632 2       3206522,3213438,        3207317,3215632,