使用网状结构将一段简单的python代码翻译成R

2024-10-01 02:36:19 发布

您现在位置:Python中文网/ 问答频道 /正文

这里有一个{}{}新手问题

我正在尝试翻译一个简单的python代码,它使用biopython使用reticulate{}包将genbank文件解析为R

以下是python代码:

from Bio import SeqIO
filename = "example.protein.gpff"
for record in SeqIO.parse(filename, "genbank"):
    for feature in record.features:
        if feature.type == "CDS":
            locus_tag = feature.qualifiers.get("locus_tag", ["???"])[0]

这里是一个en示例genbank文件,它有重复的record(由//分隔),其中每个record都有一个FEATURES节,其中包含几个固定字段,例如sourceCDSRegion,这些字段引用了特定于该record的信息:

LOCUS       NP_001346895             208 aa            linear   PRI 20-JAN-2018
DEFINITION  intercellular adhesion molecule 2 precursor [Cercocebus atys].
ACCESSION   NP_001346895
VERSION     NP_001346895.1
DBSOURCE    REFSEQ: accession NM_001359966.1
KEYWORDS    RefSeq.
SOURCE      Cercocebus atys (sooty mangabey)
  ORGANISM  Cercocebus atys
            Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
            Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;
            Catarrhini; Cercopithecidae; Cercopithecinae; Cercocebus.
REFERENCE   1  (residues 1 to 208)
  AUTHORS   Palesch D, Bosinger SE, Tharp GK, Vanderford TH, Paiardini M,
            Chahroudi A, Johnson ZP, Kirchhoff F, Hahn BH, Norgren RB, Patel
            NB, Sodora DL, Dawoud RA, Stewart CB, Seepo SM, Harris RA, Liu Y,
            Raveendran M, Han Y, English A, Thomas GWC, Hahn MW, Pipes L, Mason
            CE, Muzny DM, Gibbs RA, Sauter D, Worley K, Rogers J and Silvestri
            G.
  TITLE     Sooty mangabey genome sequence provides insight into AIDS
            resistance in a natural SIV host
  JOURNAL   Nature 553 (7686), 77-81 (2018)
   PUBMED   29300007
COMMENT     VALIDATED REFSEQ: This record has undergone validation or
            preliminary review. The reference sequence was derived from
            KY308194.1.

            ##Evidence-Data-START##
            Transcript exon combination :: KY308194.1 [ECO:0000332]
            RNAseq introns              :: single sample supports all introns
                                           SAMN02045730, SAMN03085078
                                           [ECO:0000348]
            ##Evidence-Data-END##
FEATURES             Location/Qualifiers
     source          1..208
                     /organism="Cercocebus atys"
                     /db_xref="taxon:9531"
     Protein         1..208
                     /product="intercellular adhesion molecule 2 precursor"
                     /calculated_mol_wt=21138
     sig_peptide     1..19
                     /inference="COORDINATES: ab initio prediction:SignalP:4.0"
                     /calculated_mol_wt=1999
     Region          24..109
                     /region_name="ICAM_N"
                     /note="Intercellular adhesion molecule (ICAM), N-terminal
                     domain; pfam03921"
                     /db_xref="CDD:252248"
     Region          112..>167
                     /region_name="Ig"
                     /note="Immunoglobulin domain; cl11960"
                     /db_xref="CDD:325142"
     CDS             1..208
                     /gene="ICAM2"
                     /coded_by="NM_001359966.1:1..627"
                     /db_xref="GeneID:105590766"
ORIGIN
        1 mssfgfgtlt malfalvccs gsdekafevh mrleklivkp kesfevncst tcnqpevggl
       61 etslnkilll eqtqwkhyli snishdtvlw chftcsgkqk smssnvsvyq pprqvfltlq
      121 ptwvavgksf tiecrvpave pldsltlsll rgsetlhsqt frkaapalpv lrelgmkfiq
      181 lcprrglagt mppsrpwcpa athwsqgc
//
LOCUS       NP_001280013             406 aa            linear   MAM 22-JAN-2018
DEFINITION  26S proteasome regulatory subunit 8 [Dasypus novemcinctus].
ACCESSION   NP_001280013 XP_004456848
VERSION     NP_001280013.1
DBSOURCE    REFSEQ: accession NM_001293084.1
KEYWORDS    RefSeq.
SOURCE      Dasypus novemcinctus (nine-banded armadillo)
  ORGANISM  Dasypus novemcinctus
            Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
            Mammalia; Eutheria; Xenarthra; Cingulata; Dasypodidae; Dasypus.
COMMENT     VALIDATED REFSEQ: This record has undergone validation or
            preliminary review. The reference sequence was derived from
            AAGV03083693.1.
            On May 28, 2014 this sequence version replaced XP_004456848.1.

            Sequence Note: The RefSeq transcript and protein were derived from
            genomic sequence to make the sequence consistent with the reference
            genome assembly. The genomic coordinates used for the transcript
            record were based on alignments.

            ##Evidence-Data-START##
            RNAseq introns :: mixed/partial sample support SAMN00668203,
                              SAMN00744121 [ECO:0000350]
            ##Evidence-Data-END##
FEATURES             Location/Qualifiers
     source          1..406
                     /organism="Dasypus novemcinctus"
                     /db_xref="taxon:9361"
     Protein         1..406
                     /product="26S proteasome regulatory subunit 8"
                     /calculated_mol_wt=45495
     Region          4..404
                     /region_name="RPT1"
                     /note="ATP-dependent 26S proteasome regulatory subunit
                     [Posttranslational modification, protein turnover,
                     chaperones]; COG1222"
                     /db_xref="CDD:224143"
     CDS             1..406
                     /gene="PSMC5"
                     /coded_by="NM_001293084.1:1..1221"
                     /db_xref="GeneID:101445299"
ORIGIN
        1 maldgpeqme leegkagsgl rqyylskiee lqlivndksq nlrrlqaqrn elnakvrllr
       61 eelqllqeqg syvgevvram dkkkvlvkvh pegkfvvdvd knidindvtp ncrvalrnds
      121 ytlhkilpnk vdplvslmmv ekvpdstyem iggldkqike ikevielpvk hpelfealgi
      181 aqpkgvllyg ppgtgktlla ravahhtdct firvsgselv qkfigegarm vrelfvmare
      241 hapsiifmde idsigssrle ggsggdsevq rtmlellnql dgfeatknik vimatnridi
      301 ldsallrpgr idrkiefppp neearldilk ihsrkmnltr ginlrkiael mpgasgaevk
      361 gvcteagmya lrerrvhvtq edfemavakv mqkdseknms ikklwk
//

以下是我对其R翻译的失败尝试:

library(reticulate)
si <- reticulate::import("Bio.SeqIO")
gb.fn <- "example.protein.gpff"
for(r in si$parse(gb.fn, "genbank")){
  for(f in r$features){
    if(f$type == "CDS"){
      locus.tag <- f$qualifiers$get("locus_tag", ["???"])[0]
    }
  }
}

我得到的错误是:

Error in for (r in si$parse(gb.fn, "genbank")) { :
  invalid for() loop sequence

但是带有locus.tag的行也是错误的,因为RStudio将其标记为syntax错误

我正在尝试翻译成R,因为我对python不是很精通,但是this post是我的python尝试解析这个文件,所以在这两个方面都会有很大帮助


Tags: infromfordbtagnprecordsequence