Beispiel #1
0
static void showmatch(void *processinfo,const GtMatch *match)
{
  Showmatchinfo *showmatchinfo = (Showmatchinfo *) processinfo;
  unsigned long seqnum;
  Seqpos relpos;

  if (match->dbabsolute)
  {
    Seqinfo seqinfo;

    seqnum = getencseqfrompos2seqnum(showmatchinfo->encseq,match->dbstartpos);
    getencseqSeqinfo(&seqinfo,showmatchinfo->encseq,seqnum);
    gt_assert(seqinfo.seqstartpos <= match->dbstartpos);
    relpos = match->dbstartpos - seqinfo.seqstartpos;
  } else
  {
    relpos = match->dbstartpos;
    seqnum = match->dbseqnum;
  }
  printf("%lu\t" FormatSeqpos "\t",seqnum,PRINTSeqposcast(relpos));
  printf(FormatSeqpos "\t",PRINTSeqposcast(match->dblen));
  printf("\t" Formatuint64_t "\t%lu\t%lu\t%lu\n",
              PRINTuint64_tcast(showmatchinfo->queryunit),
              match->querystartpos,
              match->querylen,
              match->distance);
  if (showmatchinfo->showalignment)
  {
    gt_alignment_show_with_mapped_chars(
                (const GtAlignment *) match->alignment,
                showmatchinfo->characters,
                showmatchinfo->wildcardshow,
                stdout);
  }
}
Beispiel #2
0
void showinfoiffoundfullLTRs(const LTRharvestoptions *lo,
                             const LTRboundaries **bdptrtab,
                             unsigned long numofboundaries,
                             const Encodedsequence *encseq)
{
  Seqinfo seqinfo;
  unsigned long i;

  if (lo->longoutput)
  {
    if (numofboundaries == 0)
    {
      printf("No full LTR-pair predicted.\n");
    } else
    {
      printlongheader(lo);
      /* print output sorted by contignumber*/
      for (i = 0; i<numofboundaries; i++)
      {
        getencseqSeqinfo(&seqinfo,encseq,bdptrtab[i]->contignumber);
        producelongutput(lo,
                         bdptrtab[i],
                         encseq,
                         seqinfo.seqstartpos);
      }
    }
  } else
  {
    if (numofboundaries > 0)
    {
      printshortheader();
      /* print output sorted by contignumber*/
      for (i = 0; i<numofboundaries; i++)
      {
        getencseqSeqinfo(&seqinfo,encseq,bdptrtab[i]->contignumber);
        produceshortoutput(bdptrtab[i],seqinfo.seqstartpos);
      }
    }
  }
}