// ============================================================================ string CGtfRecord::x_MrnaToProduct( CMappedFeat mapped_feature ) // ============================================================================ { const CRNA_ref& rna = mapped_feature.GetData().GetRna(); if ( rna.IsSetExt() && rna.GetExt().IsName() ) { return rna.GetExt().GetName(); } return ""; }
// ============================================================================ string CGtfRecord::x_CdsToCode( CMappedFeat mapped_feature ) // ============================================================================ { const CCdregion& cdr = mapped_feature.GetData().GetCdregion(); if ( cdr.IsSetCode() ) { return NStr::IntToString( cdr.GetCode().GetId() ); } return ""; }
// ============================================================================ string CGtfRecord::x_GenericTranscriptId( CMappedFeat mapped_feat ) // ============================================================================ { static unsigned int uId = 1; string strTranscriptId = string( "unknown_transcript_" ) + NStr::UIntToString( uId ); if ( mapped_feat.GetData().GetSubtype() == CSeq_feat::TData::eSubtype_cdregion ) { uId++; } return strTranscriptId; }
// ============================================================================ string CGtfRecord::x_GenericGeneId( CMappedFeat mapped_feat ) // ============================================================================ { static unsigned int uId = 1; string strGeneId = string( "unknown_gene_" ) + NStr::UIntToString( uId ); if ( mapped_feat.GetData().GetSubtype() == CSeq_feat::TData::eSubtype_gene ) { uId++; } return strGeneId; }
// ============================================================================ string CGtfRecord::x_GeneToGeneId( CMappedFeat mapped_feature ) // ============================================================================ { const CGene_ref& gene = mapped_feature.GetData().GetGene(); if ( gene.IsSetLocus_tag() ) { return gene.GetLocus_tag(); } if ( gene.IsSetSyn() ) { return gene.GetSyn().front(); } return x_GenericGeneId( mapped_feature ); }
// ============================================================================ string CGtfRecord::x_GeneToGeneSyn( CMappedFeat mapped_feature ) // ============================================================================ { const CGene_ref& gene = mapped_feature.GetData().GetGene(); if ( ! gene.IsSetSyn() ) { return ""; } if ( gene.IsSetLocus_tag() ) { return gene.GetSyn().front(); } CGene_ref::TSyn::const_iterator it = gene.GetSyn().begin(); ++it; if ( it != gene.GetSyn().end() ) { return *it; } return ""; }