python и определяемые пользователем функции - PullRequest
0 голосов
/ 16 июня 2020

Я изучал кодирование python и использовал функцию для вычисления процента g c в последовательности ДНК с неопределенным символом N или n (NAAATTTGGGCCCN), и это создало следующую проблему. есть ли способ преодолеть это?

def gc(sequence) :
    "This function computes the GC percentage of a dna sequence"
    nbases=sequence.count('n')+sequence.count('N')
    gc_count=sequence.count('c')+sequence.count('C')+sequence.count('g')+sequence.count('G')      #total gc count
    gc_percent=float(gc_count)/(len(sequence-nbases))     # TOTAL GC COUNT DIVIDED BY TOTAL LEN OF THE sequence-TOTAL NO. OF N
    return 100 * gc_percent

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Как сказал @jasonharper в комментариях, вам нужно закрыть функцию len(). Поэтому измените len(sequence-nbases) на len(sequence)-nbases.

len(sequence)-nbases
0 голосов
/ 19 июня 2020
def GC_content(dnaseq):
    percent = round(((dnaseq.count("C") + dnaseq.count("G")) / len(dnaseq)) * 100, 3)
    print(f'GC content: {percent} %')

Вот код, который у меня был для того же самого. Но я округлил до трех знаков после запятой только для единообразия в моей программе. И я бы просто поставил что-то вроде sequence.upper(), чтобы вам не приходилось жестко кодировать строчные и прописные буквы.

...