美文网首页
2021-12-13 任务一

2021-12-13 任务一

作者: 徐添添 | 来源:发表于2021-12-13 21:52 被阅读0次

    周六晚上复习了一遍python的语法,深入学习了一下正则表达式。
    周日上午写了3h,晚上3h,周一晚上3.5h,最后终于做得七七八八了
    一开始看题不太仔细,导致浪费了一些时间,下次注意!!
    本次任务中主要学会了一下知识点:
    1、用split空白符读文件
    2、建立一个key对应不同value的字典
    3、通过新建一个list对原有list去重
    4、对re的使用和了解有了一个较大的提升,本来我是用re来获取需要的列信息的,但是re表达式比较复杂,能不用还是不要用!

    all_data=[]
    data=[]
    with open('example.elm','r') as f:
        all_data=f.readlines()
        for i in range(len(all_data)):
            data1=[]
            for element in all_data[i].split():
                data1.append(str(element))
            data.append(data1)
    print(data)
    
    acc=[]
    position=[]
    sequence=[]
    for i in data:
        acc.append(i[0])
        position.append(i[2])
        sequence.append(i[1])
    
    #acc去重
    acc1=[]
    for i in acc:
        if i not in acc1:
            acc1.append(i)
    
    from collections import defaultdict #key为ID,value为所有磷酸化位点
    d = defaultdict(list)
    for key, value in zip(acc, position):
        d[key].append(value)
    position1=[]                        #value放进position1列表
    for key in d:
        position1.append(d.get(key))
    
    from collections import defaultdict #key为ID,value为序列
    d2 = defaultdict(list)
    for key, value in zip(acc, sequence):
        d2[key].append(value)
    sequence1=[]                        #序列放进sequence1列表
    for key in d2:
        sequence1.append(d2.get(key))
    
    with open('fasta-r.txt','w+') as g:
        for i in range(len(acc1)):
            g.write('>'+acc1[i]+'@')
            for k in range(len(position1[i])):
                a=position1[i]
                g.write(a[k] +';' )
            b=sequence1[i]
            g.write('\n'+b[0]+'\n')
    

    相关文章

      网友评论

          本文标题:2021-12-13 任务一

          本文链接:https://www.haomeiwen.com/subject/espsfrtx.html