AjBool ensIntronTrace(const EnsPIntron intron, ajuint level) { AjPStr indent = NULL; if(!intron) return ajFalse; indent = ajStrNew(); ajStrAppendCountK(&indent, ' ', level * 2); ajDebug("%SensIntronTrace %p\n" "%S Feature %p\n" "%S PreviousExon %p\n" "%S NextExon %p\n" "%S Use %u\n", indent, intron, indent, intron->Feature, indent, intron->PreviousExon, indent, intron->NextExon, indent, intron->Use); ensFeatureTrace(intron->Feature, level + 1); ensExonTrace(intron->PreviousExon, level + 1); ensExonTrace(intron->NextExon, level + 1); ajStrDel(&indent); return ajTrue; }
AjBool ensKaryotypebandTrace(const EnsPKaryotypeband kb, ajuint level) { AjPStr indent = NULL; if(!kb) return ajFalse; indent = ajStrNew(); ajStrAppendCountK(&indent, ' ', level * 2); ajDebug("%SensKaryotypebandTrace %p\n" "%S Adaptor %p\n" "%S Identifier %u\n" "%S Feature %p\n" "%S Name '%S'\n" "%S Stain '%S'\n", indent, kb, indent, kb->Adaptor, indent, kb->Identifier, indent, kb->Feature, indent, kb->Name, indent, kb->Stain); ensFeatureTrace(kb->Feature, 1); ajStrDel(&indent); return ajTrue; }