Пример #1
0
//  ----------------------------------------------------------------------------
void CFeatTableEdit::GenerateLocusTags()
//  ----------------------------------------------------------------------------
{
    CRef<CGb_qual> pLocusTag;

    SAnnotSelector selGenes;
    selGenes.IncludeFeatSubtype(CSeqFeatData::eSubtype_gene);
    CFeat_CI itGenes(mHandle, selGenes);
    for ( ; itGenes; ++itGenes) {
        string locusTagVal = itGenes->GetNamedQual("locus_tag");
        if (!locusTagVal.empty()) {
            continue;
        }
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(
                                     (itGenes)->GetOriginalFeature()));
        feh.AddQualifier("locus_tag", xNextLocusTag());
    }
    SAnnotSelector selOther;
    selOther.ExcludeFeatSubtype(CSeqFeatData::eSubtype_gene);
    CFeat_CI itOther(mHandle, selOther);
    for ( ; itOther; ++itOther) {
        const CSeq_feat& feat = itOther->GetOriginalFeature();
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(
                                     (itOther)->GetOriginalFeature()));
        feh.RemoveQualifier("locus_tag");
        CConstRef<CSeq_feat> pGeneParent = xGetGeneParent(feat);
        if (!pGeneParent) {
            continue;
        }
        string locusTag = pGeneParent->GetNamedQual("locus_tag");
        feh.AddQualifier("locus_tag", locusTag);
    }
}
Пример #2
0
//  ----------------------------------------------------------------------------
void CFeatTableEdit::GenerateOrigProteinAndOrigTranscriptIds()
//  ----------------------------------------------------------------------------
{
    // that's for cds's.
    SAnnotSelector sel;
    sel.IncludeFeatSubtype(CSeqFeatData::eSubtype_cdregion);
    CFeat_CI it(mHandle, sel);
    for ( ; it; ++it) {
        const CSeq_feat& cds = it->GetOriginalFeature();
        string proteinId = cds.GetNamedQual("protein_id");
        string transcriptId = cds.GetNamedQual("transcript_id");
        CConstRef<CSeq_feat> pParentRna = xGetMrnaParent(cds);
        if (!pParentRna) {
            continue;
        }
        CRef<CSeq_feat> pEditedRna(new CSeq_feat);
        pEditedRna->Assign(*pParentRna);
        CRef<CGb_qual> pOrigProteinId(new CGb_qual);
        pOrigProteinId->SetQual("orig_protein_id");
        pOrigProteinId->SetVal(proteinId);
        pEditedRna->SetQual().push_back(pOrigProteinId);
        CRef<CGb_qual> pOrigTranscriptId(new CGb_qual);
        pOrigTranscriptId->SetQual("orig_transcript_id");
        pOrigTranscriptId->SetVal(transcriptId);
        pEditedRna->SetQual().push_back(pOrigTranscriptId);
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(*pParentRna));
        feh.Replace(*pEditedRna);
    }
}
Пример #3
0
//  ----------------------------------------------------------------------------
void CFeatTableEdit::GenerateProteinAndTranscriptIds()
//  ----------------------------------------------------------------------------
{
    // that's for cds's.
    SAnnotSelector sel;
    sel.IncludeFeatSubtype(CSeqFeatData::eSubtype_cdregion);
    CFeat_CI it(mHandle, sel);
    for ( ; it; ++it) {
        const CSeq_feat& cds = it->GetOriginalFeature();
        string proteinId = xNextProteinId(cds);
        string transcriptId = xCurrentTranscriptId(cds);
        if (proteinId.empty()) {
            continue;
        }
        CRef<CSeq_feat> pEditedCds(new CSeq_feat);
        pEditedCds->Assign(cds);
        CRef<CGb_qual> pProteinId(new CGb_qual);
        pProteinId->SetQual("protein_id");
        pProteinId->SetVal(proteinId);
        pEditedCds->SetQual().push_back(pProteinId);
        CRef<CGb_qual> pTranscriptId(new CGb_qual);
        pTranscriptId->SetQual("transcript_id");
        pTranscriptId->SetVal(transcriptId);
        pEditedCds->SetQual().push_back(pTranscriptId);
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(cds));
        feh.Replace(*pEditedCds);
    }
}
Пример #4
0
//  ----------------------------------------------------------------------------
void CFeatTableEdit::EliminateBadQualifiers()
//  ----------------------------------------------------------------------------
{
    typedef CSeq_feat::TQual QUALS;

    CFeat_CI it(mHandle);
    for ( ; it; ++it) {
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(
                                     (it)->GetOriginalFeature()));
        const QUALS& quals = (*it).GetQual();
        vector<string> badQuals;
        for (QUALS::const_iterator qual = quals.begin(); qual != quals.end();
                ++qual) {
            string qualVal = (*qual)->GetQual();
            CSeqFeatData::EQualifier qualType = CSeqFeatData::GetQualifierType(qualVal);
            if (qualType == CSeqFeatData::eQual_bad) {
                badQuals.push_back(qualVal);
            }
        }
        for (vector<string>::const_iterator badIt = badQuals.begin();
                badIt != badQuals.end(); ++badIt) {
            feh.RemoveQualifier(*badIt);
        }
    }
}
Пример #5
0
int main (){
  int start,end,lamda;
  int i,c;
  for(;;)
    {printf("1.input data\n2.Print data\n3.Quit\n\tYour Choice : ");
      scanf("%d",&c);
      switch(c) {
      case 1:
  printf("start point : ");scanf("%d",&start);
  printf("end point : ");scanf("%d",&end); 
  printf("lamda : ");scanf("%d",&lamda);
  break;
    case 2:
      printf("%c   %c\n",'C','F');
  for (i = start ; i <= end; i += lamda) printf("%d   %.2f\n",i,feh(i));
  break;
      case 3:return;}
}
  return 0;}
Пример #6
0
//  -------------------------------------------------------------------------
void CFeatTableEdit::InferParentMrnas()
//  -------------------------------------------------------------------------
{
    SAnnotSelector sel;
    sel.IncludeFeatSubtype(CSeqFeatData::eSubtype_cdregion);
    CFeat_CI it(mHandle, sel);
    for ( ; it; ++it) {
        const CSeq_feat& cds = it->GetOriginalFeature();
        CRef<CSeq_feat> pRna = edit::MakemRNAforCDS(cds, *mpScope);
        if (!pRna) {
            continue;
        }
        //find proper name for rna
        string rnaId(xNextFeatId());
        pRna->SetId().SetLocal().SetStr(rnaId);
        //add rna xref to cds
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(cds));
        feh.AddFeatXref(rnaId);
        //add new rna to feature table
        mEditHandle.AddFeat(*pRna);
    }
}
Пример #7
0
//  ----------------------------------------------------------------------------
void CFeatTableEdit::InferPartials()
//  ----------------------------------------------------------------------------
{
    edit::CLocationEditPolicy editPolicy(
        edit::CLocationEditPolicy::ePartialPolicy_eSetForBadEnd,
        edit::CLocationEditPolicy::ePartialPolicy_eSetForBadEnd,
        false, //extend 5'
        false, //extend 3'
        edit::CLocationEditPolicy::eMergePolicy_NoChange);

    SAnnotSelector sel;
    sel.IncludeFeatSubtype(CSeqFeatData::eSubtype_cdregion);
    CFeat_CI it(mHandle, sel);
    for ( ; it; ++it) {
        const CSeq_feat& cds = it->GetOriginalFeature();
        CRef<CSeq_feat> pEditedCds(new CSeq_feat);
        pEditedCds->Assign(cds);
        editPolicy.ApplyPolicyToFeature(*pEditedCds, *mpScope);
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(cds));
        feh.Replace(*pEditedCds);
    }
}
Пример #8
0
//  ---------------------------------------------------------------------------
void CFeatTableEdit::InferParentGenes()
//  ---------------------------------------------------------------------------
{
    SAnnotSelector sel;
    sel.IncludeFeatSubtype(CSeqFeatData::eSubtype_mRNA);
    CFeat_CI it(mHandle, sel);
    for ( ; it; ++it) {
        const CSeq_feat& rna = it->GetOriginalFeature();
        CRef<CSeq_feat> pGene = xMakeGeneForMrna(rna);
        if (!pGene) {
            continue;
        }
        //find proper name for gene
        string geneId(xNextFeatId());
        pGene->SetId().SetLocal().SetStr(geneId);
        //add gene xref to rna
        CSeq_feat_EditHandle feh(mpScope->GetObjectHandle(rna));
        feh.AddFeatXref(geneId);
        //add new gene to feature table
        mEditHandle.AddFeat(*pGene);
    }
}