# myushreddy/cheyaka_tappadhu architecture

> Architecture diagram of the GitHub repository myushreddy/cheyaka_tappadhu, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/myushreddy/cheyaka_tappadhu
- Repository: https://github.com/myushreddy/cheyaka_tappadhu

## Overview

This is a research feature-selection and malware-classification pipeline, not an Android-app analysis tool. The implemented workflow reads a prepared feature CSV, creates rule-based labels, ranks features with mutual information, and writes a reduced dataset; a separate script evolves feature subsets and evaluates a random-forest classifier. The README describes Android permission/API extraction and adversarial testing as project capabilities, but the sampled code does not implement them. The GA script also uses a hard-coded input path. Edges reflect only the sampled scripts; unsampled subsystems are omitted.

Main entry points: [`src/ARM.py`](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/ARM.py) (Clean and label), [`GA_RAM.py`](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/GA_RAM.py) (GA-RAM search), [`src/data/XY_final_dataset.csv`](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/XY_final_dataset.csv) (Labeled feature set), [`data/data_sample_25k.csv`](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/data/data_sample_25k.csv) (App feature sample)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_preparation["Feature preparation"]
  node_sample["App feature sample"]
  node_prepare["Clean and label<br/>[ARM.py]"]
  node_clean["Clean features"]
  node_labels["Rule-based labels<br/>[y_labels.csv]"]
end

subgraph group_selection["Feature selection"]
  node_rank["MI ranking<br/>[ARM.py]"]
  node_optimized["Top features"]
  node_finaldata["Labeled feature set"]
end

subgraph group_evaluation["Model evaluation"]
  node_evolve["GA-RAM search<br/>[GA_RAM.py]"]
  node_classifier["Random forest<br/>[GA_RAM.py]"]
  node_selected["Selected feature list"]
end

node_analyst(("Researcher"))

node_analyst -->|"runs"| node_prepare
node_prepare -->|"reads"| node_sample
node_prepare -->|"writes"| node_clean
node_prepare -->|"writes"| node_labels
node_prepare -->|"ranks features"| node_rank
node_rank -->|"writes"| node_optimized
node_rank -->|"combines features and labels"| node_finaldata
node_analyst -->|"runs"| node_evolve
node_evolve -->|"reads"| node_finaldata
node_evolve -->|"evaluates subsets"| node_classifier
node_evolve -->|"writes"| node_selected

click node_sample "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/data/data_sample_25k.csv"
click node_prepare "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/ARM.py"
click node_clean "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/X_features_clean.csv"
click node_labels "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/y_labels.csv"
click node_rank "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/ARM.py"
click node_optimized "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/X_features_optimized.csv"
click node_finaldata "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/XY_final_dataset.csv"
click node_evolve "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/GA_RAM.py"
click node_classifier "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/GA_RAM.py"
click node_selected "https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/results/selected_features.txt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sample,node_prepare,node_clean,node_labels toneBlue
class node_rank,node_optimized,node_finaldata toneAmber
class node_evolve,node_classifier,node_selected toneMint
class node_analyst toneIndigo
```

## Components

### Feature preparation

- [App feature sample](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/data/data_sample_25k.csv): `data/data_sample_25k.csv`
- [Clean and label](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/ARM.py): `src/ARM.py`
- [Clean features](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/X_features_clean.csv): `src/data/X_features_clean.csv`
- [Rule-based labels](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/y_labels.csv): `src/data/y_labels.csv`

### Feature selection

- [MI ranking](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/ARM.py): `src/ARM.py`
- [Top features](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/X_features_optimized.csv): `src/data/X_features_optimized.csv`
- [Labeled feature set](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/data/XY_final_dataset.csv): `src/data/XY_final_dataset.csv`

### Model evaluation

- [GA-RAM search](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/GA_RAM.py): `GA_RAM.py`
- [Random forest](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/GA_RAM.py): `GA_RAM.py`
- [Selected feature list](https://github.com/myushreddy/cheyaka_tappadhu/blob/main/src/results/selected_features.txt): `src/results/selected_features.txt`

### Other components

- **Researcher**

## Connections

- Researcher → Clean and label: runs (evidence: `src/ARM.py`)
- Clean and label → App feature sample: reads (evidence: `src/ARM.py`)
- Clean and label → Clean features: writes (evidence: `src/ARM.py`)
- Clean and label → Rule-based labels: writes (evidence: `src/ARM.py`)
- Clean and label → MI ranking: ranks features (evidence: `src/ARM.py`)
- MI ranking → Top features: writes (evidence: `src/ARM.py`)
- MI ranking → Labeled feature set: combines features and labels (evidence: `src/ARM.py`)
- Researcher → GA-RAM search: runs (evidence: `GA_RAM.py`)
- GA-RAM search → Labeled feature set: reads (evidence: `GA_RAM.py`)
- GA-RAM search → Random forest: evaluates subsets (evidence: `GA_RAM.py`)
- GA-RAM search → Selected feature list: writes (evidence: `GA_RAM.py`)
