鱼C论坛

 找回密码
 立即注册
查看: 2173|回复: 9

[已解决]count函数咨询

[复制链接]
发表于 2023-12-1 10:42:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
文件“测试.txt”中的内容如下:
GWHAOPM00000765        EVM        gene        45928        49103        .        +        0        ID=OeCYP51G64a;Accession=GWHGAOPM050481; ;transl_table=1
GWHAOPM00000765        EVM        mRNA        45928        49103        .        +        0        ID=OeCYP51G64a.1;Accession=GWHTAOPM050481;Parent=OeCYP51G64a;Parent_Accession=GWHGAOPM050481; ;transl_table=1
GWHAOPM00000765        EVM        exon        45928        46049        .        +        0        ID=Contig001288_ERROPOS3153804__exon_45928_46049;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        CDS        45928        46049        .        +        0        ID=Contig001288_ERROPOS3153804__CDS_45928_46049;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;Protein_Accession=GWHPAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        exon        46433        46542        .        +        0        ID=Contig001288_ERROPOS3153804__exon_46433_46542;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        CDS        46433        46542        .        +        1        ID=Contig001288_ERROPOS3153804__CDS_46433_46542;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;Protein_Accession=GWHPAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        exon        46575        46801        .        +        0        ID=Contig001288_ERROPOS3153804__exon_46575_46801;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        CDS        46575        46801        .        +        2        ID=Contig001288_ERROPOS3153804__CDS_46575_46801;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;Protein_Accession=GWHPAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        exon        48105        49103        .        +        0        ID=Contig001288_ERROPOS3153804__exon_48105_49103;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;;transl_table=1
GWHAOPM00000765        EVM        CDS        48105        49103        .        +        0        ID=Contig001288_ERROPOS3153804__CDS_48105_49103;Parent=OeCYP51G64a.1;Parent_Accession=GWHTAOPM050481;Protein_Accession=GWHPAOPM050481;;transl_table=1
文件“测试1.txt”中的内容如下:
OeCYP51G64a
代码如下:
a = open('.\\测试.txt')
b = open('.\\测试1.txt')
c = open('.\\数量1.txt','w')

gff = a.readlines()
cyp = b.readlines()
shul = ['CYPname\texon\tintron\n']


for i in cyp:
    d = ''
    st = ''
    p450 = i.strip()
    for m in gff:
        if p450 in m:
            st += m
    d = p450 + '\t' + str(st.count('exon')/2) + '\t' +  str(st.count('exon')/2-1) + '\n'
    print(st)
    print(st.count('exon'))
    print(st.count('exon')/2)
    assert 3>4
    shul.append(d)
   

c.writelines(shul)
a.close()
b.close()
c.close()

问题:文件“测试.txt”中明明‘exon’出现的次数只有4次,为什么会被count成8次呢
最佳答案
2023-12-1 13:10:09
你这里单查exon  肯定是8个啊   你要查前后都有空格的 就是4个了

>>> len(re.findall("exon",ts))
8
>>> len(re.findall(" exon ",ts))
4
>>>
jg.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-12-1 10:54:12 | 显示全部楼层
FishC_GPT 发表于 2023-12-1 10:42
问题出在你的循环中,当找到匹配的行时,你将整行添加到了字符串`st`中。然而,在GFF文件中,属性信息是以 ...

分号(;)分隔为什么会导致计数重复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-1 11:00:32 | 显示全部楼层
FishC_GPT 发表于 2023-12-1 10:54
当你将`m`中的行按照分号(;)进行分割后,得到的是一个属性列表。如果某个属性中包含了关键字'exon',那 ...

在你举的例子中,
例如,假设属性列表为`['ID=Contig001288_ERROPOS3153804__exon_45928_46049', 'Parent=OeCYP51G64a.1', 'Parent_Accession=GWHTAOPM050481', '', 'transl_table=1']`,其中第一个属性即为'exon'。如果使用count方法计算'exon'的出现次数,会得到2,但实际上只有一个'exon'。
count方法分别是以怎样的标准计算了2次‘exon’,或者说,它计算的2个‘exon’分别是怎么数出来的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-1 14:05:01 | 显示全部楼层
wp231957 发表于 2023-12-1 13:10
你这里单查exon  肯定是8个啊   你要查前后都有空格的 就是4个了

>>> len(re.findall("exon",ts))

计数8个的时候,背后是什么逻辑咧?请大神展开讲讲
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-2 13:15:10 | 显示全部楼层
wp231957 发表于 2023-12-1 16:12
这就是所谓的模糊查找和精准查找的区别
比如查找dog
那么,ddog算不算?dogg算不算??

原来如此,感谢大神
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-2 15:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表