Skip to content

Commit cc81b3a

Browse files
Andre BatistaAndre Batista
Andre Batista
authored and
Andre Batista
committed
versao 2023.1
1 parent 831245e commit cc81b3a

File tree

11 files changed

+103
-234
lines changed

11 files changed

+103
-234
lines changed

.github/Icon

-88.3 KB
Binary file not shown.

.requirements.txt.swp

12 KB
Binary file not shown.

Icon

-88.3 KB
Binary file not shown.

Plano de aula - SuperComp.xlsx

-6.26 KB
Binary file not shown.

custom_theme/Icon

-88.3 KB
Binary file not shown.

material/Icon

-88.3 KB
Binary file not shown.

material/index.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# SuperComputação
22

3-
Bem vindo ao curso de SuperComputação 2022/1.
3+
Bem vindo ao curso de SuperComputação 2023/1.
44

55
* **Professores**:
66
* André Filipe M. Batista
77
* Luciano Silva
88

99
* **Horário das aulas**:
10-
* Turma A - Prof. André Filipe: Terça - 9h45, Sexta - 07h30
11-
* Turma B - Prof. Luciano Silva: Quarta - 13h30, Sexta - 13h30
10+
* Turma A - Prof. André Filipe: Quarta - 13h30, Sexta - 07h30
11+
* Turma B - Prof. Luciano Silva: Terça - 09h45, Sexta - 13h30
1212

1313

1414
## Avaliação

material/projetos/index.md

+4-141
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,8 @@
1-
# Alinhamento de Sequencias de DNA
1+
# Maratona de Filmes
22

3-
Em Bioinformática, o problema de **alinhamento de sequências de DNA** consiste no processo de comparar duas ou mais sequências de bases de forma a se observar seu nível de similaridade. Trata-se de um problema extremamente importante no contexto atual, pois permite comparar sequencias virais de SARS-COV2 em bancos de dados genômicos para detecção de novas mutações.
3+
Você quer passar um final de semana assistindo ao máximo de filmes possível, mas há restrições quanto aos horários disponíveis e ao número de títulos que podem ser vistos em cada categoria (comédia, drama, ação, etc).
44

5-
O nível de similaridade pode ser calculado com base em **acertos (match)** e **erros (gap e mismatch)**. Os acertos contribuem com sinal positivo (+) para o nível de similaridade e, os erros, com sinal negativo (-). Abaixo temos um exemplo de cálculo do nível similaridade:
5+
**Entrada**: Um inteiro N representando o número de filmes disponíveis para assistir e N trios de inteiros (H[i], F[i], C[i]), representando a hora de início, a hora de fim e a categoria do i-ésimo filme. Além disso, um inteiro M representando o número de categorias e uma lista de M inteiros representando o número máximo de filmes que podem ser assistidos em cada categoria.
66

7-
![image](alignment.png)
7+
**Saída**: Um inteiro representando o número máximo de filmes que podem ser assistidos de acordo com as restrições de horários e número máximo por categoria.
88

9-
Vamos associar a pontuação **+1 (match)** e as penalidades **-1 (gap)** e **-4 (mismatch)**. Assim, teremos o seguinte nível de similaridade:
10-
11-
23 matches x (+1) + 4 gaps x (-1) + 3 mismatches x (-4) = 23-4-12 = 7
12-
13-
Neste contexto, o problema de alinhamento de sequencias de DNA pode ser colocado da seguinte forma:
14-
15-
```
16-
Dadas duas sequencias de DNA, com as bases A,T,G,C e - para indicar gap,
17-
encontrar o alinhamento que maximize o nível de similaridade.
18-
```
19-
20-
21-
Neste projeto, seu objetivo será construir programas para encontrar este alinhamento de nível máximo de similaridade, utilizando várias estratégias.
22-
23-
Cada um dos seus programas tomará como entrada a seguinte estrutura: a primeira linha contém dois números `n` e `m`, onde `n` é o tamanho da primeira sequencia e, `m`, o tamanho da segunda. Assuma `n ≤ 200` e `m ≤ 200`. A segunda linha contém as bases da primeira sequencia e, a terceira linha, as bases da segunda.
24-
25-
```
26-
5 7
27-
AT-CC
28-
TTTCCAA
29-
```
30-
31-
A saída deve ser uma linha com um número inteiro indicando o nível máximo de similaridade.
32-
33-
```
34-
2
35-
```
36-
Neste caso, este nível máximo de similaridade pode ser associado ao alinhamento T-CC/TTCC (1-1+1+1=2) ou a CC/CC(1+1=2). Você pode usar o código python abaixo para gerar instâncias aleatórias para seus testes.
37-
38-
```python
39-
import random
40-
n = 10 # tamanho da primeira sequência
41-
m = 40 # tamanho da segunda sequência
42-
file = 'dna.seq' # nome do arquivo a ser gerado
43-
f = open(file, 'w')
44-
seq=[str(n)+'\n',
45-
str(m)+'\n',
46-
''.join(random.choices(['A','T','C','G','-'],k=n))+'\n',
47-
''.join(random.choices(['A','T','C','G','-'],k=m))]
48-
f.writelines(seq)
49-
f.close()
50-
print(''.join(seq))
51-
52-
```
53-
54-
Um possível output para este código acima é:
55-
56-
```
57-
10
58-
40
59-
TGGCGAT--C
60-
AGC-TCTCTTC--ATT--CAC-TACACCGACA-CGC-G-A
61-
```
62-
63-
64-
65-
## Estratégias a serem estudadas
66-
67-
Para cada estratégia que vamos estudar, implementaremos um programa correspondente no projeto. Veja abaixo as datas de entrega e descrições de cada estratégia a ser implementada. Em geral, o enunciado de uma parte é liberado após a data de entrega da parte anterior.
68-
69-
1. [Solução Heurística](heuristico) (18/03)
70-
2. [Busca Local](local) (01/04)
71-
3. [Busca Exaustiva](exaustiva) (22/04)
72-
4. Relatório Preliminar (29/04)
73-
5. [Paralelismo Multicore](openmp) (13/05)
74-
6. [Paralelismo GPU](gpu) (03/06)
75-
7. Relatório Final (05/06)
76-
77-
<!-- 1. [Solução Heurística](heuristico) (23/03)
78-
2. [Busca local](busca-local) (09/04)
79-
3. [Busca exaustiva](busca-exaustiva) (16/04)
80-
4. [Relatório preliminar](relatorio-1) (30/04)
81-
5. [Paralelismo MultiCore](paralelismo-multicore) (21/05) -->
82-
<!--
83-
Cada parte de implementação será conferida usando um script de correção checagem de resultados disponível no repositório de entregas do projeto, juntamente com instruções de uso. Registre seu usuário do github até **15/03** para ser convidado para seu repositório de entregas.
84-
85-
<iframe width="640px" height= "480px" src= "https://forms.office.com/Pages/ResponsePage.aspx?id=wKZwY5B7CUe9blnCjt6DO36bxJ3XetxChDUDKdweTOJURUNKWkFLSklHNk1RWlVBTUNHWEszVExOViQlQCN0PWcu&embed=true" frameborder= "0" marginwidth= "0" marginheight= "0" style= "border: none; max-width:100%; max-height:100vh" allowfullscreen webkitallowfullscreen mozallowfullscreen msallowfullscreen> </iframe>
86-
87-
### Instruções de correção
88-
89-
O corretor automático depende do pacote `grading-tools`, que deverá ser instalado como abaixo.
90-
91-
```shell
92-
$> python3.8 -m pip install --user git+https://github.com/igordsm/grading-tools
93-
```
94-
95-
??? tip "Python 3.8 no Ubuntu"
96-
Se seu `python3` é uma versão inferior ao 3.8, você pode instalá-lo com os pacotes abaixo:
97-
98-
```
99-
python3.8 python3.8-dev
100-
```
101-
102-
A partir daí poderá seguir normalmente as instruções desta página.
103-
104-
Com isso configurado, é só compilar seu programa e rodar `python3.8 corretor.py executavel`. Para baixar os novos exercícios é só rodar `git pull`. Os exercícios serão entregues criando um commit com sua resposta e dando `git push`.
105-
106-
107-
!!! warning
108-
Fique atento a atualizações no seu repositório de projeto. Atualizações no corretor serão feitas ao longo do semestre, assim como serão disponibilizados novos arquivos de entrada/saída para cada parte a ser implementada. -->
109-
110-
## Avaliação
111-
112-
O projeto será avaliado usando rubricas para as entregas básicas. As rubricas de avaliação dos relatórios estarão descritas em suas páginas de entrega.
113-
114-
### Conceito D
115-
116-
Algum dos seguintes itens não foi entregue corretamente ou possui problemas sérios (no caso do relatório final).
117-
118-
1. Solução heurística
119-
2. Busca local
120-
3. Busca exaustiva
121-
4. Busca local paralela (CPU)
122-
5. Busca local paralela (GPU)
123-
6. Relatório preliminar
124-
7. Relatório final
125-
126-
127-
### Conceito C
128-
129-
Todas as atividades abaixo foram validadas pelo corretor e (no caso do relatório final) alcançaram qualidade mínima exigida.
130-
131-
1. Solução heurística
132-
2. Busca local
133-
3. Busca exaustiva
134-
4. Busca local paralela (CPU)
135-
5. Busca local paralela (GPU)
136-
6. Relatório preliminar
137-
7. Relatório final
138-
139-
### Conceito C+
140-
141-
Além do já validado no conceito **C**, os relatórios entregues não tinham nenhum ponto **em desenvolvimento** ou **insatisfatório** na rubrica do relatório.
142-
143-
### Conceitos avançados
144-
145-
A partir do conceito **C+** cada atividade avançada vale meio conceito. Elas serão listadas aqui conforme o semestre avança e serão testadas pela checagem de resultados disponível no repositório de entregas.

0 commit comments

Comments
 (0)