Categorias
Introdução à Programação para Bioinformática com Biopython

Trabalhando com strings

Este conteúdo faz parte do livro “Introdução à Programação para Bioinformática com Biopython“. Você pode adquirir a versão impressa desse livro aqui ou a versão para Kindle aqui. Para nos citar, consulte este link.

Strings são muito importantes em programas para Bioinformática, sobretudo para o tratamento de sequências, tanto de nucleotídeos quando de aminoácidos. Por isso é importante estudar bastante a manipulação de strings com Python.

Strings representam estruturas textuais, ou seja, caracteres, letras ou palavras. Entretanto, uma variável do tipo string é definida como string através do uso de aspas simples ou aspas duplas. Na prática isso quer dizer que uma variável declarada como var = “1” ou var = ‘1’ será considerada do tipo string, enquanto se declarada como var = 1, será considerada do tipo inteiro.

Vamos começar com um conceito básico, que até agora foi ignorado por este livro: concatenação de strings. Concatenação ou junção de strings refere-se ao ato de unir duas ou mais strings em uma única.

variavel_1 = "Ola, "
variavel_2 = "mundo!"
 
concatenacao = variavel_1 + variavel_2
print(concatenacao)

Nesse exemplo será impresso “Ola, mundo!” (Sim, finalmente traduzimos o “Hello World!”).

Lembra quando fizemos um programa para somar dois números, e para exibir o resultado da soma foi necessário utilizar o comando print em cinco linhas de código?

A = 1
B = 2
SOMA = A + B
 
# Trecho do nosso programa soma.py
print(A)
print("+")
print(B)
print("=")
print(SOMA)

Se você ficou imaginando ter escrito um número desnecessário de linhas você está correto! A impressão poderia ser escrito com uma única linha:

A = 1
B = 2
SOMA = A + B
 
print("%d + %d = %d" %(A, B, SOMA))

Agora complicou um pouco, não é? Acalme-se, vamos explicar em partes. O que será impresso pelo comando print é o que consta dentro das aspas, entretanto existem estruturas especiais que permitem que várias variáveis sejam impressas dentro de um mesmo comando print. São os chamados marcadores ou operadores de interpolação de strings. Há diversos tipos de marcadores, como:

  • %d: números inteiros
  • %f: números flutuantes ou reais (ex.: %.2f exibe 2 casas decimais)
  • %s: exibe strings
  • %o: octal
  • %x: hexadecimal
  • %e: real exponencial
  • %%: sinal de percentagem

Assim, quando marcadores forem utilizados é necessário indicar as variáveis que serão exibidas, nesse caso, A, B e SOMA. Lembre-se de que é necessário indicar as variáveis na sequência em que são exibidas.

Entretanto ainda poderíamos exibir o valor de outra maneira. Veja:

print(str(A)+"+"+str(B)+"="+str(SOMA))

Nesse caso, a função str( ) é utilizada para converter os dados numéricos em strings e permitir que eles fossem impressos com o comando print sem a ajuda de marcadores.

Verificando o tamanho de uma string

É possível verificar o tamanho de uma variável do tipo string utilizando a função len( ).

str = "hello world"
print(len(str) )
 
# Sera impresso o valor 11

Exibindo um caractere específico em uma string

Para exibir um caractere específico de uma string basta apenas indicar a posição do caractere entre colchetes. Veja:

str = "hello world"
print(str[2] ) 
 
# Sera impresso o caractere "l"

Lembre-se de que em programação geralmente iniciamos contagens do número zero. Assim para a variável str = “hello world” temos:

  • str[0] = “h”
  • str[1] = “e”
  • str[2] = “l”
  • str[3] = “l”
  • str[4] = “0”
  • str[5] = ” ”
  • str[6] = “w”
  • str[7] = “o”
  • str[8] = “r”
  • str[9] = “l”
  • str[10] = “d”

Dividindo strings

Strings podem ser divididas em pequenas sequências de caracteres, denominadas substrings, e assim, podem ser acessadas a partir de uma determinada posição. Usando informações sobre o posicionamento de caracteres pode-se dividir uma string de acordo com a necessidade. Para isso basta usar a seguinte sintaxe: string[inicio:final]. Veja:

str = "hello world"
 
print(str[0:5])
# Sera impresso a string "hello"
 
print(str[6:11]) 
# Sera impresso a string "world"

Podemos ainda omitir o início, quando desejarmos um fatia da string que comece a partir da posição 0, ou o final, quando desejarmos indicar que a substring vai até o último caractere. Por exemplo, para uma variável str de 12 caracteres:

  • str[0:5] é equivalente a str[:5]
  • str[6:11] é equivalente a srt[6:]

Principais métodos para trabalhar com strings

Veja abaixo os principais métodos para se trabalhar com strings. Esses exemplos serão aplicados a uma variável str = “AAATTTCCCGG”.

Método

Uso

str.lower( )

Retorna todos os caracteres em minúsculo.

De acordo com o nosso exemplo, o comando str.lower() alteraria o valor da variável str para “aaatttcccgg”.

str.upper( )

Retorna todos os caracteres em maiúsculo.

str.strip( )

Remove espaços no começo e no fim de uma string.

str.find(‘texto’)

Busca por uma determinada palavra dentro de uma string. Se encontrada, retorna a posição de início. Se não for encontrada, retorna o valor numérico -1.

Como, por exemplo, o comando:

str.find(“TTT”) retorna 3.

str.split(‘delimitador’)

Retorna uma lista com strings separadas por um delimitador. Como por exemplo, o comando: str.split(“TTT”) retorna a seguinte lista [“AAA”, “CCCGG”].

str.join(lista)

O oposto de str.split(). Intercala cada string da lista com a string str.

Como por exemplo, o comando:

‘—‘.join([‘aaa’, ccc, ttt]) retorna: “aaa—ccc—ttt”.

str.startswith(str2)

Testa se a string str começa com a string str2. Como, por exemplo, o comando:

str.startswith(“AAA”) retorna True.

str.endswith(str2)

Testa se a string str finaliza com a string str2

str.replace(‘string1′, ‘string2′)

Substitui todas as ocorrências da expressão ‘string1’ por ‘string2. Como por exemplo, o comando:

str.replace(“C”, “A”) retorna a seguinte string “AAATTTAAAGG”.

Quer aprender mais? Conheça nossos cursos profissionalizantes à partir de R$19,99:

Livro Introdução à Programação para Bioinformática com Biopython

Capítulo 1
Introdução ao Python

Capítulo 2
Comandos condicionais

Capítulo 3
Laços de repetição

Capítulo 4
Trabalhando com strings

Capítulo 5
Listas

Capítulo 6
Manipulando arquivos

Capítulo 7
Funções

Capítulo 8
Princípios da orientação a objetos

Capítulo 9
Introdução ao Biopython

Capítulo 10
Sequências

Capítulo 11
BLAST

Capítulo 12
PDB

Capítulo 13
Visualização de dados em Python

Capítulo 14
Outras coisas interessantes que se pode fazer com Biopython

Capítulo 15
Hierarquia do Biopython

Por favor, nos cite:

MARIANO, D. C. B.; BARROSO, J. R. P. M. ; CORREIA, T. S. ; de MELO-MINARDI, R. C. . Introdução à Programação para Bioinformática com Biopython. 3. ed. North Charleston, SC (EUA): CreateSpace Independent Publishing Platform, 2015. v. 1. 230p .

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.